動かざることバグの如し

近づきたいよ 君の理想に

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

環境

  • Ubuntu22.04

手順

hostapdのインストール

apt install hostapd

create_apのインストール メンテナンス終了してしまっているがまだ使える

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

作成 --daemon をつけるとバックグラウンドで動作する その場合は create_ap --stop wlan0 で停止

create_ap wlan0 eth0 hogehoge password

コマンドの構文は以下

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

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

sysctlの設定

# 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

mitmproxyの実行 ここではdockerで実行する

docker run --rm -it -v $(pwd)/data:/home/mitmproxy/.mitmproxy \
-p 8081:8081 -p 8080:8080 \
--name mitm \
mitmproxy/mitmproxy \
mitmweb \
--web-host 0.0.0.0 --set tls_version_client_min=SSL3

永続化

create_apをsystemdで実行する /etc/systemd/system/create_ap.service を新規作成して以下

[Unit]
Description=Create AP Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/create_ap wlxcce1d53f344d wlp1s0 thr99a taharapassword
Restart=on-failure

[Install]
WantedBy=multi-user.target

自動起動有効と起動

systemctl enable create_ap.service
systemctl start create_ap.service

確認

# systemctl status create_ap.service
● create_ap.service - Create AP Service
     Loaded: loaded (/etc/systemd/system/create_ap.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-02-04 09:49:11 JST; 8s ago
   Main PID: 2272 (create_ap)
      Tasks: 5 (limit: 9165)
     Memory: 7.5M
        CPU: 343ms
     CGroup: /system.slice/create_ap.service
             ├─2272 /bin/bash /usr/bin/create_ap wlxcce1d53f344d wlp1s0 xxx xxx
             ├─2379 dnsmasq -C /tmp/create_ap.wlxcce1d53f344d.conf.Ew9CDdxd/dnsmasq.conf -x /tmp/create_ap.wlxcce1d53f344d.conf.Ew9CDdxd/dnsm>
             ├─2380 /bin/bash /usr/bin/create_ap wlxcce1d53f344d wlp1s0 xxx xxx
             ├─2385 /usr/sbin/hostapd /tmp/create_ap.wlxcce1d53f344d.conf.Ew9CDdxd/hostapd.conf
             └─2434 sleep 2

 2月 04 09:49:11 NuxBox dnsmasq[2379]: started, version 2.86 cachesize 150
 2月 04 09:49:11 NuxBox dnsmasq[2379]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset a>
 2月 04 09:49:11 NuxBox dnsmasq-dhcp[2379]: DHCP, IP range 192.168.12.1 -- 192.168.12.254, lease time 1d
 2月 04 09:49:11 NuxBox dnsmasq[2379]: reading /etc/resolv.conf
 2月 04 09:49:11 NuxBox dnsmasq[2379]: using nameserver 127.0.0.53#53
 2月 04 09:49:11 NuxBox dnsmasq[2379]: cleared cache
 2月 04 09:49:11 NuxBox create_ap[2272]: hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlxcce1d53f344d.conf.Ew9CDdxd/hostapd_>
 2月 04 09:49:11 NuxBox create_ap[2380]: WARN: Low entropy detected. We recommend you to install `haveged'
 2月 04 09:49:12 NuxBox create_ap[2385]: wlxcce1d53f344d: interface state UNINITIALIZED->ENABLED
 2月 04 09:49:12 NuxBox create_ap[2385]: wlxcce1d53f344d: AP-ENABLED

mitmproxyの永続化

docker run -it -v $(pwd)/data:/home/mitmproxy/.mitmproxy \
-p 8081:8081 -p 8080:8080 \
-d --restart=always \
--name mitm \
mitmproxy/mitmproxy \
mitmweb \
--web-host 0.0.0.0 --set tls_version_client_min=SSL3