The Weekly Herald

scie and axsee's electronics weblog.
<< 命名。 Herald board | main | 車載PS2プロジェクト >>
スポンサーサイト このエントリーを含むはてなブックマーク

一定期間更新がないため広告を表示しています

| 書いた人:スポンサードリンク | - | | - | -
ARPスプーフィングで通信傍受! このエントリーを含むはてなブックマーク
この記事はコンピュータネットワークの通信のしくみについて、調べてみた記事です。情報は悪用しないでください。

前回の記事より、MACアドレスを同一にしてもLAN内のPCのパケットを傍受することはできないみたいです。
では、どうすれば傍受できるのか?
ネットで調べていると興味深いツールが見つかりました。
それは、ARPスプーフィングソフトと呼ばれるツール。スプーフィングとは"なりすまし"という意味。

以下のウェブサイトで入手しました。
Crelia Dragon as Kuchanにある、"ARPP Standard Edition Version 0.1"というツール。

ARP SPOOFING
実験環境は以下の通りです。↓
実験環境
ルータを介して、A, B, Cの3台のPCが接続されています。
各端末のMACアドレスは、こちらの都合の良いように書き換えました。
この環境において、PC Cより、PC AとPC Bの通信を傍受することを試みます。

ここで少し復習。
LAN内(Ethernet)において各端末が通信を行う際、端末が何を頼りに通信先の端末を特定しているかというと、それはMACアドレスです。

実際の通信において、各端末は宛先MACアドレス・IPアドレス、送信元MACアドレス・IPアドレス等をパケットに付加し、ネットワークに流します。↓
arpp2
各端末は、送られてきたパケットの宛先MACアドレスが自分のMACアドレスであるかを調べ、宛先MACアドレスと自分のMACアドレスが同じだった場合、パケットを受信します。
宛先MACアドレスと自分のMACアドレスが異なる場合は、パケットを破棄します。

したがって、通信先のMACアドレスがわからなければ通信ができません。そのため、各端末が通信を始める際は、まず通信先のMACアドレスを知る必要があります。

ここで、IPアドレスからMACアドレスを調べるためのプロトコルが登場します。それが"ARP"です。ARPには、ARP要求パケットとARP応答パケットがあります。
まずIPアドレスからMACアドレスを知るためにARP要求パケットをブロードキャストします。ブロードキャストなので、ARP要求パケットはLAN内全ての端末に送信されます。↓
ARP要求
ARP要求パケットで指定さているIPアドレスの端末は、自分のMACアドレスを知らせるためにARP応答パケットを返送します。↓
ARP応答
ARPを利用して、各端末はどのIPアドレスにどのMACアドレスが対応しているかを調べるのです。ただし、通信を行うたびにいちいちARP要求をするのは面倒です。そこで各端末は、ARPテーブルと呼ばれる、IPアドレスとMACアドレスの対応表をしばらくの間保持します。↓
それぞれのARPテーブル
復習終わり。

さて、ARPスプーフィングツール"ARPP"を実際に使用してみました。
結果から言うと、このツールを使用することにより見事通信を傍受することに成功してしまいました。
一体このツールは何をしているのだろうかと思い、調べてみることにしました。
下の画像が、ARPPの起動画面です。↓
ARPP起動画面
使い方としては、まずネットワークカードを選択します。ちなみにここで無線LANを選択するとパケットを傍受することができませんでした。なぜ?
次に、汚染先IP・汚染先が通信するIP欄に傍受したい端末のIPアドレスを入力します。
ここでは、PC AのIPアドレスとPC BのIPアドレスを入力しました。
そして、"開始"をクリックします。
成功すると、ネットワーク情報欄に汚染元MACアドレス、汚染先MACアドレスが表示されます。↓
ARPP動作画面
"ARPP"を起動させた状態で、パケットキャプチャソフト――ここでは"Ethereal"――を起動して、パケットをキャプチャしてみます。

試しに、PC AからPC Bに向かってPINGを送信してみます。
その様子をPC Cでキャプチャしたものが下の画像です。ほかのパケットも流れていましたが、ここではPINGのみ表示させています。↓
PINGを傍受見事にPC AとPC Bの通信が傍受できています。こんな簡単にできるものなんですね。

さて、ARPスプーフィングツール"ARPP"が動作中のPC Cは一体何をやっているかを解析してみたので、発表します。
PC Cはまず、傍受する対象のPC AとPC BのMACアドレスをARPで調べます。↓
傍受する対象のMACアドレスを調べる
PC AとPC Bは素直にARP応答を返してくれます。↓
ARP応答
これでPC Cは、PC AとPC BのMACアドレスを知ることに成功しました。PC Cは、PC A, Bと通信ができるようになったわけです。

