新しいワインを古いボトルで: Falloutエクスプロイト キットを使用したFindMyNameキャンペーンで新たなAzorultの亜種を発見

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

概要

早くも2016年には観測されていたAzorultは、トロイの木馬ファミリであり、スパム キャンペーンを介して、またはRIGエクスプロイト キット キャンペーンの2次ペイロードとして、悪意のあるマクロベースの文書で配信されてきました。2018年10月20日、弊社は、新しいAzorultの亜種が、Falloutエクスプロイト キットを使用した新たな継続中のキャンペーンで、1次ペイロードとして使用されたことを確認しました。弊社は、このキャンペーンを「FindMyName」と命名しました。最後のエクスプロイト ページがすべてfindmyname[.]pwというドメインに行き着くためです。このような新しいAzorultサンプルの亜種は、アンチウイルス製品を回避するため、APIフラッディングや制御フローの平坦化など、高度な難読化技法を使用します。また、Azorultはさらなる進化を遂げており、弊社が捕捉したサンプルは、以前のバージョンよりも多くのブラウザ、アプリケーション、仮想通貨ウォレットの機密情報の窃取をサポートしていることがわかりました。

このブログでは、FindMyNameキャンペーン、新しいAzorultマルウェア、そして使用された難読化技法について考察します。

FindMyNameキャンペーンの第1段階

10月20日は、弊社がFindMyNameと呼ぶ新しいキャンペーンを最初に観測した日です。以後3日間で、付録1に挙げた5つの異なるURLチェーンがFalloutエクスプロイト キットの配信に結びついていました。5つの異なるURLチェーンのすべてが、被害端末をfindmyname[.]pwという1つのドメインにリダイレクトしていました。

FindMyNameキャンペーンの第1段階におけるステップを、図1に示します。

図1 攻撃の第1段階の概要

findmyname[.]pwの5つの最終ページは異なるものの、それらの中身は類似しています。Falloutエクスプロイト キットのランディング ページの例を図2に示します。

図2 難読化されたランディング ページ

Falloutエクスプロイト キットは、span、h3、pなど、いくつかのhtmlタグを使用し、高度に難読化したタグ コンテンツによって実際のエクスプロイト コードを隠しています。復号後の実際のVBScriptコードは、8月にパッチが適用された、IE VBScriptの脆弱性(CVE-2018-8174)をエクスプロイトします。

図3 Falloutエクスプロイト キットにおけるCVE-2018-8174のエクスプロイト コードのスニペット

エクスプロイトが成功すると、このFalloutエクスプロイト キットは「.tmp」ファイルを%Temp%ディレクトリにダウンロードし、CreateProcessを呼び出して、そのファイルを実行します。詳しい分析によって、「.tmp」ファイルがAzorultマルウェアの最新の亜種であることがわかりました。Falloutエクスプロイト キットの1次ペイロードとしてAzorultマルウェアの新しい亜種が使用されるのを確認したのはこれが初めてでした。

FindMyNameキャンペーンの第2段階

このセクションでは、弊社が捕捉したAzorultマルウェアの最新の亜種の分析に重点を置きます。

マルウェア分析の概要

Azorultマルウェア ファミリは、地下フォーラムで販売されている営利目的のトロイの木馬です。弊社は、最近のFindMyNameキャンペーンで3つの新しいAzorultマルウェアの亜種を観測しました。それらを観測した時点では、3つのサンプルのうち2つは、まだ実際の感染を確認できていませんでした。弊社が捕捉し、分析した新しいAzorultサンプルの1つには、以下のような悪意のある機能がありました(このような機能の一部は、次のセクションで詳しく説明します)。

  1. APIフラッディングによって、アンチウイルス エミュレータを回避。
  2. 制御フローの平坦化技法によって、リバース エンジニアリング分析を妨害。
  3. プロセスの空洞化技法を使用して、新しいマルウェア イメージを作成。
  4. 以前のバージョンよりも多くのブラウザで、資格情報、cookie、履歴、オートフィル用の情報を窃取。
  5. 以前のバージョンよりも多くの仮想通貨ウォレットを窃取。
  6. 必要に応じ、Skype、Telegram、Steam、FTPクライアント、電子メール クライアントの資格情報およびチャット履歴を窃取。
  7. インストール済みプログラム、スクリーンショット、マシン情報、ユーザー名、OSバージョン、実行中プロセスを介し、被害端末の情報を収集。
  8. ユーザーのデスクトップからファイルを収集。
  9. アンチフォレンジック コンポーネント、すべてのドロップされたファイルを消去。
  10. C2通信によって開始された特定のファイルの実行。

