コロンビア政府になりすまし「DCRAT」を配布するEメール攻撃を確認

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「コロンビア政府になりすますDCRAT」を再編集したものです。

影響を受けるプラットフォーム:Microsoft Windows
影響を受けるユーザー    :Microsoft Windows
影響            :被害者のデバイスを制御し、被害者の機密情報を収集
拡散状況          :コロンビアが標的
深刻度           :高

 FortiMail IRチームは最近、DCRATと呼ばれるリモートアクセス型トロイの木馬を配布する新しいEメール攻撃を発見しました。脅威アクターは、コロンビアの政府機関になりすまして、コロンビアの企業や組織を標的にしています。検知を回避するために複数の手法を利用しており、これには、パスワード保護されたアーカイブ、難読化、ステガノグラフィ、base64エンコーディング、および複数ファイルドロップなどが含まれます。

DCRATの主な機能

1. モジュール型アーキテクチャ
 DCRATはモジュール構造で設計されており、プラグインの追加や削除が可能です。これにより、攻撃者は、データ窃盗や監視、または永続性などの特定のタスクに合わせて、RATの動作をカスタマイズすることができます。

2. 包括的な監視機能
 RATを利用することで、感染システムをリモートから制御することができます。また、攻撃者は、コマンドの実行、ファイルの管理、ユーザー活動のモニタリングに加え、悪意ある追加ペイロードのダウンロードや実行も行うことができます。

3. 情報を窃盗
 盗まれる可能性がある機密情報には、クレデンシャル、ドキュメント、ブラウザデータ、および個人ファイルなどが含まれます。また、スクリーンショットのキャプチャ、およびユーザーの入力を記録するキーロギングもサポートしています。

4. システムを操作
 DCRATはシステム設定を改変することが可能で、これには、再起動やシャットダウン、ユーザーのログオフ、または新規アカウントの作成などが含まれます。また、壁紙やタスクバーの可視性など、視覚的な要素も変更できます。

5. ファイルおよびプロセスの管理
 このマルウェアは、ファイルやフォルダの作成、名前変更、移動などをサポートしています。また、プロセスの実行や終了に加え、被害者のシステムでのファイルをアップロードおよびダウンロードができます。

6. ブラウザおよびクレデンシャルハーベスティング(収集)
 特にブラウザを標的にして、Cookie、閲覧履歴、および保存されているログインクレデンシャルなどの保存データを抽出します。また、ユーザーのブラウザでWebサイトを開き、アクションを実行することもできます。

 脅威アクターは、コロンビアの政府機関になりすましたEメールを、受信者をBCCフィールドに設定して送信することで、ユーザーを騙して添付ファイルの内容を実行させます。

図1:このキャンペーンで使用されるフィッシングメール

 ZIP添付ファイルにはbatファイルが含まれており、難読化されたvbsファイルを、pastebinなどのWebサイトからC:\Windows\Tempにドロップします。

図2:ZIP添付ファイルのbatファイル

 このvbsファイルは、解析者やシステムを騙すために、非常に難読化されて作成されています。

図3:vbsファイル

 ジャンクコードと難読化を除去すると以下のコードが現れ、最終的にbase64形式の変数を実行していることがわかりました。

図4:難読化が解除されたvbsファイル

 最初の変数のbase64形式のコードには、別のスクリプトが含まれていました。

図5:難読化されたスクリプト

 上記のスクリプトをクリーンアップすると、以下のスクリプトが現れました。

図6:難読化を解除したスクリプト

 このスクリプトは、反転したURLを変数に設定し、base64を使って隠蔽されたデータが含まれる画像を参照します。残念ながら、このURLは元に戻すことができず、画像ペイロードは利用できなくなっていました。一方で、base64形式のexeファイルとコード自身の内容を含むURLが存在していることから、恐らく画像データを抽出して、.NETライブラリを呼び出して、反転したURLから3つ目および最終的なペイロードをC:\Users\Public\Downloadsにダウンロードすると推測されます。

図7:最終的なペイロード

 この反転したURLのbase64形式の文字列には、RATのexeファイルが含まれています。

図8:RATのexeファイル

 メイン関数を見ると、複数の呼び出しがあることがわかります。

図9:メイン関数の呼び出し

 メイン関数は、少し遅延を付けて開始された後、InitializeSettingsに進み、AES256によって暗号化された設定を復号化します。

