セキュリティの観点からモスクワ地下鉄のWI-FIネットワークへのアクセスの組織

はじめに



この調査では、モスクワメトロワイヤレスネットワークの運用を一般ユーザーの観点から分析しました。 テストの一環として、Androidフォンが使用されました。 電話がネットワーク上で認証されたことがない場合は、限られた形式で考慮されます。



接続プロセス



WI-FIネットワークに接続すると、次のことが起こります。



デバイスとWIFIポイントの最初の関連付けが行われます。 次に、デバイスはGoogleサーバーとのTCP接続を確立します。



画像

図1:TCP接続の確立



次に、Androidスマートフォンは、GoogleサーバーにGETリクエストを送信して、ネットワーク認証の必要性を確認します。 答えが得られた場合-承認が必要でない場合、承認されていない場合-承認が必要であり、承認Webページへのリダイレクトが発生した場合、電話はそれを表示します。



画像

図2:認証の確認



次に、ゲートウェイは、要求されたサーバーの応答を許可ページへのリダイレクトに置き換えることにより、http要求に応答します。



画像

画像

図3:ログインページへのリダイレクト



次に、「インターネットに入る」ボタンを押します。 パッケージ自体は次のとおりです。プライベートセグメントからアドレスに移動することがわかります。



画像

図4:wi-fi.ru認証要求パケット



リクエスト自体は次のとおりです。



GET / HTTP/1.1 Host: wi-fi.ru Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; HUAWEI MT7-L09 Build/HuaweiMT7-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36 Referer: https://login.wi-fi.ru/am/UI/Login?org=mac&service=coa&client_mac=66-a0-f6-dd-d2-9e&ForceAuth=true Accept-Encoding: gzip, deflate, sdch Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: adfoxUserID=19:154848341; _ym_uid=1449217853212630314; _ym_isad=1; device_type=mobile; surf_prev_url=undefined; surf_curr_url=http://wi-fi.ru/; crtg_rta=; _mtp=0:ijk1njsr:69XJtN~ZNVIaYHb4OT3NHAOjPvLS50k4; _ga=GA1.2.1994719851.1449217854; amlbcookie=01; t=AQIC5wM2LY4SfcxCV1htnKzHF3mtmXJCDcvGniOTgqxvUMc.*AAJTSQACMDIAAlNLABQtNTkwNDE0MjY2MjYxNzMzMzgwOAACUzEAAjAx* If-None-Match: W/"74f5335bcd0524bfcd031469fc9c52e5"
      
      





分析



デバイスのMACアドレスもパラメーターとして送信されることがわかります。 これは、ケシのアドレスが識別子であることを示唆しており、それによって、ネットワークがインターネットの代金を支払ったかどうかを認識します。 アドレスlogin.wi-fi.ruおよびwi-fi.ruは、パブリックインターネットからも含めて使用できることに注意してください。 これにより、MACアドレスのステータスを確認できます。 次のようになります。



地下鉄になかったMACアドレス:



画像

図5:地下鉄に乗ったことがないMACアドレス



インターネットが支払いをしなかったMACアドレス:



画像

図6:MACはインターネットの料金を支払わなかった



インターネットが支払ったMACアドレスはエラーページに到達しますが(ネットワーク内にないため)、自動的にwi-fi.ruにリダイレクトされます:



画像

図7:接続エラー



画像

図8:正常な接続



承認中に、サーバーはページに接続するMACアドレスのタイプを提供することが判明しました。



画像

図9:MACが属するグループ



特に、mosmetro_premiumがグループに登録されている場合、有料インターネットの幸せな所有者であることがわかります。



テスト



さまざまなタイプのMACアドレスの検索を自動化するために、Pythonスクリプトが記述されました: https : //bitbucket.org/hollow1/metro



その助けにより、いくつかの「有料」アドレスが見つかりました。



画像

図10:有料アドレス



また、実験目的で、地下鉄で直接、テストデバイスのMACは「有料」に置き換えられました。



 sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx
      
      





そして、登録とSMSなしですべてが正常に起動しました。



All Articles