パスワードを忘れた? アカウント作成
13287140 story
Chrome

WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 29

ストーリー by headless
認証 部門より
Windowsのシェルコマンドファイル(.scf、SCFファイル)とGoogle Chromeの組み合わせにより、SMB認証情報を取得する攻撃手法をセキュリティ企業のDefenseCodeが公開している(DefenseCodeの記事Threatpostの記事The Registerの記事Softpediaの記事)。

SCFファイルはWindows 98で導入され、主にクイック起動ツールバーの「デスクトップの表示」で使われていた。SCFファイルの内容はINIファイルと同様のテキストファイルで、セクションごとに値の名前と値のデータの組み合わせが記述されている。ファイルのアイコンは「Shell」セクションの「IconFile」で指定するのだが、アイコンをUNCパスで指定した場合、アイコンの保存されたフォルダーをエクスプローラーで開く際に、指定されたリモートサーバーへSMB認証情報が送られる。そのため、攻撃者が自分の支配下にあるサーバーのIPアドレスを指定すれば、ターゲットのユーザー名とNTLMv2パスワードハッシュを取得することが可能となる。パスワードハッシュはオフラインでクラックするほか、SMBリレー攻撃に使用することも可能だ。

一方、Google Chrome側の問題は、デフォルトでファイルのダウンロード先を確認せずにダウンロードが実行される点だ。そのため、攻撃用に細工したSCFファイルのリンクをChrome上でクリックさせれば、ファイルがユーザーの「ダウンロード」フォルダーに保存される。このフォルダーをユーザーが開いた時点で、攻撃者はSMB認証情報を取得できることになる。Windowsのショートカットファイル(.lnk、LNKファイル)もSCFファイルと同様の動作をするが、ChromeではStuxnetの感染が問題になった際にLNKファイルをサニタイズする仕組みが導入されているとのこと。

SCFファイルを攻撃用Webサイトでホストしている場合、用心深いユーザーにクリックさせることは難しいが、Reflected File Download(RFD)攻撃を使用すれば信頼されるWebサイトのレスポンスに「Shell」セクションと「IconFile」を含め、SCFファイルとしてダウンロードさせることも可能だ。例では世界銀行のJSONデータを出力するWeb APIを利用している。通常は出力内容がテキストとしてブラウザーに表示されるのだが、表示できない文字(%0B)を含めることでChromeではファイルとしてダウンロードされる。なお、Internet ExplorerやMicrosoft Edge、Mozilla Firefoxではテキストとして表示され、ファイルが直接ダウンロードされることはなかった。

