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

Windowsの「God Mode」を悪用して実行ファイルを隠蔽するマルウェア、名前に予約語を使って削除も回避 38

ストーリー by headless
秘密 部門より
WindowsのCLSID(GUID)の中にはフォルダー名に拡張子として設定することで、特殊なフォルダーやコントロールパネルなどとして機能させることができるものがある。この機能を悪用して、攻撃用のファイルを隠蔽する「Dynamer」と呼ばれるマルウェアが出てきているそうだ(McAfee Labs Blogの記事Softpediaの記事)。

こういったCLSIDとしては、コントロールパネルの全ページをまとめた「God Mode」と呼ばれるフォルダーを作成可能な「{ED7BA470-8E54-465E-825C-99712043E01C}」がよく知られている。特殊なCLSIDを拡張子に設定したフォルダーをエクスプローラー上でダブルクリックすると特殊フォルダーやコントロールパネルが開かれ、フォルダーの内容にアクセスすることはできなくなる。ただし、フォルダーに格納したファイルのパスを直接指定すればアクセスは可能だ。Dynamerはこれを悪用して実行ファイルを隠し、レジストリの「HKCU\SOFTWARE\Microsoft\Windows\run」にパスを指定してログイン時に自動実行するのだという。

Dynamerは「%appdata%」フォルダー(C:\Users\<ユーザー名>\AppData\Roaming)に「com4.{241D7C96-F8BF-4F85-B01F-E2B043341A4B}」という名前のフォルダーを作成し、実行ファイルを格納する。このCLSIDはコントロールパネルの「RemoteAppとデスクトップ」に該当するものだ。フォルダーのベース名が「com4」となっているのは、簡単に削除できないようにするためだという。「com4」はエクスプローラーやコマンドプロンプトからデバイス名として扱われるので、この名前のフォルダーは削除できない。

