Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/praetorian-inc/fingerprintx
偵察ネットワークマッピングポートスキャン情報収集ユーティリティとフレームワークArchived
GitHubpraetorian-inc/fingerprintx

fingerprintx

オープンポートのサービス検出のためのスタンドアロンユーティリティ!

リポジトリを見る
758787ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

fingerprintx

機能 • インストール • 使い方 • fingerprintxの実行 • ライブラリとしての使用 • なぜnmapではないのか? • 注意事項 • 謝辞

fingerprintxは、httpxと似たユーティリティで、RDP、SSH、MySQL、PostgreSQL、Kafkaなどのサービスのフィンガープリンティングもサポートします。fingerprintxは、Naabuなどのポートスキャナーと一緒に使用して、ポートスキャンで特定されたポートのセットをフィンガープリントできます。例えば、エンジニアがIP範囲をスキャンし、見つかったすべてのポートで実行されているサービスを迅速にフィンガープリントしたい場合があります。

機能

  • 公開されたサービスの高速フィンガープリンティング
  • アプリケーション層のサービス検出
  • 他のコマンドラインツールとの連携が良好
  • 特定されたサービスからの自動メタデータ収集

https://user-images.githubusercontent.com/69640071/193334167-8405dd50-f9bf-4386-b7b8-83255af41a8b.mov

Fingerprintx の使用例

Fingerprintx チェーン例

Fingerprintx SMB の例

サポートされているプロトコル:

51 のサービス検出プラグインが、TCP および UDP プロトコルをサポートしています:

特筆すべき機能:

  • ベクトルデータベース: ChromaDB, Milvus, Pinecone
  • リレーショナルデータベース: PostgreSQL, MySQL, MSSQL, OracleDB, DB2, Sybase, Firebird
  • NoSQLデータベース: MongoDB, CouchDB, Cassandra, Redis, Elasticsearch, InfluxDB, Neo4j
  • 開発者ツール: JDWP (Java Debug Wire Protocol), Java RMI
  • 産業用プロトコル: Modbus, IPMI
  • メッセージング: Kafka, MQTT, SMTP
  • リモートアクセス: SSH, RDP, Telnet, VNC
  • ファイル転送: FTP, SMB, Rsync
  • 通信/AAA: Diameter (3GPPネットワーク、LTE/5G), SMPP (SMSゲートウェイ)

インストール

Githubから

root@kitploit:~
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest

ソースから (go バージョン > 1.18)

root@kitploit:~
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# with go version > 1.18
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h

Docker

root@kitploit:~
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# build
docker build -t fingerprintx .

# and run it
docker run --rm fingerprintx -h
docker run --rm fingerprintx -t praetorian.com:80 --json

使い方

root@kitploit:~
fingerprintx -h

-h オプションは、fingerprintx でサポートされているすべてのフラグを表示します。

root@kitploit:~
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               output format in csv
  -f, --fast              fast mode
  -h, --help              help for fingerprintx
      --json              output format in json
  -l, --list string       input file containing targets
  -o, --output string     output file
  -t, --targets strings   target or comma separated target list
  -w, --timeout int       timeout (milliseconds) (default 500)
  -U, --udp               run UDP plugins
  -v, --verbose           verbose mode

fast モードは、各ターゲットのそのポートに関連付けられたデフォルトサービスに対してのみフィンガープリンティングを試みます。例えば、入力が praetorian.com:8443 の場合、https プラグインのみが実行されます。もし https が praetorian.com:8443 で実行されていない場合、出力はありません。なぜこれを行うのか? 多数のホストリスト(80/20ルール)でほとんどのサービスを迅速にフィンガープリントする方法です。

Fingerprintx の実行

1つのターゲット:

root@kitploit:~
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000

デフォルトでは、出力は SERVICE://HOST:PORT の形式です。より詳細なサービス出力を得るには、--json フラグを指定します:

root@kitploit:~
$ 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など):

root@kitploit:~
$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21

入力ファイルで実行:

root@kitploit:~
$ 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

より多くのメタデータを出力:

root@kitploit:~
$ 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"}}

ライブラリとしての使用

