Kali-Linux × Airgraph-ngで周辺のWifiを丸裸にする

中学生の頃からずっとクラッカーに憧れていて、久しぶりに「おおお!!?おおおん!!」とあの頃の気持ちが蘇るツールがあったので試してみた。

周辺のアクセスポイントにどの端末が繋がっているのか、周辺の端末が過去にどのアクセスポイントに繋いだことがあるのかを画像で可視化できる。

こんな感じ。 f:id:rasukarusan:20191006203313p:plain

特にこれ1つで何ができるってわけじゃないけど、めっちゃ興奮するよね。

使うツール

  • airodump-ng(デフォルトでインストールされてる)
  • airgraph-ng

airgraph-ngは昔のkaliにはデフォルトでインストールされていたらしいけど、今はないので別途手動でのインストールが必要になる。とはいえapg-getでインストールできるので楽。

$ sudo apt-get install airgraph-ng

今回別途インストールするのはこれだけ。最高ですね。

airgraph-ngにはgitからインストールする方法が書かれているけど、正常にインストールできないし面倒なのでapt-getからするのが吉。

周辺のアクセスポイントを可視化する

①無線LANアダプタをモニターモードにする

もはやデフォルト準備である。

実行コマンド

$ airmon-ng check kill
$ airmon-ng start wlan0
$ iwconfig

実行結果(Mode:MonitorになってればOK)

root@kali:~/airgraph-test
$ iwconfig
eth1      no wireless extensions.

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.432 GHz  Tx-Power=20 dBm
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off

lo        no wireless extensions.

eth0      no wireless extensions.

今後の作業でいくつかファイルが作成されるので、今回用にディレクトリ切っておくと掃除が楽。

②パケットを収集する

周辺のアクセスポイントの情報を収集する。 下記コマンドを実行して、しばらく(30秒ぐらい)待ったらCtrl-Cで収集をストップする。

実行コマンド

$ airodump-ng wlan0mon -w capturefilename

実行結果

