文章总结: 文章介绍了开源端口指纹识别工具fingerprintx,它支持对RDP、SSH、MySQL等多种服务进行快速识别。该工具可与Naabu等扫描器联动,自动收集服务元数据并支持JSON格式输出。相比Nmap,其优势在于智能扫描策略提升了速度,且输出格式更易于与其他工具集成,是渗透测试资产探测的高效辅助工具。 综合评分: 75 文章分类: 安全工具,渗透测试
介绍
fingerprintx 是一个类似于 httpx 的工具,但它还支持对 RDP、SSH、MySQL、PostgreSQL、Kafka 等服务进行指纹识别。
fingerprintx 可以与 Naabu 等端口扫描器配合使用,对端口扫描期间识别的一组端口进行指纹识别。例如,工程师可能希望扫描一个 IP 范围,然后快速识别所有发现端口上运行的服务。
Naabu https://github.com/projectdiscovery/naabu
功能特性
- • 快速识别暴露的服务
- • 应用层服务发现
- • 与其他命令行工具良好配合
- • 自动从识别的服务中收集元数据
单个检测
突出功能
- • 向量数据库:ChromaDB、Milvus、Pinecone
- • 关系型数据库:PostgreSQL、MySQL、MSSQL、OracleDB、DB2、Sybase、Firebird
- • NoSQL 数据库:MongoDB、CouchDB、Cassandra、Redis、Elasticsearch、InfluxDB、Neo4j
- • 开发工具:JDWP(Java 调试线协议)、Java RMI
- • 工业协议:Modbus、IPMI
- • 消息传递:Kafka、MQTT、SMTP
- • 远程访问:SSH、RDP、Telnet、VNC
- • 文件传输:FTP、SMB、Rsync
- • 电信/AAA:Diameter(3GPP 网络、LTE/5G)、SMPP(短信网关)
使用方法
fingerprintx -h
-h 选项将显示 fingerprintx 的所有支持标志。
Usage:
fingerprintx [flags]
目标规范:
需要主机和端口号或 IP 和端口号。端口假定是开放的。
主机:端口 或 IP:端口
示例:
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 fingerprintx 的帮助信息
--json 以 json 格式输出
-l, --list string 包含目标的输入文件
-o, --output string 输出文件
-t, --targets strings 目标或逗号分隔的目标列表
-w, --timeout int 超时时间(毫秒)(默认 500)
-U, --udp 运行 UDP 插件
-v, --verbose 详细模式
fast 模式将仅尝试识别与每个目标端口关联的默认服务。例如,如果输入是 praetorian.com:8443,则只会运行 https 插件。如果 https 未在 praetorian.com:8443 上运行,则不会有任何输出。
运行 Fingerprintx
使用单个目标:
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000
默认情况下,输出格式为:服务://主机:端口。要获取更详细的服务输出,请使用 --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
# 或者如果您更喜欢
$ 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"}}
为什么不使用 Nmap?
Nmap 是网络扫描的标准工具。为什么要使用 fingerprintx 而不是 nmap?主要有两个原因:
- •
fingerprintx工作得更聪明,而不是更辛苦:针对端口 8080 开放的服务器运行的第一个插件是 http 插件。默认服务方法在最佳情况下减少了扫描时间。大多数情况下,端口 80、443、22 上运行的服务是 http、https 和 ssh——所以fingerprintx首先检查这些。 - •
fingerprintx支持使用--json标志的 json 输出。Nmap 支持多种输出选项(normal、xml、grep),但它们通常很难正确解析和编写脚本。fingerprintx支持 json 输出,这简化了与处理管道中其他工具的集成。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击的HACK 《常见端口指纹识别工具 fingerprintx》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。



![[舒适区/非舒适区]十字路口的徘徊01](/images/random/titlepic/4.jpg)



![[安康・静水]静师傅给您拜年啦!!!送马年皮肤](/images/random/titlepic/10.jpg)



评论