概要

今回の実験は、仮想マシン上のKali Linuxから同一ネットワーク上のWindows 7に対し、中間者攻撃(Man-in-the-Middle Attack)を仕掛けます。

具体的には、`arpspoof` ツールを用いてARPスプーフィングを実行し、Windows 7とルーター(ゲートウェイ)間の通信経路上に割り込みます。

この実験を通じて、ARPプロトコルの脆弱性、通信が傍受(盗聴)される仕組み、およびIPフォワーディングの役割について実践的に理解することを目的としています。

thumbnail

1. 実験の流れ

中間者攻撃は、通信を行う2者間(今回はWindows 7とルーター)に攻撃者が割り込み、双方になりすますことで通信を中継・盗聴する攻撃です。

今回はその代表的な手法である「ARPスプーフィング」を実験します。

攻撃者(Kali Linux)が、被害者(Windows 7)に対して「私がルーターだ」と偽り、同時にルーターに対して「私がWindows 7だ」と偽ることで、両者間の通信をすべて攻撃者経由にさせます。

2. 環境構築

この実験は、ホストOS上で異なる仮想化ソフトウェア(VirtualBox)を動作させて行いますが、ネットワーク設定が重要です。両仮想マシンのネットワークアダプターを「ブリッジアダプター」に設定し、ホストOSと同じ物理ネットワーク(例: 192.168.2.xxx)に参加させます。

img0

被害者側 (Windows 7)

  • 1. IPアドレスの確認: ipconfig を実行し、IPアドレス(例: 192.168.2.172)とゲートウェイ(例: 192.168.2.1)を確認します。
  • img1
  • 2. ARPテーブルの確認 (攻撃前): arp -a を実行し、ゲートウェイ(192.168.2.1)のMACアドレスがルーター本来のものであることを確認します。
  • img2

    攻撃者側 (Kali Linux)

    1. 1. IPアドレスとMACアドレスの確認: ip a を実行し、IPアドレス(例: 192.168.2.105)とMACアドレスを確認します。
    2. img3
    3. 2. IPフォワーディングの有効化: 攻撃者が受け取ったパケットを破棄せず、本来の宛先に転送(中継)するために、IPフォワーディングを有効化します。これが無いと、被害者は通信ができなくなり攻撃が発覚します。
    # IPフォワーディングを有効化 (1を書き込む)
    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    
    # 有効化されたか確認 (1が表示されればOK)
    cat /proc/sys/net/ipv4/ip_forward
    

    3. 攻撃の実行

    1. ARPスプーフィングの開始: Kali Linuxで arpspoof を実行します。2つのターミナルを開き、それぞれ実行します。すると連続でログが表示されますがそのまま放置します。
    # arpspoof -i <インターフェース名> -t <ターゲット端末のIPアドレス> <書き換えたいIPアドレス>
    
    # ターミナル1: 被害者(Windows 7)になりすまし、ルーターを騙す
    sudo arpspoof -i eth0 -t 192.168.2.1 192.168.2.172
    
    # ターミナル2: ルーターになりすまし、被害者(Windows 7)を騙す
    sudo arpspoof -i eth0 -t 192.168.2.172 192.168.2.1
    
    img4
    1. パケットキャプチャの開始:wiresharkなどのパケットキャプチャソフトを起動し、Windows 7 (192.168.2.172) が送受信するパケットを ip.addr == 192.168.2.172http などでフィルタリングして監視を開始します。

    4. 結果の確認

    攻撃実行後、Windows 7側で再度 arp -a コマンドを実行します。

    ゲートウェイ(192.168.2.1)に対応する物理アドレス(MACアドレス)が、ルーター本来のものではなく、攻撃者(Kali Linux)のMACアドレスに書き換わっていることが確認できます。これにより、ARPスプーフィングが成功したことが証明されます。

    img5

    この状態でWindows 7がインターネット(例: http://57.181.220.64/ のサイト)にアクセスすると、Kali Linuxで起動しているWiresharkがその通信パケットをすべてキャプチャできることが確認できます。IPフォワーディングが有効なため、Windows 7側は通信が遅延なく行えているように見えます。

    img6

    5. 考察と対策

    この実験では、arpspoof というツールを使うだけで、いかに簡単に同一ネットワーク内の通信経路上に割り込めるかが確認できました。

    ARPプロトコル自体に「送信者が本物か」を検証する仕組みがないという根本的な脆弱性が原因です。

    脅威

    攻撃者は通信経路上にいるため、暗号化されていない通信(HTTP、FTP、Telnetなど)の内容はすべて盗聴可能です。ログインパスワードやCookieが平文で盗まれる危険性があります。

    また、以前の議論の通り、SSLストリッピングなどの攻撃と組み合わせることで、https:// で保護されているサイトへのアクセスを妨害し、偽のページに誘導することも可能になります。

    対策・対処

    この攻撃は、不特定多数が接続するフリーWi-Fiやカフェ、ネットカフェなどで特に脅威となります。

    利用者側の対策:

  • VPNの使用: 公共のネットワークを利用する際は、VPN(Virtual Private Network)を使用することが最も確実な対策です。通信が暗号化されたトンネルを経由するため、傍受されても中身を解読されません。
  • HTTPSの確認: 常に「https://」で通信しているか、ブラウザの鍵マークを確認します。「保護されていない通信」という警告を無視してはいけません。
  • ネットワーク管理者側の対策:

  • Dynamic ARP Inspection (DAI): 高機能なスイッチには、不正なARP応答を検知・破棄するDAIのような機能が備わっています。
  • クライアント分離 (APアイソレーション): Wi-Fiアクセスポイントの設定で、ユーザー同士が直接通信できないように分離することで、攻撃者が他の利用者をスキャンしたり攻撃したりすることを防げます。