免责声明
本公众号仅用于技术交流与学习,利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号只是知识的搬运工,取之于民用之于民。
如果大家不想错过文章推送的话,可以将公众号设为星标☆
项目地址: https://github.com/HackAllSec/hfinger
hfinger 是一个 高性能 、 准确 的命令行指纹识别工具,用于红队打点时快速准确识别指定目标的 Web 框架和 CMS 等信息。由于 EHole 很久没更新了,且存在一些缺点(误报、漏报、匹配不太灵活等),此工具根据 finger.json
文件中定义的指纹进行匹配,优化原有文件结构,增加匹配逻辑,增加错误页识别和被动识别模式。
高性能、精准的识别目标
支持同一目标匹配多个框架指纹识别
支持 主动模式 和 被动模式
支持根据错误页识别
根据响应 Header
、 body
和 title
与 finger.json
中定义的指纹进行匹配
finger.json
支持自定义匹配逻辑
支持随机UA头
支持多线程,线程数可通过 -t
参数调整
支持代理,通过 -p
参数指定代理
实时输出匹配结果,匹配到则使用绿色输出,未匹配到则使用白色输出
支持 JSON、XML 和 XLSX 格式的输出
收录的产品、Web框架和CMS总数(根据不同cms的值统计,名称相同的指纹只记1次): 1177
指纹总数量(数量小的原因是已将指纹进行优化和合并,对同一资产的指纹进行合并): 1412
兵在精而不在多,指纹数量也一样,看数量意义不大,关键看可以识别的产品、Web框架和CMS数量。
直接访问 https://github.com/HackAllSec/hfinger/releases
,选择并下载适合自己电脑的最新Releases版本解压即可
确保你已经安装了 Go 语言环境,然后克隆本仓库并编译:
1undefined
git clone https://github.com/HackAllSec/hfinger.git
cd hfinger
go build
1. Windows下可直接运行 `build_windows.bat` 编译。
### 命令行参数
```python
█████ ██████ ███
▒▒███ ███▒▒███ ▒▒▒
▒███████ ▒███ ▒▒▒ ████ ████████ ███████ ██████ ████████
▒███▒▒███ ███████ ▒▒███ ▒▒███▒▒███ ███▒▒███ ███▒▒███▒▒███▒▒███
▒███ ▒███ ▒▒▒███▒ ▒███ ▒███ ▒███ ▒███ ▒███▒███████ ▒███ ▒▒▒
▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███▒███▒▒▒ ▒███
████ █████ █████ █████ ████ █████▒▒███████▒▒██████ █████
▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒███ ▒▒▒▒▒▒ ▒▒▒▒▒
███ ▒███
▒▒██████
▒▒▒▒▒▒ By:Hack All Sec
A high-performance command-line tool for web framework and CMS fingerprinting
Usage:
hfinger [flags]
Flags:
-f, --file string Read assets from local files for fingerprint recognition, with one target per line
-h, --help help for hfinger
-l, --listen string Using a proxy resource collector to retrieve targets, example: 127.0.0.1:6789
-j, --output-json string Output all results to a JSON file
-s, --output-xlsx string Output all results to a Excel file
-x, --output-xml string Output all results to a XML file
-p, --proxy string Specify the proxy for accessing the target, supporting HTTP and SOCKS, example: http://127.0.0.1:8080
-t, --thread int Number of fingerprint recognition threads (default 100)
--update Update fingerprint database
--upgrade Upgrade to the latest version
-u, --url string Specify the recognized target,example: https://www.example.com
-v, --version Display the current version of the tool
单个 URL 识别:
1hfinger -u https://www.hackall.cn
从文件中读取目标并识别:
1hfinger -f targets.txt
指定代理:
1hfinger -u https://www.hackall.cn -p http://127.0.0.1:8080
输出 JSON 格式识别结果到文件:
1hfinger -u https://www.hackall.cn -j output.json
输出 XML 格式识别结果到文件:
1hfinger -u https://www.hackall.cn -x output.xml
输出 XLSX 格式识别结果到文件:
1hfinger -u https://www.hackall.cn -s output.xlsx
用法和 Xray
类似,包括启动监听、添加上游代理,工具联动等等。被动模式可以识别主动模式无法识别的指纹,且比主动扫描更加全面。
启动监听即可:
1hfinger -l 127.0.0.1:8888 -s res.xlsx
要支持HTTPS网站需要将 certs
目录下的证书导入浏览器。
联动其它工具
联动 Xray
或其它工具有两种方式:
方式一: Target -> Xray/Burp -> hfinger
在上边的基础上浏览器设置代理经过 Xray
或 Burp
,然后在 Xray
或 Burp
配置上游代理为 hfinger
的监听地址即可。
方式二: Target -> hfinger -> Xray
启动 hfinger
被动模式,使用 -p
参数设置上游代理,浏览器设置代理为 hfinger
的监听地址即可。
1hfinger -l 127.0.0.1:8888 -p http://127.0.0.1:7777 -s res.xlsx
实时输出到终端
JSON 输出格式:
1[
2 {
3 "url": "https://example.com",
4 "cms": "若依",
5 "server": "cloudflare",
6 "statuscode": 200,
7 "title": "登录"
8 },
9 {
10 "url": "https://example.com",
11 "cms": "Shiro",
12 "server": "cloudflare",
13 "statuscode": 200,
14 "title": "登录"
15 }
16]
1<results> 2 <result> 3 <URL>https://blog.hackall.cn</URL> 4 <CMS>Typecho</CMS> 5 <Server>cloudflare</Server> 6 <StatusCode>404</StatusCode> 7 <Title>Hack All Sec的博客 - Hack All Sec's Blog</Title> 8 </result> 9</results>
URL | CMS | Server | StatusCode | Title |
---|---|---|---|---|
https://blog.hackall.cn | Typecho | cloudflare | 200 | Hack All Sec的博客 - Hack All Sec's Blog |