APIフラッディングおよび制御フローの平坦化による難読化

最初のAzorultマルウェアは、Microsoft Visual C++ 7.0で作成されました。第一に、Azorultマルウェアは、制御フローの平坦化による難読化を使用して、リバース エンジニアリング分析を妨害します(図4参照)。第二に、このサンプルは、APIフラッディング技法を使用していました(図5参照)。APIフラッディングはアンチウイルス エミュレータを回避するためのマルウェアの技法です。アンチウイルス エミュレータは、パフォーマンス上の支障が生じないよう、ホスト マシンで実行可能ファイルをエミュレートするさい、一定時間内でエミュレーションを終了するタイマーを設定します。ここで、数百回におよぶ関数処理のエミュレートを行わせると、タイム アウトが発生し、ファイルが無害としてマーキングされてしまいます。

図4 制御フローの平坦化

図5 APIフラッディング

プロセスの空洞化

Azorultは、プロセスの空洞化技法を使用し、新しいマルウェア イメージを作成します。このサンプルはまず、メモリ内でペイロードを復号します。次に自身の一時停止したプロセスを新しく作成し、そののちに復号したペイロードを新しいプロセスに挿入します。最後に新しいプロセス実行を再開し、悪意のある振る舞いを行います。サンプル実行の概要を図6に示します。

図6 サンプルのプロセス空洞化

C2通信

プロセスからダンプされた新しいトロイの木馬ファイルは、Delphiでコーディングされていました。サンプルは実行時に、即座にC2サーバーに接続してさらなる指示を受けます。侵入防御システム(IPS)を回避するため、C2トラフィックは難読化されています。C2に送り返されるデータには、被害にあった個々のマシン固有の被害端末IDが含まれており、マシンのGUID、Windows製品名、ユーザー名、コンピュータ名がハッシュ アルゴリズムでエンコードされています。マルウェアは、C2アドレスを復号し、暗号化された被害端末のIDで、POSTリクエストを51[.]15[.]196[.]30/1/index.phpに送信します。C2トラフィックを図7に示します。ハッシュ アルゴリズムと暗号化に関する詳しい例は、付録1に挙げられています。

図7 C2リクエスト

このサンプルは、C2応答を復号し、検証します。復号されたC2コンテンツには3つの部分がありました。<n></n>タグで囲まれた部分には、48個の正規DLLが含まれ、これらは以後のセクションで説明する情報窃取に使用されます。<d></d>タグで囲まれた部分には、情報窃取用のアプリケーション情報が含まれています。具体的には、アプリケーション パス、関連レジストリ、資格情報ファイル名です。<c></c>タグで囲まれた部分には、このサンプルのC2構成が含まれています。C2構成を図8に示します。pcap分析によって、このサンプルで以下の文字がチェックされていることがわかりました。

  1. 「+」: 特定の悪意のある機能を有効化します。
  2. 「-」: 特定の悪意のある機能を無効化します。
  3. 「I」: ホストIP情報を収集します。
  4. 「L」: リモート サーバーからファイルをダウンロードして実行します。

図8 C2構成

C2で指定された悪意のある機能:

  1. ブラウザ パスワード資格情報の窃取。
  2. ブラウザのcookie、オートフィル資格情報の窃取。FTPクライアントや電子メール クライアントからの資格情報の窃取。
  3. ブラウザ履歴の窃取。
  4. ビットコイン ウォレットの窃取。
  5. Skypeのチャット メッセージmain.dbの窃取。
  6. Telegramの資格情報の窃取。
  7. Steamの資格情報(ssfn)およびゲーム メタデータ(.vdf)の窃取。
  8. 最終的に攻撃者に送られるスクリーンショットの取得。
  9. 一時マルウェア ファイルの消去。
  10. デスクトップからのファイルの収集。
  11. GETリクエストをip-api[.]com/jsonに送信することによるホストIP情報の取得。
  12. C2で指定されたファイルのダウンロードと実行。