root@kali:~/airgraph-test
$ airodump-ng wlan0mon -w capturefilename

 CH 14 ][ Elapsed: 36 s ][ 2019-10-06 05:37

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:25:00:FF:94:73   -1        0        0    0  -1  -1                    <length:  0>
 F4:CB:52:F2:DB:E1  -22       12        1    0   3  130  WPA2 CCMP   PSK  W03_F4CB52F2DBE
 90:4C:81:F5:6C:60  -28        4        1    0  11  130  OPN              Komeda_Wi-Fi
 90:4C:81:F5:6C:62  -29       10        0    0  11  130  WPA2 CCMP   PSK  0000docomo
 20:54:FA:32:B4:07  -33       10        1    0   1  130  WPA2 CCMP   PSK  T.S-wifi
 90:4C:81:F5:6C:61  -38        6        0    0  11  130  WPA2 CCMP   MGT  0001docomo
 C0:A0:BB:F2:77:16  -53        8        0    0  11  195  WPA2 CCMP   PSK  OWNER7962
 44:1E:98:C6:0C:38  -54        7        0    0   4  130  WPA2 CCMP   PSK  au_Wi-Fi
 12:A0:BB:F2:77:16  -54       10        0    0  11  195  OPN              0000FLETS-PORTA
 44:1E:98:86:0C:38  -54        7        0    0   4  130  WPA2 CCMP   PSK  Wi2premium_club
 44:1E:98:06:0C:38  -54        6        0    0   4  130  WPA2 CCMP   MGT  Wi2eap
 44:1E:98:46:0C:38  -55        6        0    0   4  130  OPN              Wi2premium
 44:1E:98:06:0C:39  -56        8        0    0   4  130  WPA2 CCMP   MGT  au_Wi-Fi2
 D8:0F:99:E0:0A:3A  -68        7        1    0   6  195  WPA2 CCMP   PSK  D80F99E00A38-2G
 12:A0:BB:F2:63:51  -69        6        0    0   6  195  OPN              0000FLETS-PORTA
 C0:A0:BB:F2:63:51  -72        6        0    0   6  195  WPA2 CCMP   PSK  OWNER6661

するといくつかファイルが作成されてると思う。使うのはcapturefilename-01.csvってやつだけ。

root@kali:~/airgraph-test
$ ll
合計 292
-rw-r--r-- 1 root root  73285 106 06:18 capturefilename-01.cap
-rw-r--r-- 1 root root   8863 106 06:18 capturefilename-01.csv
-rw-r--r-- 1 root root  10659 106 06:18 capturefilename-01.kismet.csv
-rw-r--r-- 1 root root 103397 106 06:18 capturefilename-01.kismet.netxml
-rw-r--r-- 1 root root  84781 106 06:18 capturefilename-01.log.csv

③CSVから画像を出力する〜周辺アクセスポイントの関係を表示〜

airgraph-ngで周辺のアクセスポイントにどの端末が接続しているのかを表示する画像を作成する。
先程作られたcsvを元に、引数にCAPRを指定して作成。ちなみに「CAPR」はClient Access Point Relationshipの略。

実行コマンド

$ airgraph-ng -o ap_relation.png -i ./capturefilename-01.csv -g CAPR

実行結果

root@kali:~/airgraph-test
$ airgraph-ng -o ap_relation.png -i ./capturefilename-01.csv -g CAPR

**** WARNING Images can be large, up to 12 Feet by 12 Feet****
Creating your Graph using, ./capturefilename-01.csv and writing to, ap_relation.png
Depending on your system this can take a bit. Please standby......

するとap_relation.pngが作成される。

root@kali:~/airgraph-test
$ ll
合計 564
-rw-r--r-- 1 root root 277018 106 06:33 ap_relation.png
-rw-r--r-- 1 root root  73285 106 06:18 capturefilename-01.cap
-rw-r--r-- 1 root root   8863 106 06:18 capturefilename-01.csv
...

これをvagrantからホストマシンに落として開いてみるとこんな感じ。(ホストに落とすのは/vagrantにコピーするのがてっとり早い)

f:id:rasukarusan:20191006203313p:plain:w500
airgraph-ngでCAPR画像を生成

んんんんん最高。よくわからんがなんか凄そうなグラフができてる。
赤色と緑色で表示されているのは暗号化の種類で決まるっぽい。

暗号化タイプ
緑色 暗号化あり(WPA,WPA2)
赤色 暗号化なし(OPEN)
黒色 取得できない(テザリング?)

黒色に関しては何回か試したところ、黒色のOUIは全部Apple.Incとなっていたため、「端末がアクセスポイントになってる=テザリング」かなと予想。

てか公衆無線LANのKomeda_Wi-Fiにはもっと接続されてるかと思ったけど、意外に少なかった。
みんなあんまり接続しないのね。セキュリティ意識高え。

④CSVから画像を出力する〜非接続端末が過去にどのアクセスポイントに接続したかを表示〜

airgraph-ngの引数にはCPGを指定することができて、周辺の端末が過去に接続したことをのあるアクセスポイントを表示することができる。
(これちょっと英語がアレなせいで正しいかわからないけど、そこはごめんなさいね)

実行コマンド

$ airgraph-ng -o disconnected.png -i ./capturefilename-01.csv -g CPG

実行結果

root@kali:~/airgraph-test
$ airgraph-ng -o disconnected.png -i ./capturefilename-01.csv -g CPG

**** WARNING Images can be large, up to 12 Feet by 12 Feet****
Creating your Graph using, ./capturefilename-01.csv and writing to, disconnected.png
Depending on your system this can take a bit. Please standby......

作られた画像を開いてみるとこんな感じ。

f:id:rasukarusan:20191006203905p:plain:w500
airgraph-ngでCPG画像を生成

CAPRを指定して作られた画像はアクセスポイントが中心に描かれているのに対し、
CPGの場合は端末を中心にアクセスポイントが表示されている。

結局これで何ができんの?

これ単体で何ができるってことはない。ただ使いみちは結構ある。

1個目の画像からは、全ての端末がどのアクセスポイントに接続してるかわかるため、ターゲット決めて中間ネットワークにおびき寄せるとか、知らんけど。
2個目の画像からは、MACアドレスをランダムに変更する端末があっても、必ず一意のネットワークに接続する端末がわかるため、MACアドレスをランダム化する端末を特定できる。

まあつまり今はまだ使いみちはよくわからん。が、場面で必要になることがあるんだろう。きっと。

終わり

中で何やってるかわからないけど気持ち高めるためにまずツールから入るってのはめっちゃいいよね、楽しいもん。
興奮する上で一番大事なのは全部CUI上で完結するってところ。黒い画面でカタカタやるのってなんか興奮するよね。
kaliを構築し直してから必要なツールがスイスイ入るようになってとっても捗る。

参考

https://www.wonderhowto.com/