常见端口指纹识别工具fingerprintx

admin 2026-03-03 09:38:39 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章介绍了开源端口指纹识别工具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》

评论:0   参与:  0