mcpField
R
recon-fingerprint

recon-fingerprint

github.com/crazymarkyセキュリティ34977 回インストール21 週間前に更新
リポジトリ

recon-fingerprint について

recon-fingerprintは、Web技術、WAF、CDN、サーバー情報を特定するセキュリティテスト用スキルです。whatweb、nuclei、httpx、curlなどを使った許可済みの評価手順を示し、指紋情報をデータベースに保存できます。

主な機能

  1. 01Web技術の特定
  2. 02WAFとCDNの検出
  3. 03HTTPヘッダーの分析
  4. 04サーバーとTLSの調査
  5. 05指紋情報の永続保存

活用シーン

  1. 01サイトの技術スタックの棚卸し
  2. 02WAFとCDNの保護状況の確認
  3. 03サーバーヘッダーとTLSの確認
  4. 04調査結果の保存と後続分析

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/crazymarky/pentest-skills --skill recon-fingerprint

インストール後、Claude Code で/recon-fingerprintを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
cms-fingerprints.txt
tech-headers.txt
waf-signatures.txt
references/
fingerprinting_techniques.md
httpx_guide.md
wafw00f_guide.md
whatweb_guide.md
scripts/
extract_headers.py
fingerprint_storage.py
tech_matcher.py
waf_detector.py

詳細

Web フィンガープリンティングと WAF 検出

認可に関する警告

重要: Web フィンガープリンティングでは、対象サーバーにリクエストを送信します。必ず以下を確認してください。

  • 対象アプリケーションの所有者から書面による許可を得ていること
  • 許可されたテストの範囲を定めていること
  • 現地の規制を遵守していること

前提条件

システムにインストールする必要があるツール:

  • httpx - go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
  • nuclei - go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest

任意のツール:

  • wafw00f - pip install wafw00f
  • whatweb - パッケージマネージャーからインストール
  • fingerprintx - go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest

クイックスタート

Web フィンガープリンティングで最もよく使われるコマンド:

基本的なテクノロジー検出
whatweb https://target.com
WAF 検出
wafw00f https://target.com
HTTP ヘッダー分析
curl -I https://target.com
包括的なフィンガープリンティング(Nuclei)
nuclei -u https://target.com -tags tech

よくあるシナリオ

シナリオ 1:テクノロジーの簡易フィンガープリンティング

テクノロジースタックをすばやく特定する場合:

whatweb https://target.com --aggression 1

パラメーター:

  • --aggression 1 - クイックスキャン(1~4、デフォルトは1)
  • -a 3 - よりアグレッシブなスキャン(リクエスト数が増加)
  • -v - 詳細な出力

例:

whatweb https://target.com -a 3

シナリオ 2:WAF 検出

WAF/CDN による保護を検出する場合:

wafw00f https://target.com

出力に表示される情報:

  • WAF ベンダー(Cloudflare、AWS WAF、Imperva など)
  • 使用中の CDN
  • 検出されたファイアウォールルール

複数の対象を確認する場合:

wafw00f -i targets.txt

シナリオ 3:サーバーヘッダー分析

HTTP ヘッダーを分析する場合:

curl -I https://target.com

ヘッダーの詳細:

curl -v https://target.com 2>&1 | grep -i "< "

確認する一般的なヘッダー:

Server: nginx/1.18.0
X-Powered-By: PHP/7.4
X-AspNet-Version: 4.0.30319
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

シナリオ 4:Nuclei によるテクノロジー検出

包括的なテクノロジーフィンガープリンティングを行う場合:

nuclei -u https://target.com -tags tech -severity info

特定のテクノロジー:

nuclei -u https://target.com -tags "wordpress,joomla,drupal"
nuclei -u https://target.com -tags "spring-boot,struts2"
nuclei -u https://target.com -tags "react,vue,angular"

シナリオ 5:HTTPx フィンガープリンティング

テクノロジー検出を含む HTTP プロービングをすばやく行う場合:

httpx -u https://target.com -tech-detect -status-code -title

パラメーター:

  • -tech-detect - テクノロジー検出を有効にする
  • -status-code - HTTP ステータスを表示する
  • -title - ページタイトルを抽出する
  • -server - サーバーヘッダーを表示する
  • -websocket - WebSocket を検出する
  • -cdn - CDN を検出する

例:

httpx -u https://target.com -tech-detect -server -cdn -ssl

シナリオ 6:CMS 検出

CMS を特定する場合:

whatweb https://target.com --aggression 3 | grep -i cms

Nuclei による CMS 検出:

nuclei -u https://target.com -tags cms

一般的な CMS の判別指標:

  • WordPress:/wp-login.php、/wp-admin/、wp-json
  • Drupal:/user/login、Drupal.settings
  • Joomla:/administrator/components、Joomla!
  • TYPO3:/typo3conf

シナリオ 7:JavaScript フレームワーク検出

フロントエンドフレームワークを特定する場合:

curl -s https://target.com | grep -i "react\|vue\|angular\|jquery"

特定のフレームワークファイルを確認する場合:

# React
curl -s https://target.com | grep -i "react"

# Vue.js
curl -s https://target.com | grep -i "vue\.js\|vue-"

# Angular
curl -s https://target.com | grep -i "angular\|ng-app"

# jQuery
curl -s https://target.com | grep -i "jquery"

シナリオ 8:サーバーバージョン検出

サーバーソフトウェアとバージョンを特定する場合:

nmap -sV -p 443,80 target.com

HTTP サーバーバナー:

curl -I https://target.com | grep -i server

サーバー検出に httpx を使用する場合:

