動かざることバグの如し

殿、温めておいたバグがこちらでございます

どんなデータもぶっこ抜くWIFIアクセスポイントを作る

自分用メモ

環境

mitmproxyのインストール

pipで一発インストールできる

pip install mitmproxy

ここで mitmproxy を実行

Androidスマホwifi設定の「プロキシ」を設定

  • IP: サーバーのIP
  • ポート番号: 8080

でいける。がhttpsのサイトにアクセスすると証明書エラーで死ぬと思う

そこでmitmproxyが発行するオレオレ証明書を食わせる。 http://mitm.it へアクセスして、インストール Androidの場合、証明書の種類は「VPN/アプリ」だった

Wifiアクセスポイントの作成

かつてはhostapdインストールして云々と、面倒だった記憶だが、最近ではcreate_apコマンドで一発で無線アクセスポイントを作ることができる。

まずhostapdをインストールしておいて

apt install hostapd

git cloneでインストール

git clone https://github.com/oblique/create_ap
cd create_ap
make install

作成

create_ap wlan0 eth0 hogehoge password

コマンドの構文は

create_ap <アクセスポイントで使う無線デバイス名> <有線(インターネットにつながってる)デバイス名><SSID><WIfiのパスワード>

でいける。他にも豊富なオプションがあるが。公式ドキュメント見てもらったほうが早い

mitmproxyとアクセスポイントの連携

この手のプロキシは実は透過型プロキシと呼ばれており、mitmproxyの公式ドキュメントにも記載されている。

https://docs.mitmproxy.org/stable/howto-transparent/docs.mitmproxy.org

手順としては以下

IPフォワーディングを許可

sysctl -w net.ipv4.ip_forward=1

ICMPのリダイレクトを無効化

sysctl -w net.ipv4.conf.all.send_redirects=0

ルーティング追加ここのwlan0はさっきcreate_apで指定した無線のデバイス

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 8080

いざ実行

mitmweb --web-iface 0.0.0.0 --mode transparent --showhost