次にPC Cは、PC A, Bそれぞれに、嘘のARP応答パケットを送信します。
具体的には、
PC Aに対して"IP:192.168.1.20のMACアドレスはCC:CC:CC:CC:CC:CC"だ!
PC Bに対して"IP:192.168.1.10のMACアドレスはCC:CC:CC:CC:CC:CC"だ!
というARP応答を送りつけます。↓
嘘のARP応答を送る
その結果。PC AとPC BのARPテーブルは書き換えられ、お互いが通信するべき端末をPC Cだと思ってしまうのです。PC A, BのARPテーブルに注目!↓
PC AとPC BのARPテーブルが書き換わる
ここで問題なのは、嘘のARP応答が送りつけられてきたのにも関わらず、PC AとPC Bはそれを信じてしまいました。ARP要求をしたわけでもないのに、です。
つまりARP応答は、常にそれが正しいものだとして受信されてしまうようです。

下の画像は、"ARPP"の"開始ボタン"を押した直後のPC Cのパケットキャプチャ画像です。ARPパケットのみ表示させています。↓ARPP実行開始直後のパケットキャプチャ
各端末にARP要求をしてMACアドレスを取得し、嘘のARP応答パケットを何度も送りつけているのがわかります。この場合、No.9, 10, 15 ,16が嘘のARP応答ですね。

ARPテーブルが書き換えられたことにより、
PC Aは、PC CのことをPC Bだと勘違いした。
PC Bは、PC CのことをPC Aだと勘違いした。
のです。

その結果、PC AからPC BへのパケットはPC Cへ届きます。それは、宛先MACアドレスがPC Cのものだからです。
同じくPC BからPC Aへのパケットも、PC Cへ届きます。
宛先IPアドレスなんて関係ありません。届く先はMACアドレスです。

PC AからPC B宛のパケットおよびPC BからPC A宛のパケットは、すべてPC Cへ届くのです。

PC AはPC Bへパケットを送信しているつもりでも……、それはPC Cに届きます。↓
PC AはPC Bに送信してるつもり
しかし、これではPC AとPC Bが通信できません。パケットがPC Cで止まってしまうからです。そこで、PC Cは、PC Aから来たPC B宛のパケットを、PC Bへ転送してやります。↓
new2
その際PC Cは、パケットの送信元IPアドレスをPC AのIPアドレスに偽装します。これでPC Bは、送られてきたパケットの送信元がPC Aだと信じます。パケットの送信元IPとMACアドレスは、PC BのARPテーブルと一致しますから。

PC Cがパケットを転送することで、PC AとPC BはPC Cを介してですが通信できます。もちろんPC AとPC Bは、間にPC Cがいるなんて夢にも思っていません。
PC Cは、PC AとPC Bの通信が見放題です。なぜなら、PC AとPC Bの通信はすべてPC Cを通して行われるからです。↓
new212
このパケット転送も、今回使用しているスプーフィングツール"ARPP"が行ってくれています。

この手口を使えば、パケットの内容を改ざんすることもできます。
PC CはPC Aから送られてきたPC B宛のパケットを受信します。そしてパケットの内容を改ざん!PC Bへそれを転送します。↓
パケットの改ざん
PC Aとルータに対してARPスプーフィングを実行すれば、PC Aのインターネット通信が丸見えです。↓
インターネットキャプ
さて、こんな簡単に通信が傍受できてしまう最大の問題は、何度も言いますがARP応答をそっくりそのまま信じてしまうことです。
ならば、LAN内の各端末にでたらめなARP応答を送ってやれば、ネットワークを混乱におとしめることができるではありませんか。

対策としては、MACとIPの組み合わせを静的に決めておくとか(超面倒くさい)、こまめにARP要求をして正しいARPテーブルを持つとかでしょうか。通信するたびにARP要求をしなくて済むようにARPテーブルがあるのに、それを利用されるとは……。

実験を終えて……

―― axsee
LAN内のパケットをこんなに簡単に傍受できるとは思わなかったです。
パケットが傍受できたときはうれしかったですが、誰かLAN内でやってるかもと思うとちょっと怖いと思いました。
ただ、この方法では相手のPCが"Ethereal"などを起動していた場合(まぁその確率はかなり低いですが…)傍受しているPCのMACアドレスがばれていまいます。そのため、以前行ったMACアドレス書き換えと組み合わせて使えば、証拠がかなり消えちゃいます。\(^^)/
ハッカー的なことに興味が出てきてしまった……。

