1. 環境設定と初期構成:安定した基盤を作る
侵入テストを始める前に、適切な環境設定は非常に重要です。適切に設定された環境は作業効率を向上させ、不要なトラブルを防ぎます。
1.1 ターゲットマシンと攻撃マシンのネットワーク設定
VMware Workstationを使用して実験環境を構築するのが一般的です。JIS-CTFのようなターゲットマシンに対しては、NATモードを使用することをお勧めします。NATモードでは、攻撃マシンとターゲットマシンは同じ仮想サブネットに存在し、物理ネットワークからは隔離されます。これにより、通信が容易になり、実験環境の安全性も確保できます。
設定が完了したら、両方の仮想マシンが正常に起動し、IPアドレスを取得していることを確認します。Kali Linuxでは、以下のようにしてネットワーク状態を迅速に確認できます:
ip addr show
または、より簡潔な方法として:
ip a
このコマンドは、すべてのネットワークインターフェースの詳細情報を表示します。通常、主なネットワークインターフェースは`eth0`です。インターフェースがIPアドレスを取得していない場合は、VMwareのネットワーク設定を確認するか、ネットワークサービスを再起動します:
sudo systemctl restart networking
注意:一部のKaliバージョンではNetworkManagerを使用している場合があります。その場合は`nmcli`コマンドやグラフィカルインターフェースで設定を行う必要があります。
1.2 必要なツールの準備と最適化
Kali Linuxには多くのセキュリティツールがプリインストールされていますが、ターゲットマシンの侵入テストでは以下のツールに特に注目し、最新バージョンであることを確認します:
- 情報収集ツール:
- Nmap:ポートスキャンとバージョン探知
- Netdiscover:ARPスキャンによるローカルホストの発見
- Dirb/Dirbuster/Gobuster:ディレクトリブラスタ
- WhatWeb/Wappalyzer:Web技術の指紋識別
- 脆弱性利用と侵入ツール:
- Burp Suite:Webアプリケーションテストスイート
- SQLmap:自動化SQLインジェクションツール
- Metasploit:包括的な侵入テストフレームワーク
- 各種Webシェル管理ツール(個人の好みに応じて選択)
- システムとネットワークツール:
- Netcat:ネットワーク用マルチツール
- Curl/Wget:コマンドラインHTTPクライアント
- SSHクライアント:リモート接続管理
実際の操作前に、ツールの更新と主要ツールのバージョン確認を行います:
sudo apt update
sudo apt upgrade -y
nmap --version
sqlmap --version
このステップは簡単ですが、教程と一致しないツールの動作問題を避けることができます。特に初心者にとっては、教程と同じまたは近いバージョンのツールを使用することで、多くの混乱を避けられます。
2. システマティックな情報収集:見えないものを見えるようにする
情報収集は侵入テストの最も基本的かつ重要な段階です。多くの人は脆弱性利用の段階に急いで進みますが、十分な情報収集は効果的に作業を進めることができます。
2.1 ホストの発見とネットワークトポロジーの探査
ターゲットマシンが起動したら、最初に行うのはそのネットワーク上の位置を特定することです。通常、データリンク層(レイヤー2)とネットワーク層(レイヤー3)の2つのレベルで探査を行います。
ARPスキャンによる同一サブネット内のホストの発見:
sudo netdiscover -i eth0 -r 192.168.159.0/24
ここで`-i`パラメータはネットワークインターフェースを指定し、`-r`パラメータはスキャン範囲を指定します。NetdiscoverはARPリクエストを送信してローカルネットワーク内のホストを発見します。