2019年03月31日

ASUS製PCの自動アップデートツールに埋め込まれたマルウェア(Operation ShadowHammer)の解析

 ASUS社のWindowsパソコン用自動アップデートツール「ASUS Live Update Utility」に埋め込まれたバックドア(Operation ShadowHammer)を解析してみました。

検体情報および解析環境


[検体情報]
  • ファイル名: Liveupdate_Test_VER365.zip
    ハッシュ値(SHA256): bebb16193e4b80f4bc053e4fa818aa4e2832885392469cd5b8ace5cec7e4ca19

  • ファイル名: Setup.exe (上記ZIPに格納されているファイル)
    ハッシュ値(SHA256): 9a72f971944fcb7a143017bc5c6c2db913bbb59f923110198ebd5a78809ea5fc
[解析環境]
  • Windows7 Home Edition SP1 32bit版(VMwareWorkstation仮想マシン)
  • IDApro
  • OllyDbg

解析の方針

Kaspersky社の記事によると、マルウェアはハードコーディングされたおよそ600個のMACアドレスを有するパソコンでのみ動作するとのこと。 このあたりのコードを探せばよさそうです。

ただ、一般的なマルウェアは難読化されていることが多いため、マルウェアのコードを展開するためのメモリを確保しているコード(HeapAllocやVirtualAllocなど)、および確保したメモリにコードをジャンプしているコード(call eaxなど)も探していきます。

解析結果

(1) インポート関数の確認

 IDAでインポート関数を確認したところ、MACアドレスの取得に利用される関数(GetAdaptersInfo、GetIpAddrTable、GetAdaptersAddressesなど)が見当たりません。
 そのため、マルウェアは難読化したコードをメモリに展開し、そこでMACアドレスを確認しているものと予想されます。

 IDAでインポート関数にあるHeapAlloc、VirtualAllocの呼び出し元を逆参照(Ctrl+X)で探し、コードを確認してみましたが、確保したメモリにコードを展開し、そこにジャンプする処理が見当たりません。
 CCleanerにマルウェアを埋め込まれた時には、この手順ですぐにマルウェアのコードを特定できたのですが、残念・・・(汗)

 メモリに展開されたマルウェアのコードの先頭部分をオリジナルエントリーポイント(OEP)と呼びますが、この検体では、OEPにジャンプする処理も見つけにくくなっているようです。


(2) OllyDbgによる挙動の確認

 IDAでコードを目視点検すれば、OEPジャンプ(の疑いがあるコード)を探せると思いますが時間がかかるので、OllyDbgでざっくりとした動作を確認してみます。

 OllyDbgで検体を読み込みし、コードを流し読みしながらF8キーを連打し、ステップ実行で処理を進めたところ、不審なVirtualAlloc関数の呼び出しを発見できました。

IMG Ollydbg

 不審なVirtualAlloc関数に続くコードを確認すると、確保したメモリにコードを展開しジャンプ(call EDX)しています。このジャンプ先がOEPに違いありません!(キリッ)

IMG Ollydbg

 このあたりの処理をIDAで確認してみます。この検体では、GetModuleHandleでインスタンス(自分自身のメモリアドレス)を取得し、そこにVirtualAlloc関数へのオフセットを加算したアドレスをコールすることで関数の呼び出しの隠蔽を図っていました。

IMG Ollydbg

 このコードの呼び出し元を逆参照で確認すると、ASUSの正規プログラムの終了処理の直前にマルウェアが混入していたようです。

IMG Ollydbg


(3) OllyDbgによるOEP以降の挙動の確認

 マルウェアのOEP以降の処理をOllyDbgで確認していくと、MACアドレスを取得する処理がありました。

IMG Ollydbg

 また、ハードコードされたMACアドレスのMD5ハッシュ値と思われるデータをメモリにコピーしている処理もあります。

IMG Ollydbg

 続く処理で検証パソコンのMACアドレスのMD5を計算し、上記データと比較していることから、上記データは標的とするMACアドレスのMD5と考えて間違いなさそうです。

IMG Ollydbg

 パソコンのMACアドレスが標的とするMACアドレスと一致した場合は、インターネットの攻撃者サーバにMACアドレスを送信するとともに、何かをダウンロードする処理が走りますが、解析した時点(2019年3月31日)ではURLにアクセスできませんでした。
 [通信先URL] https[:]//asushotfix[.]com/log2.jpg?【MACアドレスのMD5】(画像をクリックするとスタックに積まれたURLサンプルを確認できます)

IMG Ollydbg

(4) まとめ

 解析の結果、本検体はKasperskyの記事のとおりの挙動であることが確認できました。また、ハードコードされていた標的MACアドレスのMD5一覧も確認することができました。

 ただし、Kasperskyの記事では、標的MACアドレスのMD5が600個ほどハードコードされているとのことですが、ここまでの解析では24個しか確認できませんでした。他の部分にMD5が埋め込まれているのかもしれません。

余談

 がんばって英語っぽい発音で「シャドゥハマァ―」と言ってみたところ、ほぼ全員から「・・・? あ、シャドウハンマーのことね」と訂正されます。(しょぼーん)