fingerprintx は、オープンポート上のサービスをスキャンするためにプロジェクトにインポートできます。その方法の例が、examples ディレクトリ に提供されています。ビルドは go build scan.go で行います。fingerprintx を自分のプロジェクトにインポートする際の参考になる別のファイルは、コマンドラインランナー です。

なぜNmapではないのか?

Nmap はネットワークスキャンの標準です。なぜ fingerprintx を nmap の代わりに使うのか? 主な理由は次の2つです:

  • fingerprintx はよりスマートに動作し、より少ない労力で済みます: ポート8080が開いているサーバーに対して最初に実行されるプラグインはhttpプラグインです。デフォルトサービスアプローチは、最良のシナリオでスキャン時間を短縮します。ほとんどの場合、ポート80、443、22で動作しているサービスはhttp、https、ssh です。そのため、fingerprintx はそれらを最初にチェックします。
  • fingerprintx は --json フラグでjson出力をサポートしています。Nmap は多数の出力オプション(通常、xml、grep)をサポートしていますが、それらは解析や適切なスクリプト作成が難しいことがよくあります。fingerprintx はjson出力をサポートしており、処理パイプライン内の他のツールとの統合を容易にします。

注意事項

  • なぜ third_party フォルダがあり、Go の暗号ライブラリをインポートしているのですか?
    • 良い質問です!ssh フィンガープリンティングモジュールは、ハンドシェイクプロセス中にメタデータを収集する際に、サーバーがサポートするさまざまな暗号オプションを識別します。これにはいくつかのエクスポートされていない関数が使用されるため、Go 暗号ライブラリがここに export.goファイル と共に含まれています。
  • Fingerprintx はターゲットシステム上のオープンポートを識別するようには設計されておらず、すべての target:port 入力が開いていることを前提としています。どのポートも開いていない場合、ターゲット上でサービスが実行されていないため、出力はありません。
  • これは zgrab2 とどう比較されますか?
    • zgrab2 のコマンドラインの使用方法(およびユースケース)は fingerprintx とは少し異なります。zgrab2 の場合、プロトコルを事前に指定する必要があります: echo praetorian.com | zgrab2 http -p 8000 のように、すでにそこで何が実行されているかを知っていることが前提です。fingerprintx の場合はその必要はありません: echo praetorian.com:8000 | fingerprintx。アプリケーション層プロトコルスキャンのアプローチは非常に似ています。

謝辞

fingerprintx は多くの人々の成果であり、特に2022年の素晴らしいインターンクラスが貢献しています。これまでの貢献者リストは以下の通りです:

  • [Soham Roy]praetorian-sohamroy
  • [Jue Huang] (https://github.com/jue-huang)
  • [Henry Jung] (https://github.com/henryjung64)
  • [Tristan Wiesepape][qwetboy10] (https://github.com/qwetboy10)
  • [Joseph Henry][jwhenry28] (https://github.com/jwhenry28)
  • [Noah Tutt][noahtutt] (https://github.com/noahtutt)
  • [Nathan Sportsman][nsportsman] (https://github.com/nsportsman)
ツールをダウンロード
サービストランスポート
CassandraTCP
ChromaDBTCP
CouchDBTCP
DB2TCP
DHCPUDP
DiameterTCP
DNSTCP/UDP
EchoTCP
ElasticsearchTCP
FirebirdTCP
FTPTCP
HTTP/HTTPSTCP
IMAPTCP
InfluxDBTCP
IPMITCP
IPSECUDP
Java RMITCP
JDWPTCP
KafkaTCP
LDAPTCP
Linux RPCTCP
MemcachedTCP
MilvusTCP
ModbusTCP
MongoDBTCP
MQTTTCP
MSSQLTCP
MySQLTCP
Neo4jTCP
NetBIOS-NSUDP
NTPUDP
OpenVPNUDP
OracleDBTCP
PineconeTCP
POP3TCP
PostgreSQLTCP
RDPTCP
RedisTCP
RsyncTCP
RTSPTCP
SMBTCP
SMPPTCP
SMTPTCP
SNMPUDP
SNPPTCP
SSHTCP
STUNUDP
SybaseTCP
TelnetTCP
VNCTCP