図9は、FirefoxおよびThunderbirdから機密情報を窃取するためのC2構成の例です。

図9 情報窃取用のC2構成

C2トラフィックの概要を図10に示します。

図10 C2トラフィックの概要

情報窃取

このサンプルは、Chrome、Firefox、Qihoo 360など、32のブラウザから資格情報およびユーザー データを窃取していました。ブラウザの全リストは付録2にあります。ブラウザから資格情報を窃取するため、サンプルはC2の応答から48個の正規DLLファイルを %AppData%\Local\Temp\2fda フォルダにダウンロードしていました(図11参照)。

図11 合法なdllファイル

この動作の目的は、nss3.dllをロードして、以下の関数をロードすることです。

  • sqlite3_open
  • sqlite3_close
  • sqlite3_prepare_v2
  • sqlite3_step
  • sqlite3_column_text
  • sqlite3_finalize
  • NSS_Init
  • PK11_GetInternalKeySlot
  • PK11_Authenticate
  • PK11SDR_Decrypt
  • NSS_Shutdown
  • PK11_FreeSlot

これらの関数は、ブラウザの機密情報をダンプするために使用されます。例えば、マルウェアは、sqlite3_*関数を使用して、Firefoxブラウザの履歴情報を取得しようとします(図12参照)。

図12 nss3.dllのAPIを使用したFirefox機密情報の窃取

ユーザー名とパスワードを窃取する別の例を示します。この場合は、保存されたChromeデータから窃取しています。サンプルは、パス「%LOCALAPPDATA%\Google\Chrome\User Data\」でファイル「Login Data」を検索します。見つかったら、サンプルは、「Login Data」ファイルを%AppData%\Local\Tempディレクトリにコピーして、nss3.dllからsqlite3_prepare_v2関数を呼び出して、SQLクエリ、「SELECT origin_url, username_value, password_value FROM logins」を使用して資格情報を盗み出します(図13参照)。

図13 ブラウザの資格情報を窃取するためのselect文字列

また、マルウェアは、前述のブラウザから、cookie、ブックマーク、オートフィル情報も盗み出します。資格情報は、PasswordsList.txtに、cookieは、CookieList.txtに保存されます。

また、このサンプルでは、以下の仮想通貨ウォレットを窃取します。

  • Ethereum
  • Electrum
  • Electrum-LTC
  • Jaxx
  • Exodus
  • MultiBitHD

マルウェアは、仮想通貨ウォレットの機密情報を含む、特定のファイルを見つけようとします。例えば、サンプルは、「Coins\MultiBitHD」にある「mbhd.wallet.aes」ファイルを見つけて送信しようとしていました(図14参照)。

図14 仮想通貨ウォレットの窃取

このサンプルは、Thunderbird、FileZilla、Outlook、WinSCP、Skype、Telegram、Steamなど、よく使用されるアプリケーションから資格情報およびユーザー データを窃取します。また、デスクトップからもファイルを窃取します。例えば、サンプルは、「%appdata%\Telegram Desktop\tdata」ディレクトリにある「D877F783D5*.map*」ファイルを見つけて、Telegramから機密情報を窃取しようとします(図15参照)。

図15 アプリケーション資格情報の窃取

サンプルは、現行プロセス、インストール済みソフトウェア、システム言語、タイム ゾーンなど、ユーザー情報を収集します。収集された資格情報およびユーザー情報は、C2に送り返されます。以下に、システム情報窃取に関する要点を示します。

  • マルウェアは、被害にあったコンピュータのスクリーンショットを取得して、scr.jpgという名前のイメージ ファイルに保存します(図16参照)。

