Overview
数年にわたり、Proofpointリサーチャーは、悪質なメールキャンペーン中やキャンペーン後に他の形態のマルウェアをインストールするために脅威者が使用する第一段階のダウンローダーの使用を追跡しています。 特に、この2年間で、これらのダウンローダーはますます堅牢になり、高度なプロファイリングとターゲティング機能を提供するようになりました。
より重要なことは、ダウンローダーやボットネット、バンキング型トロイの木馬などの他のマルウェアが、主要なペイロードとしてランサムウェアを駆逐し、脅威者が二次感染においてさまざまなマルウェアを展開できる柔軟性がもたらされた、ということです。 たとえば、最も普及しているSmoke Loaderは、UrsnifやThe Trickバンキング型トロイの木馬などのペイロードを落とすために広く使用されているほか、クレデンシャルなどの情報やデータを盗むために独自のモジュールを使用するなど、悪意のある機能を備えています
Proofpoint Researchでは、2019年8月末から、Buerという新しいモジュラーローダーの開発と作者の販売について追跡調査を行っています。 BuerはSmoke Loaderと非常に競合する機能を持ち、著名なアンダーグラウンドマーケットプレイスで活発に販売されており、ターンキーで既製のソリューションを求める使用アクター向けです。
Campaigns
August 28, 2019
8月28日に、Proofpoint研究者は以前の正当なメール会話に返信するような悪質メール メッセージを観察しました。 それらには、Microsoft Officeのマクロを使用して次の段階のペイロードをダウンロードするMicrosoft Wordの添付ファイルが含まれていました。
図1: 2019年8月28日のキャンペーンで使用したMicrosoft Word添付ファイルの例
次の段階のペイロードは、次のURLからダウンロードされていることが確認されました:
hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php
hxxp://93345fdd.libertycolegioscom/gate.php
ドロップされたペイロードは verinstere222.xls または verinstere33.exe (その期間に行為者が使用していた命名規則)と名付けられていました。
その後、9月から10月にかけて、Proofpointの研究者や情報セキュリティコミュニティの他のメンバーは、同じ行為者からDreambotのUrsnifの亜種またはこの新しいローダーのいずれかをドロップする複数のキャンペーンを観測しています。
October 10, 2019
10月10日、Proofpointの研究者は、新しいローダーを落とすFallout Exploit Kit(EK)にリダイレクトするオーストラリアでのマルバタイジング キャンペーンを観察しました。
図2: Fallout EKが脆弱なブラウザを悪用したHTTPネットワークトラフィックトレース
その後、ローダーはKPOT stealer、Amadey、Smoke Loaderなど複数の第2段階のマルウェア ペイロードをドロップしました
October 21, 2019
Proofpoint researchersは7月の始めからOstapがほぼ唯一の複数のインスタンスのThe Trickをロードする約100件のキャンペーンを観察しています。 しかし21日、Proofpointの研究者は、Microsoft Wordの添付ファイルを含む「Penalty Notice # PKJWVBP」といった件名の悪意のある電子メールメッセージを観察しました。 この文書には、有効にするとOstapが実行されるマクロが含まれていました。 私たちは、Ostap がこのローダーを
hxxps://185.130.104187/nana/kum.php?pi=18b&
からダウンロードし、その C&C: garrisontxus
から The Trick “ono22” がロードされるのを観測しました。
図 4: 10 月 21 日のキャンペーンで使用された Microsoft Word 添付ファイルの例
Marketplace & Feature Analysis
この新しいローダーが複数の異なるキャンペーンで使用されていることを観察し始めたため、地下市場で複数のアクターに売却されていると予想されました。 さらに、私たちは、上記のキャンペーンで観察されたマルウェアの機能と一致する「Buer」という名前のローダーを説明する、地下フォーラム上の8月16日からの広告を発見しました。
次の数週間で追加および広告された機能は、これらのキャンペーンで見つかったローダーの進化と正確に一致します。 著者はまた、アップデートとバグ修正は無料だが、「新しいアドレスへの再構築」には 25 ドルの追加料金がかかると記しています。
Proofpoint も地下市場から抽出した、マルウェアの著者が書いたと推定される次のテキストは、オリジナルのロシア語で記述されたローダーの機能の要約です:
図5. Buer Loader ボットの機能を説明する underground フォーラムの投稿のテキスト
同様に、広告ではコントロール パネルの機能もリストアップされています。 著者は、モジュール式ボットは、.NET Core で書かれたコントロール パネルを使用して、完全に C 言語で書かれており、プログラミング言語の選択により、クライアントとサーバーの両方でより高いパフォーマンスを重視していると指摘しています。
- 説明に従って、ボットは 55 ~ 60 キロバイトの総ペイロードを持ち、ネイティブ Windows 実行ファイルおよび動的リンク ライブラリとして機能し、完全に常駐メモリで実行し、32 ビットおよび 64 ビット Microsoft Windows オペレーティング システムと互換性があります。
- ボットはHTTPS接続を介して通信し、復号化だけでなく再構築後もコントロールパネルからリモートで更新できます。
- 著者はまた、ローダーは信頼できるアプリケーションの代理プロセスとして動作し、ユーザーレベルの特権を使用して機能すると指摘しています。
- 最も注目すべきは、このソフトウェアはCIS(ロシアなどの旧ソ連国家)では実行できないだろうということです。
広告では、サーバーとコントロールパネルについて、以下の機能を説明しています:
- コントロールパネルも .NET Core で書かれていると宣伝されており、Ubuntu / Debian Linux サーバーシステムに簡単にインストールできると記されています。
- サーバーは、オンライン、生きている、死んだ、および合計ボットのカウンター、ボットリストのリアルタイム更新、ファイルのダウンロードカウンター、およびオペレーティングシステムのタイプ、インストールされたボットのアクセス権、および論理CPUコア数によってシステムをフィルタする機能などの幅広い統計情報を提供します。
- 感染したシステムからダウンロードされたファイルは、サーバー上に暗号化された形式で保存され、アクセスはトークンによって許可されます。
- 最も重要なことは、ボット自体のように、サーバーがCIS加盟国内から送信されたAPI要求を処理しないことに著者は言及しています。
フォーラム投稿には、Buer loaderとコントロールパネル(バージョン1.1.2)用の技術リリースノートも含まれていました。 最初の2つのステップが感染したシステムで失敗し、サロゲート プロセスへの注入が (たとえば、crypt 自体と互換性がないために) 失敗した場合、ローダーは代わりに自身のプロセスで実行されると、著者は導入部で述べています。
リリース ノートでは、ローダーについて次のように説明しています:
- The loader uses a FastFlux architecture.
- The loader works from under a trusted process within Microsoft Windows.このローダーは、Microsoft Windows 内で信頼できるプロセスの下で動作します。 MemLoadEx プロセスは、信頼できるアプリケーションとして x64 exe をサポートするようになりました。
- MemLoad は更新され、ネイティブ x32 exe をサポートします。
リリースノートでは、コントロール パネルについて次の機能を呼びかけています。 ユーザーは実行中のタスクを停止し、ペイロードと実行回数を変更できます。
- Proofpoint Researcher Note: この機能は、リースした Docker ホストに簡単に統合するため、インストールの簡略化だと推測されます。ただし、侵害した Docker ホストに panel/C&C をインストールする可能性もあります。
最後に、著者はバージョン 1.1.9 の次の技術変更について説明しました。 これらは、マルウェアが活発で専門的な開発下にあることを示すものとして注目されます。
- The loader has acquired a new method for launching External for local files.ローダーは、ローカル ファイル用の外部を起動するための新しい方法を獲得しました。 この方法の利点は、独自性と、ローダーを介した CreateProcess / ShellExecute がないことです。 起動は、コマンドなしで信頼されたプロセスを生成します。
- パネルには、特定のタスクを実行したすべてのボットにタグ付けする機能があります。 これにより、ユーザーはペイロードをボットの特定のグループに配布することができます。
- Implemented integration API。 それのための利用可能なドキュメント。
- プロキシモードで参照によってファイルを送信する機能を追加しました。 ファイルは暗号化された形式でボットに転送されます。
- 国別にボットをカウントするバグが修正され、その他の改善が追加されました。
コントロールパネルのスクリーンショット
以下のコントロールパネルのスクリーンショットが地下広告に含まれ、遠隔測定モニタリング、ホストフィルタリングなど、顧客が利用できるバックエンド機能のいくつかを示していました。
Figure 6: Buer Loader C&C のコントロール パネル ログイン UX
Figure 7: Buer コントロール パネル用の Bot テレメトリ モニタリング画面。
図8:Buerコントロールパネルのダークモードボット遠隔測定モニタリング画面。
図9:Microsoft Windowsアーキテクチャによってフィルタリングされたリモートボットを示すコントロールパネルフィルタビュー。
Figure 10: ローダータスクのファイル管理を示すコントロールパネルビュー
Figure 11: ユーザー権限で並べられたリモートボットのコントロールパネルビュー。
図12: コントロール パネル ビュー、タスク ステータス
図13: コントロール パネル ビュー、タスクの作成
マルウェア分析
Buer Loaderは、追加のペイロードをダウンロードして実行する新しいダウンローダー マルウェアです。
アンチ解析機能
ローダーには、いくつかの基本的なアンチ解析機能が含まれています。
- Process Environment Block (PEB) および Thread Environment Block (TEB) の NtGlobalFlag を検査することにより、デバッガをチェックする
- Red Pill、No Pill、および関連メカニズムを使用して仮想マシンをチェックする
- マルウェアが特定の国で稼働していないことを確認するためにロケールをチェックする (図 14)
Figure 14: 特定の国で実行されていないことを確認するマルウェアチェック
Persistence
PersistenceはレジストリRunOnceエントリを構成することで設定されます。 バージョンによって、レジストリ エントリはマルウェアを直接実行するか、実行するタスクをスケジュールします。
暗号化された文字列
このサンプルには、文字列を暗号化する関数が含まれています。
Figure 15: Decryption sequence for strings
Ghidra で暗号化した文字列を Jython で復号化する関数の例:
Figure 16: Decryption sequence for strings
Figure 16: Decryption sequence for strings
Ghidra では、文字列を暗号化する関数が含まれています。 文字列の復号シーケンス (Python バージョン)
Figure 17: Example string decryptions
Windows API Calls
このサンプルではほとんどの Windows API 呼び出しをハッシュアルゴリズムを使って解決している。 ハッシュ化アルゴリズムでは、API名の各文字が大文字であることを確認します。 次に、各文字を13ずつ右回転 (ROR) し、それらを加算します。
Figure 18: Hashing algorithm to resolve Windows API calls
次の関数は、PythonがAPIコールの解決を支援するためにどのように使用できるかの一例です。
Figure 19: ハッシュ化された Windows API 呼び出しの解決に役立つ Python スクリプト例
次の表は、使用されたいくつかの選択したハッシュとその Windows API 名に対応するリストを示しています。
CreateMutexW |
0xed619452 |
OpenMutexW |
0x7bffe25e |
CreateProcessW |
0xb4f0f46f |
WinHttpOpen |
0xaf7f658e |
WinHttpCrackUrl |
0x8ef04f02 |
WinHttpConnect |
0x9f47a05e |
WinHttpOpenRequest |
0x1dd1d38d |
表1.WinHttpRequest
。 Windows API コールと選択されたハッシュ
コマンドとコントロール
コマンドとコントロール (C&C) 機能は HTTP(S) GET リクエストで処理されます。 コマンドビーコンの例は、図20のようになります:
図20:コマンドビーコンの例
これらのリクエストは「更新API」に行き、暗号化されたパラメータが含まれています。 このパラメータは、
- Base64 decoding
- Hex decoding
- RC4 decryption (分析したサンプルで使用したキーは “CRYPTO_KEY”)
平文パラメータの例は、次のようになります。
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYOI
It contains pipe->It contains pipe->It contains pipe->It contains pipe->It contains pipe->It contains pipe->It contains pipe->It contains pipe->It allocateで構成される区切りデータ。
- Bot ID(ハードウェアプロファイルGUIDおよび名前、コンピュータ名、ボリュームシリアル番号などの各種システムパラメーターのSHA-256 16進ダイジェスト。 CPUID)
- 自身の実行イメージのSHA-256ハッシュ
- Windowsバージョン
- アーキテクチャタイプ
- プロセッサ数
- ユーザー権限
- コンピュータ名
コマンドビーコンの応答例は図21に示すとおりです。
Figure 21: Example command beacon response
これは、16進エンコードされたバイトがダッシュ文字で分離されている以外は、上記のリクエストパラメーターと同様に復号化することが可能です。 平文応答の例を図22に示します。
Figure 22: Plaintext command beacon response
復号されたテキストはJSONオブジェクトで、ペイロードをダウンロードし実行する方法に関するさまざまなオプションが含まれています。
- type – 2つのタイプがあります:
- update – 自己を更新
- download_and_exec – ダウンロードと実行
- options – ダウンロードするペイロードのオプションについて指定するものです。
- Hash – “update” タイプにのみ適用され、新しいアップデートが利用可能かどうかを判断します
- x64 – ペイロードが 64 ビットかどうか
- FileType – 分析サンプルでは使用されていません
- AssemblyType – ダウンロードするペイロードのオプションを指定します
- AssemblyType – ダウンロードするペイロードのタイプを指定します。 not used in analyzed samples
- AccessToken – ペイロードをダウンロードするために使用されます(下記参照)
- External – C&Cまたは外部URLからペイロードをダウンロードするかを示します
- method – 実行メソッドを表します。
- exelocal – プロセスを作成する
- memload – インジェクションして手動でペイロードをロードする
- memloadex – インジェクションして手動でペイロードをロードする
- loaddllmem – インジェクションして手動でペイロードする
- parameters – コマンドライン上で渡すパラメータ
- pathToDrop – コマンドラインで渡されたパラメータは、次のとおりです。 分析したサンプルでは使用されていません
- autorun – ペイロードのレジストリ RunOnce パーシステンスを設定するかどうかを示します
- modules – 以下のモジュールセクションを参照してください
- timeout – 分析したサンプルでは使用されていません
C&C Server からダウンロードするケイロードは図 23 で見たように「ダウンロード API」への要求によって実行されます。
図23:C&Cからのペイロードのダウンロード
平文のリクエストパラメーターの例を以下に示します。
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74
コマンドビーコン応答からボットのIDと “AccessToken” が含まれています。 C&Cからペイロードがダウンロードされた場合、RC4で暗号化されます。 分析したサンプルでは、キーは「CRYPTO_KEY」でした。
Modules
コマンドビーコンの応答には「モジュール」リストが含まれています。 Proofpointの研究者は、まだBuerモジュールが実際に使用されていることを確認していませんが、コードに基づいて、このリストにはモジュールAccessTokensが含まれます。 C&Cの「モジュールAPI」にAccessTokenを送信することで、モジュールファイル名が照会されます。 その後、”downloadmodule API “を使ってモジュールがダウンロードされます。 ダウンロードされ、解読されると、「loaddllmem」メソッドを使用してロードされます。
結論
新しいダウンローダーであるBuerは、最近さまざまなキャンペーンで出現しており、悪用キットにつながるマルバータス経由、Ostap経由のセカンダリペイロード、およびThe Trick banking Trojanなどのマルウェアのダウンロードの主要ペイロードとして出現しています。
この新しいローダーは、強力なジオターゲティング、システム プロファイリング、およびアンチ解析機能を備えており、現在、付加価値のあるセットアップ サービスとともにアンダーグラウンド フォーラムで販売されています。
ダウンローダーはCで書かれていますが、コントロールパネルは.NETコアで書かれており、パフォーマンスと小さなダウンロードフットプリントのための最適化と、Linuxサーバーにコントロールパネルを簡単にインストールする能力を示しています。 後者の機能は、宣伝されている機能およびリリースノートに含まれています。
Got it, but I don't know what this is. Downloaded Word doc: https://t.co/Y8tX8wTsOa – Follow-up EXE persistent on the infected Windows host: https://t.co/sowNIRDPbI pic.twitter.com/4isqbsMAa9
— Brad (@malware_traffic) October 11, 2019
https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/
https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money
https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt
https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt
Indicators of Compromise (IOCs)
IOC |
IOC(危険物) IOC Type |
Description |
fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce |
sha256 |
|
http[://45.76.247[.177:8080/api/update/ |
URL |
Buer C&C callback |
6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0 |
sha256 |
|
197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90 |
sha256 |
|
https[://173.212.204[.171/api/update/ |
URL |
Buer C&C callback |
9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73 |
sha256 |
(Fallout Drop) |
http[://134.0.119[.53:8080/api/update/ |
URL |
Buer C&C callback |
ab21d61b35a8dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f |
sha256 |
(Ostap drop) |
https[://garrisontx[.us/api/update/ |
URL |
Buer C&C callback |
https[://185.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.130.104[.187/nana/kum.php?pi=18b |
URL |
Ostap instance dropping Buer – 2019-10-…21 |
753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e |
sha256 |
Buer 2019-11-28 |
ffload01[.top|185.125.58[.11 ffload01[.top|185.186.141[.129 |
domain|IP |
Buer C&C 2019-11-Japan28 |
ETとETPROのスリカタ/スノート署名
2029077 || ET TROJAN Buer Loader Update Request
2029079 || ET TROJAN Buer Loader Response
2029078 || ET TROJAN Buer Loader Download Request
2839684 || ET TROJAN Buer Loader Successful Payload Download
2029080 || SSL/TLS Certificate Observed (Buer Loader)
2029080 || ET TROJAN Buer Loader Download Request
2029078 || SSL/TLS Certificate Observed (Buer Loader)
2839684