This post is also available in: English (英語)
概要
2018年7月、Unit 42は、中東地域の少なくとも1つの政府機関に対する、新しいファイル タイプを使用した標的型攻撃を分析しました。この攻撃は、弊社が「DarkHydrus」として追跡している、これまでに公開されていない脅威グループによって実行されました。弊社のテレメトリに基づき、明らかになった追加の調査結果によると、2016年初めから、この攻撃者グループが現在の作戦で活動してきたと弊社は確信しています。今回の攻撃は、このグループに関して弊社がこれまで観測した攻撃とは異なり、悪意のあるExcel Webクエリ ファイル(.iqy)を含む、パスワードで保護されたRARアーカイブ ファイルを添付したスピアフィッシング メールを標的の組織に送信します。
.iqyファイルは、デフォルトでExcelによって開かれる、URLを含む単純なテキスト ファイルです。このファイルを開くと、Excelは、ファイル内のURLにあるあらゆるオブジェクトを取得します。これらのファイルは、Flawed Ammyyなどのコモディティ型RATを配信するために、犯罪者によって使用されたのが最近確認されています。DarkHydrusの場合、以前の攻撃で好んで使用されたペイロードは、オープンソースの合法的なツールばかりで、それらを悪意のある目的で濫用していました(MeterpreterやCobalt Strikeなど)。しかし、今回の攻撃では、このグループは、弊社がRogueRobinと呼ぶ、カスタムPowerShellベースのペイロードを使用しています。
攻撃の分析
攻撃者は、スピアフィッシング メールを7月15日から16日にかけて送信しました。それぞれのメールには、credential.rarという名前のパスワードで保護されたRARアーカイブ ファイルが添付されていました。図1のとおり、メッセージの本文は、アラビア語で書かれており、受信者にアーカイブ ファイル内のドキュメントを見るように依頼しています。また、メッセージには、123456というパスワードが含まれており、これはRARアーカイブ ファイルを開くのに必要です。credential.rarアーカイブ ファイルには、credential.iqyという名前の悪意のある.iqyファイルが含まれています。
図1 配信メールのメッセージ本文
Google翻訳によると、アラビア語のメッセージの翻訳は以下のようになります。
Hi
Please review and review the attached file
Gratefully
Password: 123456
(こんにちは
添付ファイルをよく読んでください
よろしくお願いします
パスワード:123456)
ペイロードの分析
credential.iqyは、.iqyファイル(SHA256: cc1966eff7bed11c1faada0bb0ed0c8715404abd936cfa816cef61863a0c1dd6)であり、以下のテキスト文字列のみが含まれています。
hxxp://micrrosoft[.]net/releasenotes.txt
Microsoft Excelは、ネイティブで.iqyファイルを開き、ファイル内のURLを使用して、スプレッドシートに組み込むリモート データを取得します。デフォルトでは、Excelは、リモート サーバーからのデータのダウンロードを許可しないため、図2のダイアログ ボックスを表示して、ユーザーの同意を求めます。
図2 .iqyファイルに対するExcelのセキュリティ警告
このデータ接続を有効化することで、ユーザーは、Excelに.iqyファイル内のURLからコンテンツを取得させることができます。releasenotes.txtファイル(SHA256: bf925f340920111b385078f3785f486fff1096fd0847b993892ff1ee3580fa9d)内のコンテンツには、次の式が含まれており、Excelはこの式をワークシートの「A0」セルに保存します。
この式は、コマンド プロンプトを使用してPowerShellスクリプトを実行し、hxxp://micrrosoft[.]net/winupdate.ps1というURLでホストされている2番目のPowerShellスクリプトをダウンロードし、実行しようとします。デフォルトでは、Excelは、コマンド プロンプト アプリケーションを起動しませんが、以下の図3のダイアログ ボックスでユーザーの同意を得て起動します。
図3 リモート データのアクセス確認
winupdate.ps1スクリプト(SHA256: 36862f654c3356d2177b5d35a410c78ff9803d1d7d20da0b82e3d69d640e856e)は、弊社がRogueRobinと呼ぶ、この攻撃のメインとなるペイロードです。この開発者は、オープンソースInvoke-Obfuscationツール、特にInvoke-Obfuscationが提供するCOMPRESS技法を活用して、PowerShellスクリプトを難読化します。解凍されたPowerShellペイロードは、ジッタ値の使用やジョブIDで参照されるコマンドなど、PowerShell Empireエージェントといくつかの類似点がありますが、このツールの作成者がツールの開発において、Empireをベースに使用したかどうかは確信を持てません。
何らかの機能を実行する前に、ペイロードは、サンドボックスで実行中かどうかをチェックします。ペイロードはWMIクエリを使用して、実行プロセスをチェックし、スクリプトが分析環境で実行中かどうかを確認します。固有のサンドボックス チェックは以下のとおりです。
- WMIを使用して、VBOX、bochs、qemu、virtualbox、およびvmについて、BIOSバージョン(SMBIOSBIOSVERSION)をチェックする。
- WMIを使用して、XENについてBIOSメーカーをチェックする。
- WMIを使用して、物理メモリーの合計が2900000000未満であることをチェックする。
- WMIを使用して、CPUコア数が1以下であることをチェックする。
- 「Wireshark」および「Sysinternals」が存在しているかどうかを確認するため実行中プロセスを列挙する。
ペイロードがサンドボックスで実行中でないと判断すると、システムに自らをインストールして永続的に実行しようとします。ペイロードをインストールするために、スクリプトは、%APPDATA%\OneDrive.batというファイルを作成して、次の文字列をそのファイルに保存します。
powershell.exe -WindowStyle Hidden -exec bypass -File "%APPDATA%\OneDrive.ps1"
次に、スクリプトは、自らの変更済みコピーを、省略されたこのインストールを実行するコードとともに、%APPDATA%\OneDrive.ps1に書き込みます。システム始動時に永続的に実行されるように、スクリプトは次のショートカットをWindowsスタートアップ フォルダに作成します。これにより、システムが起動するたびに、OneDrive.ps1スクリプトが実行されます。
$env:SystemDrive\Users\$env:USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\OneDrive.lnk
ペイロード自体が、カスタムDNSトンネリング プロトコルを使用して、設定済みのコマンド&コントロール(C2)サーバーと通信します。このペイロード内で設定されているドメインは以下のとおりです。
- Anyconnect[.]stream
- Bigip[.]stream
- Fortiweb[.]download
- Kaspersky[.]science
- microtik[.]stream
- owa365[.]bid
- symanteclive[.]download
- windowsdefender[.]win
DNSトンネリング プロトコルは、複数の異なるDNSクエリ タイプを使用して、C2サーバーと対話できます。ペイロードには、テストの初めに呼び出す関数があり、その関数によって正常にC2サーバーに到達できるDNSクエリ タイプを見つけます。一連のタイプによりこの関数が繰り返され、C2サーバーから応答を受け取った最初のDNSタイプが、ペイロードとC2サーバー間のすべての通信で使用されます。以下のような順序になります。
- A
- AAAA
- AC
- CNAME
- MX
- TXT
- SRV
- SOA
ペイロードは、特定のパラメータおよび特別に作成されたサブドメインとともに、組み込みのWindows nslookupアプリケーションをを使用して、C2と通信します。C2との通信を確立するために、ペイロードは、まずC2サーバーが発行するシステム固有IDを取得します。システム固有IDを取得するためにペイロードが送信した最初のDNSクエリは、以下の構造を使用しますが、この構造には、C2ドメインのサブドメインとして、カレントプロセスのID(PID)が含まれています。
<カレントプロセスのID>.<C2ドメイン>
C2サーバーは、DNS応答のAnswerセクションでシステム固有IDを提供します。表1には、クエリ タイプに応じて、どのようにペイロードがC2サーバーのAnswerセクションからシステムIDを取得するかを示しています。
DNSタイプ | 説明 |
A | 正規表現(\d+)\-.$Global:domainを使用して、Answerから10進値を取得 |
AAAA | ペイロードは、IPv6のAnswerセクションを「:」で分割し、[0]および[1]の数字を16進値とみなして、整数を取得 |
AC、CNAME、MX、TXT、SRV、SOA | 正規表現Address:\s+(\d+.\d+.\d+.\d+)を使用して、IPv4アドレスの最初のオクテットの10進値を使用 |
表 1 クエリ タイプの詳細
システムIDを取得すると、ペイロードは、システム固有情報を収集し、C2サーバーに送信します。収集した情報は、以下の構造で文字列に追加されます。
<IP アドレス>|<コンピュータ名>|<ドメイン>|<ユーザー名>|<isAdminフラグ>|<configのhasGarbageフラグ>|<configのhasStartupフラグ>|<configの「ハイブリッド」モードフラグ>|<configのスリープ インターバル>|<configのジッタ値>
ペイロードは、この文字列をBase64エンコードし、DNSトンネリング プロトコルを使用して、このデータをC2に送信します。トンネリング プロトコルは、C2ドメインのサブドメイン内にデータとともに一連のDNSクエリを送ることで、データを送信します。これらのアウトバウンドDNSリクエストのそれぞれの構造は以下のとおりです。
<システムID>-<ジョブID>-<データのオフセット><追加データ フラグ>-<ランダム長のBase64エンコード データ(30~42文字)>.<C2ドメイン>
ペイロードは、C2との通信にペイロードが使用するDNSリクエストのタイプに応じて、これらのアウトバウンド クエリに対する異なる応答を探します。以下は、C2通信に使用するDNSクエリのタイプに応じて、成功またはキャンセルのメッセージを送信するためにC2が使用する特定のIPアドレスまたは文字列を示しています。
DNSタイプ | 成功 | キャンセル |
A、AC | 1.1.1.\d+ | 1.2.9.\d+ |
AAAA | 2a00:: | 2200:: |
CNAME、MX、TXT、SRV、SOA | ok | cancel |
システム固有の情報を指定した後、ペイロードはC2サーバーと通信してコマンドを取得し、このコマンドをペイロードがジョブとして参照します。C2は、コマンド ハンドラーに基づいて実行するコマンドを決定するためにペイロードが使用する文字列を提供します。コマンドとして扱う文字列を取得するために、ペイロードは、一連のDNSクエリを発行し、以下の構造のドメインを解決します。
<システムID>-<ジョブID>-<ジョブ固有のオフセット データ>.<C2ドメイン>
C2サーバーは、C2サーバーと通信するためにペイロードが使用するDNSクエリのタイプに応じ、これらのクエリに対して、IPv4アドレス形式またはIPv6アドレス形式のAnswerを格納した応答を返しします。このペイロードは、コマンド文字列を取得するために使用されるDNSクエリのタイプに応じて特定の正規表現を使用します。これらを表2に示します。
DNSタイプ | 正規表現パターン |
A | Address:\s+(\d+.\d+.\d+.\d+) |
AC | \d+-\d+-(\d+)-([\w\d+/=]+)-\d-.ac.$Global:domain |
AAAA | Address:\s+(([a-fA-F0-9]{0,4}:{1,4}[\w|:]+){1,8}) |
CNAME、MX、TXT、SRV、SOA | (\d+)-([\w\d/=+]{0,})\-.$Global:domain |
表2 C2が提供する応答のタイプ
これらの正規表現は、ペイロードがコマンド ハンドラーに提出することになる文字列を構築するために使用されます。弊社は、このペイロードを分析し、さまざまなリモート管理機能を提供するために使用できるコマンドを判別しました。コマンド ハンドルは、表3に示す、次のコマンド文字列を探します。
コマンド | 説明 |
$fileDownload | 指定ファイルの内容をC2にアップロード |
$importModule | 指定されたPowerShellモジュールを現在のスクリプトに追加 |
$screenshot | コマンドの内容を実行。文字列「$screenshot」である必要がある。動作するかどうかは不明であるが、このコマンド名は、スクリーンショットの取得を意図していることを示唆している。 |
$command | PowerShellコマンドを実行し、出力をC2に送信 |
slp:\d+ | C2ビーコン間のスリープインターバルを設定 |
$testmode | A、AAAA、AC、CNAME、MX、TXT、SRVおよびSOAのタイプのDNSクエリをC2サーバーに発行し、どのDNSクエリ タイプが成功したかの確認を試みる。このコマンドは、実際のC2に使用するDNSタイプを自動的に設定する。 |
$showconfig | ペイロードの現在の構成をC2にアップロード |
slpx:\d+ | アウトバウンドDNSリクエスト間のスリープインターバルを設定 |
$fileUpload | C2サーバーからコンテンツをダウンロードし、指定のファイルに書き込み |
表3 ペイロードで使用できるコマンド
キャンペーンの分析
次のドメインは、C2として使用されるペイロード内で構成されます。テーマとして、各ドメインは、セキュリティ ベンダーを強調して既存のテクノロジ プロバイダの本物のドメインになりすまそうとしていたと考えられます。
- Anyconnect[.]stream
- Bigip[.]stream
- Fortiweb[.]download
- Kaspersky[.]science
- microtik[.]stream
- owa365[.]bid
- symanteclive[.]download
- windowsdefender[.]win
リストしたC2サーバーはすべて、中国のサービス プロバイダに属しているIP (1.2.9.0/24)に解決されました。これは、キャンセルの通信メッセージをエンド システムに送信するためにC2サーバーが使用するIPアドレスです。これらのIPからはさらに調査を進めるに足るデータは得られませんでした。しかし、リストしたドメインそれぞれがネーム サーバーとしてns102.kaspersky[.]hostおよびns103.kaspersky[.]hostを使用していました。ns102/ns103.kaspersky[.]hostを調査すると、第2レベルのドメインであるkaspersky[.]hostは本物ではなく、本物のKaspersky Labsが所有しているものではないことが明らかになりました。kaspersky[.]hostのパッシブDNS解決によって、興味深い2つのIPが明らかになりました。107.175.150[.]113と94.130.88[.]9です。
94.130.88[.]9は、2つの追加ドメインのパッシブDNS解決を示しました。0utlook[.]bidとhotmai1[.]comです。これらのドメインが使用された目的は不明ですが、ドメインになりすまし、IPを共有するという類似性に基づくと、これらは攻撃者のインフラストラクチャの一部である可能性があります。107.175.150[.]113は、別の1つのドメイン解決を示しました。qu.edu.qa.0utl00k[.]netです。弊社は、この固有ドメインを、このインシデントで見つかったPowerShellスクリプトに非常によく似たスクリプトを含む別の兵器化されたドキュメント(SHA256: d393349a4ad00902e3d415b622cf27987a0170a786ca3a1f991a521bff645318)のC2と結びつけることができました。0utl00k[.]netの第2レベルのドメインを調査した結果、興味深い別のIPが見つかりました。195.154.41[.]150です。このIPには、著名ベンダーになりすますという手口を使った、2つの別のドメイン解決が含まれていました。allexa[.]netとcisc0[.]netです。cisc0[.]netを展開すると、2017年の半ばから終わりにかけて、C2としてこのドメインを使用していたいくつかの兵器化されたドキュメントおよびペイロードが見つかりました。
ClearSky Securityが提供しているオープン ソース インテリジェンスは、ドメインcisc0[.]netがCopy Kittensという攻撃者グループに関連する可能性があることを示しています。使用している手法の類似性や被害者のタイプなど、戦略的に重複している点は多いですが、弊社は、関連性の重複についての大きな証拠を明らかにすることはできませんでした。Copy Kittens攻撃者の詳細については、「Operation Wilted Tulip」(しぼんだチューリップ作戦)というタイトルのペーパーを参照してください。
弊社独自のデータセットから、DarkHydrusグループが確立したグループであることは、当該グループが同じC2インフラストラクチャを頻回利用することや、兵器化されたバイナリが類似していることからうかがい知れます。2017年1月と7月に他に2つの別のペイロードとともにこの攻撃に使用されたドメインmicrrosoft[.]netなどのC2ドメインもオンラインに残されていて、長期間再利用されました。
弊社がDarkHydrusに属していると考えたその他のサンプルを調査した結果、この攻撃者は、無償提供またはオープン ソース リポジトリ(Meterpreter、Mimikatz、PowerShellEmpire、Veil、CobaltStrikeなど)のツールを使用し、兵器化されたMicrosoft Officeドキュメントを主に利用していることが確認されました。これらのドキュメントには通常、悪意のあるコードは含まれていませんが、兵器化され、実行時に悪意のあるコードを含むリモート ファイルを取得します。配信ドキュメントのモジュール特性によって、これらの攻撃の分析に使用できるデータは、実行時のC2サーバーの動作特性に依存します。
結論
DarkHydrusグループは、悪意のある.iqyファイルを使用して中東の政府機関への攻撃キャンペーンを実行しました。.iqyファイルは、リモート サーバーからコンテンツをダウンロードしてスプレッドシートに含めるExcelの機能を利用します。DarkHydrusは、この目立たないファイル フォーマットを利用して、コマンドを実行し、最終的にPowerShellスクリプトをインストールしてシステムへのバックドア アクセス権を取得しました。この最近の攻撃で配信されたPowerShellのバックドアは、脅威グループによってカスタム開発されたのかもしれませんが、合法的なオープン ソース ツールのコードを使用してDarkHydrusがこのツールを作成したのかもしれません。
パロアルトネットワークスのお客様は、以下の製品によって保護されています。
- micrrosoft[.]netドメインは2017年3月3日以降、悪意のあるドメインとして分類されます。
- このペイロードに関連付けられたすべてのC2ドメインは、コマンド アンド コントロールとして分類されます。
- Trapsは、Excelによるコマンド プロンプト プロセスの作成をブロックできるエンドポイント プロテクションを提供します。
- AutoFocusのお客様は、DarkHydrusタグでさらに詳細を把握できます。
IOC
関連SHA256ハッシュ
ペイロード
- cec36e8ed65ac6f250c05b4a17c09f58bb80c19b73169aaf40fa15c8d3a9a6a1
- ac7f9c536153780ccbec949f23b86f3d16e3105a5f14bb667df752aa815b0dc4
- a547a02eb4fcb8f446da9b50838503de0d46f9bb2fd197c9ff63021243ea6d88
- d428d79f58425d831c2ee0a73f04749715e8c4dd30ccd81d92fe17485e6dfcda
- dd2625388bb2d2b02b6c10d4ee78f68a918b25ddd712a0862bcf92fa64284ffa
- b2571e3b4afbce56da8faa726b726eb465f2e5e5ed74cf3b172b5dd80460ad81
- c8b3d4b6acce6b6655e17255ef7a214651b7fc4e43f9964df24556343393a1a3
- ce84b3c7986e6a48ca3171e703e7083e769e9ced1bbdd7edf8f3eab7ce20fd00
- 99541ab28fc3328e25723607df4b0d9ea0a1af31b58e2da07eff9f15c4e6565c
配信ドキュメント
- d393349a4ad00902e3d415b622cf27987a0170a786ca3a1f991a521bff645318
- 8063c3f134f4413b793dfc05f035b6480aa1636996e8ac4b94646292a5f87fde
- 9eac37a5c675cd1750cd50b01fc05085ce0092a19ba97026292a60b11b45bf49
- cf9b2b40ac621aaf3241ff570bd7a238f6402102c29e4fbba3c5ce0cb8bc25f9
- 0a3d5b2a8ed60e0d96d5f0d9d6e00cd6ab882863afbb951f10c395a3d991fbc1
- 0b1d5e17443f0896c959d22fa15dadcae5ab083a35b3ff6cb48c7f967649ec82
- 870c8b29be2b596cc2e33045ec48c80251e668abd736cef9c5449df16cf2d3b8
- ff0b59f23630f4a854448b82f1f0cd66bc4b1124a3f49f0aecaca28309673cb0
- 01fd7992aa71f4dca3a3766c438fbabe9aea78ca5812ab75b5371b48bd2625e2
- 6dcb3492a45a08127f9816a1b9e195de2bb7e0731c4e7168392d0e8068adae7a
- 47b8ad55b66cdcd78d972d6df5338b2e32c91af0a666531baf1621d2786e7870
- 776c056096f0e73898723c0807269bc299ae3bbd8e9542f0a1cbba0fd3470cb4
- cf7863e023475d695c6f72c471d314b8b1781c6e9087ff4d70118b30205da5f0
- e88045931b9d99511ce71cc94f2e3d1159581e5eb26d4e05146749e1620dc678
- 26e641a9149ff86759c317b57229f59ac48c5968846813cafb3c4e87c774e245
- b5cfaac25d87a6e8ebabc918facce491788863f120371c9d00009d78b6a8c350
- ad3fd1571277c7ce93dfbd58cee3b3bec84eeaf6bb29a279ecb6a656028f771c
関連ドメイン
- maccaffe[.]com
- cisc0[.]net
- 0utl00k[.]net
- msdncss[.]com
- 0ffice[.]com
- 0ffiice[.]com
- micrrosoft[.]net
- anyconnect[.]stream
- bigip[.]stream
- fortiweb[.]download
- kaspersky[.]science
- microtik[.]stream
- owa365[.]bid
- symanteclive[.]download
- windowsdefender[.]win
- allexa[.]net
- kaspersky[.]host
- hotmai1[.]com
- 0utlook[.]bid