図10:復号化の設定

 AES256キーはbase64形式でハードコードされています。

図11:ハードコードされたAES256キー

 復号化すると、次の変数が現れます。

Ports:8848
Hosts:176.]65.]144.]19
Version:1.0.7
Install:false
MTX:DcRatMutex_qwqdanchun
Pastebin:null
Anti:false
Anti_Process:false
BS_OD:false
Group:AU
HWID:マシンのプロパティを取得し、それらを連結しMD5ハッシュに変換した後、16進数の文字列に変えます。次に、先頭の20文字を取り出し、それを大文字に変換します。

Server signature
iHIVV6dj49xn32TizMB3V5F6bAZIlmMWQuHKEN0CBcWc9Ig0HTq78
LVe/AKhThRcQR7wOt/8i61T7NkoN+CPhQ8311QUiU2j4NTTO3B/f3i
fVSB2vTGJgrF19iqrqUwK8NKkJnHR+29/ec7pz4lMhwJSOhYYj0ZB9B
tUYMUzsic=

Server certificate

MIICMDCCAZmgAwIBAgIVAJdJTOcvv+RE0UKkRJdxy6sUSIJ9MA0GC
SqGSIb3DQEBDQUAMGQxFTATBgNVBAMMDERjUmF0IFNlcnZlcjETM
BEGA1UECwwKcXdxZGFuY2h1bjEcMBoGA1UECgwTRGNSYXQgQnkg
cXdxZGFuY2h1bjELMAkGA1UEBwwCU0gxCzAJBgNVBAYTAkNOMB4X
DTI0MDYyNjE0MzcyN1oXDTM1MDQwNTE0MzcyN1owEDEOMAwGA1
UEAwwFRGNSYXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBA
KBWZ41Q3CUr6D9fGM31TTe3ObXCDtWIxyuls5ZxROJrzVNlVm5Mb2z
SE/543JczTUE94b3YzFPMUMJJ3SB7vpO7L4lMe0W+JlZClj/00M3J6b7
a4bB4/c/BVrO3O5RMGNlMSCy68zX8roxt0SFUdlB2L6JJ2xEuaVv/9bd
ejAK7AgMBAAGjMjAwMB0GA1UdDgQWBBSKoz4PgqFtf1/VImq3jWW
0Pxsu5zAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDQUAA4
GBAIrcEfDtCf8noEqBq9iAkPXXTNhGZ3YgwxGfvgWCAGSrWcEdOs2tW
J4Vx1EgAy6SZ6tJq6soFYOJohwV4S22WVnoQzzPgB759pR36AP0zFjx
Ehhci0wTHQuP8wRW8oTOCsQxjjHrFFBCqHLTq4Wc59cWbLwuTSBST
gqM0u1iOvO9

 設定を初期化した後、VerifyHashを実行し、該当するハッシュと公開キーのシグネチャが有効かどうかを確認します。

図12:シグネチャの有効性を判断するVerifyHash

 メイン関数の後、AntiがTRUEの場合、次のanti分析関数を実行します。

図13:Anti分析関数

 この関数は、クエリを実行してWin32_CacheMemoryのすべての項目を選択し、個々の項目を反復的に処理します。Win32_CacheMemoryには、キャッシュメモリデバイスに関する情報が含まれています。情報が何もない場合、仮想マシン(VM)の存在が示唆されます。

 次の呼び出しを行うと、以前に復号化されMTX変数に保存されたミューティックス名を持つミューティクス(相互排他制御)が作成されます。(DcRatMutex_qwqdanchun)

図14:CreateMutex関数

 AntiProcessがtrueの場合、コードを実行して、記載されているプロセスを常時チェックし、当該プロセスが検知された場合終了します。

図15~17:プロセスのチェックおよび終了

図15~17:プロセスのチェックおよび終了

図15~17:プロセスのチェックおよび終了

 次の呼び出しを行うと、BS_OD(つまり、ブルースクリーン)がtrueに設定され、ユーザーが管理者権限を持っている場合、コードは、RtlSetProcessIsCriticalを使用して、マルウェアプロセスを重要なシステムプロセスとしてマーキングを試みます。これらのプロセスを終了すると、ブルースクリーンがトリガされます。

図18:「ブルースクリーン」のトリガ

 次の呼び出しを行うと、In_stallがtrueの場合、Install() 内のいくつかのコードブロックが実行されます。

