2018年の夏に、Unit 42は、私たちがDarkHydrusと名付けた攻撃者のグループによる、同様の戦略、ツール、および手順(TTP)を使用した中東での一連の活動に関するレポートをリリースしました。このグループは、セキュリティ ベンダーまたはテクノロジ ベンダーのドメインのタイプミスを無断で登録し(タイポスクワッティング)、オープンソースの侵入テスト ツールを悪用して、分析回避テクニックとして新しいファイル タイプを使用するなどの戦略を使用しているのが観測されました。
この最初のレポート以降、DarkHydrusの新しい活動は観測されていませんでした。そして、最近になって360TICが、DarkHydrusによるものと思われる配布文書に関するツイートと続きの調査結果を公開しました。私たちは、配布文書の分析プロセスにおいて、追加の関連サンプルを収集し、GoogleドライブAPIの使用をはじめとするペイロードの追加機能を明らかにして、DarkHydrusによるものである可能性が非常に高いことを確認することができました。分析結果はGoogleに通知済みです。
配布文書
私たちは、トロイの木馬RogueRobinの新しい亜種をインストールするDarkHydrusの配布文書を合計3つ収集しました。これら3つの文書は、非常によく似ており、いずれもマクロにより有効化される、.xlsmというファイル拡張子のExcel文書でした。図1に示すように、既知の文書のいずれにも、マクロを実行するために必要な、コンテンツの有効化ボタンをクリックするよう受信者に指示するルアー画像やメッセージは含まれていません。私たちは配布メカニズムについては確認できませんでしたが、コンテンツの有効化ボタンをクリックする指示は、スピアフィッシング電子メールの本文内など、配布時に提供された可能性が高いものと思われます。
私たちは、配布メカニズム以外に、これらの配布文書が攻撃に使用された正確な時刻についても確認できていません。ただし、これら3つの配布文書内で観測されたタイムスタンプによって、DarkHydrusの攻撃者がそれらをいつ作成したかがわかります。作成時刻のタイムスタンプは、悪意のある文書でよく見られるデフォルト時刻の2006-09-16 00:00:00Zでしたが、最終変更時刻がまだ確認可能で、DarkHydrusがこれらの文書を2018年12月と2019年1月に作成したことを示していました。表1は、タイムスタンプとそれに関連するサンプル ハッシュの詳細を示しています。
SHA256 | 最終変更日時 |
e068c6536bf353abe249ad0464c58fb85d7de25223442dd220d64116dbf1e022
|
2018-12-15T05:14:32Z
|
4e40f80114e5bd44a762f6066a3e56ccdc0d01ab2a18397ea12e0bc5508215b8 | 2018-12-23T05:45:43Z |
513813af1590bc9edeb91845b454d42bbce6a5e2d43a9b0afa7692e4e500b4c8
|
2019-01-08T06:51:21Z
|
表1 配布文書のタイムスタンプ
Workbook_Openサブルーチンにより、コンテンツの有効化ボタンが押されるとすぐにマクロが実行され、攻撃者が作成したNew_Macro関数が呼び出されます。New_Macro関数は、最初に複数の文字列を連結して、ファイル%TEMP%\WINDOWSTEMP.ps1に書き込まれるPowerShellスクリプトを作成します。この関数は、複数の文字列を連結して2番目のファイルの内容を作成しますが、この2番目のファイルは.sctファイルで、ファイル%TEMP%\12-B-366.txtに書き込まれます。.sctファイルは、多くのアプリケーションで使用されますが、ここではWindowsスクリプト コンポーネント ファイルとして使用されます。次にこの関数は、組み込みShell関数を使用して、次のコマンドを実行し、実際には12-B-366.txtに保存されている.sctファイルを実行します。
1 |
regsvr32.exe /s /n /u /i:%TEMP%\12-B-366.txt scrobj.dll |
正規のregsvr32.exeアプリケーションを使用した.sctファイルの実行は、Casey Smith (@subtee)が最初に発見した、AppLockerをバイパスするための技法として用いられていましたが、最終的にはMetasploitのモジュールが作成されました。WINDOWSTEMP.ps1スクリプトは、base64を使用して埋め込み実行ファイルをデコードし、System.IO.Compression.GzipStreamオブジェクトでそれを解凍するドロッパです。このスクリプトは、デコードされて解凍された実行ファイルを%APPDATA%\Microsoft\Windows\Templates\WindowsTemplate.exeに保存し、%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\OneDrive.lnkにLNKのショートカットを作成して、Windowsを起動するたびにWindowsTemplate.exeを実行し続けます。WindowsTemplate.exe実行ファイルは、C#で記述されたRogueRobinの新しい亜種です。
RogueRobin .NETペイロード
DarkHydrusに関する私たちの以前のブログでは、PowerShellをベースとしたペイロードを分析し、RogueRobinと名付けました。一方、.sctファイルのAppLockerバイパス技法を使用した配布文書を分析すると、C#のペイロードが元のRogueRobinのペイロードと機能的に似ていることに気付きました。RogueRobinのPowerShellとC#の亜種に類似性があることから、DarkHydrusグループがコンパイルされた亜種にコードを移植したことがわかります。
RogueRobinのC#の亜種は、その亜種がサンドボックス環境で実行されているかどうかを見破るために、PowerShellの亜種と同じコマンドを使用します。表2に示す一連のコマンドには、システム上で実行される一般的な分析ツールのチェックのほかに、仮想化された環境、メモリ不足、プロセッサ カウントのチェックが含まれています。このトロイの木馬は、デバッガがプロセスに接続されているかどうかもチェックし、デバッガの存在を検出すると終了します。
PowerShellコマンド |
説明 |
'gwmi -query "select * from win32_BIOS where SMBIOSBIOSVERSION LIKE '%VBOX%'" | win32_BIOS WMIクラスからVirtualBox環境の検出を試みるクエリ |
gwmi -query "select * from win32_BIOS where SMBIOSBIOSVERSION LIKE '%bochs%'" | win32_BIOS WMIクラスからBochs環境の検出を試みるクエリ |
gwmi -query "select * from win32_BIOS where SMBIOSBIOSVERSION LIKE '%qemu%'" | win32_BIOS WMIクラスからQEMU環境の検出を試みるクエリ |
gwmi -query "select * from win32_BIOS where SMBIOSBIOSVERSION LIKE '%VirtualBox%'" | win32_BIOS WMIクラスからVirtualBox環境の検出を試みるクエリ |
gwmi -query "select * from win32_BIOS where SMBIOSBIOSVERSION LIKE '%VM%'" | win32_BIOS WMIクラスからVMWare環境の検出を試みるクエリ |
gwmi -query "Select * from win32_BIOS where Manufacturer LIKE '%XEN%'" | win32_BIOS WMIクラスからXen環境の検出を試みるクエリ |
gwmi win32_computersystem | このクエリは、文字列"VMware"のシステム情報をチェックするために使用されます。 |
gwmi -query "Select TotalPhysicalMemory from Win32_ComputerSystem" | このクエリは、物理メモリの合計が2,900,000,000バイト未満かどうかをチェックするために使用されます。 |
gwmi -Class win32_Processor | select NumberOfCores | このクエリは、CPUコア数が1個未満かどうかをチェックするために使用されます。 |
Get-Process | select Company | 実行中のプロセスに"Wireshark"または"Sysinternals"という会社名があるかどうかをチェックします。 |
表2 RogueRobinのC#の亜種によるサンドボックス回避チェック
元のバージョンと同様に、RogueRobinのC#の亜種は、DNSトンネリングを使用して、さまざまなDNSクエリ タイプを使用するC2サーバーと通信します。このトロイの木馬は、サンドボックス チェックと同様に、DNSクエリを発行するたびに接続されているデバッガをチェックし、デバッガを検出すると、DNSクエリを発行して676f6f646c75636b.gogle[.]coを解決します。このドメインは、Googleが所有している正規のものです。このサブドメイン676f6f646c75636bは、16進数でエンコードされた文字列で、デコードするとgoodluckになります。このDNSクエリは、リサーチャーがC2機能に移動するためのパッチを初期デバッグ チェックに適用済みの場合にのみトリガされるため、リサーチャーへのメモとして存在する可能性が高いですが、分析回避手段として存在している可能性もあります。図2は、接続されているデバッガを検出して対応するDNSリクエストを発行するコードです。
RogueRobinによって発行されたDNSリクエストはすべて、組み込みのnslookup.exeアプリケーションを使用してC2サーバーと通信し、トロイの木馬はさまざまな正規表現を使用して、DNS応答からデータを抽出します。まず、トロイの木馬は次の正規表現を使用して、C2サーバーがC2通信をキャンセルしようとしているかどうかを調べます。
1 |
216.58.192.174|2a00:1450:4001:81a::200e|2200::|download.microsoft.com|ntservicepack.microsoft.com|windowsupdate.microsoft.com|update.microsoft.com |
また、トロイの木馬RogueRobinは、表3の正規表現を使用して、DNS応答から情報を抽出するのに適切なデータがその応答に含まれているかどうかを確認します。
正規表現 |
([^r-v\\s])[r-v]([\\w\\d+\\/=]+)-\\w+.(<domainList[0]>|<domainList[1]>|<domainList[n]>) |
Address:\\s+(([a-fA-F0-9]{0,4}:{1,4}[\\w|:]+){1,8}) |
Address:\\s+(([a-fA-F0-9]{0,4}:{1,2}){1,8}) |
([^r-v\\s]+)[r-v]([\\w\\d+\\/=]+).(<domainList[0]>|<domainList[1]>|<domainList[n]>) |
(\\w+).(<domainList[0]>|<domainList[1]>|<domainList[n]>) |
Address:\\s+(\\d+.\\d+.\\d+.\\d+) |
表3 RogueRobinで使用される正規表現
PowerShellバージョンと同様に、C#の亜種はDNSクエリを発行して、どのクエリ タイプがC2サーバーと正常に通信できるかを調べます。図3は、DNSリクエストを発行して、TXT、SOA、MX、CNAME、SRV、AおよびAAAAのクエリ タイプを使用するC2ドメインのカスタム作成されたサブドメインを解決するRogueRobinペイロードを示しています。
aqhpc.akdns[.]liveなどのテスト クエリのドメインには、トロイの木馬のプロセスIDの桁を表4の文字に置き換えて(たとえば、PID 908はqhp)、これらの文字を静的な文字aとcで囲むことによって生成されるサブドメインがあります。C2サーバーは、どのクエリ タイプにも応答し、トロイの木馬が変数に保存してその後のDNSリクエストで使用する一意のID値を提供できます。
文字 | 桁 |
h | 0 |
i | 1 |
j | 2 |
k | 3 |
l | 4 |
m | 5 |
n | 6 |
o | 7 |
p | 8 |
q | 9 |
表4 RogueRobinで使用される文字の置き換え
トロイの木馬はその後のDNSリクエストを使用してC2サーバーからジョブを取得し、これをコマンドとして処理します。ジョブを取得するために、トロイの木馬は、次の構造を持つサブドメインを構築し、DNSクエリをC2サーバーに発行します。
c<一意のID><3桁にするために'0'がパディングされたジョブID><シーケンス番号>c
生成されたサブドメインは次に、数字を文字に置換(表4の逆方向)する機能が適用され、事実上サブドメインのすべての桁が文字に変換されます。トロイの木馬は、表3の正規表現を使用してこのクエリの応答をチェックします。トロイの木馬は、キャンセルではない応答を受信すると、DNS応答からデータを抽出し、これをコマンドと見なします。表5は、RogueRobinのC#の亜種が処理できるコマンドを示しています。これは既に分析済みのPowerShellの亜種と非常によく似ています。
正規表現 | 説明 |
^kill | 指定されたスレッド名に基づいて、トロイの木馬で実行されているスレッドを強制終了します |
^\$fileDownload | DNSトンネルを介してC2サーバーにファイルをアップロードします |
^\$importModule | 提供されたPowerShellコマンドを実行して、'modules'というリストに追加します |
^\$x_mode | 代替モードである'x_mode'をオンにして、代替C2チャネルを使用します。前に"OFF"が付いている場合は、'x_mode'をオフにします。それ以外の場合、このコマンドは、この代替C2機能を使用するための改行区切りの設定を追加します。 |
^\$ClearModules | 前に実行した'modules'リストをクリアします |
^\$fileUpload | このコマンドには、新規ファイルをシステムに保存するためのパスとして使用される文字列が続きます。次にこのコマンドは、C2サーバーにアクセスし、データを取得してこのファイル パスに保存します。 |
^testmode | テスト機能を実行して、C2と正常に通信できるDNSクエリ タイプを調べます。 |
^showconfig | C2ドメインや使用可能なDNSクエリ タイプのリストなどの、サンプルの設定を含む縦線("|")で区切られた文字列を作成します。 |
^changeConfig | パイプ(縦線"|")で区切られた文字列を使用してトロイの木馬の設定内でC2の値を設定できるようにします。文字列のフォーマットは"<ドメインのリスト>|<最小クエリ サイズ>|<最大クエリ サイズ>|<hasGarbage>|<sleepPerRequest>|<最大リクエスト>|<クエリ タイプ>|<hibridMode>|<現在のクエリ モード>"です |
^slp | スリープ値とジッタ値を設定します |
^exit | トロイの木馬を終了します |
表5 RogueRobinのC#の亜種内で使用可能なコマンド
C2のGoogleドライブの使用
RogueRobinの以前のPowerShellの亜種では使用できなかったものの、新しいC#の亜種で使用できるのがx_modeです。これは、代替コマンドを有効にして、GoogleドライブAPIを使用するチャネルを制御する、非常に興味深いコマンドです。x_modeコマンドはデフォルトでは無効になっていますが、DNSトンネリング チャネルから受信したコマンドで有効にすると、RogueRobinは、GoogleドライブAPIリクエストを使用して一意のIDを受信し、ジョブを取得できるようになります。
x_modeでは、RogueRobinは、ファイルをGoogleドライブ アカウントにアップロードし、ファイルの変更時刻を継続的にチェックして、攻撃者が変更を加えたかどうかを確認します。攻撃者は最初に、トロイの木馬が今後の通信に使用する一意のIDを含めるようにファイルを変更します。トロイの木馬は、攻撃者によるその後のすべてのファイルの変更をジョブと見なし、そのジョブをコマンドとして見なして、表5に示す同じコマンド ハンドラで処理します。
Googleドライブを使用するために、DNSトンネリングを使用してC2サーバーから受け取ったx_modeコマンドの後に、Googleドライブ アカウントとのやり取りに必要な改行区切りの設定のリストが追加されます。図4に、x_modeコマンドを処理するRogueRobinのコードを示します。このコードは具体的には、改行でコマンド データを分割し、生成された配列を使用して、x_modeの設定として使用される変数を設定します。
図4に示すように、設定は表6に示す変数に格納され、これらを使用して攻撃者が制御するGoogleアカウントに対して認証を実行した後、Googleドライブからファイルをアップロードおよびダウンロードします。
変数名 | 説明 |
gdu | ファイルをGoogleドライブ アカウントにダウンロードするためのGoogleドライブのURL |
gduu | ファイルをGoogleドライブ アカウントにアップロードするためのGoogleドライブのURL |
gdue | Googleドライブ アカウントでファイルを更新するためのGoogleドライブのURL |
gdo2t | OAUTH access_tokenの取得に使用されるGoogleドライブのURL |
client_id | OAUTHアプリケーションのclient_id |
cs | OAUTHのclient_secret |
r_t | OAUTHのrefresh_token |
表6 GoogleドライブをC2として使用するために必要な設定を格納するために使用される変数
OAUTHアクセス トークンを取得して、攻撃者が提供したGoogleアカウントに対して認証を実行するために、トロイの木馬はHTTPヘッダーおよびPOSTデータに追加されたgrant_type、client_id、client_secret、およびrefresh_tokenフィールドを使用して、gdo2t変数に格納されているURLにHTTP POSTリクエストを送信します。図5に示すように、これらのフィールドの値は、x_modeコマンドの発行時に最初に設定された変数に設定されます。
次に、トロイの木馬は以下の正規表現を使用して、HTTP応答からアクセス トークンを取得します(図5を参照)。
\"access_token\":(.*)
有効なアクセス トークンで認証されると、トロイの木馬はGoogleドライブ アカウントへのファイルのアップロードを試みます。ファイルをアップロードするために、トロイの木馬はまずgduuに格納されているURLへのHTTP POSTリクエストを作成し、以下のJSONデータをGoogleドライブ アカウントに送信します。
{ "name" :"<process ID of Trojan>.txt" }
Googleドライブは、ヘッダーにLocationフィールドを含むHTTP応答でこのリクエストに応答します。このフィールドには、トロイの木馬が<トロイの木馬のプロセスID>.txtファイルのコンテンツのアップロードに使用するURLが含まれます。これは<トロイの木馬のプロセスID>.<C2ドメイン>という構造で、プロセスIDは表4と同じ文字置換関数でエンコードされます。次に、トロイの木馬は以下の正規表現を使用して、コンテンツ アップロード リクエストに対するHTTP応答のファイルID値を確認します。
\"id\":(.*)
トロイの木馬はこのファイルID値を使用して<トロイの木馬のプロセスID>.txtファイルの変更時間に対する変更をチェックすることで、攻撃者によりファイルに加えられた変更を監視します。トロイの木馬は、次のような構造のURLに対するHTTPリクエストを作成して、ファイルの変更時間をチェックします。
<'gdu'のGoogleドライブのURL> + <ファイルID> + "?supportTeamDrives=true&fields=modifiedTime"
次に、トロイの木馬は以下の正規表現を使用して、HTTP応答からファイルの変更時間を取得します。これは、modification_timeという名前の変数に保存されます。
\"modifiedTime\":(.*)
次に、トロイの木馬は2つ目のファイルをGoogleドライブにアップロードします。アップロードした最初のファイルを攻撃者が変更するのを待機する間、トロイの木馬がこのファイルに継続的に書き込めるようにするためです。トロイの木馬は、<トロイの木馬のプロセスID>を<トロイの木馬のプロセスID>-U.txtという名前のGoogleドライブ インスタンスに保存されている2つ目のファイルに書き込みます。通信ループの繰り返しごとに、トロイの木馬は最初のファイルの変更時間が変更されているかどうかを確認し、更新されていない場合は、次のような構造のURLに対するHTTP POSTリクエストを作成し、文字列b<一意のID>c<5つのランダムな英小文字>.<C2ドメイン>をファイルに書き込んで2つ目のファイルを更新します。
<Google Drive URL in 'gdue'> + <second file identifier> + "?supportsTeamDrive=true&uploadType=resumable&fields=kind,id,name,mimeType,parents"
あるRogueRobinサンプル(SHA256: f1b2bc0831…)で、作成者はx_modeコマンドを発行するときに、攻撃者が提供したGoogleドライブのURLを使用せず、替わりにハードコードされたGoogleドライブのURLを組み込みました(図6を参照)。これは、我々が確認した中で、RogueRobinにハードコードされたGoogleドライブのURLが組み込まれた唯一の事例であり、作成者はテスト中にこれを見落とした可能性があります。
最初のファイルのmodification_timeが変更されると、トロイの木馬はGoogleドライブにアップロードされた最初のファイルからコンテンツをダウンロードします。トロイの木馬は、次のような構造のURLに対するHTTPリクエストを作成して、このファイルのコンテンツをダウンロードします。
<Google Drive URL in 'gdu'> + <first file identifier> + "?alt=media"
トロイの木馬は、ダウンロードしたファイルのコンテンツを使用して、modification_time変数を現在の変更時間に設定し、攻撃者がファイルに更なる変更を加えたときにわかるようにします。トロイの木馬は、ダウンロードしたデータを、TXTクエリ モードを使用し、DNSトンネリング プロトコルを介して取得されたものと見なして、一意のIDの場合と同じ方法で処理します。具体的には、以下の正規表現を使用してデータを検索して処理します。
\"(\\w+).(<domainList[0]>|<domainList[1]>|<domainList[n]>).\"
トロイの木馬は、Googleドライブ上のファイルから取得した一意のID値を使用し、Googleドライブ通信チャネルを使用してジョブを取得しようとします。Googleドライブ アカウントからジョブを取得するために、トロイの木馬はまず以下のような構造の文字列を作成します。サブドメイン内の各要素は、表4の文字置換の数値によって決まります。
c<一意のID><3桁にするために'0'がパディングされたジョブID><シーケンス番号>c.<C2ドメイン>
次に、トロイの木馬は前に一意のIDを取得したときと同じ方法で、Googleドライブに対するOAUTHアクセス トークンを取得します。トロイの木馬はこのアクセス トークンを使用して、上の文字列をGoogleドライブにアップロードされた最初のファイル<トロイの木馬のプロセスID>.txtに書き込みます。このファイルに書き込んだ後、トロイの木馬は、このファイルの変更時間に対する変更を継続的にチェックするループに入り、攻撃者がファイルに変更を加えるのを効率的に待機します。攻撃者がファイルを変更してmodification_timeが変更されると、トロイの木馬は以下の構造のURLに対するHTTPリクエストを作成して、ファイルからコンテンツをダウンロードします。
<'gdu'のGoogleドライブのURL> + <'f_id'のファイルID> + "?alt=media"
トロイの木馬は、ファイル内のダウンロードされたデータを、TXTクエリ モードを使用してDNSトンネリング チャネルから受け取ったデータからジョブを取得する場合と同じ方法で処理します。具体的には、以下の正規表現を使用し、データを検索して処理します。
([^r-v\\s]+)[r-v]([\\w\\d+\\/=]+).(<domainList[0]>|<domainList[1]>|<domainList[n]>)
トロイの木馬は、一致するデータ、具体的にはセパレータ上のサブドメイン(すなわちrとvの間の文字)を分割し、より多くのデータが必要な場合は、セパレータの前にあるデータを使用してシーケンス番号やブール値(0または1)を取得します。セパレータの後にあるデータは、表5に示すコマンド ハンドラに従う文字列として使用します。
インフラストラクチャ
360TICによりリリースされた513813af15…に関連するC2ドメインの初期のリストは、有名なテクノロジ ベンダーやサービス プロバイダーの名前と見間違えてしまいそうなドメイン名を使用しており、DarkHydrusの以前の活動とテーマが非常によく似ています。このリストは、DarkHydrusにもリンクしているよく似たドメイン名を提供する、ClearSky Securityの一連のツイートによってさらに拡張されました(こちらとこちらとこちら)。これらのドメインとDarkHydrusとの関連を理解しやすいように、ドメインのリスト間を視覚的にマッピングしました(図7参照)。この図は、DarkHydrusグループがインフラストラクチャで一貫した命名スキーマと構造を使用していることを示しています。DarkHydrusグループは多数のドメインを登録し、ネームサーバーを設定して、C2ドメインのプライマリDNSとして使用しています。
このキャンペーンのために、C2用に導入された特定のネームサーバーを使用して、攻撃者インフラストラクチャをクラスタ化できます。図7では、インフラストラクチャを3つのグループに明確にクラスタ化しています。2つのクラスタに関連するライブ ペイロードを取り出すことができました。3つ目のクラスタはClearSky Securityとも共有されていましたが、ライブ ペイロードをClearSky Securityと関連付けることはできませんでした。3つ目のクラスタは他の2つのクラスタと直接関係があるようには見えませんが、このクラスタは、ドメインとカスタム ネームサーバーの構造を通じて他の2つのクラスタと関連している可能性が極めて高いと言えます。さらに、ドメイン名自体が非常に似ており、いくつかの例ではまったく同じで、トップ レベル ドメインが異なっていました。
取り出したペイロードに関連付けることができた2つのネーム サーバーのセットは、tbs1/tbs2.microsoftonline.servicesとtvs1/tvs2.trafficmanager.liveです。C2ドメインとそのネームサーバーの分布を図7に示します。
サンプル | f1b2bc0831445903c0d51b390b1987597009cc0fade009e07d792e8d455f6db0
5cc62ad6baf572dbae925f701526310778f032bb4a54b205bada78b1eb8c479c |
DNS | tbs1/tbs2.microsoftonline.services |
ドメイン | 0ffice365[.]agency |
0ffice365[.]life | |
0ffice365[.]services | |
0nedrive[.]agency | |
corewindows[.]agency | |
microsoftonline[.]agency | |
onedrive[.]agency | |
sharepoint[.]agency | |
skydrive[.]agency | |
skydrive[.]services | |
サンプル | eb33a96726a34dd60b053d3d1048137dffb1bba68a1ad6f56d33f5d6efb12b97 |
DNS | tvs1/tvs2.trafficmanager.live |
ドメイン | akamaiedge[.]live |
akamaized[.]live | |
akdns[.]live | |
edgekey[.]live |
表7: サンプルとドメインの関連
ドメインの3つ目のクラスタには6つの異なるネームサーバーが関連付けられていますが、他の2つのクラスタとは異なり、すべて互いに直接結び付けられています。各ドメインは6つのネームサーバーを順に利用しているように見えますが、奇妙なことに、複数のドメインが利用していたネームサーバーの1つは現在登録されていないようです。IP解決の履歴を調べると、アクティブなネームサーバー間で共通のIP 107.175.75[.]123が存在することがわかりました。このIPは非常に興味深いIPです。このIPのドメイン解決履歴によると、過去にもドメインhotmai1l[.]comに解決されていたことがわかりました。これは、DarkHydrusインフラストラクチャとの関連性が非常に高いことが過去に特定されたドメインです。さらに、このIPは、我々がDarkHydrusと関連付けた別のIP 107.175.150[.]113 (被害組織の名前を含むドメイン名に解決される)と同じサービス プロバイダーおよびクラスBネットワーク範囲に属しています。
結論
DarkHydrusグループは活動を継続しており、戦略には新たなテクニックが加わっています。DarkHydrusの最新の配信文書によると、このグループがAppLockerバイパスなどオープンソースの侵入テスト テクニックを悪用していることが判明しました。これらの配信文書によってインストールされたペイロードは、DarkHydrusの攻撃者が以前のPowerShellベースのRogueRobinコードを実行ファイルの亜種に移植したことを示しています。これは、OilRigなどの中東で活動する他の攻撃者のグループでよく見られる振る舞いです。最後に、RogueRobinの新しい亜種は、C2チャネルにGoogleドライブ クラウド サービスを使用できます。これは、DarkHydrusがインフラストラクチャのために正規のクラウド サービスを悪用しようとしていることを示しています。
パロアルトネットワークスのお客様は、以下によって既に保護されています。
- このレポートのすべてのサンプルはWildFire内で悪意があると判断されます
- ドメインは悪意があるものとして分類されています
- 次のような、追加のコンテキストのためのAutofocusタグを使用できます。DarkHydrusおよびRogueRobin
IOC
配信文書SHA256
513813af1590bc9edeb91845b454d42bbce6a5e2d43a9b0afa7692e4e500b4c8
e068c6536bf353abe249ad0464c58fb85d7de25223442dd220d64116dbf1e022
4e40f80114e5bd44a762f6066a3e56ccdc0d01ab2a18397ea12e0bc5508215b8
RogueRobin SHA256
eb33a96726a34dd60b053d3d1048137dffb1bba68a1ad6f56d33f5d6efb12b97
f1b2bc0831445903c0d51b390b1987597009cc0fade009e07d792e8d455f6db0
5cc62ad6baf572dbae925f701526310778f032bb4a54b205bada78b1eb8c479c
RogueRobin C2s
akdns[.]live
akamaiedge[.]live
edgekey[.]live
akamaized[.]live
0ffice365[.]agency
0nedrive[.]agency
corewindows[.]agency
microsoftonline[.]agency
onedrive[.]agency
sharepoint[.]agency
skydrive[.]agency
0ffice365[.]life
0ffice365[.]services
skydrive[.]services
skydrive[.]agency
ネームサーバー
tvs1.trafficmanager[.]live
tvs2.trafficmanager[.]live
tbs1.microsoftonline[.]services
tbs2.microsoftonline[.]services
brit.ns.cloudfronts[.]services
dns.cloudfronts[.]services
ns2.akadns[.]services
britns.akadns[.]services
britns.akadns[.]live
ns2.akadns[.]live
関連ドメイン
iecvlist-microsoft[.]live
data-microsoft[.]services
asimov-win-microsoft[.]services
onecs-live[.]services
akamaiedge[.]services
phicdn[.]world
azureedge[.]today
nsatc[.]agency
Akamai[.]agency
t-msedge[.]world