偵察ツールの構築
実践的なスクリプト
「偵察ツールの構築」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。
すべてを組み合わせる
ここでは、変数、ループ、ツールの実行、解析を1つの実用的な偵察スクリプトにまとめます。
目標は、ターゲットを指定し、開いているポートを検出し、サービスを識別し、整理した結果を1つのコマンドですべて保存することです。
スクリプトの計画
優れたツールは、コーディングする前に設計されています。今回の偵察スクリプトでは、次の処理を行います。
- 入力を検証します(ターゲットを必須にします)。
- 出力ディレクトリを作成します。
- ポートスキャンを実行してから、バージョン検出を行います。
- 開いているポートを解析して要約します。
ヘッダーと入力チェック
shebang、安全設定、引数チェックから始めます。ターゲットが指定されていない場合は、使用方法を表示します。
#!/bin/bash
set -euo pipefail
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <target>"
exit 1
fi
target=$1出力ディレクトリ
ターゲットごとにタイムスタンプ付きのフォルダーを作成し、実行を繰り返しても互いの結果を上書きしないようにします。
stamp=$(date +%F_%H%M)
outdir="recon_${target}_${stamp}"
mkdir -p "$outdir"
echo "[*] Results in $outdir"ステップ1:高速ポートスキャン
まず、全ポート範囲を対象に、高速に開いているポートを見つけます。
echo "[*] Scanning ports on $target"
nmap -p- --open -T4 "$target" -oG "$outdir/ports.gnmap" >/dev/nullステップ2:開いているポートの解析
grep可能な出力から開いているポート番号を抽出し、次のスキャンで使うカンマ区切りのリストにします。
ports=$(grep -oE '[0-9]+/open' "$outdir/ports.gnmap" | cut -d/ -f1 | paste -sd, -)
echo "[*] Open ports: $ports"ステップ3:バージョン検出
開いているポートだけを対象に、サービスのバージョンを重点的にスキャンします。すべてのポートを再度スキャンするよりも高速で、出力も少なくなります。
if [ -n "$ports" ]; then
nmap -sV -p "$ports" "$target" -oN "$outdir/services.txt"
fiステップ4:要約
ファイルを開かなくても担当者が結果を確認できるように、見やすい要約を表示します。
echo "=== Summary for $target ==="
grep 'open' "$outdir/services.txt" | awk '{print $1, $3}'ログの追加
タイムスタンプ付きのログ行を追記し、何をいつ実行したかを後から確認できるようにします。これは報告書の作成に重要です。
echo "$(date) scanned $target -> $ports" >> recon.logツールの実行
実行可能にして、ラボVMを指定します。すべての結果は出力フォルダーに保存されます。
chmod +x recon.sh
./recon.sh 192.168.56.10さらなる拡張
この基本構成から、次の機能を追加できます。
- ポート80/443が開いている場合のWebディレクトリのブルートフォース。
- netcatを使ったバナー取得。
- 単一のホストではなく、ターゲットリストを順番に処理するループ。
- HTMLまたはMarkdown形式のレポート生成。
クイックチェック
バージョンスキャンの前に解析を行う理由を思い出してください。
まとめ
動作する偵察ツールを作成しました。
- 入力を検証し、タイムスタンプ付きの出力ディレクトリを作成しました。
- 高速ポートスキャンを実行し、開いているポートを解析してから、そのポートだけを対象にバージョンスキャンを行いました。
- 要約を表示し、実行内容をログに記録しました。
- Webブルートフォース、バナー取得、レポート作成など、明確な拡張ポイントを確認しました。
これでBashスクリプティングコースは完了です。
よくある質問
「偵察ツールの構築」レッスンは無料ですか?
はい。「偵察ツールの構築」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。
「偵察ツールの構築」で何を学びますか?
実践的なスクリプト ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ethical Hacking Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「偵察ツールの構築」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEthical Hacking Academyレッスンでコードを書いて実行できますか?
はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。