図19~20:コードを処理して、Install_Folderフォルダ変数のプロパティを取得

図19~20:コードを処理して、Install_Folderフォルダ変数のプロパティを取得

 このコードブロックは、FileInfoを使用してInstall_Folder変数のプロパティを取得し、このケースでは、AppData\Roamingディレクトリを参照します。次に、現在実行中のマルウェアの完全なファイルパスを取得し、Install_Folderパスと比較します。パスが一致しない場合、実行中のすべてのプロセスを反復処理して、Install_Folderの場所から実行されているすべてのプロセスを終了します。

 ユーザーが管理者権限を持っている場合、マルウェアは非表示のcmdプロセスを生成し、base64をデコードしたコマンド文字列を実行します。

/c schtasks /create /f /sc onlogon /rl highest /tn


 次に、パラメータを付加して、マルウェアのバイナリをスケジュールタスクとして登録し、永続化します。実行される最後のコマンドを以下に示します。

/c schtasks /create /f /sc onlogon /rl highest /tn "TASK NAME" /tr "\"FULL PATH OF THE EXECUTABLE\"" & exit


 ユーザーが管理者権限を持っていない場合、マルウェアは代わりに、以下の場所にレジストリエントリを作成します。

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\


 このエントリは、マルウェアのファイル名とパスを使用して、ユーザーログイン時にマルウェアが確実に実行されるようにします。
前述のステップを完了した後、マルウェアは、FullNameで指定されているパス(つまり現在実行中の実行ファイルのフルパス)にファイルがまだ存在することを確認し、実行を1秒間一時停止します。次に、AppData\Roamingディレクトリに新しいファイルを作成し、現在の実行ファイルをその場所にコピーします。

 また、AppData\Local\Tempディレクトリにbatファイルを生成します。このbatファイルにはスクリプトが含まれており、ドロップされたファイルを実行後にそのファイル自身を削除するよう設計されています。このバッチ(bat)ファイルの内容は以下のとおりです。

@echo off
timeout 3 > NUL
START "" "DROPPED FILE LOCATION"
CD xxx\AppData\Local\Temp\
DEL "BAT FILE NAME" /he flags:


 この関数は、ディスプレイを常時オンにしてシステムがスリープモードに入るのを防止するようWindowsに命令することで、明示的にリセットされるまでこの状態を継続的に維持します。

図21:システムがスリープになるのを防止

 この関数は、値「2147483651U」を使用します。これは16進数の0x80000003に相当します。SetThreadExecutionState(kernel32.dllからインポートされる関数)に関するMicrosoftのドキュメントによると、この値は、次の各フラグを組み合わせたものです。

 これらのフラグを組み合わせることで、システムをアクティブな状態を保ち、中断されずに画面表示を維持することができます。

 次に、このRATは、ユーザーが管理者かどうかを確認します。管理者の場合、CleanSetting関数を実行します。

図22:CleanSetting関数の実行

 この関数は以下の操作を実行します。

・HKEY_CURRENT_USER\Environmentにwindirキーが存在する場合、削除します。このキーの値は、Windowsディレクトリのrootを参照します。

・HKEY_CURRENT_USER\Software\Classesにあるmscfileサブキーを削除します。mscファイル(service.mscなど)に関するファイルの関連付けを制御し、このサブキーを削除すると、ユーザーは、重要な管理者ツールを開けなくなります。

・HKEY_CURRENT_USER\Software\Classesにあるms-settingsサブキーを削除します。このサブキーは、リンクからWindows Settingsアプリを開くために使用されるURIです。
  このサブキーを削除すると、Settingsへのリンクが破損します(例:[ファイル名を指定して実行]ウィンドウからms-settings:sound)。

 次に、このRATは、Amsi.Bypass関数を呼び出します。

