3.2-主动目标侦查增强
Nmap 防火墙绕过通用策略
常用参数:
nmap -sS -Pn -A <ip address>
0x00 探测防火墙状态
不采用ping方式(ICMP)进行扫描
nmap -Pn <ip address>
常用选项:
-PS 选项来实行TCP SYN ping 可绕过防火墙
-PA 这种类型的扫描将只会扫描ACK包,可绕过防火墙
-PU 扫描只会对目标进行udp ping扫描。只发送UDP包来获取响应,可绕过防火墙
-PP 选项进行一个ICMP时间戳ping扫描可绕过防火墙
-PE 参数进行一个IEMP(Internet控制报文协议)在指定的系统上输出ping,可绕过防火墙
-Pn 不采用ping方式进行扫描,可绕过防火墙
-sA 用于发现防火墙规定,比如扫到的端口是过滤的,那么可以使用这个参数进行绕过
SYN 扫描:
也称为半开放扫描,使用 TCP 协议中的 SYN 包来尝试建立连接。
如果目标主机返回的是RST包,可能是由于防火墙的规则导致。
nmap -sS <target>
FIN 扫描:
通过发送一个只包含FIN标志的TCP数据包来探测端口状态。由于FIN扫描通常不会触发常规防火墙规则,因此如果端口显示为 “open|filtered”,可能表明防火墙对FIN包进行了过滤。
nmap -sF <target>
0x01 使用Nmap脚本检测防火墙
路由跟踪
sudo nmap -sn --traceroute <ip address> -p <ports>
OpenTrace 可视化路由跟踪
项目地址:https://github.com/Archeb/opentrace
您需要 NextTrace V1 (>= 1.1.7) 的可执行文件才能使用 OpenTrace
使用方法
- 自行编译或从 releases 里下载 OpenTrace
- 下载并安装 NextTrace V1: 从 这里 下载对应系统架构的 NextTrace,然后将其放置于 OpenTrace 目录下,或者放置到系统 PATH 环境变量包含的目录中;您亦可以放到任意位置并手动指定路径(macOS 用户推荐)。
- 运行 OpenTrace(.exe)
参考资料:
- BestTrace:搬瓦工教程:使用BestTrace查看VPS的去程和回程
- NextTrace:NextTrace 使用教程:一款追求轻量化的开源可视化路由跟踪工具
0x02 使用Nmap绕过防火墙
自动绕过脚本 port_scan_bypass.sh
#!/bin/bash
# 检查是否提供了IP地址作为参数
if [ $# -eq 0 ]; then
echo "请提供要扫描的IP地址作为参数。"
exit 1
fi
ip=$1
# 定义要尝试的nmap扫描选项
scan_options=(
"-sS" # TCP SYN扫描
"-sT" # TCP Connect扫描
"-sF" # FIN扫描
"-sX" # Xmas扫描
"-sN" # Null扫描
"-T1" # 慢速扫描
"--data-length 128" # 增加数据包长度
"--scan-delay 2s" # 增加扫描延迟
"--scan-delay 5s" # 增加扫描延迟
"--scan-delay 10s" # 增加扫描延迟
"--badsum" # 使用错误的校验和
"-f" # 分段数据包
"--mtu 8" # 指定最大传输单元
"--mtu 16" # 指定最大传输单元
"--mtu 24" # 指定最大传输单元
"--mtu 32" # 指定最大传输单元
"--mtu 64" # 指定最大传输单元
"-D RND:10" # 使用随机的诱饵IP
"-S 192.168.1.100" # 伪造源IP地址(需替换为合适的IP)
"-S $ip" # 伪造源IP地址
"--source-port 53" # 使用常用端口作为源端口
"--proxies socks4://127.0.0.1:9050" # 通过代理进行扫描(需配置好代理)
"--spoof-mac 0" # 伪造MAC地址
"-n" # 不进行DNS解析
"--disable-arp-ping" # 禁用ARP ping
# 新增的扫描选项
"--ttl 64" # 设置IP数据包的TTL值
"--ip-options LSR,192.168.1.100" # 使用IP选项(需替换为合适的IP)
"--send-eth" # 强制使用以太网帧发送数据包
"--send-ip" # 强制使用原始IP数据包发送
"--fuzzy" # 随机化数据包内容
"--defeat-rst-ratelimit" # 尝试绕过RST速率限制
"--version-intensity 0" # 最低版本检测强度
"--version-intensity 9" # 最高版本检测强度
"-sU" # UDP扫描
"--top-ports 100" # 扫描前100个最常见的端口
"--randomize-hosts" # 随机化扫描的主机顺序
)
# 循环尝试不同的扫描选项
for option in "${scan_options[@]}"; do
echo "正在使用扫描选项 $option 进行扫描..."
nmap $option $ip -p-
echo "扫描选项 $option 完成。"
echo "------------------------"
done
0 防火墙检测
nmap --script=firewalk --traceroute <ip address>
nmap --traceroute --script firewalk --script-args firewalk.recv-timeout=60000,firewalk.max-active-probes=3,firewalk.max-retries=3,firewalk.probe-timeout=600 <ip address>
nmap -p80 --script http-waf-detect<ip address>
nmap -p80 --script http-waf-detect --script-args=”http-waf-detect.detectBodyChanges” <ip address>
1 碎片扫描
nmap -f <ip address>
nmap -mtu 8 <ip address>
-mtu 数据包最大传输单元
2 诱饵扫描
nmap -D RND:10 <ip address>
nmap –D decoy1,decoy2,decoy3 <ip address>
3 空闲扫描
nmap -P0 -sI zombie <ip address>
4 随机数据长度
nmap --data-length 25 <ip address>
-data-length 设置数据包的长度
nmap --randomize-hosts 103.17.40.69-100
-randomize-hosts 对批量目标随机IP进行扫描,适合批量目标一起扫的情况
nmap -sl 211.211.211.211<ip address>
5 欺骗扫描
nmap -sT -PN --spoof-mac 0 <ip address>
nmap --badsum <ip address>
nmap -g 80 -S www.baidu.com <ip address>
nmap -p80 --script http-methods --script-args http.useragent=”Mozilla 5”<ip address>
-scan-delay 延迟一定的时间发包,主要用于绕过频率的限制
6 设置和使用代理
export HTTP_PROXY="http://proxy_host:proxy_port"
export HTTPS_PROXY="http://proxy_host:proxy_port"
或
nmap -sV -Pn -n --proxies socks4://10.10.10.105:3128 10.10.10.105 -p-
--proxies socks4://10.10.10.105:3128 指定代理服务器IP和端口
Nmap NSE漏洞脚本扫描
如果你想查看所有可用的脚本,可以在nmap的脚本目录中查找,通常位于/usr/share/nmap/scripts/
使用方法
在执行nmap时使用--script
参数,后跟要使用的脚本名称或名称的一部分
nmap --script ftp-vuln-cve2010-4221 target
这将执行对FTP服务CVE-2010-4221漏洞的扫描。
NSE 更新
sudo nmap --script-updatedb
1、服务版本和漏洞扫描
- auth:用于处理鉴权证书,可能绕过鉴权
- ftp-vuln-:FTP服务漏洞扫描
- http-vuln-:HTTP服务漏洞扫描
- smtp-vuln-:SMTP服务漏洞扫描
- smb-vuln-:SMB/CIFS服务漏洞扫描
- snmp-vuln-:SNMP服务漏洞扫描
- ssh-vuln-:SSH服务漏洞扫描
2、Web应用程序漏洞扫描
- http-enum:Web服务器目录和文件枚举
- http-vuln-cve:基于CVE的Web漏洞扫描
- http-vuln-:其他Web漏洞扫描
3、SSL/TLS漏洞扫描
- ssl-ccs-injection:CCS注入漏洞扫描
- ssl-poodle:POODLE漏洞扫描
- ssl-heartbleed:Heartbleed漏洞扫描
4、数据库漏洞扫描
- mysql-vuln-cve:MySQL CVE漏洞扫描
- ms-sql-vuln-:MS SQL Server漏洞扫描
- oracle-:Oracle数据库漏洞扫描
5、操作系统漏洞扫描
- ms-sql-:MS SQL Server漏洞扫描
- mbsa-:Microsoft Baseline Security Analyzer漏洞扫描
- smb-vuln-:SMB/CIFS服务漏洞扫描
6、其他功能分类
- broadcast:在局域网内探查更多服务开启状况,如DHCP/DNS/SQL Server等服务
- brute:提供暴力破解方式,针对常见的应用如HTTP/SNMP等
- default:使用
-sC
或-A
选项扫描时默认的脚本,提供基本脚本扫描能力 - discovery:对网络进行更多的信息收集,如SMB枚举、SNMP查询等
- dos:用于进行拒绝服务攻击
- exploit:利用已知的漏洞入侵系统
- external:利用第三方的数据库或资源,例如进行whois解析
- fuzzer:进行模糊测试,发送异常的包到目标机,探测出潜在漏洞
- intrusive:入侵性的脚本,可能引发对方的IDS/IPS的记录或屏蔽
- malware:探测目标机是否感染了病毒、开启了后门等信息
- safe:与intrusive相反,属于安全性脚本
- version:负责增强服务与版本扫描(Version Detection)功能的脚本
- vuln:检查目标机是否有常见的漏洞,例如是否有MS08_067
Nmap扫描脚本
#/bin/bash
#nmap四扫一键脚本
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo "# \$1: target ip"
echo "# \$2: scan log dir"
exit
elif [ -z "$1" ]; then
echo "ERROR! You need to add the parameters."
echo "# \$1: target ip"
echo "# \$2: scan log dir"
exit
fi
echo "|------< 创建存储目录 >------|"
mkdir -p $2
ls $2
echo "|------< 执行扫描命令 >------|"
#NO.1
echo "| Nmap Scan NO.1 ports >----------|"
nmap -sT -Pn --min-rate 5000 -p- $1 -oN $2/nmap4scan_1_ports
NmapPorts=`grep open $2/nmap4scan_1_ports|awk -F'/' '{print $1}'|paste -sd ','`
#NO.2
echo "| Nmap Scan NO.2 detail >---------|"
nmap -sT -sV -sC -O -p $NmapPorts $1 -oN $2/nmap4scan_2_detail
#NO.3
echo "| Nmap Scan NO.3 udp >------------|"
nmap -sU --top-ports 30 $1 -oN $2/nmap4scan_3_udp
#NO.4
echo "| Nmap Scan NO.4 vuln >-----------|"
nmap --script=vuln -p $NmapPorts $1 -oN $2/nmap4scan_4_vuln
echo "|------< 脚本执行完成 >------|"
echo "|------< 扫描报告目录: >------|"
echo "|nmap4scan_log_dir: $2/"
更多nmap参数请查看:
https://blogs.sans.org/pen-testing/files/2013/10/NmapCheatSheetv1.1.pdf
https://www.nerubian.cn/archives/3a935015-6c6e-4452-86b7-3261902a6d99
2 WEB信息收集
2.1 页面审计
技术栈识别
浏览器插件:Wappalyzer
- https://chromewebstore.google.com/detail/wappalyzer-technology-pro/gppongmhjkpfnbhagpmjfkannfbllamg?utm_source=ext_app_menu
Whatweb
指纹识别工具WhatWeb使用教程,图文教程(超详细)-CSDN博客
使用命令行工具 whatweb 提取 web 服务器、支持框架和应用程序的版本
whatweb http://10.10.10.103/wordpress
enum4linux
- 功能:枚举 Windows 网络信息(含 DNS 相关)。
- 常用参数:
enum4linux -D example.com
检查页面内容
Firefox Debugger 工具(在 Web Developer 菜单中找到,或通过按 Ctrl Shift K 键)显示页面的资源和内容,这会因应用程序而异。
Debugger 工具可能会显示 JavaScript 框架、隐藏的输入字段、注释、HTML 中的客户端控件、JavaScript 等等。为了证明这一点,我们可以在浏览 www.megacorp.one 时打开 Debugger
查看响应标头
Firefox Web Developer菜单启动的网络工具,以查看HTTP请求和响应
curl 查看请求头
curl -IL https://www.RedteamNotes.com
检查网站地图
使用curl从www.google.com检索robots.txt文件
curl -IL https://www.RedteamNotes.com/robots.txt
证书
如果正在使用 HTTPS,SSL/TLS 证书是另一个潜在的宝贵信息来源。浏览到
https://10.10.10.10/ 并查看证书会显示详细信息,往往包括电子邮件地址和公司名称。
如果这在评估的范围内,这些信息可能被用来进行网络钓鱼攻击。
定位控制台
定位可登录的后台入口
工具审计
使用 NC 查看 banner
nc -nv <ip-address> <port>
使用Nikto 检查web敏感信息
进行对web服务器的多种检查,包括超过6700个潜在的危险文件/CGIs,查找过时的版本和版本特定问题
nikto -port {web ports} -host <ip address> -o <output file.txt>
WEB爬取工具
gospider
gospider -d 3 -w /usr/share/wordlists/dirb/big.txt -u http://10.10.11.47
使用方法:
# 基础爬取(深度 3,自定义 User-Agent)
gospider -s http://startbootstrap.com -d 3 -u "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
# 使用代理和第三方数据源
gospider -s https://example.com -p http://127.0.0.1:8080 -a -w
主要参数说明:
| 参数 | 说明 |
| —————————- | ————————————————————————– |
| -s, --site string
| 目标站点(例如:http://example.com
) |
| -S, --sites string
| 站点列表文件(每行一个站点) |
| -p, --proxy string
| 代理服务器(格式:http://127.0.0.1:8080
) |
| -o, --output string
| 输出结果的文件夹路径 |
| -u, --user-agent
| 用户代理设置:
- web
:随机桌面浏览器 UA
- mobi
:随机移动设备 UA
- 自定义 UA(默认值:web
) |
| --cookie string
| 使用的 Cookie(格式:testA=a; testB=b
) |
| -H, --header
| 自定义请求头(可多次使用该参数添加多个头部) |
| --burp string
| 从 Burp HTTP 请求文件中加载头部和 Cookie |
| --blacklist string
| 需要过滤的 URL 正则表达式(黑名单) |
| -t, --threads int
| 线程数(并行处理多个站点,默认值:1
) |
| -c, --concurrent int
| 每个目标站点的最大并发请求数(默认值:5
) |
| -d, --depth int
| 爬取深度(0
表示无限递归,默认值:1
) |
| -k, --delay int
| 同站点请求间隔时间(秒) |
| -K, --random-delay int
| 在 --delay
基础上增加随机延迟(秒) |
| -m, --timeout int
| 请求超时时间(秒,默认值:10
) |
| --sitemap
| 尝试爬取 sitemap.xml
|
| --robots
| 尝试爬取 robots.txt
(默认开启) |
| -a, --other-source
| 从第三方数据源(Archive.org/CommonCrawl/VirusTotal)发现 URL |
| -w, --include-subs
| 包含第三方数据源中的子域名(默认仅主域名) |
| -r, --include-other-source
| 同时爬取第三方数据源的 URL(默认仅发现不请求) |
| --debug
| 开启调试模式 |
| --verbose
| 开启详细输出 |
| --no-redirect
| 禁用自动重定向 |
| --version
| 查看版本信息 |
| -h, --help
| 显示帮助文档 |
2.3 目录枚举
dirsearch
常用预设:
dirsearch -t 100 -w /usr/share/wordlists/dirb/big.txt -u http://192.158.56.103 --full-url -o dirsearch.log
递归枚举
dirsearch -t 100 -r -e php,html,txt -w /usr/share/wordlists/dirb/big.txt --max-recursion-depth 3 --random-agent -u http://10.10.11.48/ --full-url --recursion-status 301,200 -o dirsearch.log
解释:
-u http://10.10.11.48 :指定要扫描的目标 URL
-w /usr/share/wordlists/dirb/big.txt:指定使用的字典文件
-r 启用递归扫描
-e 站点文件类型列表,默认配置:php,aspx,jsp,html,js,"*"指代所有类型
-e zip,jpg,png,jpeg,tiff,bmp,gif
-X 不需要扫描的站点文件类型列表
-q --quiet-mode 静音模式
-t 指定线程数
--max-recursion-depth 3:设置递归扫描的最大深度为 3
--threads 100:使用 100 个线程进行扫描
--random-agent:使用随机的用户代理(User-Agent)发送请求
--full-url:在输出结果中显示完整的 URL
--recursion-status 301,200:只对状态码为 301 和 200 的页面进行递归扫描
-i 仅现实指定的状态码,指定多个通过逗号分隔
-l 目标url列表文件
请求设置:
-m METHOD,--http-method=METHOD 指定请求方式,默认GET
-d DATA,--data=DATA HTTP请求数据
-H HEADERS,--header=HEADERSHTTP请求头,支持多个标志(例如:-H 'Referer: example.com')
--header-list=FILE 文件包含HTTP请求头
-F,--follow-redirects 遵循HTTP重定向
--random-agent 为每个请求选择一个随机的用户代理
--auth-type=TYPE 身份验证类型(基本,摘要,承载,ntlm)
--auth=CREDENTIAL 身份验证凭据(用户:密码或承载令牌)
--user-agent=USERAGENT
--cookie=COOKIE 可以设置访问cookie
-x(--exclude-status) 不显示指定的状态码,指定多个通过逗号分隔
--exclude-sizes=SIZES 不显示的响应包大小(Example: 123B,4KB)
--exclude-texts=TEXTS 不显示的响应包关键字 (Example: "Not found", "Error")
代理设置:
--proxy=PROXY 支持HTTP和SOCKS(localhost:8080,socks5://localhost:8088)
--proxy-list=FILE 文件包含代理服务器
--replay-proxy=PROXY 用找到的路径重播的代理
输出保存:
默认保存路径:/usr/lib/python3/dist-packages/dirsearch/
-o FILE, --output=FILE 指定保存扫描结果的文件名称,但只有指定了绝对路径才能改变保存路径,可以使用变量(~$HOME),但是./无效
--format=FORMAT 输出格式指定 (Available: simple, plain, json, xml, md, csv, html)
dirb
dirb http://192.168.10.1:80 /usr/share/wordlists/dirb/big.txt
选项:
-a "Mozilla/5.0 (iPod; U )"
指定移动设备的user agent请求头爆破
dirb http://10.10.10.116:8008/NickIzL33t/ /usr/share/wordlists/rockyou.txt -a "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us)AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2Safari/6533.18.5"
gobuster
递归枚举
gobuster dir -u http://10.10.11.48/daloradius/ -w /usr/share/wordlists/dirb/big.txt -t 100 -e -x php -s 301 -r -o outlog.txt
解释
gobuster dir:表示使用 Gobuster 进行目录枚举操作。
-u http://10.10.11.48 :指定要扫描的目标 URL
-w /usr/share/wordlists/dirb/big.txt:指定要使用的字典文件
-t 1000:使用 1000 个线程进行扫描
-e:显示完整的 URL
-x php:仅查找后缀为 .php 的文件。
-s 301,200:仅对指定状态码的页面进行递归枚举
-r:启用递归扫描
-o outlog.txt:将扫描结果输出到 outlog.txt 文件中
常用预设:
gobuster dir -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.999 -x html,htm,zip,bak,txt,php,sql,rar,md,tar,xml,asp
使用方法:
使用:
gobuster [选项] [参数] <target>
选项:
completion 生成指定外壳的自动完成脚本
dir 使用目录/文件枚举模式
dns 使用DNS子域枚举模式
fuzz 使用模糊模式。替换URL、报头和请求体中的关键词FUZZ
gcs 使用gcs桶枚举模式
help 帮助任何命令
s3 使用AWS桶枚举模式
tftp 使用TFTP枚举模式
version 显示当前版本
vhost 使用VHOST枚举模式(你最可能想使用IP地址作为URL参数)
参数:
-u 指定扫描目标地址
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如1500ms)
-x 指定寻找的文件后缀(默认不会寻找这些文件格式)
-h, --help gobuster帮助
--no-color 禁用颜色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件写入结果(默认为stdout)
-p, --pattern string 包含替换模式的文件
-p 指定 HTTP 或 HTTPS 代理
-q, --quiet 不打印横幅和其他噪声
-t, --threads 并发线程数(默认10)
-v, --verbose 详细输出(错误)
-w, --wordlist 字符串 字典的路径。设置为-使用标准输入。
--wordlist-offset 整数 从字典中给定的位置恢复(默认为0)
-r 启用递归模式,对每个子目录进行深度扫描
-d, --depth 设置扫描深度(多层后缀的文件,例如。tar.gz)
-t 线程数
-e 对目标 URL 进行 URL 编码,处理包含特殊字符的 URL,例如空格、中文字符、特殊符号等。
-k 跳过 SSL/TLS 证书验证
-a, --useragent 指定User-Agent
Wfuzz
wfuzz -w /usr/share/wordlists/dirb/big.txt -u https://10.10.10.126:12380/FUZZ -H "X-Forwarded-For: http://127.0.0.1" --hc 404
-w 字典
-H "X-Forwarded-For: 127.0.0.1" 伪造请求地址
--hc 过滤结果,如--hc 404 :不显示404的结果
ffuf
ffuf -H "头信息" -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.110/FUZZ -e .php,.zip,.txt,.pdf
目录枚举字典
| SIZE | PATH |
| — | — |
| 24349 | /usr/share/wordlists/dirb/all.txt |
| 20469 | /usr/share/wordlists/dirb/big.txt |
| 161 | /usr/share/wordlists/dirb/catala.txt |
| 4614 | /usr/share/wordlists/dirb/common.txt |
| 197 | /usr/share/wordlists/dirb/euskera.txt |
| 29 | /usr/share/wordlists/dirb/extensions_common.txt |
| 10 | /usr/share/wordlists/dirb/indexes.txt |
| 49 | /usr/share/wordlists/dirb/mutations_common.txt |
| 959 | /usr/share/wordlists/dirb/small.txt |
| 449 | /usr/share/wordlists/dirb/spanish.txt |
| 8930 | /usr/share/wordlists/dirbuster/apache-user-enum-1.0.txt |
| 10355 | /usr/share/wordlists/dirbuster/apache-user-enum-2.0.txt |
| 58688 | /usr/share/wordlists/dirbuster/directories.jbrofuzz |
| 141708 | /usr/share/wordlists/dirbuster/directory-list-1.0.txt |
| 220560 | /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt |
| 87664 | /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt |
| 207643 | /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt |
| 81643 | /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt |
| 141708 | /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt |
| 87664 | /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt |
| 220559 | /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt |
| 1273832 | /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt |
| 81643 | /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-small.txt |
| 207643 | /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt |
| 1185254 | /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-big.txt |
大佬的字典项目
https://github.com/Fuzzdb-project/Fuzzdb
https://github.com/danielmiessler/SecLists
2.4 DNS枚举
DNS记录类型
A 记录:将域名指向一个IPv4地址。
AAAA记录:将域名指向一个IPv6地址。
CNAME记录:别名,用于将多个名字映射到同一台计算机。
MX记录:邮件交换记录,用于电子邮件路由。
TXT记录:一般用于保存关于主机的一些文本信息。
NS记录:指定由哪些DNS服务器对该区域进行解析。
DNS记录查询
1. dig
功能:查询 DNS 记录(A、AAAA、MX、NS、TXT 等),支持高级查询。
常用参数:
dig example.com # 查询 A 记录 dig -t MX example.com # 查询 MX 记录 dig -x 192.168.1.1 # 反向 DNS 解析 dig example.com +short # 简洁输出
反向 DNS 解析:
for ip in 192.168.1.{1..254}; do dig -x $ip +short; done
2. nslookup
- 功能:简单的 DNS 查询工具,适合交互式操作。
- 常用参数:
nslookup example.com # 查询默认 DNS 服务器 nslookup example.com 8.8.8.8 # 指定 DNS 服务器
3. host
查域名ip
host www.megacorpone.com
查邮件服务器等其他记录类型
host -t mx megacorpone.com
host -t txt megacorpone.com
批量枚举域名对应ip
for ip in $(cat list.txt); do host $ip.megacorpone.com; done
批量枚举ip对应域名
for ip in $(seq 200 254); do host 51.222.169.$ip; done | grep -v "not found"
使用工具自动枚举
dnsrecon -d megacorpone.com -t std
dnsrecon -d megacorpone.com -D ~/list.txt -t brt
dnsenum megacorpone.com
A记录枚举
nslookup mail.megacorptwo.com
指定DNS服务器枚举
nslookup -type=TXT info.megacorptwo.com 192.168.50.151
子域名枚举
3. dnsenum
- 功能:子域名枚举、区域传输测试、反向解析等。
- 常用参数:
dnsenum example.com # 基础扫描 dnsenum --enum example.com # 全面枚举(子域名、MX、NS) dnsenum --file domains.txt --threads 5 # 批量扫描多个域名
4. dnsrecon
功能:强大的 DNS 枚举工具,支持暴力破解、区域传输、子域名发现。
常用参数:
dnsrecon -d example.com -t std # 标准扫描 dnsrecon -d example.com -t axfr # 尝试区域传输 dnsrecon -d example.com -t brt # 暴力破解子域名(需字典)
自动化脚本:
# 批量扫描多个域名 cat domains.txt | while read domain; do dnsrecon -d $domain -o $domain.txt; done
区域传输测试:
dnsrecon -d example.com -t axfr
6. fierce
- 功能:子域名发现和 DNS 信息收集。
- 常用参数:
fierce -dns example.com
gobuster
vhost
开始扫描
gobuster vhost -t 50 -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt --append-domain -u http://linkvortex.htb/
dns
将 DNS 服务器如 1.1.1.1 添加到 /etc/resolv.conf 文件中
echo 'nameserver 1.1.1.1' >> /etc/resolv.conf
开始扫描
gobuster dns -t 50 -w /usr/share/SecLists/Discovery/DNS/namelist.txt -u http://linkvortex.htb/
5. dnsmap
DNS 分析工具
- 功能:通过字典暴力破解子域名。
- 常用参数:
dnsmap example.com -w /usr/share/wordlists/dnsmap.txt
7. drone
- 功能:自动化 DNS 侦察,集成多种工具。
- 常用参数:
drone -d example.com
8. dnschef
DNS 欺骗的工具
- 功能:DNS 欺骗(中间人攻击)。
- 常用参数:
dnschef --fakedns example.com:192.168.1.100
9. dmitry
- 定位:dmitry 是一款轻量级信息收集工具,主要用于对目标域名或 IP 进行基础信息收集。
- 核心功能:
- 域名信息:查询 Whois 信息、DNS 记录(如 A、MX、NS 记录)、子域名枚举(基础字典爆破)。
- 端口扫描:支持简单的端口扫描(如 TCP SYN 扫描),识别开放端口。
- 服务探测:初步识别端口对应的服务(如 HTTP、FTP),但功能较基础。
- 漏洞线索:通过检查常见服务的 banner 信息,获取可能的漏洞线索(如软件版本)。
- 常用参数:
dmitry -winse example.com
10. dnstracer
跟踪 DNS 查询路径
- 功能:跟踪 DNS 查询路径。
- 常用参数:
dnstracer example.com
wfuzz
wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -u http://FUZZ.alert.htb/
ffuf
ffuf -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -u http://alert.htb -H "Host:FUZZ.alert.htb" -ac
手动枚举
https://blog.csdn.net/weixin_63124284/article/details/126956627
字典
安装 SecLists字典
sudo apt install seclists -y
常用字典
986 /usr/share/seclists/Miscellaneous/dns-resolvers.txt
17576 /usr/share/wordlists/dnsmap.txt
19966 /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
49928 /usr/share/seclists/Discovery/DNS/deepmagic.com-prefixes-top50000.txt
114441 /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt
100000 /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt
102582 /usr/share/seclists/Discovery/DNS/sortedcombined-knock-dnsrecon-fierce-reconng.txt
151265 /usr/share/seclists/Discovery/DNS/namelist.txt
2171687 /usr/share/seclists/Discovery/DNS/dns-Jhaddix.txtt