
nerva v1.42.12
高速サービスフィンガープリンティングCLI - 170+プロトコル (TCP/UDP/SCTP) 対応 - Praetorian 製
Nerva
Nerva: 高速サービスフィンガープリンティングCLI
機能 • インストール • クイックスタート • 使用方法 • プロトコル • ライブラリ • ユースケース • トラブルシューティング
Goで書かれた高性能サービスフィンガープリンティング。 TCP、UDP、SCTPトランスポートにわたる170以上のネットワークプロトコルを識別し、豊富なメタデータを抽出します。
Nervaは、開いているネットワークポートで実行されているサービスを迅速に検出・識別します。Naabuのようなポートスキャナと併用して検出されたサービスのフィンガープリントを取得したり、セキュリティパイプラインに統合して自動偵察を行ったりできます。
機能
- 170以上のプロトコルプラグイン — データベース、リモートアクセス、Webサービス、メッセージング、産業用、通信プロトコル
- 76のHTTPフィンガープリンタ — ファイアウォール、データベース、AI/LLMサーバーなど、Webテクノロジーを検出
- セキュリティ設定ミスの検出 — 認証されていないAPIや平文プロトコルなど、一般的なセキュリティ問題を特定 (
--misconfigs) - マルチトランスポート対応 — TCP (デフォルト)、UDP (
--udp)、SCTP (--sctp、Linuxのみ) - プロキシ対応 — 設定可能なDNS解決により、SOCKS5またはHTTPプロキシを介してスキャントラフィックを透過的にルーティング
- 豊富なメタデータ — 各サービスからバージョン、設定、セキュリティ関連の詳細を抽出
- 高速モード — 迅速な偵察のためにデフォルトポートのみをスキャン (
--fast) - 柔軟な出力 — JSON、CSV、または人間が読める形式
- パイプライン対応 — Naabu、Nmap、または
host:portを出力する任意のツールからパイプ - Goライブラリ — Goアプリケーションに直接インポート可能
インストール
リリース
Releasesページからビルド済みバイナリをダウンロードしてください。
GitHubから```sh
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
### ソースから```sh
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h
Docker```sh
git clone https://github.com/praetorian-inc/nerva.git cd nerva docker build -t nerva . docker run --rm nerva -h docker run --rm nerva -t example.com:80 --json
## クイックスタート
単一のターゲットをフィンガープリントする:```sh
nerva -t example.com:22
# ssh://example.com:22
詳細なJSONメタデータを取得する:```sh nerva -t example.com:22 --json
{"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
ポートスキャナからのパイプ:```sh
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
完全なリファレンス — すべてのサブコマンド、エイリアス、フラグ(--help から隠されているものも含む)— は docs/CLI.md に生成されます。
使用方法```
nerva [flags]
TARGET SPECIFICATION: Requires host:port or ip:port format. Assumes ports are open.
EXAMPLES: nerva -t example.com:80 nerva -t example.com:80,example.com:443 nerva -l targets.txt nerva --json -t example.com:80 cat targets.txt | nerva
### 例
**複数のターゲット:**```sh
nerva -t example.com:22,example.com:80,example.com:443
ファイルから:```sh nerva -l targets.txt --json -o results.json
**UDPスキャン**(root権限が必要な場合があります):```sh
sudo nerva -t example.com:53 -U
# dns://example.com:53
SCTPスキャン(Linuxのみ):```sh nerva -t telecom-server:3868 -S
diameter://telecom-server:3868
**高速モード**(デフォルトポートのみ):```sh
nerva -l large-target-list.txt --fast --json
リモートDNS解決を使用したプロキシルーティング:```sh nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
### セキュリティ設定ミスの検出
Nerva は `--misconfigs` を有効にすると、一般的なセキュリティ設定ミスを特定できます:```sh
nerva -t example.com:2375 --misconfigs --json
検出された設定ミス:
| Finding ID | 重大度 | 説明 |
|---|---|---|
docker-unauth-api | Critical | 認証なしでアクセス可能な Docker API |
x11-unauth-access | Critical | X11 サーバーが未認証接続を許可 |
smb-signing-not-required | Medium | SMB 署名が必須ではない (リレー攻撃のリスク) |
telnet-cleartext | Medium | Telnet が認証情報を平文で送信 |
vnc-detected | Medium | VNC を検出 (多くの場合、弱い認証) |
ssh-password-auth | Medium | サーバーがパスワード認証を許可 |
ssh-weak-cipher | Low | サーバーが弱い暗号 (RC4、3DES、Blowfish) を提供 |
ssh-weak-kex | Low | サーバーが弱い鍵交換アルゴリズムを提供 |
ssh-weak-mac | Low | サーバーが弱い MAC アルゴリズムを提供 |
ftp-cleartext | Low | FTP が認証情報を平文で送信 |
設定ミスを含む出力例:```json { "host": "example.com", "port": 2375, "protocol": "docker", "anonymous_access": true, "security_findings": [ { "id": "docker-unauth-api", "severity": "critical", "description": "Docker API accessible without authentication", "evidence": "Successfully queried /version endpoint without credentials" } ] }
### プロキシサポート
Nervaは、設定可能なDNS解決を備えたSOCKS5およびHTTPプロキシを介したスキャントラフィックのルーティングをサポートしています。
**サポートされているプロキシスキーム:**
- `socks5://` - ローカルDNS解決を使用するSOCKS5プロキシ
- `socks5h://` - プロキシ側DNS解決を(常に)使用するSOCKS5プロキシ
- `http://` - HTTP CONNECTプロキシ
- `https://` - HTTPS CONNECTプロキシ
**プロキシ認証:**```sh
# Inline authentication (URL format)
nerva -t example.com:80 --proxy socks5://username:[email protected]:1080
# Separate authentication flag
nerva -t example.com:80 --proxy socks5://127.0.0.1:1080 --proxy-auth username:password
DNS 解決戦略 (--dns-order):
| オプション | 戦略 | ユースケース |
|---|---|---|
l | ローカルのみ | 標準のローカル DNS (デフォルト) |
p | プロキシのみ | プロキシ側の DNS 解決を強制 |
lp | ローカル、プロキシにフォールバック | まずローカルを試し、失敗時にプロキシを使用 |
pl | プロキシ、ローカルにフォールバック | まずプロキシを試し、失敗時にローカルを使用 |
注: socks5h:// スキームはプロキシ側の DNS を自動的に強制します (--dns-order p と同等)
Tor スキャンの例:```sh
Scan .onion services through Tor (SOCKS5 proxy on port 9050)
nerva -t http://example.onion:80 --proxy socks5h://127.0.0.1:9050
**プロキシ経由のUDP:**```sh
# UDP scanning through SOCKS5 proxy (limited support)
nerva -t target.com:161 --proxy socks5://127.0.0.1:1080 --udp
⚠️ UDPの制限事項: SOCKS5経由のUDPはサポートが限定的です。すべてのSOCKS5サーバーがUDPアソシエーションをサポートしているわけではありません。ローカルUDPフォールバックが発生する可能性があります。
レート制限付きの並列スキャン:```sh nerva -l large-target-list.txt -W 100 -H 5 -R 50 -v
**グレースフルシャットダウン**(Ctrl+C で部分的な結果を返す):```sh
nerva -l huge-target-list.txt -W 50 -v
# Press Ctrl+C to stop — collected results are still printed
対応プロトコル
TCP、UDP、SCTPにわたる170以上のサービス検出プラグイン:
HTTPフィンガープリントモジュール (66)
カテゴリ別に整理されたWebサービスの技術検出:
ファイアウォール & ネットワークセキュリティ (12)
| モジュール | 説明 |
|---|---|
| Checkpoint | Check Point Security Gateway |
| Cisco ASA/FTD | Ciscoファイアウォール/VPNアプライアンス |
| FortiGate | Fortinetファイアウォール/VPN |
| GlobalProtect | Palo Alto Networks VPN |
| Juniper | Juniper SRXファイアウォール |
| OPNsense | OPNsenseファイアウォール |
| pfSense | pfSenseファイアウォール |
| SonicWall | SonicWallファイアウォール |
| AnyConnect | Cisco AnyConnect SSL VPN |
| Cisco Expressway | Ciscoコラボレーションゲートウェイ |
| BigIP | F5 BIG-IPロードバランサー |
| WinRM | Windows Remote Management |
AI/LLM & 機械学習 (6)
| モジュール | 説明 |
|---|---|
| Ollama | セルフホスト型LLM推論サーバー |
| LocalAI | セルフホスト型LLM推論 (OpenAI互換) |
| Open WebUI | LLM Webインターフェース (ChatGPTスタイル) |
| Triton | NVIDIA Triton Inference Server |
| Weaviate | AI向けベクトルデータベース |
| ChromaDB | ベクトルデータベース |