42は、私たちがDarkHydrusと名付けた攻撃者のグループによる、同様の戦略、ツール、および手順(TTP)を使用した中東での一連の活動に関するレポートをリリースしました。タイプを使用するなどの戦略を使用しているのが観測されました。この最初のレポート以降、DarkHydrusの新しい活動は観測されていませんでした。最近になって360TICが、DarkHydrusによるものと思われる配布文書に関するツイートと続きの調査結果を公開しました。私たちは、配布文書の分析プロセスにおいて、追加の関連サンプルを収集し、GoogleドライブAPIの使用をはじめとするペイロードの追加機能を明らかにして、DarkHydrusによるものである可能性が非常に高いことを確認することができました。分析結果はGoogleに通知済みです。私たちは、トロイの木馬RogueRobinの新しい亜種をインストールするDarkHydrusの配布文書を合計3つ収集しました。これら3つの文書は、非常によく似ており、いずれもマクロにより有効化される、.xlsmというファイル拡張子のExcel文書でした。図1に示すように、既知の文書のいずれにも、マクロを実行するために必要な、コンテンツの有効化ボタンをクリックするよう受信者に指示するルアー画像やメッセージは含まれていません。私たちは配布メカニズムについては確認できませんでしたが、コンテンツの有効化ボタンをクリックする指示は、スピアフィッシング電子メールの本文内など、配布時に提供された可能性が高いものと思われます。DarkHydrusの配布文書にはルアー画像やメッセージがない私たちは、配布メカニズム以外に、これらの配布文書が攻撃に使用された正確な時刻についても確認できていません。これら3つの配布文書内で観測されたタイムスタンプによって、DarkHydrusの攻撃者がそれらをいつ作成したかがわかります。00:00:00Zでしたが、最終変更時刻がまだ確認可能で、DarkHydrusがこれらの文書を2018年12月と2019年1月に作成したことを示していました。ハッシュの詳細を示しています。配布文書のタイムスタンプWorkbook_Openサブルーチンにより、コンテンツの有効化ボタンが押されるとすぐにマクロが実行され、攻撃者が作成したNew_Macro関数が呼び出されます。New_Macro関数は、最初に複数の文字列を連結して、ファイル%TEMP%\WINDOWSTEMP.ps1に書き込まれるPowerShellスクリプトを作成します。この関数は、複数の文字列を連結して2番目のファイルの内容を作成しますが、この2番目のファイルは.sctファイルで、ファイル%TEMP%\12-B-366.txtに書き込まれます。ファイルとして使用されます。次にこの関数は、組み込みShell関数を使用して、次のコマンドを実行し、実際には12-B-366.txtに保存されている.sctファイルを実行します。(@subtee)が最初に発見した、AppLockerをバイパスするための技法として用いられていましたが、最終的にはMetasploitのモジュールが作成されました。WINDOWSTEMP.ps1スクリプトは、base64を使用して埋め込み実行ファイルをデコードし、System.IO.Compression.GzipStreamオブジェクトでそれを解凍するドロッパです。Menu\Programs\Startup\OneDrive.lnkにLNKのショートカットを作成して、Windowsを起動するたびにWindowsTemplate.exeを実行し続けます。WindowsTemplate.exe実行ファイルは、C#で記述されたRogueRobinの新しい亜種です。.NETペイロードDarkHydrusに関する私たちの以前のブログでは、PowerShellをベースとしたペイロードを分析し、RogueRobinと名付けました。.sctファイルのAppLockerバイパス技法を使用した配布文書を分析すると、C#のペイロードが元のRogueRobinのペイロードと機能的に似ていることに気付きました。RogueRobinのPowerShellとC#の亜種に類似性があることから、DarkHydrusグループがコンパイルされた亜種にコードを移植したことがわかります。RogueRobinのC#の亜種は、その亜種がサンドボックス環境で実行されているかどうかを見破るために、PowerShellの亜種と同じコマンドを使用します。カウントのチェックが含まれています。このトロイの木馬は、デバッガがプロセスに接続されているかどうかもチェックし、デバッガの存在を検出すると終了します。このクエリは、文字列”VMware”のシステム情報をチェックするために使用されます。このクエリは、物理メモリの合計が2,900,000,000バイト未満かどうかをチェックするために使用されます。このクエリは、CPUコア数が1個未満かどうかをチェックするために使用されます。実行中のプロセスに”Wireshark”または”Sysinternals”という会社名があるかどうかをチェックします。タイプを使用するC2サーバーと通信します。チェックと同様に、DNSクエリを発行するたびに接続されているデバッガをチェックし、デバッガを検出すると、DNSクエリを発行して676f6f646c75636b.gogle[.]coを解決します。このドメインは、Googleが所有している正規のものです。このサブドメイン676f6f646c75636bは、16進数でエンコードされた文字列で、デコードするとgoodluckになります。チェックに適用済みの場合にのみトリガされるため、リサーチャーへのメモとして存在する可能性が高いですが、分析回避手段として存在している可能性もあります。図2は、接続されているデバッガを検出して対応するDNSリクエストを発行するコードです。デバッガが検出されるとDNSクエリをgogle.coに発行するコードRogueRobinによって発行されたDNSリクエストはすべて、組み込みのnslookup.exeアプリケーションを使用してC2サーバーと通信し、トロイの木馬はさまざまな正規表現を使用して、DNS応答からデータを抽出します。トロイの木馬は次の正規表現を使用して、C2サーバーがC2通信をキャンセルしようとしているかどうかを調べます。216.58.192.174|2a00:1450:4001:81a::200e|2200::|download.microsoft.com|ntservicepack.microsoft.com|windowsupdate.microsoft.com|update.microsoft.com1216.58.192.174|2a00:1450:4001:81a::200e|2200::|download.microsoft.com|ntservicepack.microsoft.com|windowsupdate.microsoft.com|update.microsoft.comまた、トロイの木馬RogueRobinは、表3の正規表現を使用して、DNS応答から情報を抽出するのに適切なデータがその応答に含まれているかどうかを確認します。タイプがC2サーバーと正常に通信できるかを調べます。タイプを使用するC2ドメインのカスタム作成されたサブドメインを解決するRogueRobinペイロードを示しています。908はqhp)、これらの文字を静的な文字aとcで囲むことによって生成されるサブドメインがあります。タイプにも応答し、トロイの木馬が変数に保存してその後のDNSリクエストで使用する一意のID値を提供できます。RogueRobinで使用される文字の置き換えトロイの木馬はその後のDNSリクエストを使用してC2サーバーからジョブを取得し、これをコマンドとして処理します。ジョブを取得するために、トロイの木馬は、次の構造を持つサブドメインを構築し、DNSクエリをC2サーバーに発行します。c<一意のID><3桁にするために’0’がパディングされたジョブID><シーケンス番号>c生成されたサブドメインは次に、数字を文字に置換(表4の逆方向)する機能が適用され、事実上サブドメインのすべての桁が文字に変換されます。トロイの木馬は、表3の正規表現を使用してこのクエリの応答をチェックします。トロイの木馬は、キャンセルではない応答を受信すると、DNS応答からデータを抽出し、これをコマンドと見なします。表5は、RogueRobinのC#の亜種が処理できるコマンドを示しています。これは既に分析済みのPowerShellの亜種と非常によく似ています。代替モードである’x_mode’をオンにして、代替C2チャネルを使用します。前に”OFF”が付いている場合は、’x_mode’をオフにします。それ以外の場合、このコマンドは、この代替C2機能を使用するための改行区切りの設定を追加します。このコマンドには、新規ファイルをシステムに保存するためのパスとして使用される文字列が続きます。