以上です。

posted by やまと at 16:48| Comment(0) | 実験日誌

2018年06月11日

証拠保全用スクリプト

 簡易フォレンジックに必要となるエビデンスを自動収集するスクリプトを作成しました。USBメモリ等に、必要なツール(※1)と一緒に格納したうえで利用します。

  (※1)各自で別途ダウンロードしていただく必要があります。詳細はREADMEをご参照ください。

 本スクリプトを格納したUSBメモリ等を調査対象コンピューターに接続し、本スクリプトを実行すると、USBメモリ等にエビデンスがコピーされます。

 WindowsXP、Windows7、Windows10(1709)において動作することを確認しておりますが、不具合等がありましたら情報提供いただけると助かります。

ForensicScript.zip (7.54KB)
簡易操作手順書(ForensicScript_manual_v20180605_B0.2.docx) (22.7KB)

証拠保全スクリプトで自動収集するエビデンス

 本スクリプトでは、以下のエビデンスを自動収集できます。

  • $MFTおよびUsnJrnl:$J
  • イベントログファイル
  • Prefetchファイル
  • レジストリファイル
  • 各ユーザーのNTUSER.DAT、Recentフォルダ、IEの閲覧履歴ファイル
  • setupapi.log(XP)、setupapi.dev.log(Win7)
  • 各種コマンド実行結果

事前準備

1.本スクリプトから実行されるツールをダウンロード

 本スクリプトから実行される以下のツールをダウンロードします。

※1 ExtractUsnJrnl.exe(32bit版)は、マルウェアとして誤検知されることがあるため、修正版を利用します。
※2 WindowsXP環境において、handleの最新版であるver.4.11.0.0を実行時にエラーが発生したため、旧バージョンを利用します。旧バージョンを用意できない場合、XP用スクリプトからhandleを削除してください。

2.USBメモリ等にスクリプト、ツール等を配置

 USBメモリ等に、以下のフォルダ構成で、スクリプトならびに上記1.の手順でダウンロードしたツールを配置します。

ルートフォルダ
├ ir-win7.vbs ・・・ エビデンス取得スクリプト(Windows7版)
├ ir-winxp.vbs ・・・ エビデンス取得スクリプト(WindowsXP版)
├ evidence ・・・ スクリプトで取得したエビデンスが保管されるフォルダ
└ tools
  └cmdTools ・・・ダウンロードしたツールをこのフォルダ内に配置

証拠保全スクリプトの使い方

(1)管理者権限でログオンした状態で、スクリプト「ir-win7.vbs」または「ir-winxp.vbs」をダブルクリックして起動します。

(2)実行確認のメッセージボックスが表示されたら、「はい」をクリックすると、処理が開始されます。
 なお、Windows7の場合は、ユーザーアクセス制御(UAC)の確認メッセージが表示されるため「はい」をクリックする。

(3)エビデンスは,「evidence」フォルダ内の「コンピュータ名_年月日時分秒」フォルダに保存されます。
 また,同フォルダには「log.txt」が作成され,処理開始日時・処理終了日時が記録されます。

posted by やまと at 20:42| Comment(3) | 実験日誌

2018年03月04日

「干物妹ランサムウェア」検体の挙動確認

 干物妹ランサムウェアという、怪しげなマルウェアの存在をMalwareHunterTeamさんのつぶやきで知ったので、検体を入手して解析してみました。

 結論からいうと、つぶやきにあるとおり、暗号したファイルの復号が容易であり、ジョークソフトとしか思えない。でも、いわゆるウイルス作成罪(不正指令電磁的記録に関する罪)に該当すると思います。冗談半分だったのかもしれませんが、マルウェアを作成・公開することはやめましょう・・・。

検証環境


[感染パソコンの環境]
  • Windows7 Home Edition SP1 32bit版(VMwareの仮想マシン)
  • Microsoft .NET Framework 4.7.1
[検体情報]
  • ハッシュ値(SHA256): dde7c1c88adce965134af781ad7efa3cb75a4f2cc028b1de2741d05184881602
  • 検知名(トレンドマイクロ): Ransom_Genasom.THBAFH

検証結果

(1)感染時の挙動

検体をエクスプローラでダブルクリックして実行したところ、ドキュメントフォルダ内のテキストファイル(.txt)、ワード文書(.doc)が暗号化されるとともに、拡張子が「.干物妹!」に変更されました。
Screenshot1 infected desktop

(2)復号

検体をコマンドプロンプトから「-recover」オプションを付けて起動したところ、暗号化されたファイルが復号化されました。
Screenshot2 recoverd desktop

(3)解析

検体は.NETアプリケーションであり、ILSpyで解析することでソースコードを確認することができました。
難読化もされておらず、素直なコードです。スクリーンショットには、複号用オプション「-recover」が指定されたか確認するコードが写っています。
Screenshot3 IRSpy

補足

 「干物妹」は、「ひもうと」と読むそうです・・・。勉強になりました。

posted by やまと at 18:26| Comment(0) | 実験日誌