如何使用Fingerprintx在开放端口上扫描运行的服务
2023-4-14 19:3:49 Author: FreeBuf(查看原文) 阅读量:15 收藏

 关于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 [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# 需要Go 1.18+环境
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h

(向右滑动、查看更多

Docker安装

$ 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 -hUsage:
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:
--csvCSV格式输出
-f, --fast 快速模式
-h, --help 查看工具帮助信息
--jsonJSON格式输出
-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

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651222277&idx=4&sn=3f0785d5b574e76eb27ada51ba5c58aa&chksm=bd1de38e8a6a6a988e8403adfc476e1f7b49742f0e6fdcd516bbd014c5684209a12ef9988891#rd
如有侵权请联系:admin#unsafe.sh