httpx -u https://target.com -server -response-time

シナリオ 9:CDN 検出

CDN プロバイダーを特定する場合:

httpx -u https://target.com -cdn

CDN の HTTP ヘッダーを確認する場合:

curl -I https://target.com | grep -i "cf-ray\|x-amz\|x-akamai\|x-fastly"

一般的な CDN ヘッダー:

  • Cloudflare:cf-ray、cf-cache-status
  • AWS CloudFront:x-amz-cf-id
  • Akamai:x-akamai-transformed
  • Fastly:x-served-by、fastly-ssl
  • CloudFront:via、x-amz-cf-pop

シナリオ 10:SSL/TLS フィンガープリンティング

SSL 設定を分析する場合:

nmap --script ssl-cert,ssl-enum-ciphers -p 443 target.com

curl を使った SSL 情報の確認:

curl -vI https://target.com 2>&1 | grep -i ssl

testssl.sh を使用する場合:

testssl.sh https://target.com

ツール選択ガイド

シナリオ推奨ツールコマンド
テクノロジーを素早く検出whatwebwhatweb https://target.com
WAF の検出wafw00fwafw00f https://target.com
ヘッダーの分析curlcurl -I https://target.com
包括的な検出nucleinuclei -u https://target.com -tags tech
高速なプロービングhttpxhttpx -u https://target.com -tech-detect
CMS の検出nucleinuclei -u https://target.com -tags cms
CDN の検出httpxhttpx -u https://target.com -cdn

ツールの比較:

ツール速度対応範囲最適な用途
whatweb高速良好テクノロジースタックの迅速な確認
wafw00f高速WAF のみWAF の検出
nuclei中程度非常に広い包括的な検出
httpx非常に高速基本的高速なプロービング
nmap低速詳細SSL/サーバーの詳細情報

テクノロジーのフィンガープリント

Web サーバー
サーバーヘッダーのパターン一般的なバージョン
nginxServer: nginx1.18.x, 1.20.x, 1.22.x
ApacheServer: Apache2.4.x, 2.2.x
IISServer: Microsoft-IIS7.5, 8.0, 8.5, 10.0
Cloudflare ServerServer: cloudflare-
バックエンドフレームワーク
フレームワーク判定指標
PHPX-Powered-By: PHP、.php URL
PythonServer: WSGIServer、Python ヘッダー
RubyX-Powered-By: Phusion Passenger
Node.jsX-Powered-By: Express
JavaX-Powered-By: JSP、.jspx、.do
.NETX-AspNet-Version、.aspx
GoServer: Go-http-server
フロントエンドフレームワーク
フレームワークファイル/パターン
Reactreact.js、react-dom、_react、__REACT__
Vue.jsvue.js、vue-router、v-if、v-for
Angularng-app、angular.js、zone.js
jQueryjquery.js、$(、.ajax()
WAF のシグネチャ
WAF検出方法
Cloudflarecf-ray、cf-cache-status ヘッダー
AWS WAFx-amz-cf-id ヘッダー
ImpervaX-Iinfo、X-CDN ヘッダー
Akamaiakamai-origin ヘッダー
F5 ASMBIGipServer Cookie
ModSecurityMod_Security ヘッダー
Barracudabarra_counter_session Cookie

ヒントとベストプラクティス

  1. まずはパッシブに調査する - 最初にヘッダーとページコンテンツを使用します
  2. 複数の情報源を確認する - 精度を高めるため、ツールの出力を組み合わせます
  3. バージョンを検証する - テクノロジーの検出が常に正確とは限りません
  4. 回避措置に注意する - テクノロジースタックを隠しているサイトもあります
  5. まず WAF を確認する - アクティブスキャンの前に必ず WAF の有無を確認します
  6. CDN を考慮する - CDN によって実際のサーバー情報が隠される場合があります
  7. 結果を保存する - 相関分析のためにフィンガープリントを記録します

リソース

スクリプト
  • scripts/extract_headers.py - HTTP ヘッダーを抽出して分析します
  • scripts/tech_matcher.py - レスポンスからテクノロジーを照合します
  • scripts/waf_detector.py - ヘッダー/Cookie から WAF を検出します
参考資料
  • references/whatweb_guide.md - WhatWeb リファレンスガイド
  • references/wafw00f_guide.md - WAF 検出ガイド
  • references/httpx_guide.md - HTTPx リファレンス
  • references/fingerprinting_techniques.md - 高度なフィンガープリンティング手法

シナリオ:フィンガープリンティング結果の永続保存

Web フィンガープリンティングの結果をデータベースに永続保存する場合:

# Manual entry after fingerprinting
python .claude/skills/recon-fingerprint/scripts/fingerprint_storage.py \
  --host-ip 192.168.1.100 \
  --url "https://example.com" \
  --technology "Apache 2.4.41" \
  --category "web-server" \
  --version "2.4.41" \
  --subsystem "Web Application"

パラメーター:

  • --host-ip - 対象ホストの IP(必須)
  • --url - 対象 URL(必須)
  • --technology - 検出されたテクノロジー(必須)
  • --category - テクノロジーのカテゴリ:web-server、cms、framework など(任意)
  • --version - テクノロジーのバージョン(任意)
  • --confidence - 信頼度(任意)
  • --subsystem - サブシステム名(任意)

データベースの場所: ./data/results.db

関連スキル: results-storage - データのクエリ、レポートの生成


Assets
  • assets/waf-signatures.txt - Known WAF signatures
  • assets/tech-headers.txt - Technology header patterns
  • assets/cms-fingerprints.txt - CMS detection patterns

コメント