前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Fingerprintx在开放端口上扫描运行的服务

如何使用Fingerprintx在开放端口上扫描运行的服务

作者头像
FB客服
发布2023-04-18 15:42:53
1.1K0
发布2023-04-18 15:42:53
举报
文章被收录于专栏:FreeBuf

 关于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安装

代码语言:javascript
复制
代码语言:javascript
复制
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest
代码语言:javascript
复制

(向右滑动、查看更多)

源码安装(Go 1.18+)

代码语言:javascript
复制
$ git clone git@github.com:praetorian-inc/fingerprintx.git
$ cd fingerprintx
 
# 需要Go 1.18+环境
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h

(向右滑动、查看更多)

Docker安装

代码语言:javascript
复制
$ 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

(向右滑动、查看更多)

 工具使用 

下列命令将显示工具的完整帮助信息和支持的参数选项:

代码语言:javascript
复制
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:
      --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模式
代码语言:javascript
复制

(向右滑动、查看更多)

 工具运行 

针对单个目标:

代码语言:javascript
复制
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000

默认情况下,输出格式为SERVICE://HOST:PORT。如需查看详细信息并指定JSON格式输出,可以使用--json选项:

代码语言:javascript
复制
$ 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"}}
代码语言:javascript
复制

(向右滑动、查看更多)

该工具还支持从类似Naabu之类的工具传入数据:

代码语言:javascript
复制
$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21
代码语言:javascript
复制

使用一个文件作为输入参数执行任务:

代码语言:javascript
复制
$ 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

获取更多的元数据输出:

代码语言:javascript
复制
$ 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

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于Fingerprintx 
  •  功能介绍 
  •  支持的协议 
  •  工具安装 
    • GitHub安装
      • (向右滑动、查看更多)
        • 源码安装(Go 1.18+)
          • (向右滑动、查看更多)
            • Docker安装
            • (向右滑动、查看更多)
            •  工具使用 
            • (向右滑动、查看更多)
            •  工具运行 
            •  工具运行截图 
            •  工具使用演示 
            •  许可证协议 
            •  项目地址 
            • 参考资料:
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档