EyeWitness とは — 大量 Web ホストのスクショを自動化する偵察 triage ツール のサムネイル

EyeWitness とは — 大量 Web ホストのスクショを自動化する偵察 triage ツール

⏱ 約 8 分 view 30 like 0 LOG_DATE:2026-06-08
目次 / TOC

EyeWitnessChristopher Truncer (FortyNorth Security) によって開発された 偵察 (recon) / triage ツール。役割は単純で強力 — 大量の Web ホストのスクリーンショットを自動で撮り、一枚の HTML レポートにまとめる。nmap や rustscan を撃つと、開いている Web ポートが 数百単位で返ってくることがある。それを一つずつブラウザで開いて「ログイン画面はどれか」「デフォルトページか」「古いアプリか」を確認するのは現実的でない。EyeWitness は全ホストを裏でヘッドレスブラウザで開いてスクショし、各ホストのレスポンスヘッダ・推定技術・(分かれば) デフォルト認証情報まで添えてレポート化する。結果として「目で一気に眺めて、面白いターゲット (ログインパネル・管理コンソール・放置された古いアプリ) を素早く拾う」ことができる。RDP・VNC のスクショにも対応する。

01

EyeWitness とは — スクショ自動化 + HTML レポートで triage #

ポートスキャンの結果は「IP とポートの羅列」でしかない。443/tcp open https が 300 行並んでいても、どれが攻略の足がかりになるかは中身を見るまで分からない。EyeWitness が解決するのはまさにこの「見る」の自動化だ。

入力にホスト / URL のリストを渡すと、EyeWitness は各ホストをヘッドレスブラウザで順に開いてスクリーンショットを撮影し、同時にサーバのレスポンスヘッダ情報を記録、可能なら稼働技術を推定する。最後にそれらを 1 枚のブラウズ可能な HTML レポート (report.html) に束ねる。レポートはスクショ・ヘッダ・推定情報をホストごとに並べ、さらに「Identified Login Pages (ログイン画面)」「High Value Targets (高価値ターゲット)」といったカテゴリに自動分類してくれる。

▸ EyeWitness が埋める「スキャンと手作業の間」

recon の流れは大まかに ポートスキャン → triage (選別) → 手動テスト の三段。EyeWitness はこの真ん中の triage を担う。nmap が「どこが開いているか」を、ffuf や Burp が「個別ホストの深掘り」を担うとすれば、EyeWitness は「どのホストを深掘りすべきか」を一望で決めるための道具だ。Kali では多くの場合プリインストール済み、無ければ apt install eyewitness で導入できる。

02

法的・倫理的な注意 #

EyeWitness は「見るだけ」のツールに見えるが、その実態は対象ホスト群へ実際に HTTP / RDP / VNC 接続を張ることだ。許可のない第三者のホストへ撮影をかければ、それは正当な権限のないアクセスであり、日本の不正アクセス禁止法や業務妨害に問われ得る違法行為になりうる。「スクショを撮っただけ」は免罪符にならない。

▸ EyeWitness を向けてよい対象
  • 自分が所有・管理している資産 — 自分のサーバ群、契約している VPS、隔離した学習用ラボ
  • 書面で明示的に許可されたスコープ — ペネトレーションテスト契約で対象ホスト・期間が文書化されているもの。スコープ外のホストは1 件たりとも入力リストに含めない
  • 正規の学習プラットフォーム — Hack The Box、TryHackMe など、運営が偵察を許可している環境

とくに注意すべきは nmap の XML をそのまま流し込む運用。スキャン範囲に許可外の IP が紛れていれば、EyeWitness はそれらにも自動で接続しに行く。リストや XML の中身を渡す前に必ず確認し、許可されたスコープだけに限定すること。「権限のない第三者ホストへ撮影をかける」ことそのものが不正アクセス・濫用になり得る。

03

何ができるか — スクショ / ヘッダ / 認証情報の示唆 / 分類 #

EyeWitness が一回の実行で集める情報は、単なる画像にとどまらない。triage を加速させるための情報がレポートに凝縮される。

収集するもの内容triage での意味
Web スクリーンショットHTTP / HTTPS の画面を撮影ログイン画面・デフォルトページを目視で即判別
RDP / VNC スクショリモートデスクトップ / VNC の画面も撮影放置された遠隔操作サービスを発見
レスポンスヘッダServer / 各種ヘッダを記録稼働ソフト・バージョンの当たりを付ける
技術の推定稼働している技術を推測既知の脆弱な製品かを素早く判断
デフォルト認証情報の示唆既知製品なら初期パスワードを併記未変更の初期認証情報を試す候補が分かる

撮影モードは入力ホストの種別に合わせて切り替える。Web だけなら --web、RDP / VNC を撮るなら --rdp / --vnc、全部まとめて試すなら --all-protocols

▸ レポートの「分類」が triage を速くする

EyeWitness のレポートは撮影画像をただ並べるだけでなく、「Identified Login Pages」「High Value Targets」といったカテゴリに自動で振り分ける。数百ホストのうちまず見るべきログイン画面・管理画面に直行できるので、目視の負担が劇的に減る。デフォルト認証情報が示唆されたホストは、そのまま最初に試す候補になる。

