SCFファイルをGoogle ChromeでダウンロードさせSMB認証情報取得の攻撃
2017年5月21日 17:35
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に回答したとのことだ。