文章

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)

参考资料:

  1. BestTrace:搬瓦工教程:使用BestTrace查看VPS的去程和回程
  2. 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参数请查看:

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
License:  CC BY 4.0