mitmproxy×透過型×ARPスプーフィング

  • 起動させます
  • 既に mitmproxy 0.8 がインストールされていますが、透過型ではないので、iOSの設定でHTTPプロキシを指定する必要があります
    • しかしこの場合、アプリによっては、期待通りに動作をしないことがあるかもしれません
    • 例えばドラコレ&ポーカー


  • 透過型プロキシを使うと、アプリからプロキシを通っていることを知ることができないため、このような問題を解決できる可能性があります
  • mitmproxy をセットアップします
    • 最新のソースを clone
root@bt:~# git clone https://github.com/cortesi/mitmproxy.git
root@bt:~# git clone https://github.com/cortesi/netlib.git
    • 依存パッケージをアップデート
root@bt:~# easy_install pyasn1
root@bt:~# easy_install pyopenssl
root@bt:~# cd mitmproxy
root@bt:~/mitmproxy# ln -s ../netlib/netlib netlib
root@bt:~/mitmproxy# vi libmproxy/authentication.py
root@bt:~/mitmproxy# git diff
diff --git a/libmproxy/authentication.py b/libmproxy/authentication.py
index 500ead6..278719c 100644
--- a/libmproxy/authentication.py
+++ b/libmproxy/authentication.py
@@ -101,7 +101,7 @@ class HtpasswdPasswordManager(PasswordManager):
         PasswordManager.__init__(self)
         entries = (line.strip().split(':') for line in filehandle)
         valid_entries = (entry for entry in entries if len(entry)==2)
-        self.usernames = {username:token for username,token in valid_entries}
+        #self.usernames = {username:token for username,token in valid_entries}

     def test(self, username, password_token):
         if username not in self.usernames:
  • mitmproxy を透過型プロキシモードで起動します
root@bt:~/mitmproxy# ./mitmproxy -T
  • 透過型プロキシの一般的な設定をおこないます
    • shellをもう一個立ち上げて、IPフォワードを有効に
root@bt:~# echo 1 > /proc/sys/net/ipv4/ip_forward
    • ポート 80 と 443 に来たパケットを mitmproxy の 8080 にリダイレクト
root@bt:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
root@bt:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080
  • このままだと、iPadから出たパケットは普通にデフォルトゲートウェイから出て行ってしまうので、ARPスプーフィングで BackTrack へ流れるようにしましょう
root@bt:~# arpspoof -t 192.168.0.3 192.168.0.1
0:3:ff:xx:xx:xx 0:0:0:0:0:0 0806 42: arp reply 192.168.0.1 is-at 0:3:ff:xx:xx:xx
0:3:ff:xx:xx:xx 0:0:0:0:0:0 0806 42: arp reply 192.168.0.1 is-at 0:3:ff:xx:xx:xx
0:3:ff:xx:xx:xx 0:0:0:0:0:0 0806 42: arp reply 192.168.0.1 is-at 0:3:ff:xx:xx:xx
  • arpspoof を動かした状態で、iPadで通信をおこなうと mitmproxy に表示されると思います
  • HTTPSの内容も確認したい場合は http://mitmproxy.org/doc/certinstall/ios.html を参考にiOSに証明書をインストールしてください
    • 証明書は ~/.mitmproxy/mitmproxy-ca-cert.pem にあります
  • 最後に、実際にアプリの通信を見たときのスクリーンショットを置いておきます
    • ドラコレ&ポーカー



HTTPS
確かに取れているということで


もうそろそろ
いいですよね


ではまた
おやすみなさい…。