―― scie
この記事は、悪用されることを目的で書いたのではありません。悪用しないでください。いつ通信が傍受されているのかわかりません。それを分かって頂くためにも、この記事の内容はぜひ知っておいて欲しいと思いました。
| 書いた人:scie | Reckless Attempt | 00:43 | comments(11) | trackbacks(1)
スポンサーサイト このエントリーを含むはてなブックマーク
| 書いた人:スポンサードリンク | - | 00:43 | - | -
コメント
ARPスプーフィングツールは単純に傍受というより割り込んでしまうんですね。
データの中身を改ざんできるのでかなりやばいですね。
| miz | 2006/08/18 1:23 AM |

>mizさま。
はじめまして。コメントを頂けて嬉しいです。
MACアドレス書き換えから、このARPスプーフィングツールを使用した一連の実験はかなり盛り上がりました。その一方、こんなに簡単にできてしまって良いのか、とも思います。
ARPスプーフィングは、おっしゃる通りデータを改ざんできてしまうので本当に怖いです。しかもこのARPスプーフィングを"未然に防ぐ"というのもなかなか難しい気がします。
| scie | 2006/08/18 2:47 AM |

はじめまして。
ソフトの紹介してくれてありがとう!
こんなに詳しく紹介していただいたのは初めてでうれしいです。

ぢゃ(^-^/
| CD | 2006/09/15 9:05 PM |

何の承諾も無しに紹介してすみませんでした。
しかし、喜んでいただけたようでこちらもうれしいです。
ARPPでは色々と遊ばせていただきました。
解析内容に間違いがないことを祈りますが、何か不都合があればご連絡ください。
| scie | 2006/09/16 12:10 AM |

ARPP Standard Edition Version 0.1がダウンロード出来ません。
よろしければupしてもらえないでしょうか?
悪用は致しません。自己満足で終わりにします。
| y | 2007/11/27 1:01 AM |

ちなみにEtherealだけでは無線lan内の他のパソコンの通信(インターネットやメール
など)は傍受できないのでしょうか?
| y | 2007/11/27 1:05 AM |

y様。はじめまして。
ARPPがダウンロード不可になっていることを確認しました。
しかし、私の手元にもARPPは残っておりませんので、お渡しできません。
ご了承ください。

>>ちなみにEtherealだけでは無線lan内の他のパソコンの通信(インターネットやメールなど)は傍受できないのでしょうか?
NICをプロミスカスモードで動作させればイーサネットセグメント内のすべてのパケットを受信できるはずなので、それっぽいことができると思いますが、私は試したことがありませんのでよくわかりません。
| scie | 2007/11/28 7:45 AM |

はじめまして。suie様。丁寧に回答して頂きありがとうございます。
そうですか。ARPPのほうは諦めます。
無茶な注文をしてしまって申し訳ありませんでした。

それとetherealでは他のパソコンの傍受は出来ないと
どこかのサイトで見た気がします。
もっと詳しくお伝えしたいのですが知識がないもので・・・

| y | 2007/11/30 12:33 AM |

>y
Wireshark(Ethereal)では出来ましたよ。
http://sliver.cocolog-nifty.com/blog/2007/02/lan_9cc5.html
ARPPについてはEttercapやDsniffに含まれるArpspoofで代用できますよ。
| ueda | 2007/12/18 3:12 AM |

uedaさま。
補完情報ありがとうございます。
| scie | 2008/01/07 10:15 PM |

Y様
下記記述についてです。
その際PC Cは、パケットの送信元IPアドレスをPC AのIPアドレスに偽装します。これでPC Bは、送られてきたパケットの送信元がPC Aだと信じます。パケットの送信元IPとMACアドレスは、PC BのARPテーブルと一致しますから。
-->
 「パケットの送信元IPアドレスをPC AのIPアドレスに偽装します。」
 については、偽装しなくてもPC AのIPアドレスがすでに設定されてい
 るはずなので、IP FORWARD設定してあればPC Bに中継されるので
 は?
| | 2009/04/11 9:36 AM |

コメントする
※コメント欄にHTMLタグを使用することはできません。
※コメント欄内のURLは、自動的にリンクへと変換されます。
※英数字のみのコメントは投稿できません。









この記事のトラックバックURL
トラックバック機能は終了しました。
トラックバック
Network
Information Security ネットワーク 攻撃手法*3 ARPスプーフィング 攻撃対象となる2つのホスト(端末)に対し嘘のARP応答パケットを送り込むことでARPテーブルを汚染し、攻撃対象間の通信を傍受したり改ざんしたりする攻撃。 対策 WindowsXPでのARPスプーフィング
| Security Blanket - 情報セキュリティWiki (PukiWiki/TrackBack 0.4) | 2008/06/04 9:49 AM |
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< March 2024 >>


ブログ カウンター岩盤浴ゲルマニウム温浴