2012年09月25日

フィッシング+Cookieを利用したルータへのリモートログイン可能性

正規のルーター相手にフィッシングして、cookieで認証情報を抜く手段がありそう。
なお、実行可能な実装を見つけてない+検証できていないので話半分でお願いします。

オンゲやpaypalフィッシングは周知されてきたと言え、LAN内ルーター相手のフィッシングを想定している人はどれだけ居るだろうか?


kazuho氏がほぼ逆向きの提案(cookie fixで攻撃)をしていたので、もう少し検討してみた。
https://twitter.com/kazuho/status/250402829611712513

Cookie以外にも、成功確率はさらに低そうだが、時間をかけてブラウザのIP pinningさえ回避できれば BASIC認証でも攻撃できそう。(TTL式でないwindow単位pinningならすぐ抜ける?)

家庭用ルータ・モバイルルーターには、管理画面のセッション維持にBASIC認証とcookieを用いているものがあるorあった。手持ちのAtermはBASIC認証とhiddenでのCSRF対策だったが、他社の取扱説明書をみるとcookieを使っていた機種があるらしい。
ぐぐると、モバイルルータの管理画面でCookieを有効にするよう注釈があるPDFがいくつか出てくる。
http://mb.softbank.jp/mb/data_com/product/mobilewifi/101sb/pdf/101sb_userguide_04.pdf

手順
『このオンラインゲームを遊ぶにはルータ192.168.1.1のポート開放が必要』とでも言って、http://192.168.1.1.example.com/に誘導する。
192.168.1.1.example.comは192.168.1.1(推定したルータのデフォルトLANIP)を指している。

ユーザーが認証に成功すると(フィッシング成功時)、cookieが設定されてしまう(ルータ実装の脆弱性)

その後http://192.168.1.1.example.com/ (BASIC認証の場合)あるいはhttp://spy.192.168.1.1.example.com/ (クッキーの場合)を攻撃者サイトのIPを向けさせて、パスワードかセッションクッキーを秘密裏に盗み出す。

これを使えばWAN側管理画面からアクセスすることが可能になる。


前提条件としては、
・ユーザが多少変なドメインでもルータと信じて認証(フィッシング問題)
WAN側管理画面があってルータの機種が特定しうる
不正なHTTP Hostヘッダを受け入れる管理画面実装(Atermの去年の機種は通った)
・BASIC認証あるいはCookieベースの管理画面セッション管理実装
WAN側とセッションや鍵を共有している(わざわざ分離している実装がどれだけあるか疑問)

肝はフィッシング相手のルータは正規のものなのでログインシールの類は意味がなく、かつ手元にあってHTTPSが使えず、不自然なドメイン名に気づかない限りフィッシングと気づかれることが少ない点。特に最近のホームルータはFTPサーバ機能などがあるのでそこそこの価値がある。

……のだが、手近なところで前提条件を全部揃えたものが見つからなかったので、不可能ではないが厳しそう。特定の通信会社の社員など、ある程度絞れていれば狙えるかもしれない。何も考えずメーカ初期パスワードの桁数でブルートフォース試したほうが成功率高そう。

kazuho氏の指摘は逆に、先手を打ってサブドメインからモンスタークッキーを設定し、session fixationを起こす、というものを想定しているようだ。(ただやっぱりhostsファイルでなくDNS側で攻撃できるはず)


回避策
ルータ側でHostヘッダをチェックして、意図しないドメインだったら拒否する。

ただこの対策には問題があり、ルータのメーカ依存機能の一つ、DDNSでルータのWAN管理画面を表示できるようにする機能への対応が難しい。
Hostヘッダのホワイトリストを管理し、DDNSサービス側の変更にリスト更新なりファーム更新なりで追従する必要が出てくる。サポート的に問題となりそう。

共用WiFiルータみたいにhttpフックしてIPアドレスの管理・認証画面に飛ばしてくれるのもあるので、そういった奴は大丈夫そう。
posted by ko-zu at 18:59| Comment(0) | TrackBack(0) | セキュリティ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。