Fingerprintx是一款功能强大的端口服务扫描工具,它是一款类似于httpx的实用工具,并且还支持扫描类似RDP、SSH、MySQL、PostgreSQL和Kafka等指纹识别服务。Fingerprintx可以跟类似Naabu这样的端口扫描工具一起使用,并对端口扫描过程中识别的一组端口进行指纹识别。比如说,研究人员可能希望扫描一个IP地址范围,然后快速对在所有发现的端口上运行的服务进行指纹识别,那么Fingerprintx就可以派上用场了。
1、支持对暴露的服务执行快速指纹识别;
2、应用层服务发现;
3、可以与其他命令行工具结合使用;
4、支持从已识别的服务自动收集元数据;
服务 | 协议 端口 | 服务 | 协议 端口 |
HTTP | TCP | REDIS | TCP |
SSH | TCP | MQTT3 | TCP |
MODBUS | TCP | VNC | TCP |
TELNET | TCP | MQTT5 | TCP |
FTP | TCP | RSYNC | TCP |
SMB | TCP | RPC | TCP |
DNS | TCP | OracleDB | TCP |
SMTP | TCP | RTSP | TCP |
PostgreSQL | TCP | MQTT5 | TCP (TLS) |
RDP | TCP | HTTPS | TCP (TLS) |
POP3 | TCP | SMTPS | TCP (TLS) |
KAFKA | TCP | MQTT3 | TCP (TLS) |
MySQL | TCP | RDP | TCP (TLS) |
MSSQL | TCP | POP3S | TCP (TLS) |
LDAP | TCP | LDAPS | TCP (TLS) |
IMAP | TCP | IMAPS | TCP (TLS) |
SNMP | UDP | Kafka | TCP (TLS) |
OPENVPN | UDP | NETBIOS-NS | UDP |
IPSEC | UDP | DHCP | UDP |
STUN | UDP | NTP | UDP |
DNS | UDP |
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx
# 需要Go 1.18+环境
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx
# 构建代码
docker build -t fingerprintx .
# 容器运行
docker run --rm fingerprintx -h
docker run --rm fingerprintx -t praetorian.com:80 --json
下列命令将显示工具的完整帮助信息和支持的参数选项:
fingerprintx -h
Usage:
fingerprintx [flags]
TARGET SPECIFICATION:
Requires a host and port number or ip and port number. The port is assumed to be open.
HOST:PORT or IP:PORT
EXAMPLES:
fingerprintx -t praetorian.com:80
fingerprintx -l input-file.txt
fingerprintx --json -t praetorian.com:80,127.0.0.1:8000
Flags:
--csv 以CSV格式输出
-f, --fast 快速模式
-h, --help 查看工具帮助信息
--json 以JSON格式输出
-l, --list string 指定目标列表文件
-o, --output string 输出文件路径
-t, --targets strings 指定目标(逗号分隔)或目标文件列表
-w, --timeout int 超时(毫秒),默认500毫秒
-U, --udp 运行UDP插件
-v, --verbose 开启Verbose模式
针对单个目标:
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000
默认情况下,输出格式为SERVICE://HOST:PORT。如需查看详细信息并指定JSON格式输出,可以使用--json选项:
$ fingerprintx -t 127.0.0.1:8000 --json
{"ip":"127.0.0.1","port":8000,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Content-Length":["1154"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 19 Sep 2022 18:23:18 GMT"],"Server":["SimpleHTTP/0.6 Python/3.10.6"]},"status":"200 OK","statusCode":200,"version":"SimpleHTTP/0.6 Python/3.10.6"}}
(向右滑动、查看更多)
该工具还支持从类似Naabu之类的工具传入数据:
$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21
使用一个文件作为输入参数执行任务:
$ cat input.txt | fingerprintx
http://praetorian.com:80
telnet://telehack.com:23
# or if you prefer
$ fingerprintx -l input.txt
http://praetorian.com:80
telnet://telehack.com:23
获取更多的元数据输出:
$ cat input.txt | fingerprintx --json
{"host":"praetorian.com","ip":"146.148.61.165","port":80,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Connection":["keep-alive"],"Content-Type":["text/html"],"Date":["Mon, 19 Sep 2022 18:37:55 GMT"],"Etag":["W/\"5e3e263f-1703\""],"Keep-Alive":["timeout=20"],"Server":["nginx"],"Vary":["Accept-Encoding"]},"status":"404 Not Found","statusCode":404,"version":"nginx"}}
{"host":"telehack.com","ip":"64.13.139.230","port":23,"service":"telnet","transport":"tcp","metadata":{"serverData":"fffb03"}}
(向右滑动、查看更多)
视频地址:
https://user-images.githubusercontent.com/69640071/193334167-8405dd50-f9bf-4386-b7b8-83255af41a8b.mov
本项目的开发与发布遵循Apache-2.0开源许可证协议。
Fingerprintx:
https://github.com/praetorian-inc/fingerprintx
https://github.com/projectdiscovery/httpx
https://github.com/projectdiscovery/naabu