ただし、UNCパスでフォルダーを指定すれば「rd」コマンドで削除することは可能だ。つまり、コマンドプロンプト上で「rd \\.\%appdata%\com4.{241D7C96-F8BF-4F85-B01F-E2B043341A4B} /s /q」のように入力して実行すれば削除できるとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by BIWYFI (11941) on 2016年05月03日 20時22分 (#3007155) 日記

    パスやら何やらで、勝手に挙動を変えるエクスプローラだけじゃなく、純粋にファイルを扱うだけの「只のファイラー」を標準添付して欲しいな。
    //作ろうと思って早10年以上...

    --
    -- Buy It When You Found It --
    • by caret (47533) on 2016年05月03日 21時14分 (#3007167) 日記
      ファイル マネージャが復活したらいいなぁ。Windows NT 4.0 のやつじゃ、ユーザー アカウント制御 (UAC) とかファイル システム リダイレクタあたりに難がある。
      親コメント
    • by Anonymous Coward

      作ればよくね?と思ったけど意外と面倒なのかもしれないなぁ。

      # そういう意味ではVB6.0のドライブコントロールとかファイルコントロールとか使いやすかったw

    • by Anonymous Coward

      言える。
      Explorerもそうだけど、OSXのFinderもゴミレベル。
      どっちも入れ替えたい。

    • by Anonymous Coward

      そんなもんいっぱいあるやん。
      http://www.vector.co.jp/vpack/filearea/win/util/file/filer/ [vector.co.jp]

      大して使われてないってことは、結局需要がないんでしょう。

      #昔はFileVisorとか使ってたなあ…。

      • by BIWYFI (11941) on 2016年05月04日 15時34分 (#3007294) 日記

        通常のファイル操作に関しては、エクスプロー他が十分以上に使えるから、サードパーティの出番は無い。
        だから、「標準」で欲しい訳。
        regeditに対する、reg.exeみたいな存在かな?
        もう少し機能が欲しくは有るが。

        --
        -- Buy It When You Found It --
        親コメント
    • by Anonymous Coward

      ファイラって、別ユーザーで実行すると簡易suにもなるのも便利ですよね。

      Windows10になって、 日本語の問題があり管理者ユーザだけど
      Win7の時は制限ユーザだったので重宝していました。
      僕はXFなので、 求められている物よりは高機能になっちゃうかもですが、おすすめです

  • by caret (47533) on 2016年05月03日 17時12分 (#3007094) 日記
    type NUL > com[0-9] で 0 バイトの com[0-9] ファイルを作成することを試みたら、com0 は問題なく作成できて削除もでき、com1 はエラー メッセージは出ないが作成されてなくて、com[2-9] は "指定されたファイルが見つかりません。" とエラー メッセージが返されて作成できなかった。
    そんなに簡単に悪いことはできないみたいだ。
    • by Anonymous Coward on 2016年05月03日 17時47分 (#3007099)

      作る方も md \\.\%appdata%\com[1-9] でできる。
      あと、「UNCパスで」というのは文字通りの意味で、ネットワーク共有経由だと com[1-9] も普通に作れる(しかし作られたローカル側からは簡単に削除できない)というバグだか仕様だかわからないような動作がある。
      Windows 10 Anniversary Updateなら、bashから作る/消すという手もあるな。

      親コメント
      • by Anonymous Coward

        う!

        とりあえず
        sudo rm -rf /
        してみな

        とか言い出すバカと騙されるバカがまた湧きそうだな
        この間ネタになってたから警告無視してやらかすバカは少ないと信じたいけど
        それらしく# *com[0-9]とかつけてると#がコメントアウトだと知らない層は騙されそうだし

        • by Anonymous Coward

          WSLでそれやってもなぜか /mnt/c 以下は消えないようだ(ただし rm -rf /mnt/c するとアウト)。あとあくまでInsider Previewのあるビルドで試してみたらそうだったという話なので、当てにしないほうがいいと思うが。

    • by kei100 (5854) on 2016年05月03日 21時36分 (#3007172)

       com1はCOM1となって、シリアルポートが存在したので正常に開けたのでしょう。
      で、2~9は存在しなかったと。
      物理的に無くてもBluetooth等が仮想COMポートを持っていてそちらが該当する事が有ります。
      # COM9より大きいCOMポートを使いたい時は"\\.\COM10"のようにすれば使えます。
      # 他にもドライブレターのないUEFIパーティション等をdir "\\.\Harddisk0Partition3\efi"(環境により異なる)で覗いたりとか出来るので少し便利。

       尚、Win32のデバイス名前空間の\\.\前置詞で消せない場合は、\\?\を使えば消せます。
      例えば256文字を超える長いパスや末尾が空白で終わるファイル名は"\\.\"で開始しても消せません。
      # 後、\\.\~はUNCパスじゃない気がするのですが、どうでしたっけ?

       この辺の通常では消せないAUXやCOM1やLPT1といった予約ファイル名のリストや、上述の\\.\や\\?\の存在に関してはMicrosoftのドキュメントに書いてあります。 [microsoft.com]

      親コメント
  • by Anonymous Coward on 2016年05月03日 18時30分 (#3007115)

    すらどの諸兄であればリンクは不要だろう

  • by Anonymous Coward on 2016年05月03日 18時33分 (#3007116)

    親フォルダへのシンボリックリンクよる循環参照をすると、なぜかexplorer.exe内で検索をかけても見つからないようになるバグがあったけど、それと同じぐらい恐ろしいですね。
    あと、地味に文字列の方向を右から左に変えて「a.exeを」を「exe.a」に見せちゃうやつとか、併用されると恐ろしい。このへんの対策もぜひウイルス対策ソフトに頑張ってもらいたい。
    あと、*.comって*.exeと同等の実行可能ファイルだよね。

    • RIGHT-TO-LEFT OVERRIDE (RLO, U+202E) を使うやつだよね。本来はアラビア文字やヘブライ文字など右横書きのサポートのためにあるやつ。
      NTFS の名前付きストリーム (代替データ ストリーム、ADS) もよく使われていたような。Resilient File System (ReFS) では廃止されたけど、現状では Windows Server のみ正式サポートされているファイル システムだし、現状 Windows には関係ない話だ (Windows 8.1, Windows 10 でもレジストリ エントリの値の操作により有効には出来る)
      親コメント
      • by Anonymous Coward

        > Resilient File System (ReFS) では廃止されたけど、

        それは認識が古い。Windows 8.1/Windows Server 2012 R2のReFSでは復活した。ただし128KBまでという制限付き( 参考 [bakins-bits.com])。MS自身がZoneIdとかに使っていて困ったのが復活の理由だろう。しかしIEのお気に入りがfaviconにADSを使っていて、最近のfaviconは128KBを超えることもあるのでIEのお気に入りフォルダをReFSボリュームにコピーできないという現象が相変わらず発生したりする(上記リンク先からの受け売りだが)。

        今のところReFSはシステムボリュームにできないけど、システムボリュームではWinSxSフォル

        • Resilient File System の概要 [microsoft.com] より

          クライアント オペレーティング システムで ReFS を使用できる

          Windows 8.1 では、コントロール パネルのミラー化記憶域スペースを使用して、記憶域を ReFS としてフォーマットすることができます。 また ReFS では、代替データ ストリーム (Windows 8.1 と Windows Server 2012 R2 のいずれにおいても最大 128 K) を使用して、Office ドキュメント サムネイル、Mark of the Web (MOTW) のほか、Windows 8.1 で利用できる同様の機能を有効化できます。

          最大 128 KB までの代替データ ストリームのサポートは知らなかった。それと、ミラー化 (双方向ミラー, 3 方向ミラー) された記憶域スペースのみ、ReFS でのフォーマットが Windows 8.1 でも正式にサポートされているようだ (Windows 10 も同様 [microsoft.com])。
          それ以外では、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT に DWORD (32 ビット) 値で AllowRefsFormatOverNonmirrorVolume を作成して値のデータを 1 にすればフォーマットできるようになる。
          ただし、この値が存在するとイベント ビューアーがエラーが出て利用できなかったり、いろいろと不具合があるらしい (ReFS でフォーマットしたあとに値を削除すれば良い、らしいけど)

          親コメント
    • by Anonymous Coward
      > あと、*.comって*.exeと同等の実行可能ファイルだよね。

      MS-DOS/Win9X 系では実行ファイルの拡張子だが NT系の Windows の場合は、そうなってない。
      exe と com はファイルフォーマットも違うし、ロード/実行の流れも違う。
      • そうなんですか?
        *.exeを*.comに拡張子を変更しても動いてしまうことが「同等」ということです。

        親コメント
        • .pptでも.docでも.xlsでもオッケーで、果ては.txtでも実行されたらどうしよう。

          // 64bit環境だったら .com は動かないと信じている人にも救済策を。

          親コメント
          • by Anonymous Coward

            カーネルレベルでは拡張子関係ないよ。シェルが*.com *.exe以外は自動的に実行ファイルとして実行しないだけ。

          • by Anonymous Coward

            64ビット版Windowsにもmore.comが入っている件…

            • by Anonymous Coward

              元々のcomはヘッダーがついてないけど
              Windowsで動くcomは実態はexeで名前だけcom。

              comはexeよりも実行時の優先順位が高いから
              moreではmore.comを最初に起動してそこからmore.exeを起動するみたいになってたはず。

              ちなみにWindowsのexeは(DOSのexe情報の後ろにWindowsのexe情報が入ってる)拡張されたexe。
              今となってはもうないだろうけど
              一つの実行ファイルにDOSプログラムとWindowsプログラムを入れることができる。
              (通常は「これはWindows用です」とか表示するDOSプログラムが入ってるが)

        • by Anonymous Coward

          それはMS-DOS時代からの伝統。
          .comと.exeは実質的に等価。

          ちなみに内部的には最初の2byteが'MZ'かどうかでいわゆる.exeなのかどうか判断してるだけ。
          だから.exeファイルの先頭の2byteを適当に書き換えると.exeファイルと認識出来なくなるし
          .comファイルでも意図的に先頭2byteを'MZ'とすればexe headerがついてると誤認識する。

      • by Anonymous Coward

        format.comを知らねえのかよお前

  • by Anonymous Coward on 2016年05月04日 2時45分 (#3007220)

    GODMODEって、そもそもなんで要るのだろう?

typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...