図16 画面のキャプチャ

  • マルウェアは、C2応答で指定されたパスおよびドライバー タイプからファイルをアップロードします。
  • GETリクエストをip-api[.]com/jsonに送信することによってホストIP情報を取得します。json応答をip.txtに格納します。
  • 以下のユーザー情報を収集して、system.txtに保存します。
    • マシンのGUID
    • Windows製品名
    • ユーザー名
    • コンピュータ名
    • システム アーキテクチャ
    • 画面の高さと幅
    • システム言語
    • 現在のローカル時間
    • タイム ゾーン
    • CPUコア数
    • CreateToolhelp32Snapshotの呼び出しによる現行プロセス リスト
    • ディスプレイ バージョンおよび名前
    • インストール済みソフトウェア(Software\Microsoft\Windows\CurrentVersion\Uninstall\)
    • 現在のアカウント権限の取得

マルウェアが収集するすべての情報を図17に示します。

図17 マルウェアが収集する情報

マルウェアによって指定されるファイルの実行

攻撃者は、感染したシステムをリモートで制御して、Create ProcessまたはShellExecuteによって、任意のファイルを実行できます(図18参照)。また、悪意のあるURLにアクセスしてplugin-update[.]space/download/10.17.18.exeというファイルを取得する動作も観測されています。

図18 CreateProcessまたはShellExecuteを呼び出してファイルを実行

このAzorultの新しい亜種は、ローカル システム権限でマルウェアを実行する機能も保有しています。以下のロジックで現在のSIDおよびトークンをチェックします(図19参照)。

  • 現在の整合性レベルがlocal_systemの場合
    • WTSQueryUserTokenおよびCreateProcessAsUserを呼び出して、図20のようにシステム権限で新しいプロセスを開始します。

図19 SIDおよびトークンのチェック

図20 ローカル システム権限でプロセスを作成

手掛かりの消去とファイルの削除

弊社は、このマルウェアが、「%temp%\2fda」にあるすべてのファイルを消去し、C2のコマンドに従ってファイルを削除することも発見しました(図21および図22参照)。

図21 感染の手掛かりの消去

図22 C2コマンドによるファイルの削除

結論

推定される新しいキャンペーンは、10月後半に明らかになり、弊社の目に留まりました。3日間で、5つのFalloutエクスプロイト キットのURLチェーンが観測され、すべてがfindmyname[.]pwというドメインでホストされるエクスプロイト ページに行き着きました。Falloutエクスプロイト キットのペイロードとして、新しいAzorultマルウェアの亜種が使用されていることがわかりました。以前のバージョンと比べて機能が更新されており、より多くのソフトウェアおよび仮想通貨ウォレットからの窃取がサポートされるようになりました。

最新のWindowsホストを装備している組織は、感染のリスクがかなり低くなります。パロアルトネットワークスのお客様は、この脅威から保護されています。弊社の脅威防御プラットフォームは、Falloutエクスプロイト キットとAzorultマルウェアの両方を検出します。AutoFocusをご使用のお客様は、AzoRultタグで、この活動を調べることができます。

IOC

URLチェーン

URLチェーン1

  • hxxp://sax[.]peakonspot[.]com/dep.php?pid=6639&format=POPUP&subid=&cid=M2018102013-11642b318a12196b7fae1559b32a45c2
  • hxxps://gfobhk[.]peak-serving[.]com/?&id=15400452977053288308437914&tid=6639&sr=ep
  • hxxp://sp[.]popcash[.]net/go/161339/449201
  • hxxp://sp[.]popcash[.]net/sgo/ad?p=161339&w=449201&t=33fd7220adb3c003&r=&vw=0&vh=0
  • hxxp://findmyname[.]pw/1981_06_18/spumier/04_05_1952/E4bI5EK9?FYpUsha=Hangmen-Avowedly-Political-montreal&JAb1I5xAS=Reeled_chateaus_funduck_royalize_unconvert_Joysome&Outdraft=Tr6mHo5&VX1m7hhu=ugaritic_Shying_fleece_15919

