PowerSniffマルウェアがマクロベースの攻撃で使用される

By

Category: Malware, Threat Prevention, Unit 42

Tags: , ,

This post is also available in: English (英語)

はじめに

ファイルの存在しないマルウェア(以下ファイルレスマルウェア)の概念は新しいものではありません。マイクロソフトのPowerShellを悪用するPoweliksなど、従来のフォレンジック手法では、侵入した痕跡を、ほとんど、あるいはまったく残さずにシステムに侵害する能力を持っています。

システム管理者は、PowerShellのバージョン2.0のWindows 7への統合以降、PowerShellの機能と多用途性を称賛してきました。残念なことに、そのような多用途性が、具体的にはホストOSのメモリに直接書き込む機能を中心として、悪用の機会を招くこととなっています。

通常、ファイルレス マルウェアは、Anglerなどエクスプロイト キットのコンテキストで検出されます。パロアルトネットワークスは、メモリに直接Ursnifファミリに類似したマルウェア注入する、PowerShellスクリプトを実行するために使用される悪意のあるマクロ文書を埋め込んだ最新の高度な脅威スパム攻撃を観測しました。

感染

最初に、被害者に以下の図に似た電子メールが送信されます。

図1 悪意のあるWord文書が含まれている編集済み電子メール

この執筆の時点までに、パロアルトネットワークスは、さまざまなファイル名を使用して送信された約1500個の電子メールを観察してきました。これらの電子メールのほとんどに、被害者の会社に関する具体的な情報(電話番号、住所、個人名など)が含まれています。この追加情報は、広く蔓延するスパム攻撃には通常含まれておらず、被害者がそれを見たときに信頼感を抱きやすくなり、それによって添付ファイルを開く確率が高くなっています。

この攻撃でよく見られる件名の例は、以下のとおりです。

[Name], Please validate [Something] Gift Card from [Place]
[Name], Please validate this [Name] Gift Voucher
[Name], Please close this unpaid obligation #[Numbers]
[Name], New Reservation at [Place]
[Name], Please settle this unpaid balance [ID|Ref].[Numbers]
[Name], Please settle this overlooked payment [ID|Ref].[Numbers]

また、以下のAutoFocusマップに示すように、この脅威に主に影響を受けているのは米国であると思われます。

図2 地理的位置に基づいた企てられた感染のAutoFocusビュー

この攻撃で標的とされてきた特定の産業はありませんが、専門職業界、接客サービス業、および製造業でこれらの電子メールが最も頻繁に見られます。

図3 業界別企てられた感染AutoFocusビュー

悪意のある添付ファイル

被害者がその電子メールに添付された悪意のあるMicrosoft Word文書を開くと、そのファイルに含まれている悪意のあるマクロの被害を受けます。以下のマクロの例では、文書が最初に開かれたときに実行を試みます。Microsoft Wordのセキュリティ設定に応じて、場合によっては被害者が明示的にマクロの実行を有効にすることが必要になります。

図4 Microsoft Word文書に埋め込まれている悪意のあるマクロ

このマクロは、以下の引数で、powershell.exeの隠されたインスタンスを生み出すWMIサービスを起動します(安全のため、URLは取り除いています)。

IntPtrオブジェクト タイプのサイズのチェック結果に対するif/else文に気づかれたかもしれません。Microsoft Windowsオペレーティング システムの32ビット版では、このオブジェクトのサイズは4であり、64ビット版では8です。この特別なチェックは、攻撃者が、それらが実行されているオペレーティング システムが32ビット版であるのか64ビット版であるのかをすばやく判別するために使用しています。それらが32ビット システムで実行されている場合、‘/cache’ URIに置かれているファイルがダウンロードされて実行されます。そうでなければ 、‘/css’ URIに置かれているファイルがダウンロードされて実行されます。

ペイロード

ダウンロードされたファイルは、シェルコードが含まれているPowerShellスクリプトであり、これは以下の図に示すようにデコードされて実行されます。

図5 マルウェアによってダウンロードされたPowerShellペイロード

このシェルコードが実行されると、埋め込まれているペイロードが復号化され、実行されます。この埋め込まれているペイロードは、Pythonで示された以下のアルゴリズムを使用していくつかの文字列を復号化することによって開始されます。

この特定のサンプル (SHA256: 74ec24b5d08266d86c59718a4a476cfa5d220b7b3c8cc594d4b9efc03e8bee0d)の場合、マルウェアはシード値"0xDDBC9D5B"を使用しています。文字列の復号化が完了すると、ペイロードは多くのアクションを実行して、これが仮想環境内で実行されているのか、サンドボックス内で実行されているのかの判別を試みます。

例えば、以下のようなユーザー名を探します。

  • MALTEST
  • TEQUILABOOMBOOM
  • SANDBOX
  • VIRUS
  • MALWARE

以下のライブラリの存在もチェックします。

  • sbiedll.dll
  • dbghelp.dll
  • api_log.dll
  • dir_watch.dll
  • pstorec.dll
  • vmERROR.dll
  • wpespy.dll
  • PrxDrvPE.dll
  • PrxDrvPE64.dll

IsDebuggerPresent()の呼び出しなど、その他の簡単なチェックも行います。

さらに、新しいプロセスで"ipconfig -all"を実行して、その結果を検査することにより、被害者ホストに対する偵察行為も実行します。マルウェアは特に以下の文字列が含まれて"いない"ことを確認します。

  • school
  • hospital
  • colledge
  • health
  • NURSE

