ARPキャッシュポイゾニング@実践パケット解析

目的
孫氏の兵法により、「攻撃がわからないと防御ができない」という精神に則り、私も攻撃者としての技術の一つとしてARPキャッシュポイゾニングを試してみることにします。


用意
IPアドレス
192.168.1.4(Mac...解析される側)
192.168.1.17(Backtrack5...解析する側)

使うツール
ettercap (tcpdump wireshark Scapy .etc パケットを取れればどれでも良い)
Scapy (これも解析するならどれでもいいけど、俺はこよなく愛してる)

使う言語
Python (Scapyでいい)


各々がローカルネットワークにいる。


某競技プログラミングサイトを使って実験します。

方法
1.ettercapでARPキャッシュポイゾニングします
2.ettercapでキャプチャしたパケットをScapyで解析します
3.解析したのをPythonでごみょごみょして、ソースコードを取り出します。
4.それを某サイトに送ります。
5.正答します。


1.ettercapでARPキャッシュポイゾニングします

パケットをキャプチャする
f:id:reonreon3reon:20130801151715p:plain


ettercap -T -M arp -i eth1 /192.168.1.4/ /192.168.1.1/ -w 01.pcap

このキャプチャを始めたら、

192.168.1.4が何も知らずに
f:id:reonreon3reon:20130801152139p:plain

普通にPOSTします。
ちなみにソースは

using System;

namespace AOJ
{
	class Program
	{
			static Void Main(string[] args)
			{
					Console.WriteLine("Hello World");
			}
	}
}

2.ettercapでキャプチャしたパケットをScapyで解析します
3.解析したのをPythonでごみょごみょして、ソースコードを取り出します。
二つ一気にやります。


f:id:reonreon3reon:20130801152758p:plain

192.168.1.4がどの言語を使ってるかはあらかじめ分かっておいてね☆
分からなかった場合の対処法もあるけど、今回はめんどくさい


ソースを投稿しているので
'POST'
っていう文字列を探します。

f:id:reonreon3reon:20130801154045p:plain
f:id:reonreon3reon:20130801154245p:plain
f:id:reonreon3reon:20130801154440p:plain

これをコピー&ペーストすれば、

4.それを某サイトに送ります。
5.正答します。

f:id:reonreon3reon:20130801154609p:plain

大せーかい!!



まとめ
実際、成功した時は嬉しかった。今回の攻撃は大して難しくはないが、発想力にも繋がると感じた。攻撃者の目線として考えるなら、平文を使うプロトコル(http,ftp .etc)を使っているローカルネットワークを狙うのが最適であると感じた。