URLチェーン2

  • hxxp://tania[.]web[.]telrock[.]net/
  • hxxp://api[.]clickaine[.]com/v1/apop/redirect/zone/15450
  • hxxp://findmyname[.]pw/M6rpEF/lifted/7013-Tiddley-toadyisms-11956-8965/peevedly_Oversured_tungstic.cfml

URLチェーン3

  • hxxp://manuela[.]w[.]telrock[.]org/
  • hxxp://api[.]clickaine[.]com/v1/apop/redirect/zone/15450
  • hxxp://findmyname[.]pw/hoivSZVRX/NV1uI/vpLnq.shtml?nXslO=indult-Cadere&sAoiIFu=Tirracke&KaaM=Uncloak_Becloaked

URLチェーン4

  • hxxp://sl[.]ivankatraff[.]com/sl?vId\=bmconv_20181024052548_bea8e890_2113_4ecc_951b_c90aeffde1e6&publisherId\=40152&source\=5348_8482&ua\=Mozilla%2F5.0+%28iPhone%3B+CPU+iPhone+OS+11_3+like+Mac+OS+X%29+AppleWebKit%2F605.1.15+%28KHTML%2C+like+Gecko%29+Mobile%2F15E302&ip\=124.35.82.126&campaignI
  • hxxp://damneddevastator[.]com/l/18358235b03f965b74d5?sub=&source=&code2=Y3RtATE1NDAzOTM4OTI1MDEAc3JjAWlvAHZlcgExOQBwbHQBV2luMzIAdGNoATEAaXcBNzkyAGloATUwNABhdwExNDQwAGFoATg1NgB0egE0ODAAYnVpZAEAY2tlATEAb3JudAEAdm5kAQBoc2ZjAXRydWUAZnJtAWZhbHNlAHVhAU1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgVHJpZGVudC83LjA7IFNMQ0MyOyAuTkVUIENMUiAyLjAuNTA3Mjc7IC5ORVQgQ0xSIDMuNS4zMDcyOTsgLk5FVCBDTFIgMy4wLjMwNzI5OyBNZWRpYSBDZW50ZXIgUEMgNi4wOyAuTkVUNC4wQzsgLk5FVDQuMEU7IHJ2OjExLjApIGxpa2UgR2Vja28AYTQzATEwMTEwMQBhNDQBMTEAc2YBMTExMABmZgExMTAAY2hkATAAZmx2AWZhbHNlAGNobQEwMDEAbG5nATExMTEAc3RyZwExMTEwMTAwAG9zY3B1AQBwcmRzdWIBAGV2bG4BMzkAcmVmAQByYmNjATEwMjUxMTUzAGNudHABdHJ1ZQB3bm0BAHdnbHYBMABjZGcBMDAwMDAwMDAwMDAwMDAwMDAxMTExMDAxMDEwMDAwMDAwMTAyMjEyMDAwMDAwMDIyMjIyMjIyMjIyMjIyMjIyMgB3dXQBdy5wYW53X2hhc190aW1lb3V0X3NldDt3LnBhbndfQWN0aXZlWE9iamVjdF9BcmdzX0FycmF5O3cubXNJbmRleGVkREI7dy5jbGlwYm9hcmREYXRhO3cubWF4Q29ubmVjdGlvbnNQZXJTZXJ2ZXI7dy5vbmZvY3VzaW47dy5vbmZvY3Vzb3V0O3cub25oZWxwO3cuYW5pbWF0aW9uU3RhcnRUaW1lO3cubXNBbmltYXRpb25TdGFydFRpbWU7dy5tc0NyeXB0bzt3Lm9ubXNnZXN0dXJlY2hhbmdlO3cub25tc2dlc3R1cmVkb3VibGV0YXA7dy5vbm1zZ2VzdHVyZWVuZDt3Lm9ubXNnZXN0dXJlaG9sZDt3Lm9ubXNnZXN0dXJlc3RhcnQ7dy5vbm1zZ2VzdHVyZXRhcDt3Lm9ubXNpbmVydGlhc3RhcnQ7dy5vbm1zcG9pbnRlcmNhbmNlbDt3Lm9ubXNwb2ludGVyZG93bjt3Lm9ubXNwb2ludGVyZW50ZXI7dy5vbm1zcG9pbnRlcmxlYXZlO3cub25tc3BvaW50ZXJtb3ZlO3cub25tc3BvaW50ZXJvdXQ7dy5vbm1zcG9pbnRlcm92ZXI7dy5vbm1zcG9pbnRlcnVwO3cub25yZWFkeXN0YXRlY2hhbmdlO3cuaXRlbTt3Lm1zV3JpdGVQcm9maWxlck1hcms7dy5uYXZpZ2F0ZTt3LnNob3dIZWxwO3cuc2hvd01vZGVsZXNzRGlhbG9nO3cudG9TdGF0aWNIVE1MO3cubXNDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWU7dy5tc0lzU3RhdGljSFRNTDt3Lm1zTWF0Y2hNZWRpYTt3Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lO3cudG9TdHJpbmc7dy5jbGVhckltbWVkaWF0ZTt3Lm1zQ2xlYXJJbW1lZGlhdGU7dy5tc1NldEltbWVkaWF0ZTt3LnNldEltbWVkaWF0ZQBrbG5nAWVuLVVTAHJ0dAEhAGxhbwEtMQBobHMBMA__
  • hxxp://damneddevastator[.]com/gw?sub=&source=Unknown&url=https%3A%2F%2Fsax.peakonspot.com%2Fdep.php%3Fpid%3D2457%26subid%3D2_Unknown%26cid%3Dbmconv_20181024091133_7532cd6e_41dc_445b_a538_a0f29d2af047%26ref%3D&vId=bmconv_20181024091133_7532cd6e_41dc_445b_a538_a0f29d2af047&hash=18358235b03f965b74d5&ete=true
  • https://sax.peakonspot.com/dep.php?pid=2457&subid=2_Unknown&cid=bmconv_20181024091133_7532cd6e_41dc_445b_a538_a0f29d2af047&ref=
  • hxxp://findmyname[.]pw/pysV15/olt8uPj1/1969_04_11