これらの文字列が見つからなかった場合、次に、被害者のマシン上でキャッシュされたURLをチェックし、次の文字列があるか確認します。

  • Citrix
  • Xenapps
  • dana-na

これら文字列の1つ、または金融機関Websiteのいずれかがキャッシュの中に見つかったら、この被害者マシンは攻撃者にとって興味ありと判別され、その後のHTTP要求でタイプ"666"とマークされます。マルウェアはさらに、"net view"コマンドの出力をチェックし、以下の文字列が含まれて"いない"ことを確認します。

  • TEACHER
  • STUDENT
  • SCHOOLBOARD
  • PEDIATRICS
  • ORTHOPED

また、以下の文字列の存在もチェックします。

  • POS
  • STORE
  • SHOP
  • SALE

これらの条件が満たされた場合、この被害者マシンは興味ありと判別され、タイプ"666"とマークされます。一方、これらの条件がどれも満たされなかった場合には、この被害者マシンはタイプ"555"とマークされます。

前述のチェックを要約すると、このマルウェアは医療や教育関連のマシンを注意深く回避し、POSインスタンスや金融取引を行うマシンをターゲットにしているようです。2015年半ばに"Ursnif"というマルウェアファミリーにおいて、類似した技法が観察されていました

この偵察行動を実行した後、マルウェアは以下のフォーマットを使用して埋め込みC2サーバの1つに対してHTTP GETリクエストを行います。

/yuppi/?user=%08x%08x%08x%08x&id=%u&ver=%u&os=%lu&os2=%lu&host=%u&k=%lu&type=%u

"type"変数には、前述した"555"または"666"が入力されます。"id"および"ver"変数はハードコードされます。このサンプルでの値はそれぞれ24および123です。"k"パラメーターは、C2サーバの応答で復号化シードとして使用されます。C2サーバが応答状態にある場合、 暗号化DLL.を返してきます。このDLLは、 "k"パラメーターにあるシード値を用いて、前述の同じ復号化を使用して復号化できます。その後、DLLは一時的に以下の場所のディスクに書き込まれます。

%%userprofile%%\\AppData\\LocalLow\\[random].db

ディスクに書き込まれた後、rundll32.exe呼び出しを使用して実行されます。この悪意のあるDLL.をロードするときには、エクスポートされた関数"Register"が使用されます。分析時点で、C2サーバはどれも応答状態にはありませんでした。

結論と謝辞

ここ1週間、このスパム攻撃が幅広く観察されました。スパムメールに含まれる標的固有の詳細およびメモリ常駐マルウェアの使用により、この攻撃は脅威重大度「high」として取り扱うべきです。このマルウェアはMicrosoft Wordドキュメント内の悪意のあるマクロに依存しているため、ユーザーはマクロがデフォルトで有効化されていないことを確認し、信頼できないソースから受け取ったファイル中でいかなるマクロもオープンしないよう注意すべきです。

検出されたファイルは悪意のあるものとして適切にフラグが付けられているので、パロアルトネットワークスのWildFireのお客様はこの脅威から保護されています。また、これまでに検出されたすべてのC2ドメインも悪意のあるものとしてフラグが付けられています。AutoFocusユーザーは、PowerSniffタグを使用してこのマルウェアを識別できます。

マルウェアの構成データの卓越した分析をされたCert.plの @maciekkotowiczに感謝いたします。

セキュリティ侵害の兆候

SHA256ハッシュ

a8663becc17e34f85d828f53029ab110f92f635c3dfd94132e5ac87e2f0cdfc3
30cd5d32bc3c046cfc584cb8521f5589c4d86a4241d1a9ae6c8e9172aa58ac73
0661c68e6c247cd6f638dbcac7914c826a5feee1013e456af2f1f6fd642f4147
f204c10af7cdcc0b57e77b2e521b4b0ac04667ccffce478cb4c3b8b8f18e32a2
7e22ea4e06b8fd6698d224ce04b3ef5f00838543cb96fb234e4a8c84bb5fa7b3
f45bf212c43d1d30cc00f64b3dcae5c35d4a85cacd9350646f7918a30af1b709
1e746ba37c56f7f2422e6e01aa6fde6f019214a1e12475fe54ee5c2cf1b9f083
340f82a198aa510159989058f3f62861de74135666c50060491144b7b3ec5a6f
815bd46e66f1d330ed49c6f4a4e570da2ec89bcd665cedf025028a94d7b0cc1e
a1770a7671679f13601e75a7cb841fea90c7add78436a0bea875ce50b92afc33
83e305724e9cd020b8f80535c5dd897b2057cee7d2bb48461614a37941e78e3a
74ec24b5d08266d86c59718a4a476cfa5d220b7b3c8cc594d4b9efc03e8bee0d
90a7951683a5a77a21d4a544b76e2e6ee04e357d2f5bfcff01cd6924906adf77
2c21dafcb4f50cae47d0d4314810226cba3ee4e61811f5c778353c8eac9ba7dc
247511ab6d7d3820b9d345bb899a7827ce62c9dd27c538c75a73f5beba6c6018
708374a4dfaaa8e44ee217ca5946511cacec55da5eabb0feb1df321753258782
136379754edd05c20d5162aed7e10774a95657f69d4f9a5de17a8059c9018aa6
5d215ef3affe320efe4f5034513697675de40ba8878ca82e80b07ad1b8d61ed8

コマンドアンドコントロール(C2)サーバ

supratimewest[.]com
letterinklandoix[.]net
supratimewest[.]biz
starwoodhotels[.]pw
oklinjgreirestacks[.]biz
www.starwoodhotels[.]pw
brookmensoklinherz[.]org