项目地址: 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 语言环境,然后克隆本仓库并编译:
git clone https://github.com/HackAllSec/hfinger.git cd hfinger go build
Windows下可直接运行
build_windows.bat
编译。
命令行参数
█████ ██████ ███
▒▒███ ███▒▒███ ▒▒▒
▒███████ ▒███ ▒▒▒ ████ ████████ ███████ ██████ ████████
▒███▒▒███ ███████ ▒▒███ ▒▒███▒▒███ ███▒▒███ ███▒▒███▒▒███▒▒███
▒███ ▒███ ▒▒▒███▒ ▒███ ▒███ ▒███ ▒███ ▒███▒███████ ▒███ ▒▒▒
▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███▒███▒▒▒ ▒███
████ █████ █████ █████ ████ █████▒▒███████▒▒██████ █████
▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒███ ▒▒▒▒▒▒ ▒▒▒▒▒
███ ▒███
▒▒██████
▒▒▒▒▒▒ 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 识别:
hfinger -u https://www.hackall.cn
从文件中读取目标并识别:
hfinger -f targets.txt
指定代理:
hfinger -u https://www.hackall.cn -p http://127.0.0.1:8080
输出 JSON 格式识别结果到文件:
hfinger -u https://www.hackall.cn -j output.json
输出 XML 格式识别结果到文件:
hfinger -u https://www.hackall.cn -x output.xml
输出 XLSX 格式识别结果到文件:
hfinger -u https://www.hackall.cn -s output.xlsx
被动模式
用法和Xray
类似,包括启动监听、添加上游代理,工具联动等等。被动模式可以识别主动模式无法识别的指纹,且比主动扫描更加全面。
启动监听即可:
hfinger -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
的监听地址即可。
hfinger -l 127.0.0.1:8888 -p http://127.0.0.1:7777 -s res.xlsx
输出示例
- 实时输出到终端
JSON 输出格式:
[ { "url": "https://example.com", "cms": "若依", "server": "cloudflare", "statuscode": 200, "title": "登录" }, { "url": "https://example.com", "cms": "Shiro", "server": "cloudflare", "statuscode": 200, "title": "登录" } ]
XML 输出格式:
<results> <result> <URL>https://blog.hackall.cn</URL> <CMS>Typecho</CMS> <Server>cloudflare</Server> <StatusCode>404</StatusCode> <Title>Hack All Sec的博客 - Hack All Sec's Blog</Title> </result> </results>
XLSX输出格式:
URL CMS Server StatusCode Title https://blog.hackall.cn Typecho cloudflare 200 Hack All Sec的博客 - Hack All Sec's Blog
Comments | NOTHING