mubashir1837/OSINT-1600-Pakistani-Government-Domains-Enumeration
GitHub: mubashir1837/OSINT-1600-Pakistani-Government-Domains-Enumeration
一个以巴基斯坦政府域名为实践对象的 OSINT 学习仓库,系统记录了子域名枚举的工具链、命令和方法论。
Stars: 1 | Forks: 0
# OSINT 侦察学习仓库
欢迎来到这个开源情报(OSINT)仓库!本项目作为一个学习资源和子域名枚举技术的实践记录,记录了用于发现特定目标子域名的工具、命令和方法论。
## 目标
本仓库的主要目标是演示如何对域名执行被动和主动侦察,利用公开可用的工具和数据源来映射出组织的外部攻击面。
## 工具设置
在本次实践中,准备了几种行业标准工具:
- **[Amass](https://github.com/owasp-amass/amass):** 深入的 DNS 枚举和网络映射。
- **[httpx](https://github.com/projectdiscovery/httpx):** 快速且多功能的 HTTP 工具包。
- **[Sublist3r](https://github.com/aboul3la/Sublist3r):** 快速的子域名枚举工具。
- **[crt.sh](https://crt.sh/):** 证书透明度日志搜索界面。
- **实用工具:** `curl`, `jq`, `sed`, `git`, `go`。
## 我做了什么以及如何做的
### 1. 环境配置
首先,在 Kali Linux 上安装了必要的基础包和依赖项:
```
# 更新 repositories 并安装基础 utilities
sudo apt update && sudo apt install -y golang-go git python3-pip jq curl wget
```
### 2. 安装侦察工具
**通过 Go 安装 Amass 和 httpx:**
```
# 安装 OWASP Amass 用于 DNS enumeration
go install -v github.com/owasp-amass/amass/v4/...@master
# 安装 ProjectDiscovery 的 httpx 用于 web server 探测
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
```
**设置 Sublist3r:**
*注意:现代的 Kali Linux 使用外部管理的 Python 环境(PEP 668),因此直接运行 `pip3 install -r requirements.txt` 会导致错误。请改用 `apt` 或 `pipx`。*
```
# Clone repository
git clone https://github.com/aboul3la/Sublist3r.git
cd Sublist3r
# 在现代 Kali 上安装 Sublist3r dependencies 的推荐方式:
sudo apt install python3-dnspython python3-requests python3-argparse
```
### 3. 通过证书透明度枚举子域名(CT Logs)
最有效的**被动 OSINT** 技术之一是查询证书透明度(CT)日志。每当为某个域名签发 SSL/TLS 证书时,它都会被公开记录。我们可以查询 `crt.sh` 来提取这些域名,而无需直接触碰目标的服务器。
本仓库包含了一份针对 `.gov.pk` 范围的 `crt.sh` 原始结果文件:
- `OSINT: Enumerating 1,600+ .gov.pk Domains/sublist3r/crtsh_govpk_raw.txt`
以下是用于获取、清理和排序特定目标域名(例如 `example.com`)子域名的命令:
```
# 1. 查询所有包含目标 domain 的 certificates(JSON 输出)
# 2. 使用 'jq' 解析 name_value 字段
# 3. 使用 'sed' 移除 wildcard 字符(*.)
# 4. 排序并提取唯一条目到文本文件
curl -s "https://crt.sh/?q=%25.example.com&output=json" | \
jq -r '.[].name_value' | \
sed 's/\*\.//g' | \
sort -u > crtsh_example_raw.txt
# 统计发现的 subdomains 数量
wc -l crtsh_example_raw.txt
```
## 如何使用本仓库学习 OSINT
1. **理解命令行:** 仔细阅读上面的 `crt.sh` 命令。注意标准的 Linux 实用程序(`curl`, `jq`, `sed`, `sort`)是如何通过管道符(`|`)串联在一起,从而轻松检索和格式化网络数据的。
2. **实践被动侦察:** 针对你拥有或被授权测试的域名运行 `crt.sh` 命令。看看你能被动发现多少个子域名。
3. **扩展工作流:** 一旦你获得了原始的子域名列表,就可以将该输出作为 `httpx` 的输入,以查看哪些子域名正在积极托管 Web 服务器:
cat crtsh_example_raw.txt | httpx -title -tech -status-code
4. **主动侦察:** 使用 Amass 和 Sublist3r 查找可能尚未在 CT 日志中注册的域名。
*免责声明:在对目标执行主动侦察或扫描之前,请务必确保你已获得明确的许可。本指南侧重于出于教育目的的被动侦察。*
标签:ESC4, GitHub, OSINT, 子域名枚举, 实时处理, 应用安全, 日志审计, 系统安全, 逆向工具