URLチェーン5

  • hxxp://whitepages[.]review/prpllr?cost=0.001850&currency=USD&external_id=76427570563780608&ad_campaign_id=1382277&source=PropellerAds&sub_id_1=1774896
  • hxxp://findmyname[.]pw/cymbalo/13345/13231?potteries=icL8gc96

バイナリSHA256

サンプル1:

3354a1d18aa861de2e17eeec65fc6545bc52deebe86c3ef12ccb372c312d8af8

サンプル2:

7a99eb3e340f61f800ab3b8784f718bbe2e38159a883c2fc009af740df944431

サンプル3:

0e27bbfa70b399182f030ee18531e100d4f6e8cb64e592276b02c18b7b5d69e6

付録

付録1: ハッシュ アルゴリズムおよび暗号化

C2に送られる被害端末IDのハッシュ アルゴリズムおよび暗号化:

マルウェアは、マシンのGUID、製品名、ユーザー名、コンピュータ名を取得すると、前述のハッシュ アルゴリズムと暗号化アルゴリズムを使用して、暗号化された被害端末IDを生成します。

C2アドレス復号:

マルウェアは、xorキー[0x09, 0xff, 0x20]を使用して.dataセクションのコンテンツを復号し、文字列「aHR0cDovLzUxLjE1LjE5Ni4zMC8xL2luZGV4LnBocA」を取得します。次に、マルウェアは、base64デコードを実行して、C2アドレスを取得します。

付録2: 標的となるブラウザのリスト

  • GoogleChrome
  • InternetMailRu
  • YandexBrowser
  • ComodoDragon
  • Amigo
  • Orbitum
  • Bromium
  • Chromium
  • Nichrome
  • RockMelt
  • 360Browser
  • Vivaldi
  • Opera
  • GoBrowser
  • Sputnik
  • Kometa
  • Uran
  • QIPSurf
  • Epic
  • Brave
  • CocCoc
  • CentBrowser
  • 7Star
  • ElementsBrowser
  • TorBro
  • Suhba
  • SaferBrowser
  • Mustang
  • Superbird
  • Chedot
  • Torch
  • Internet Explorer
  • Microsoft Edge