対策として、Chromeの自動ダウンロードを無効にする(「設定→詳細設定を表示→ダウンロード→ダウンロード前に各ファイルの保存場所を確認する」にチェックを入れる)ことや、インターネット上のSMBサーバーへのアクセスを禁止することなどが推奨されている。Windows 7以降ではSCFファイルがほとんど使われていないため、レジストリからSCFファイルの登録(HKCR\.scf)を削除しても問題ないかもしれない。DefenseCodeは本件をGoogleに通知していないそうだが、Googleはこの問題を認識しており、対応を進めているとThreatpostに回答したとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2017年05月21日 12時15分 (#3214519)

    これがChromeの脆弱性なの?

    そもそも最近流行りのSMB云々に関する脆弱性攻撃の根本的原因は、ほぼ100%がMicrosoftの責任だろう。
    具体的にいうと、これ系の脆弱性は10年以上前から、それも各所/各人から何度も何度も指摘されていて、
    それに対して「Windowsファイル共有はLAN内に対して提供するサービスなので、この脆弱性による影響力は極めて低い
    などと称してMSは特になにもせず、セキュリティfixを長年怠ってきた結果だろ。

    こんなもん仮に全てのChromeが次のアップデートか何かで「自動ダウンロード機能削除」に変更されたとしても、当の脆弱性は残り続けるんだから無意味だろ。
    ChromeでなくMicrosoftに抜本的な解決を依頼しろよ。それ以外ではどうにもならん。

    • by Anonymous Coward

      で、自動ダウンロード機能が削除されてどうやって攻撃すんの?

      • by Anonymous Coward

        「頭の悪い人は文脈から読み取れない。だから単語の議論をする」

      • by Anonymous Coward

        獣姦画像.zipみたいなファイルを公開する。獣姦画像.zip/icon.scfのような構造にしておく。
        何も知らずに解凍してフォルダを開いたアホが引っかかる。
        現状でもセキュリティに配慮している人はクロームでもダウンロードする前にファイル名などを確認できるようにしているので問題ないだろう。セキュリティへの配慮が足りない人は何やっても無駄。 そのうちセキュリティソフトが対応するだろうしセキュリティソフトの対応もかんたんだからまあもんだいないだろう。

    • by Anonymous Coward

      https://srad.jp/comment/3212343 [srad.jp]
      https://srad.jp/comment/3212395 [srad.jp]
      https://srad.jp/comment/3212425 [srad.jp]
      ユーザに無断で実行ファイルだろうがDLLだろうが勝手にダウンロードするってのは脆弱性と呼ぶに充分だと思う。

      • by Anonymous Coward

        うるせぇな、Googleに文句いうんじゃねぇよ
        Googleは何があっても正しいから全部MSが悪いに決まってるだろ

        って言いたかっただけでしょうから真面目に答えてもしゃーないですよ

  • by Anonymous Coward on 2017年05月21日 12時33分 (#3214522)

    ①Chrome はデフォルトで保存先を指定させずにダウンロードする
     (これは別に他のブラウザでもそうだし、設定次第ですね)

    ②レスポンスのテキストに %0B が含まれるとファイルとしてダウンロードしてしまう
     (これは Chrome だけの動き)

    ③細工した SCF ファイルを実行させることで攻撃者にユーザ名とパスワードハッシュが知られる
     (これは意図した動作ながら、Windows の問題)

    今回問題なのは②で、これだけは Chrome の問題だと思います(何故こんな実装になってるんだろう……)
    ただ根本的には③で、グローバルにアクセスするならその前に確認メッセージの表示とかあってもいいかもしれませんね。

    • by Anonymous Coward

      >③細工した SCF ファイルを実行させることで攻撃者にユーザ名とパスワードハッシュが知られる
      実行せずとも保存先フォルダを表示させるだけで情報送信されるってことじゃない?

      • by Anonymous Coward

        ご指摘ありがとうございます。
        再度読み直しましたが、ご指摘の通りです。

        > 実行せずとも保存先フォルダを表示させるだけで情報送信されるってことじゃない?

        フォルダを開いた時点でアウトということで、やはり根本的には Windows 側での対応が必須ですね。
        ZoneID ぐらいは見てくれているのだろうか……

    • by Anonymous Coward

      ②と③の間に入るはずの決定的かつ致命的な欠陥が抜けている。③も間違ってるがそっちについては他の人が指摘しているので省く。
      ①と②は正しい。レスポンスのテキストに %0B が含まれるとファイルとしてダウンロードしてしまうという使用に加えてデフォルトだとダウンロードスべきと判断したファイルを自動的にダウンロードする。一般的なブラウザならダウンロードスべきと判断したファイルをダウンロードするか確認してくる(どこにダウンロードするかは聞かないでダウンロード先を勝手に決めるが)。これがクロームの場合確認せずに自動的にダウンロードダウンロードする。
      そして細工されたSCFファイルをエクスプローラーが読み込んだ段階でSMB認証情報が漏洩する。
      つまりクロームのダウンロード関連の設定をデフォルトの設定で利用している一般人が細工されたSCFファイルへのリンクを開いた瞬間手遅れ。ダウンロードしてしまった場合はエクスプローラー以外のソフトでファイルを削除するしかない。エクスプローラーで削除するなら多分ユーザフォルダのダウンロードごと消すしかないな。

      • by Anonymous Coward

        まあ, エクスプローラーを使ったまわりくどい方法もあるにはあるかな.

        ネットワークを切断した状態でエクスプローラーで該当ファイルを消す.
        このとき,認証情報は送られそうになるが,ネットワークが切れているのでとりあえず防げる.
        そして,そのまま接続を回復すると良くない可能性がある(認証情報を送るのは windows だろうけど,繋がるまで再送を待ってる?)ので,いったんシャットダウン.

        こんなところでどうだろう?

      • by Anonymous Coward

        もうちょっとtypoなんとかして欲しいがw重大なリスクはそこか。
        Chrome以外のブラウザはデフォルト状態では、意図しないファイルのダウンロード前にユーザーが止めさせることができる。
        ダウンロードが完了してしまうと、この脆弱性を突かれていることに気付いていないユーザーは高確率で次のステップをクリアする。

        こりゃ自分もやられるな。
        Chrome的には、下部のダウンロードバーから要らないファイルはキャンセルしろなのかな…と思ったがダウンロード済みファイルを削除とかはできないのか。

        • by Anonymous Coward

          ふと思ったんだけどIEやEdgeのキャッシュフォルダとか大丈夫だろうか?
          拡張子をそのまま保持してファイル保存されていると思うのだが。

          • by Theia (47993) on 2017年05月22日 13時16分 (#3214869)
            恐らく大丈夫ではない。
            ただ、Explorerで開いては駄目なフォルダの意味が全然違う。

            ■Chromeの場合
            %USERPROFILE%\downloads

            ■IEの場合
            %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache

            ■Edgeの場合
            %USERPROFILE%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cache
            %USERPROFILE%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\Cache
            %USERPROFILE%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!002\MicrosoftEdge\Cache

            Chromeの場合日常的に開く可能性があるパス。
            IEの場合はインターネットオプションからパスが見えているがExplorerではそうそう開かない。
            Edgeに至っては設定画面ではパスの変更どころかどこに保存されているかの表示さえない。
            まあ要するにこのパスを調べた私みたいなのしか影響しない。
            親コメント
  • by Anonymous Coward on 2017年05月21日 13時51分 (#3214548)

    WannaCryの時もちょっと話題になったけれど、ルーター挟んでインターネットに接続している環境なら
    137-139とか445はアウトバウンドも大抵閉じられているから実害は無いのかな?

    • by Anonymous Coward

      どうせ社内だけの話だからなんでもいいやと思って、他のと同じパスワードにしているという可能性は?

      • by Anonymous Coward

        「パスワードはユーザー名と同じです」

      • by Anonymous Coward

        > どうせ社内だけの話だからなんでもいいやと思って、他のと同じパスワードにしているという可能性は?

        そんな可能性は考えなくてよい

        137-139とかが閉じられていればそもそもSMB認証情報が外部に送信できない。つまりSMB認証情報は漏れない。

        漏れないのに、漏れた場合とか、それが他のと同じパスワードだとか、そんな話は今回はオフトピックそのもの
        もう少し考えてからコメントしたほうがいいよ

        • by Anonymous Coward
          NATだとどうなるのだろう?
          漏れそうな気がするけれど。
          • by Anonymous Coward
            ルータが外向けに出すか出さないかの話だから、NAT かどうか関係なく、まともな環境で外部に出ることはありえない。

            問題になるのは、PC に直接モデムつないで通信するような奴だね。
            スマホの WiFi テザリングは問題なくとも、USBの 3G/LTE モデムで通信してる人は危ない。
            まぁ、そういう環境の人は、今回の件関係なく侵入されるリスクが高いのはわかりきってる事なのだから、対策はとってるはず。
    • by Anonymous Coward

      業務用だと Active Directory(135)をふくめて、開いているんじゃないかな。

      ちゃんとした企業だとVPNやSSLを利用するだろうけど。

  • by Anonymous Coward on 2017年05月21日 15時35分 (#3214573)

    SMBの認証情報の漏洩は他にもいくつか発見されててて今さら感があるが、攻撃事例も聞かない。
    チャレンジ-レスポンス認証の情報は通常覗き見られる前提で設計されるものだし。気持ち悪いけどね。

    この攻撃はSMB認証情報を組織ネットワークの外部から取得できることに意味があるが、
    それをするにはルータでSMBのポートを開いてないといけないので、これが通用するのはだいぶ間抜けな組織だろう。
    元サイトのRecommendationsで以下のように記載されているのがまさにそれで、通常の組織ではすでにやっていることだ。

    With the first two the goal is to prevent SMB traffic from leaving the corporate environment by blocking ports that can be used to initiate
    a connection with a potentially malicious Internet-based SMB server. When possible, SMB traffic should always be restricted to private networks.

    Windowsは牧歌的な時代に設計された機能が知らないうちに動いていて、いろいろ危なっかしいところもあるけども、これに関しては大したことはなさそう。

  • AnnivarsaryからNTLMハッシュを取り出す手順がまた少しややこしくなった。それ用のツールはあるにはあるけど、ウィルス対策ソフトが動いていると使えないし。ハッシュを受け取るサーバを用意するか、パケットキャプチャーをすればいいだけならずっと楽。皆どうしてるんだろ?

    しかしハッシュ関数がMD4のままなのに、暗号化だけ強化するってなんなんだろう。SYSTEMとSAMが同じフォルダにあるのに片方しか読み出さないとか、レジストリエディタが起動できるのに片方しかダンプしないなんてことあるのだろうか。

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...