📚 网络安全 Kali 学习系列
模块 0 基础阶段 ✅ 已完成
01-18 Linux系统 → 计算机网络 → 密码学 → Python/Bash/PHP/JS → Docker
模块 1 信息收集与侦察(攻击技术阶段)
✓ 19 nmap 主动扫描与信息收集
✓ 20 masscan 高速扫描与被动侦察
21 指纹识别与目录爆破(当前篇)
22 漏洞扫描与 Web 安全基础(下一篇)
阶段二至四共 XX 篇,后续持续更新
难度:进阶
WhatWeb v0.6.4
gobuster 3.8.2
ffuf v2.2.0
Wappalyzer 6.12
如果把端口扫描比作摸清一栋建筑有多少扇门和窗户,那指纹识别就是透过玻璃观察屋内装修风格——判断这是民居、办公楼还是仓库。知道了建筑类型,你才能决定用钥匙、撬棍还是消防通道进去。目录爆破则更像拿着一张常见房间名的清单,逐个敲门试门是否锁着,找出那些没挂门牌却真实存在的密室。
读完本篇你将能运用 WhatWeb 和 Wappalyzer 识别目标 Web 应用的完整技术栈(CMS、框架、服务器、编程语言),用 gobuster 和 ffuf 发现隐藏目录、文件和 API 端点,理解指纹识别的多种检测维度和目录爆破的过滤技巧,并构建从"识别目标"到"发现攻击面"的完整侦察工作流。
📖 本篇目录
一、Web 指纹识别:揭开目标技术栈的面纱
二、WhatWeb:命令行指纹识别利器
三、Wappalyzer:浏览器端实时技术识别
四、目录爆破原理:暴力枚举的艺术
五、gobuster:Go 语言高速目录扫描
六、ffuf:灵活强大的 Web Fuzzer
七、实战演练:从指纹识别到目录爆破
分级练习 · 知识回顾 · 下一篇预告
一、Web 指纹识别:揭开目标技术栈的面纱
Web 指纹识别(Web Fingerprinting)是通过分析 Web 应用的响应特征,推断其底层技术栈(Web 服务器、CMS 系统、开发框架、JavaScript 库、CDN 服务等)的过程。在 MITRE ATT&CK 框架中,这一技术被映射为 T1595.002 Vulnerability Scanning 的前置步骤,属于主动侦察范畴。
知道目标运行什么技术,价值在哪里?假设你发现一个网站运行 WordPress 5.8,你可以立刻锁定数百个已知的 WordPress 插件漏洞作为下一步测试方向;如果识别出是 Spring Boot,你就知道要去查 Actuator 端点是否暴露。指纹识别的本质是缩小攻击面——把"不知道对方有什么"变成"知道对方大概率有什么"。
1.1 指纹识别的六大维度
一个成熟的指纹识别工具会从多个维度交叉验证,避免单一特征被误判。以下是六种最常见的识别依据:
| 维度 |
检测依据 |
示例 |
| HTTP 响应头 |
Server、X-Powered-By、Set-Cookie 特征 |
Server: Apache/2.4.41 |
| HTML 特征 |
Meta 标签、Generator、注释、特定路径 |
<meta name="generator" content="WordPress"> |
| Cookie 特征 |
Cookie 名称前缀、过期策略 |
PHPSESSID=xxx |
| Favicon 哈希 |
favicon.ico 的 MD5/SHA1 哈希值 |
-favicon-32x32.png |
| JS 全局变量 |
window 下的特定全局对象 |
window.jQuery |
| 页面内容模式 |
特定路径的响应、错误页特征 |
/wp-content/ 路径 |
值得注意的是,单一维度的识别结果可能不可靠。例如管理员可以在 Nginx 配置中修改 Server 响应头来隐藏真实服务器信息。但多个维度交叉验证后(比如响应头说自己是 Nginx,但 Cookie 里有 PHPSESSID、页面中有 wp-content 路径),识别准确率会大幅提升。
💡 小贴士
Favicon 哈希是一个非常可靠的指纹特征。favicon.ico 是网站图标文件,不同 CMS 和框架使用不同的图标,而管理员通常不会想到替换它。利用 Shodan 等平台搜索特定 favicon 哈希值,可以找出互联网上所有运行同一 CMS 的网站。计算方法:将 favicon 文件内容进行 MD5 或 MurmurHash 运算,然后在指纹库中比对。OWASP Amass 等工具内置了 favicon 哈希匹配功能。
二、WhatWeb:命令行指纹识别利器
WhatWeb 是一款用 Ruby 编写的开源 Web 指纹识别工具,由 urbanadventurer 开发维护。最新版本 v0.6.4(2026 年 4 月发布),内置超过 1800 种指纹插件,能够识别 CMS、博客平台、Web 服务器、JavaScript 库、CDN、分析工具等几乎所有常见 Web 技术。它是 Kali Linux 默认预装的工具之一。
2.1 基础用法
WhatWeb 的基本命令非常简单,只需指定目标 URL 即可。默认情况下它发送一个 HTTP GET 请求,分析响应头和页面内容后输出识别结果。
Shell
# 基础扫描(默认 stealthy 级别)
whatweb http://192.168.1.100
# 详细输出(-v 显示匹配的每个插件详情)
whatweb -v http://192.168.1.100
# 批量扫描(从文件读取 URL 列表)
whatweb -i targets.txt
默认扫描的输出格式类似这样,每行一个目标,方括号内是识别出的技术:
Output
http://192.168.1.100 [200 OK] Apache[2.4.41] PHP[7.4.3] WordPress[5.8] MySQL[5.7] jQuery[3.6.0] Google-Analytics[UA-123456789-1] HTTPServer[Apache/2.4.41 (Ubuntu)] IP[192.168.1.100] Title[My WordPress Site]
2.2 三种扫描级别
WhatWeb 提供三档扫描强度,分别对应不同的请求量和识别深度:
| 级别 |
参数 |
特点 |
请求数 |
| Stealthy |
默认 / -a 1 |
仅发 1 个 GET 请求,快速轻量 |
1 个/目标 |
| Aggressive |
-a 3 |
访问特定路径验证指纹,准确率高 |
~10-20 个/目标 |
| Heavy |
-a 4 |
大量路径探测,最准确但最慢 |
数十个/目标 |
日常使用推荐 Aggressive(-a 3)级别。Stealthy 虽然最快但漏报率高,很多插件需要访问特定路径才能确认。Aggressive 级别会在识别出初步指纹后,访问该技术特有的验证路径(如 WordPress 的 /wp-login.php)来二次确认,在速度和准确率之间取得了较好的平衡。
2.3 常用参数速查
常用参数
|
1
2
3
4
5
6
7
8
9
10
|
-a NUM # 攻击级别 1(stealthy)/3(aggressive)/4(heavy)
-v # 详细输出,显示每个插件的匹配依据
-i FILE # 从文件读取目标 URL 列表
-o FILE # 输出到文件(格式由扩展名决定)
--log-xml # XML 格式输出,便于工具解析
-p PLUGIN # 仅运行指定插件(逗号分隔多个)
--proxy # 使用 HTTP 代理(支持 socks5)
-U USER # HTTP 基本认证用户名
-P PASS # HTTP 基本认证密码
-t NUM # 并发线程数(默认 25)
|
💡 小贴士
WhatWeb 的 -p 参数可以只运行指定插件,这在你已经初步识别目标后想验证某个特定技术时非常有用。例如:whatweb -p WordPress -a 3 http://target.com 只运行 WordPress 插件的 aggressive 级别扫描,速度极快,适合在批量脚本中做二次确认。WhatWeb 插件全部用 Ruby 编写,位于 /usr/share/whatweb/plugins/ 目录,有 Ruby 基础的读者可以自行编写自定义插件。
三、Wappalyzer:浏览器端实时技术识别
Wappalyzer 是一款浏览器扩展(Chrome / Firefox / Edge 均支持),能够在你浏览网页时实时检测当前页面使用的技术栈。最新版本 6.12.x(2026 年 8 月更新),可识别超过 1000 种技术,涵盖 CMS、Web 框架、服务器软件、JavaScript 库、CDN、分析工具、支付系统等数十个类别。
与 WhatWeb 这类命令行工具相比,Wappalyzer 的最大优势在于它运行在真实浏览器环境中,能够执行 JavaScript、渲染页面,检测到那些需要动态加载才会出现的技术特征(如 React、Vue 等前端框架的 DOM 特征、动态注入的脚本等)。命令行工具只能拿到初始 HTML 响应,无法检测纯前端渲染的应用。
3.1 安装与使用
Wappalyzer 提供浏览器扩展版和命令行版两种形式。日常侦察推荐使用浏览器扩展,在浏览目标网站时自动识别:
| 使用方式 |
适用场景 |
获取方式 |
| 浏览器扩展 |
手动浏览、快速查看 |
Chrome 网上应用店 / Firefox 附加组件 |
| 命令行 (npm) |
批量扫描、自动化集成 |
npm install -g wappalyzer |
安装扩展后,访问任意网页,点击工具栏中的 Wappalyzer 图标即可展开技术栈面板,按类别(CMS、JavaScript 库、Web 服务器、CDN 等)分组展示识别结果。每个技术项旁显示置信度图标,点击可查看检测依据。
3.2 Wappalyzer vs WhatWeb 对比
两款工具各有所长,在实际侦察中通常配合使用而非二选一:
| 对比维度 |
WhatWeb |
Wappalyzer |
| 运行环境 |
命令行(Ruby) |
浏览器扩展 / npm |
| JS 执行 |
不执行 |
执行(真实浏览器环境) |
| 批量扫描 |
支持(-i 参数) |
命令行版支持 |
| 前端框架检测 |
较弱(SSR 才能检测) |
强(能检测 React/Vue/Angular) |
| 开源状态 |
完全开源(GPLv2) |
主版本已闭源,HTTPArchive 有开源 fork |
💡 小贴士
Wappalyzer 主项目已于 2023 年转为闭源,浏览器扩展和官网 API 现在是商业产品。开源社区维护了一个基于最后开源版本的 fork(HTTPArchive/wappalyzer),用于每月的 Web 技术普查。命令行版本可以通过 npm 安装,但功能可能落后于商业版。如果你需要完全可控的指纹识别工具,WhatWeb 是更可靠的开源选择——它的插件体系完全开放,可以随时添加自定义指纹规则。
四、目录爆破原理:暴力枚举的艺术
目录爆破(Directory Brute-forcing),也叫目录扫描或路径枚举,是通过尝试大量常见目录名和文件名,从 Web 服务器上发现那些没有链接指向但真实存在的路径的过程。这些隐藏路径往往包含管理后台、备份文件、API 文档、测试页面等敏感内容,是 Web 渗透测试中最重要的攻击面来源之一。
目录爆破的基本逻辑非常简单:准备一个包含大量可能路径名的字典(wordlist),逐个向目标服务器发送 HTTP 请求,根据响应状态码和响应大小判断该路径是否存在。真正的技术含量在于字典的质量和结果的过滤——好的字典能在 1 分钟内找到关键路径,差的字典跑一小时也一无所获。
4.1 常见字典资源
Kali Linux 内置了多个优秀的字典集,最常用的是 dirb 的默认字典和 seclists 项目:
字典路径
# dirb 默认字典(经典小字典,4614 条)
/usr/share/dirb/wordlists/common.txt
# seclists 大字典集(需先安装 apt install seclists)
/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt # 87K 条
/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt # 220K 条
/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt # 62K 条
# 特定技术栈字典(根据指纹识别结果选择)
/usr/share/seclists/Discovery/Web-Content/CMS/wp-plugins.fuzz.txt # WordPress 插件
/usr/share/seclists/Discovery/Web-Content/spring-boot.txt # Spring Boot
字典选择的策略是:先用小字典快速扫描,发现路径后再用对应技术栈的专用字典深入。比如指纹识别发现目标是 WordPress,就不用跑通用大字典,直接用 WordPress 插件和主题字典,命中率会高得多。
4.2 HTTP 状态码与结果判断
目录爆破中最核心的判断依据是 HTTP 响应状态码,但不能简单地认为"200 就是存在,404 就是不存在"。实际情况要复杂得多:
| 状态码 |
含义 |
目录爆破中的解读 |
| 200 OK |
请求成功 |
路径存在,但需排除自定义 404 页 |
| 301/302 |
重定向 |
路径存在,通常跳转到登录页或末尾加 / |
| 403 Forbidden |
禁止访问 |
路径存在但无权限,可能是敏感目录 |
| 404 Not Found |
未找到 |
路径不存在(但需注意自定义 404 可能返回 200) |
| 500 Internal Error |
服务器错误 |
路径存在但代码出错,可能有漏洞 |
最容易踩的坑是自定义 404 页面。很多网站会配置自定义错误页,此时访问不存在的路径也可能返回 200 状态码(内容是"页面未找到")。这种情况下需要用响应大小来辅助判断——所有"假 200"的响应大小通常是相同的,通过过滤掉固定大小的响应就能排除干扰。
⚠️ 常见错误
看到 200 状态码就认为路径一定存在
正确做法:先访问一个肯定不存在的路径(如 /thispagedoesnotexist12345),记录其状态码和响应大小,作为"基准 404"的参考值。然后在爆破时过滤掉与基准值相同(或相近)的响应。大多数现代目录爆破工具都支持 -fs(按大小过滤)和 -fc(按状态码过滤)参数。如果网站有 WAF,可能还需要观察响应中的关键词(如"禁止访问"、"页面不存在")来判断真实状态。
五、gobuster:Go 语言高速目录扫描
gobuster 是用 Go 语言编写的目录爆破工具,由 OJ Reeves 和 Christian Mehlmauer 维护。最新版本 3.8.2(Kali 2026.1 内置),最大的特点是速度快、并发高、模式多。Go 语言的协程模型让它在高并发场景下比传统的 dirb(Perl 编写)快 5-10 倍。
5.1 基础目录扫描
gobuster 的目录扫描模式(dir mode)是最常用的功能。基本命令结构为 gobuster dir -u URL -w 字典路径:
Shell
|
1
2
3
4
5
6
7
8
9
10
|
# 基础目录扫描
gobuster dir -u http://192.168.1.100 -w /usr/share/dirb/wordlists/common.txt
# 指定文件扩展名(同时扫目录和.php文件)
gobuster dir -u http://192.168.1.100 -w common.txt -x php,txt,html,bak
# 显示响应长度 + 按状态码过滤 + 100线程
gobuster dir -u http://192.168.1.100 -w common.txt \\
-l -fc 404 -t 100
# 递归扫描(发现目录后自动深入)
gobuster dir -u http://192.168.1.100 -w common.txt --recursive --depth 3
|
默认输出格式如下,状态码、大小、路径一目了然:
Output
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: : http://192.168.1.100
[+] Method: : GET
[+] Threads: : 10
[+] Wordlist: : common.txt
===============================================================
Status: 200 [Size: 10701] --> /index.html
Status: 301 [Size: 310] --> /admin ---> /admin/
Status: 403 [Size: 278] --> /server-status
Status: 200 [Size: 5430] --> /backup.zip
===============================================================
Finished
===============================================================
5.2 五大模式详解
gobuster 不止能扫目录,它支持五种工作模式,每种模式用不同的子命令调用:
| 模式 |
命令 |
用途 |
| dir |
gobuster dir |
目录/文件枚举(最常用) |
| dns |
gobuster dns |
子域名枚举(类似 subfinder) |
| vhost |
gobuster vhost |
虚拟主机发现(同一 IP 多域名) |
| fuzz |
gobuster fuzz |
模糊测试(FUZZ 关键字替换) |
| s3 |
gobuster s3 |
AWS S3 存储桶枚举 |
5.3 实用参数速查
参数速查 (dir 模式)
|
1
2
3
4
5
6
7
8
9
|
-u URL # 目标 URL
-w FILE # 字典文件路径
-x EXT # 文件扩展名(逗号分隔:php,txt,html)
-t NUM # 线程数(默认 10,建议 20-50)
-fc CODE # 过滤指定状态码(如 -fc 404)
-mc CODE # 仅匹配指定状态码(如 -mc 200,302,403)
-fs SIZE # 过滤指定响应大小(自定义404页)
-l # 显示响应体长度
-o FILE # 输出结果到文件
|
💡 小贴士
gobuster 的线程数不是越高越好。默认 10 线程是比较保守的设置,内网靶场可以加到 50-100 线程以加快速度,但公网目标建议控制在 20-30 线程以内——过高的并发一方面可能触发 WAF/IPS 封禁,另一方面会因为网络拥塞导致大量超时,反而降低有效速率。一个简单的调试方法:先以默认线程跑 30 秒,观察是否有超时错误,如果没有再逐步增加;一旦出现大量 timeout 就说明已经到了网络或目标服务器的瓶颈。
六、ffuf:灵活强大的 Web Fuzzer
ffuf(Fuzz Faster U Fool)是目前最流行的 Web 模糊测试工具,由 joohoi 用 Go 语言编写。最新版本 v2.2.0,它的核心设计理念是"FUZZ 关键字"——你可以在 URL、Header、POST 体的任意位置放置 FUZZ 占位符,ffuf 会用字典中的每个词替换它并发送请求。这种灵活性让 ffuf 不仅能做目录爆破,还能做参数模糊测试、虚拟主机发现、API 端点探测等几乎所有 HTTP 层的枚举任务。
6.1 基础目录爆破
ffuf 的目录爆破用法和 gobuster 类似,但语法更简洁。注意 URL 中必须包含 FUZZ 关键字,它会被字典中的词替换:
Shell
|
1
2
3
4
5
6
7
8
|
# 基础目录爆破(FUZZ 放在路径位置)
ffuf -u http://192.168.1.100/FUZZ -w /usr/share/dirb/wordlists/common.txt
# 带扩展名爆破(.php .txt .html)
ffuf -u http://192.168.1.100/FUZZ.php -w common.txt
# 过滤 404 状态码 + 40线程
ffuf -u http://192.168.1.100/FUZZ -w common.txt -fc 404 -t 40
# 按响应大小过滤(用于自定义404页)
ffuf -u http://192.168.1.100/FUZZ -w common.txt -fs 4837
|
6.2 强大的过滤与匹配系统
ffuf 的过滤和匹配系统是它最大的优势之一。你可以基于状态码、响应大小、行数、单词数甚至正则表达式来筛选结果。这在处理自定义 404 页面、WAF 拦截等场景时特别有用:
过滤/匹配参数
|
1
2
3
4
5
6
7
8
9
10
|
-mc CODE # 匹配状态码(默认 200,204,301,302,307,401,403)
-fc CODE # 过滤状态码
-ms SIZE # 匹配响应大小(可范围:-ms 100-500)
-fs SIZE # 过滤响应大小
-ml NUM # 匹配响应行数
-fl NUM # 过滤响应行数
-mw NUM # 匹配响应单词数
-fw NUM # 过滤响应单词数
-mr REGEX # 匹配响应内容的正则
-fr REGEX # 过滤响应内容的正则
|
6.3 进阶:多位置 Fuzzing
ffuf 支持在请求的多个位置同时放置 FUZZ 占位符,这是 gobuster 不具备的能力。结合不同的攻击模式(clusterbomb / pitchfork / sniper),可以实现复杂的多参数组合测试:
进阶用法
|
1
2
3
4
5
6
7
8
|
# 虚拟主机发现(FUZZ在Host头中)
ffuf -u http://192.168.1.100 -w subdomains.txt -H "Host: FUZZ.example.com"
# POST 参数模糊测试
ffuf -u http://192.168.1.100/login.php -w usernames.txt \\
-X POST -d "username=FUZZ&password=test"
# 递归目录扫描(发现目录后自动深入)
ffuf -u http://192.168.1.100/FUZZ -w common.txt -recursion -recursion-depth 3
# 输出为 HTML 报告(方便查看)
ffuf -u http://192.168.1.100/FUZZ -w common.txt -o result.html -of html
|
💡 小贴士
ffuf 的 -recursion 参数配合 -recursion-depth 可以实现自动递归目录扫描——发现一个子目录后自动进去再扫一层。但有个容易忽略的细节:递归扫描会继承父命令的过滤条件,如果你的 -fc 404 过滤太宽松或太严格,递归进去后可能全是误报或全被过滤掉。推荐做法是先用非递归模式扫顶层目录,验证过滤参数合适后,再对感兴趣的目录单独加 -recursion 深入扫描。
七、实战演练:从指纹识别到目录爆破
前面分别学习了指纹识别和目录爆破的工具用法,现在把它们串成一条完整的侦察流水线。实战中,正确的顺序是:先指纹识别,后目录爆破——因为指纹识别的结果决定了用什么字典、扫什么路径。一上来就用通用大字典乱扫,既浪费时间又容易触发告警。
7.1 侦察工作流
Step 1: 初步指纹识别
WhatWeb -a 3 + Wappalyzer → 确定 CMS、框架、服务器
↓
Step 2: 选择专用字典
根据技术栈选择 seclists 中的 CMS/框架专用字典
↓
Step 3: 快速目录爆破
ffuf / gobuster 小字典快速扫顶层,确定基准404
↓
Step 4: 深入递归扫描
对发现的目录用大字典 + 递归 + 文件扩展名深入
↓
Step 5: 结果整理与攻击面映射
分类整理发现的路径 → 匹配已知漏洞 → 进入下一阶段
7.2 自动化侦察脚本
下面这个脚本将上述流程自动化:先跑 WhatWeb 识别技术栈,根据结果选择对应的字典,然后用 ffuf 进行分层目录爆破。读者可以在此基础上扩展更多技术栈的字典匹配逻辑。
web_recon.sh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/bin/bash
# Web 侦察自动化脚本:指纹识别 → 目录爆破
# 用法:bash web_recon.sh http://target.com
if [ $# -lt 1 ]; then
echo "用法: $0 "
exit 1
fi
TARGET=$1
OUTDIR="web_recon_$(date +%Y%m%d_%H%M%S)"
mkdir -p $OUTDIR && cd $OUTDIR
echo "[*]=== Step 1: WhatWeb 指纹识别 ==="
whatweb -a 3 -v $TARGET > whatweb_result.txt 2>&1
echo "[+]指纹识别完成,结果保存在 whatweb_result.txt"
echo "[*]=== Step 2: 快速目录扫描 (小字典) ==="
ffuf -u $TARGET/FUZZ -w /usr/share/dirb/wordlists/common.txt \\
-fc 404 -t 30 -o ffuf_quick.html -of html > /dev/null
echo "[+]快速扫描完成"
echo "[*]=== Step 3: 检测技术栈并选择字典 ==="
TECH=$(grep -oiE 'WordPress|Drupal|Joomla|Spring|Laravel|Django|Flask' whatweb_result.txt | head -1)
echo "[*]检测到技术栈: ${TECH:-未识别,使用通用字典}"
echo "[*]=== Step 4: 大字典深度扫描 ==="
case $TECH in
WordPress)
WORDLIST="/usr/share/seclists/Discovery/Web-Content/CMS/wp-plugins.fuzz.txt"
;;
*)
WORDLIST="/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt"
;;
esac
if [ -f $WORDLIST ]; then
ffuf -u $TARGET/FUZZ -w $WORDLIST -fc 404 -t 40 -o ffuf_deep.html -of html > /dev/null
echo "[+]深度扫描完成,使用字典: $WORDLIST"
else
echo "[!]字典不存在: $WORDLIST,请安装 seclists"
fi
echo "[+]侦察完成,结果目录: $(pwd)"
|
分级练习
🟢 基础验证
任务:在 Kali 中使用 WhatWeb 对一个本地靶场(如 DVWA)进行 aggressive 级别指纹识别,记录识别出的所有技术,然后用 Wappalyzer 浏览器扩展访问同一目标,对比两者的识别结果差异。
参考命令:whatweb -a 3 -v http://靶机IP
🟡 组合应用
任务:搭建一个本地测试环境(Nginx + WordPress),先用 WhatWeb 确认技术栈,然后用 ffuf 分别做以下三件事:(1) 用 small 字典快速扫顶层目录;(2) 找到自定义 404 页面的响应大小并用 -fs 过滤;(3) 对 /wp-content/plugins/ 路径用 WordPress 插件字典递归扫描。
提示:基准 404 测试路径可以用 /thispagedoesnotexist_abc123 这种极不可能存在的路径。
🔴 开放挑战
任务:编写一个 Python 脚本,实现以下功能:接收一个目标 URL 和多个字典文件路径作为输入,按"先小字典后大字典"的顺序依次执行目录爆破;每次扫描后自动检测基准 404 的响应大小并过滤;最终将所有发现的路径去重后输出到报告文件。要求支持暂停和恢复(将已扫描的词记录到进度文件)。
延伸方向:可以尝试集成 WhatWeb 的指纹识别结果来自动选择字典,或者添加多目标批量扫描功能。
📝 知识回顾
WhatWeb v0.6.4
Wappalyzer 6.12
六维指纹检测
favicon 哈希
gobuster 3.8.2
dir/dns/vhost/fuzz/s3
ffuf v2.2.0
FUZZ 关键字
-fs/-fc/-fw/-fl
自定义 404 过滤
递归目录扫描
seclists 字典
先指纹后爆破
ATT&CK T1595.002
下一篇预告
22 漏洞扫描与 Web 安全基础
本篇覆盖了指纹识别和目录爆破两大侦察利器。下一篇进入信息收集的最后环节——漏洞扫描和 Web 安全基础。我们将学习 Nikto Web 扫描器、Nessus 漏洞扫描的基础使用,以及 OWASP Top 10 的核心概念,完成从"发现目标"到"发现漏洞"的关键一跳,为后续的 Web 渗透测试模块打下基础。
网络安全 Kali 学习系列 · 第 21 篇
本系列持续更新,关注公众号获取最新文章