网络侦察阶段的完整操作手册
侦察的核心原则
侦察阶段的唯一目标是在不被发现的前提下获取尽可能多的目标信息。原则:
- 先被动后主动:能从公开渠道拿到的就不碰目标主机
- 速度要慢:每秒 1-2 个请求,避免触发速率限制
- 不留痕迹:使用代理链(Proxychains + Tor)或 VPS
- 结果存档:每一步的结果都存到文件里,后续要查
被动侦察:子域名枚举
Amass(OWASP 出品,最推荐)
amass enum -d example.com -o amass-results.txt
Amass 从多个公开数据源(主动 DNS 探测 + 被动 API + 证书透明度日志)综合去重,子域名枚举最全面。
Recon-ng 批量跑
[recon-ng][default] > modules load recon/domains-hosts/google_site_web
[recon-ng][default][google_site_web] > options set SOURCE example.com
[recon-ng][default][google_site_web] > run
[recon-ng][default] > modules load recon/domains-hosts/bing_domain_web
...
theHarvester(快速扫邮箱)
theHarvester -d example.com -b google -l 500
从搜索引擎批量抓取目标域名关联的邮箱地址。
Shodan(设备搜索)
Shodan 可以按 IP/域名直接查开放端口和服务版本:
网页版搜索: hostname:example.com
主动侦察:端口扫描
Nmap 基础扫描
# 默认 SYN 扫描(隐蔽,快)
nmap -sS 192.168.1.0/24
# 服务版本 + OS 识别(信息最全)
nmap -A -T4 192.168.1.100
# 全端口扫描(65535 都扫一遍,慢但不漏)
nmap -sS -p- -T4 192.168.1.100
# 跳过主机发现(目标禁 ping 时)
nmap -sS -Pn 192.168.1.100
Masscan(超高速全端口扫描)
masscan -p1-65535 192.168.1.0/24 --rate=1000 -oX masscan.xml
Masscan 可以在几分钟内扫完整个网段的 65535 个端口。但它只告诉哪些端口开着,不知道服务版本——扫完结果喂给 Nmap 深度扫描。
结果合并
# 从 Masscan 输出提取开放端口列表
grep -oP '(?<=portid=")[0-9]+' masscan-result.xml | sort -n | tr '\n' ',' | sed 's/,$//' > open-ports.txt
# 把端口列表喂给 Nmap 做深度扫描
nmap -sV -sC -p $(cat open-ports.txt) 192.168.1.100
DNS 侦察
# DNS 区域传输尝试(很多服务器错误开放了)
host -t axfr example.com ns1.example.com
# 或者
dig axfr example.com @ns1.example.com
# DNS 子域暴力枚举
gobuster dns -d example.com -w /usr/share/wordlists/dns.txt -t 50
# 或者 dnsrecon
dnsrecon -d example.com -t brt -w /usr/share/wordlists/dns.txt
社交工程侦察
从 LinkedIn、GitHub、企业官方网站公开页面收集:
- 员工姓名和职位 → 生成公司邮箱格式猜测(name.last@company.com)
- 技术栈:GitHub 账号、技术博客 → 判断开发技术栈 → 推测 Web 框架版本
- 组织结构:公司年报、招聘页面 → 找到 IT 部门负责人
记住:人是最弱的环节,很多渗透测试是从一封钓鱼邮件开始的。