KRACKs に思う。

巷では KRACKs が大人気なわけですが、Open な公衆無線LAN環境(スター〇ックスさんとかとかとか)や、PSK が壁に貼ってある公衆無線LAN環境が多い状況で、なんだかなぁ。と思ってしまう今日この頃です。

 

waraiotok0.hatenablog.com

 

エンプラにも効くという点では、もちろん状況は違うけれども。でも、ほら、物理的に隣接(ry

 

脅威は正しく理解して、適切に怖がることができたら素敵ですが、普段からそんなこと気にしない人々には、そんなことを求めるほうが間違っているわけで。メディアや専門家には、ぜひ無駄に煽ることのないような情報を展開して欲しいですよね。

 

技術的には面白いので PoC にたどり着いたら、ぜひ挑戦してみたい(^^

 

BRs

WPA2-PSK (AES) の PSK 解析

// WEPについては、最近人気の AP はどの程度安全なのか - waraiotok0’s note の末尾を。

 

解析に利用できるツールはメジャーなところは、、、こんなところ? 今回は伝統的(?)な aircrack-ng で検証しました。

  • aircrack-ng : 最もオーソドックス、WPAのハンドシェイクのパケットを入手後に辞書と合わせてつど計算しながら頑張る
  • coWPAtty, pyrit : あらかじめ SSID と辞書からレインボーテーブルを作るので、SSID がわかっている場合は高速
  • reaver : WPSの解析にも対応、WPA2-PSK は辞書不要(時間がかかるっぽい)
  • HashCat (oclHashcat) : GPU対応、高速

 

基本的な流れは、こんな感じです。

  1. 対象とするアクセスポイントをモニタ
  2. 接続中の端末を強制的に disconnect してWPAの4ハンドシェイクのパケットを入手 (または、誰かがつなぐまで待っても良い)
  3. 辞書と頑張って突合する

 

辞書はここの辞書を使用。集録は 1,430万強ですが、一部がマルチバイト(?)で認識されず、ツール上での認識は 9,822,769 となりました。

 

一般的なものは割と網羅されている。 > password を含むものや、キー配列、watashi(私)のような日本語も

f:id:waraiotok0:20170829131206j:plain

 

周囲の無線LANをモニタしてターゲットの SSID を確認後に、そのアクセスポイントと接続端末間の通信のパケットをキャプチャしながらハンドシェイクを待つ。通常は目立たないようにパッシブの方が良いが、アクティブで disconnect してしまうのもあり。

f:id:waraiotok0:20170829131230j:plain

 

ハンドシェイクのパケットさえ入手できていれば、解析は現場から離れていても、オフラインであっても可能。 あとはひたすらヒットすることを祈る。

f:id:waraiotok0:20170829131313j:plain

 

運よくヒットすれば、こんな感じ。 この検証では 34 分ほど(辞書の73%まで進んだあたり)でヒット。

f:id:waraiotok0:20170829131330j:plain 

ちなみに、もう少し絞ることができるのならば、必要なものだけを辞書から引っ張りだしておいて、高速でヒットさせることはできるが、、、、 あまりないか。

 

以下の検証は辞書から Pa または pa で始まるパスワードだけを抜き出した list.txt で解析。明らかにデータサイズも小さいし、そりゃ高速ですわ。

f:id:waraiotok0:20170829131356j:plain

 

以上、備忘録。

 

BRs,

最近人気の AP はどの程度安全なのか

※本調査は 2016 年の夏に実施したものです^^

~~~~~~~~~~~~~~~~~~~~~~

みなさんもご家庭で無線LANの環境を整えているとは思うのですが、量販店等で売っている AP は初期状態でどの程度、安心、安全なのかを調べてみました。今回調査の対象としたのは、Amazon価格.com の売れ筋を確認し、以下の 2 つ。

 

 

提言については、後半に記載しますが、簡単に言うと、Aterm さんは Baffalo さんに比べて多機能で好印象。ただ、WEP がユーザも気づかない状態で使える状態になっているのは今すぐ止めた方が良い。

 

では、引き続き。 

 

今回は箱出し状態からの初期設定のみとして、その状態で利用することを念頭にしています。

 

// それぞれのラベルに印刷されている情報

f:id:waraiotok0:20170829122903p:plain// 設定をひたすらスクショした図 (涙ぐましい努力)

f:id:waraiotok0:20170829123005p:plain 

ラベルからの気づき

SSID にメーカ名あり

SSIDMACアドレスの一部を利用

・PSK はアルファベット小文字 13 文字(26^13)

 

 「War Driving での気軽な調査をしてみた記録 - waraiotok0’s note」と照らし合わせてみると、実ユーザもそのまま使ってる模様。

 

f:id:waraiotok0:20170829123745p:plain

 

GとAは近いMACを持つので、「MACアドレスを含むSSIDのリスク - waraiotok0’s note

」の問題はあるかもしれないが( Baffalo の AP は SSID の書式を変更したのか、という気づきも)、SSID のみからMAC の全体を把握するのは難しいので、ラベルのスクショを公開した程度では大丈夫そう。

 

SSID にメーカー名あり

・PSK は以下の記述あり(16^13)

f:id:waraiotok0:20170829123900p:plain

 

同じく War Driving の結果と照らし合わせてみると、やはりそのまま使っている。

 

f:id:waraiotok0:20170829123806p:plain

 

一方で「g に w」がついた WEP が多く確認されている。 これは何?(後述)

管理画面

初期値は安定の admin/admin

f:id:waraiotok0:20170829123947p:plain

 

 

初期 PW はなく、初回アクセス時に決める必要がある。ただ、長さなどに制限がない。お

f:id:waraiotok0:20170829124013p:plain

無線LANの設定

初期設定は WPA2-PSK の AES なので、望ましい状態。ANY接続は許可、つまり SSID のステルスは利用していない。 (このままでよい)

 

WEPは初期設定では OFF になっている。前述の War Driving の結果とも整合性がある。

f:id:waraiotok0:20170829124046p:plain

 

初期設定は WPA/WPA2-PSK の AES なので、望ましい状態。SSID ステルス機能はは利用していない。 (このままでよい)

f:id:waraiotok0:20170829124124p:plain

ところで War Driving の結果で出てきた「gw」は何者か?

ドロップダウンを確認したら、、、   いた。

f:id:waraiotok0:20170829124158p:plain

 

ラベルにも記載がないステルスモードで動いている WEP という、誰得?な隠し設定。

一応、NW分離とセパレータが ON で固定とはいえ、、、。 ユーザが気づかないところで。

さらに、この情報は状態一覧(サマリ)にも記載がないのは、、、 よろしくない。

ということで、WEPのパスフレーズの解析を行ってみた。(結果は本スレ後半で)

ゲスト用SSID 特になし

ラベルには記載があるが初期設定では OFF。

ON にした場合、NW分離とセパレータが初期値で ON となるようになっている。

f:id:waraiotok0:20170829124220p:plain

 

NW分離

隔離機能は初期設定では OFF (「無線LANの設定」のスクショ参照)

つまり、異なる SSID 間での通信が許可されている。

ネットワーク分離機能は初期設定では OFF (「無線LANの設定」のスクショ参照)

つまり、異なる SSID 間での通信が許可されている。

セパレータ

初期値は OFF、つまり無線機器同士の東西通信は可能。

f:id:waraiotok0:20170829124353p:plain

 

 

SSID内分離は初期設定では OFF (「無線LANの設定」のスクショ参照)

つまり無線機器同士の東西通信は可能。

WPS

WPS は初期値で ON (初期の PIN はラベルにも記載あり) 

f:id:waraiotok0:20170829124415p:plain

AOSS も初期値で ON

f:id:waraiotok0:20170829124443p:plain

 

WPS は初期値で ON (初期の PIN はラベルにも記載あり)

f:id:waraiotok0:20170829124459p:plain

 

らくらく無線スタートも初期値で ON (っぽい、ON/OFF の設定どこ、、、)

f:id:waraiotok0:20170829124508p:plain

 

 

MACによるACL

初期値は OFF

MAC の接続制限は悪意あるユーザには意味がないので、これで問題なし。

f:id:waraiotok0:20170829124526p:plain

 

初期値は OFF (「無線LANの設定」のスクショ参照)

MAC の接続制限は悪意あるユーザには意味がないので、これで問題なし。

ファイアウォール

ファイアウォール機能

f:id:waraiotok0:20170829124544p:plain


IPフィルター

f:id:waraiotok0:20170829124558p:plain

 

VPNパススルー

f:id:waraiotok0:20170829124607p:plain

 

パケットフィルタ機能

f:id:waraiotok0:20170829124650p:plain

 

 

 

その他のセキュリティ設定

特になし

ちょっとした機能が実装済み。

f:id:waraiotok0:20170829124725p:plain

 

ファミリースマイル設定 (追加費用で利用可能なコンテンツフィルタ機能)

https://121ware.com/product/atermstation/special/siteblock/fs/

f:id:waraiotok0:20170829124755p:plain

 

FirmWare

更新は手動が初期設定、ぜひ初期は自動更新にして頂きたい。

 

f:id:waraiotok0:20170829124851p:plain

更新は手動が初期設定、自動化にしたいですね、やはり。

あと、時間の指定ができるのが好印象。

f:id:waraiotok0:20170829124913p:plain

 

番外編:

PSKが、、、

PSKがサマリにそのまま書いてある。設定画面では伏せ文字(●●●●●●)なのに。

例えば、ゲストに PSK を隠しつつ設定をしたとして、管理画面に admin/admin で

ログインしてしまえば、PSK が見えちゃうことになる。

f:id:waraiotok0:20170829124937p:plain

 

伏字にした方が良いと思うが、、、(「無線LANの設定」のスクショ参照)

一般ユーザの利用を考えた場合は、見えた方が良いのか? (セキュリティとUXのバランスとは)

いや、でも SOHO や店舗利用もあるし、やっぱり伏せた方が良いかと。

 

Aterm のAP でひっそり ON になっているステルスSSIDのWEPですが、一定の時間で PSK の解析は可能でした。SSID のステルス化は、悪意のあるユーザにはほぼ無意味。画面にあるようにすぐに ESSID は判明し、すでに利用中の端末がいる場合は、その通信から一定の IV を稼ぐことができれば OK 。

ただ、この WEP ですが、ユーザ自身も ON になっていることを認識していない可能性が高く、利用していない可能性が高いような気がします。つまり、PSK の解析のための IV を稼ぐためには自分で頑張る必要がある。とはいえ、ちょっと頑張れば IV を一定量確保できるので、現実的なレベルで時間を使えば踏み台としては使えることになる。

 

実際には利用されていない可能性も高いが、設置者が気づき難いのにリスクだけある、という点で、Aterm の初期設定は見直されることが望ましいと感じる。

 

f:id:waraiotok0:20170829123330p:plain

 

感想と提言

  • SSID 可能ならばランダムであるとよいが、一意にするため MAC アドレスにするのはリスクがあるので、UXを考えると現状の程度がバランスが良いと言えそう。
  • PSK はあまりに複雑にするとユーザが簡単なものに変えてしまう恐れがあるのが、小文字 + 数字(で 13 文字以上)がバランスがよさそう。
  • 管理コンソールのパスワードは、Aterm の実装が望ましい。一方で、パスワードには一定の制限(長さと種類)を設けるとさらに良い。
  • WEP に関しては、初期状態では OFF にすべき、特に Aterm の実装は見直した方が良い。War Driving の結果から、実際に気付かずに WEP が使える状態の環境が多そう。
  • NW分離やセパレータについては、初期状態で納得感がある(ゲスト用や WEP を使うときには、初期状態が ON になっている点等)
  • WPS やその他の自動接続設定は、セキュリティリスクを考えると必要な時にだけ ON すべき(APに物理的にアクセスできると誰でも使える)。 が、一般向けだとやはり初期値 OFF は難しいか(UXの悪化)。
  • 全体的にネットワークに接続済みの端末(の利用者)には悪意がない、といった実装になっているので、そこは実装を見直すべき。

 

 

 

NotPetya と 脆弱性 CVE-2017-0199 の関係

NotPetya のインシデントが世間をにぎわせた当初、エントリポイントのひとつとしてメールに添付された Word ファイル(CVE-2017-0199 を悪用)といった話があったので調べてみていた。

 

結果的に無関係との判断に達したが、すっかり記録を残すのを忘れていたので備忘録に追加。

 
問題のファイル:
Order-20062017.doc(101cc1cb56c407d5b9149f2c3b8523350d23ba84)
 
実行すると「hxxp://84(.)200(.)16(.)242/myguy.xls」にアクセスする。
myguy.xls(736752744122a0b5ee4b95ddad634dd225dc0f73)

f:id:waraiotok0:20170720141431j:plain

 

この xls ファイルは実態は hta ファイルで、

f:id:waraiotok0:20170720143644j:plain

実行すると PowerShell が呼ばれる。

f:id:waraiotok0:20170720143732j:plain

 

 アクセス先は「hxxp://french-cooking(.)com/myguy.exe」で調査時点では 404。

f:id:waraiotok0:20170720143824j:plain

 

ここに置いてあったのは、

myguy.exe(9288fb8e96d419586fc8c595dd95353d48e8a060)

// VirusTotal, PayloadSecurity, Malwr

f:id:waraiotok0:20170720144034j:plain

Unpack 後は 96240c41c656fc786ab8cf50926c1140e24726c9

 

アクセス先は「hxxp://coffeinoffice(.)xyz/cup/wish.php」のようだが、 調査時点で名前解決が不能。

# VirusTotal

f:id:waraiotok0:20170720144044j:plain

f:id:waraiotok0:20170720144100j:plain

 関連する IP アドレスは「111(.)90(.)139(.)247」となっているが、それ以外にも「72(.)5(.)65(.)111」や「146(.)112(.)61(.)107」との関連も疑われる。
 
これらの情報をもとに調査をしても、結果的に NotPetya にはリンクしなかった。
 
// 参考情報
NotPetya : 9717cfdc2d023812dbc84a941674eb23a2a8ef06
NotPetya : 34f917aaba5684fbe56d3c57d48ef2a1aa7cf06d

War Driving での気軽な調査をしてみた記録

実際のところ、無線 LAN のアクセスポイント(AP)の状況ってどんな感じなんだろうということで、通勤中に AP の情報を集めてみました。今回、利用したのは簡単に入手が可能な Windows 向けフリーソフトWirelessNetView)です。これを Windows タブレットに入れて出勤しました。

 

f:id:waraiotok0:20170710140352j:plain

f:id:waraiotok0:20170710140426j:plain

f:id:waraiotok0:20170710140436j:plain

合計で 2,132 の AP を記録できました。

 

Open(暗号化を行っていない) 389
WEP 194
WPA TKIP 11
WPA2 TKIP 13
WPA AES 67
WPA2 AES (WPA2 パーソナル) 1,149
WPA2 エンタープライズ 309

 

Open の AP が多くありますが、ほとんどがキャリアや店舗などが提供しているAP(001softbank, atre_Free_Wi-Fi, at_STARBUCKS_Wi2 など)です。

 

Open の AP のリスクとしては Evil Twin(偽AP)がありますが、これは別途検証中。

 

思ったよりも WEP の利用があり、全体の 9.1 % で、通信キャリア提供や WPA2 エンタープライズ等の個人管理以外を除くと割合はもっと高くなりそうです。

f:id:waraiotok0:20170710140656p:plain

 

MACアドレスでソートして確認すると、マルチSSID対応の機種を利用中の個人が、そのまま WEP を ON にしているような感じが見受けられます。

 

最近の AP の多くは初期状態での WEP が OFF になっているケースが多いのですが、実情としてはまだまだ踏み台の危険性がある AP が多いようです。

f:id:waraiotok0:20170710140608p:plain

 

 

WEP については OFF にする(提供ベンダはデフォルトOFFで)、どうしても利用する場合は、せめて「東西通信の禁止(プライベートセパレータ)」や「ネットワーク分離機能」の利用はしたいところです。

f:id:waraiotok0:20170710140732g:plain

 

また、割とステルス機能を使っている AP も多く見受けられました。が、セキュリティ上はあまり意味がないのが実情です。

 

特に Open や WEP でステルスというのは、、、、 いかがなものか。

f:id:waraiotok0:20170710140506p:plain

 

個人利用であれば、以下の点を考慮さえしていれば、必要十分です。

  1. WPA2 PSK を利用する(ただし、よくあるパスワードは避ける

     十分に強度のあるパスフレーズを利用する(13文字、大文字,小文字,数字を混ぜる、できれば記号も)

  2. AP の管理コンソールの ID と PASSWD は初期値から変更する(IDは変更できないケースが多いが)
  3. 必要に応じてネットワーク分離機能を利用する

 

 結構、面白いネーミングの AP があって大喜利っぽくて面白かった。

 

BRs,

MACアドレスを含むSSIDのリスク

iPad など GPS 機能がない(Wi-Fi 機能のみの)デバイスの場合でも、大体の位置が地図上でわかりますが、仕組みとしては近くの Wi-Fi スポット(AP, アクセスポイント)の MAC アドレスなどから位置を確認しています。

 

ちなみに、この座標と AP の MAC の相関は自動で収集されていたりします。で、その利用例として、Google では Google Maps Geolocation API を提供しています。

https://developers.google.com/maps/documentation/geolocation/intro?hl=ja

 

f:id:waraiotok0:20170706104236p:plain

 

この場合、必須となるのは AP の MACアドレス(が 2 つ)です。例えば、以下の例では同じ AP が複数の MAC アドレスを持っています。

f:id:waraiotok0:20170706104353p:plain

 

確認すると、物理的なだいたいの位置が判明します。

f:id:waraiotok0:20170706104437p:plain

 

ここで注目をしたいのが、上の赤で囲んだ部分。複数のMACアドレスが近い値の MAC アドレスを有しています。この性質を利用すると、1 つ MAC アドレスがわかれば、"判明しているMACアドレス + 最後の文字だけ 0~F で変更したMACアドレス" などで、もう 1 つの MAC アドレスを推測することで、2 つの MAC を用意することができます。

 

ベンダーによって変化する値は少し違いますが、外れても何度か繰り返せば、当たることはよくあります。

 

で、ここからがリスクとなり得る事象ですが、家庭用の AP であっても機器によってはこれと同じ性質を持っています。また、機器によっては MAC アドレスを含む SSID がデフォルトの SSID だったりします。例えば、こんなケース。

f:id:waraiotok0:20170706111045j:plain

 

同じようなことをすると。

f:id:waraiotok0:20170706110821p:plain

ただ、この情報が本当にこの AP の存在する住所を示しているかは不明です。

 

いずれにしても、SSIDMAC を含めることに大きなメリットはありませんので、やはりSSIDは変えておくのが良い気がします。

 

ちなみに、Google さん他の AP の情報収集をオプトアウトする方法(SSID の末尾に _nomap を付ける)もありますので、必要に応じて利用すると良いかもしれません。

Google の位置情報サービスでアクセス ポイントを設定する - マップ ヘルプ

 

 

で、最後に今回の AP の MAC アドレスですが、実はとある SNS のサイトで質問者の方がアップしていた画像です。

f:id:waraiotok0:20170706104638p:plain

この人の場合はデフォルトの PSK や WPS の PIN、管理コンソールのユーザ名とパスワードも写してましたけど、、、。不用意にもほどがある感じです。この写真を撮らせた人が悪い人でない事を祈るばかりです。

 

BRs,

PIXEL FOR PC AND MAC

PC 向けのラズパイ。 基本的な Linux のコマンドや Python は使えて、コンパクト。 検証環境用にいろいろ捗るかも。 とりあえず、vBox の中で快適に動作中。

https://www.raspberrypi.org/blog/#pixel-pc-mac

http://jp.techcrunch.com/2016/12/23/20161222raspberry-pis-pixel-for-pc-and-mac-breathes-new-life-into-old-computers/

 

f:id:waraiotok0:20170703105217p:plain

f:id:waraiotok0:20170703105258p:plain

 

BRs,