図23:Amsi.Bypass関数の呼び出し

 Amsi.Bypass関数を実行すると、base64でエンコードされた2つの文字列を受け取り、現在実行中のプロセスが32-bitモードか64-bitモードかを判断します。次に、アーキテクチャ固有の値をbyte形式でPatchA関数に渡します。

 PatchAの中で、2つのbase64形式の文字列「amsi.dll」と「AmsiScanBuffer」を復号化します。AmsiScanBufferは、Windows 10以降で利用可能なWindowsマルウェア対策スキャンインタフェース(AMSI)で提供される関数です。AMSIを利用すると、アプリケーションはシステムのアンチウイルスエンジンにメモリバッファを渡し、スキャンを実行できます。

 この関数はその後、amsi.dllをメモリにロードし、AmsiScanBuffer関数のアドレスを取得します。次に、悪意あるコードを検知するAMSIの機能を妨害または無効化するために、このメモリの場所にパッチを挿入しようと試みます。

 最後に、このRATは無限ループに入り、コマンド&コントロール(C2)サーバーと常時接続するよう試みます。このケースでは、C2のアドレスは先程述べたようにハードコードされていました。ただし、Paste_bin変数に格納されているリモートURLから、C2アドレスを動的に取得することもできます。

図24:無限ループに入るRAT

結論

 攻撃者は、コロンビアの政府機関になりすましたフィッシングメールを送信することで、ユーザーを騙して悪意あるファイルを実行させようとします。検知を回避するために、この攻撃チェーンでは、ステガノグラフィや多段階ペイロードなど、複数の難読化技術が導入されています。

 ファイルが実行されると、テキスト共有サイトから、難読化されたVBSスクリプトがダウンロードされます。次に、このスクリプトは、難読化されたPowerShellコードを実行して、別の共有サイトから2つ目のリンクを取得します。その後、ステガノグラフィを使用して画像ファイル内に埋め込まれた.NETライブラリを抽出して呼び出し、最終的なペイロードを配布および実行します。

 このような攻撃の影響は深刻です。脅威アクターが被害者のマシンに直接アクセスできると、機密データの窃盗、システムのセキュリティ侵害、および大規模な運用または金銭的な損害を引き起こす可能性があります。

図25:攻撃チェーン

フォーティネットのソリューション

 FortiMailは、これらのEメール、BATファイル、およびVBSファイルをマルウェアとして動的に検知します。また、システムの高度な脅威エンジンを使用して、脅威インテリジェンスの以前の調査に基づいてファイルを静的に検知します。
 
 本レポートで説明されているマルウェアは、FortiGuardアンチウイルスで次の名称で検知されブロックされます:

MSIL/Agent.CFQ!tr

 FortiGate、FortiMail、FortiClient、およびFortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。FortiGuardアンチウイルスエンジンは、これらの各ソリューションに含まれています。その結果、最新の保護機能を備えたこれらの製品を使用するお客様は保護されます。

 FortiGuard CDR(コンテンツ無害化)サービスは、FortiGateとFortiMailのどちらでも動作し、ドキュメント内の悪意あるマクロを無害化できます。

 また、各組織は、フォーティネットが無償で提供するNSEトレーニングモジュール「FCF Fortinet Certified Fundamentals」を受講することをお勧めします。このモジュールは、エンドユーザーが各種のフィッシング攻撃を識別して自らを保護する方法を学習できるよう設計されています。

 FortiGuard IP ReputationおよびAnti-Botnet Security Serviceは、フォーティネット分散ネットワークから得られた悪意ある送信元のIPデータを一元的に収集することで、これらの攻撃をプロアクティブにブロックします。この分散ネットワークでは、脅威センサー、CERT、MITRE、協力関係にある競合他社、その他のグローバルソースなどが連携して、悪意ある送信元に関する最新の脅威インテリジェンスを提供します。

 お客様の組織が、この脅威やその他のサイバーセキュリティ脅威の影響を受けていると思われる場合、当社のFortiGuardグローバルインシデントレスポンスチームまでお問い合わせください。

IOC(Indicators of Compromise:侵害指標)

URL:
hxxp[:]//paste[.]ee/d/jYHEqBJ3/0
hxxps[:]//paste[.]ee/d/oAqRiS3g
hxxps[:]//ia601205[.]us[.]archive[.]org/26/items/new_image_20250430/new_image[.]jpg

関連するSHA-256:
ZIP:
db21cc64fb7a7ed9075c96600b7e7e7007a0df7cb837189c6551010a6f828590

BAT:
34b8040d3dad4bd9f34738fbc3363fcda819ac479db8497fb857865cee77ad89

VBS:
b0f3c7ea17875b5e1545678b3878ce268ff4bde718b66254ce01b0bb864801b8

EXE:
77a22e30e4cc900379fd4b04c707d2dfd174858c8e1ee3f1cbecd4ece1fab3fe

C2:
176[.]65[.]144[.]19[:]8848

■関連サイト