04

基本の使い方 — リスト / nmap XML / 単一ホスト #

EyeWitness は 入力の渡し方出力先を決めるだけで動く。入力は「URL/ホストのリスト (-f)」「nmap/Nessus の XML (-x)」「単一 URL (--single)」の三通り。出力ディレクトリは -d で指定する。

URL リストから撮る #

一行一ホストのテキストファイルを -f で渡すのが最も基本。--web で Web 画面を撮影する。

URL リストから一括スクショ
$ eyewitness --web -f urls.txt -d recon_shots # --web HTTP/HTTPS のスクショモード # -f urls.txt 一行一ホストの入力リスト # -d recon_shots レポートとスクショの出力先ディレクトリ

nmap の XML から撮る #

nmap を -oX で XML 出力しておけば、EyeWitness が -x でそれを読み込み、XML 中の Web サービスを自分で抽出して撮影する。スキャン結果をそのまま流せるのが強み。

nmap XML を受け渡して自動撮影
$ eyewitness -x nmap.xml --web -d shots --no-prompt # -x nmap.xml nmap (または Nessus) の XML から Web を抽出 # --no-prompt 途中で入力待ちをせず自動で完走させる

単一ホスト / RDP・VNC をまとめて #

一発だけ確認したいなら --single。RDP・VNC・Web を一度に試すなら --all-protocols をリストに対して使う。

単一ホスト / 全プロトコル撮影
$ eyewitness --single https://10.0.0.5 --web $ eyewitness --all-protocols -f hosts.txt -d shots # --single URL 単一ホストだけを撮る # --all-protocols Web + RDP + VNC をまとめて試行
05

recon パイプライン — スキャンからレポート、そして深掘りへ #

EyeWitness は単体で使うより、偵察パイプラインの一段として組み込むと真価を発揮する。古典的な流れはこうだ。

1. ポート発見 (rustscan / nmap)
開いている Web ポートを洗い出し、-oX nmap.xml で XML に書き出す。
2. XML を EyeWitness に受け渡す
eyewitness -x nmap.xml --web --no-prompt で Web サービスを抽出して一括スクショ。
3. HTML レポートで選別 (triage)
report.html を眺め、ログイン画面・管理コンソール・古いアプリなど「面白いホスト」を絞り込む。
4. 個別ホストを深掘り (ffuf / Burp / nikto)
選んだ少数のホストにだけ ffuf でディレクトリ探索、Burp で手動テストをかける。

ポイントは、EyeWitness が「全部を深掘り」しない判断を支えること。数百ホストすべてに ffuf を撃つのは時間も負荷も無駄になる。EyeWitness で一望してから当たりだけに ffuf / Burp を集中投下することで、限られた時間を価値の高いターゲットに割ける。

nmap → EyeWitness → ffuf の連結例
$ nmap -p 80,443,8080 -oX nmap.xml 10.0.0.0/24 $ eyewitness -x nmap.xml --web -d shots --no-prompt # shots/report.html を見て当たりを選別したら… $ ffuf -w wordlist.txt -u https://10.0.0.5/FUZZ
06

関連ツールと運用 Tips #

「大量の Web ホストをスクショする」ツールは EyeWitness だけではない。用途と好みで選ぶとよい。

ツール特徴
EyeWitness元祖的存在。レポートにヘッダ・デフォルト認証情報・分類まで含む triage 重視。RDP / VNC も撮れる
Aquatone大量ホストのスクショ + HTML レポート生成に特化。サブドメイン列挙の後段で定番
gowitnessGo 製で高速・軽量。単一バイナリで動かしやすい
httpxProjectDiscovery 製。HTTP プローブが主軸でスクショも可能。他の PD ツールと連携しやすい

EyeWitness を快適に使うための主要オプションは以下。自動化と取りこぼし対策に効く。

オプション 効果
--threads <n> 同時スレッド数。上げれば速く、下げれば低負荷
--timeout <sec> ホストごとのタイムアウト秒。遅いホストで詰まらせない
--prepend-https スキームの無いホストに https:// も試す (取りこぼし防止)
--no-prompt 入力待ちをせず自動で完走 (パイプライン / cron 向け)
--resolve DNS の PTR / 名前解決情報をレポートに含める
--results <n> レポート 1 ページあたりのスクショ枚数
--user-agent "<UA>" User-Agent を任意に設定
▸ 運用 Tips — 入力の精査が最重要

EyeWitness は渡したリスト / XML のホストすべてに実際に接続する。だからこそ最大の運用上の注意は「入力にスコープ外のホストを混ぜないこと」。--no-prompt で自動化するときは特に、リストの中身を実行前に必ず確認する。撮影漏れが気になるホストには --prepend-https を、遅いホストでスキャン全体が止まるなら --timeout を短めに設定する。triage はあくまで許可されたスコープ内で完結させること。

𝕏 ポスト B! はてブ