如何使用Fingerprintx在开放端口上扫描运行的服务
作者:admin | 时间:2023-4-22 23:13:38 | 分类:黑客工具 隐藏侧边栏展开侧边栏
关于Fingerprintx
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 |
|
|
工具安装
GitHub安装
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest
源码安装(Go 1.18+)
$ git clone git@github.com:praetorian-inc/fingerprintx.git $ cd fingerprintx # 需要Go 1.18+环境 $ go build ./cmd/fingerprintx $ ./fingerprintx -h
Docker安装
$ git clone git@github.com: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"}}
工具运行截图
工具使用演示
视频地址:【点我观看】
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Fingerprintx:【GitHub传送门】