DowneksおよびQuasar RATを使用した、政府機関に対する最近の標的型攻撃

This post is also available in: English (英語)

概要

先日、Palo Alto Networks 次世代エンドポイントセキュリティTrapsが、DustySkyと関連した攻撃活動の一部と考えられる最近の攻撃を阻止しました。DustySkyは他社がGazaサイバーギャング グループの関与を指摘している攻撃活動であり、同グループはGaza地区の政府関係者を標的にしています。

このレポートは攻撃およびリモート アクセス ツール(RAT)に関するリサーチャーの分析を共有するものです。また、この攻撃者が使用していたRATサーバ自体がリモート攻撃に対して脆弱性があり、攻撃者にとっては両刃の剣であったこともこの調査中に分かりました。

攻撃

この攻撃における最初の感染ベクターは明確ではありませんが、結果として“Downeks”ダウンローダーがインストールされ、このダウンローダーが今度は被害者のコンピューターを“Quasar” RATで感染させました。

DowneksはサードパーティのWebサイトを利用して被害者のマシンの外部IPを判定しましたが、ことによると、GeoIPで被害者の場所を判定していたかもしれません。また、攻撃をカモフラージュしようとしておとり文書をドロップするといったこともします。

Quasarは.NET FrameworkベースのオープンソースRATです。攻撃者は、このRATのソース コードおよびRATサーバを変更することと、難読化プログラムやパッカーを利用することで、このツールの隠ぺいを企てることに多大な努力を払いました。

検出

Unit 42リサーチャーは、2016年9月に、Trapsで保護されたクライアント上でQuasar RATの実行が阻止されているところを目の当たりしました。私たちが確認したこれらのQuasarサンプルは以下のとおりです。

ファイル名: f-secure.exe
SHA256: 99a7cb43fb2898810956b6137d803c8f97651e23f9f13e91887f188749bd5e8f
注: hnoor.newphoneapp[.]comに接続

ファイル名: HD_Audio.exe
SHA256: 0c4aa50c95c990d5c5c55345626155b87625986881a2c066ce032af6871c426a
注: manual.newphoneapp[.]comに接続

ファイル名: HD_Audio.exe
SHA256: 86bd78b4c8c94c046d927fb29ae0b944bf2a8513a378b51b3977b77e59a52806
注: 実行時にクラッシュ

ファイル名: sim.exe
SHA256: 723108103ccb4c166ad9cdff350de6a898489f1dac7eeab23c52cd48b9256a42
注: hnoor.newphoneapp[.]comに接続

さらにリサーチを進めたところ、別のQuasarサンプルが見つかりました。これは2016年同月上旬の、同じ標的に対する攻撃です。

SHA256: 1ac624aaf6bbc2e3b966182888411f92797bd30b6fcce9f8a97648e64f13506f

同じ日の新たな攻撃で同じQuasarコードが見つかりましたが、標的は違いました。2番目のQuasarサンプルもこの新しい被害者を攻撃しているところが確認されました。

SHA256: 99a7cb43fb2898810956b6137d803c8f97651e23f9f13e91887f188749bd5e8f

攻撃を受けた具体的なホストについて、これまで詳細に観察できず、私たちのラボでは攻撃の第2段階を再現することができずにいます。しかし、私たちが観察した後続のテレメトリに関する時間帯に基づけば、攻撃の連鎖は以下のとおりであったと理解しています。

  1. 最初のドロッパー(攻撃によってさまざま)が電子メールまたはWebを介して配信される。

ファイル名: Joint Ministerial Council between the GCC and the EU Council.exe”
SHA256: 0d235478ae9cc87b7b907181ccd151b618d74955716ba2dbc40a74dc1cdfc4aa

  1. 最初のドロッパーは、実行されると埋め込み済みDowneksインスタンスを即座に抽出する。

ファイル名: ati.exe
SHA256: f19bc664558177b7269f52edcec74ecdb38ed2ab9e706b68d9cbb3a53c243dec

  1. DowneksがPOSTリクエストをdw.downloadtesting[.]comに対して発行する。その結果、被害者のマシンにQuasar RATがインストールされる。
  2. 前述のサーバdw.downloadtesting[.]comに接続している別のDowneksダウンローダーもこの攻撃において見つかる。

SHA256: 15abd32342e87455b73f1e2ecf9ab10331600eb4eae54e1dfc25ba2f9d8c2e8a

SHA256: 9a8d73cb7069832b9523c55224ae4153ea529ecc50392fef59da5b5d1db1c740

さらにリサーチを進めると、こうした攻撃者と関連のあるDowneksおよびQuasarのサンプルが十数個特定されました。これらはすべて、アラビア語で書かれたおとり文書(いずれも中東の政治に関連するもの)またはヘブライ語で書かれたおとり文書を内包していました。これらの大多数が同じミューテックス構造を使用し、DustySkyサンプルに見られるのと同様に、同じ偽アイコンのほか、特異なメタデータの詳細、ファイル書き込み、レジストリ操作、および偽の共通プログラム メタデータを共有しています。

DowneksダウンローダーおよびQuasar C2インフラストラクチャは、それぞれ自己完結型であり、互いに独立していす。しかし、私たちは、明らかにDowneksダウンローダーとQuasar C2インフラストラクチャを結びつける単一の共有IPアドレスを確かに見つけました。下記のチャート(図1)は、Quasarインフラストラクチャ(上)、Downeks (下)、および共有IPリンクを示しています。

図1 QuasarおよびDowneks
図1 QuasarおよびDowneks

サンプルおよびインフラストラクチャをチャート化すると、Downeks攻撃活動数個とインフラストラクチャのリンクが明らかになります(図2)。

図2 インフラストラクチャのパターンとつながり
図2 インフラストラクチャのパターンとつながり

図2において、右上(緑色)にQuasarインフラストラクチャ(図3)があり、そこにはDowneksインフラストラクチャへのリンクがあります。左(黄色)にはDustySkyインフラストラクチャ(図4)およびこのDowneks攻撃活動へのリンクがあります。コード、おとり、および標的における類似性だけでなく、私たちはDustySkyとこの攻撃活動の間にあるC2インフラストラクチャのリンクも突き止めました。残りはDowneksサンプルの下位の攻撃活動、それらのインフラストラクチャ、リンク、および、好んで使うISP(中央) (図5)です。

攻撃のタイミングは中東の平日(図6)と一致していました。

図6 曜日別の攻撃
図6 曜日別の攻撃

曜日別サンプル作成は、ほとんど同一のパターンになります(図7)。

図7 曜日別の作成
図7 曜日別の作成

各サンプル間のリンクをさらに確固たるものにして、2015年12月の同じ日に作成されたサンプルを5個、そして1月の同じ日に作成されたものを6個見つけました。

Quasar

私たちは、分析時に活動中のC2サーバと通信をしていたQuasarサンプルを分析しました。

SHA256: 4393ff391396cdfd229517dd98aa7faecad04da479fe8ca322f035ceee363273

Quasarは公開されているコモディティ型RATであり、ドイツ人の開発者“MaxXor”による初期のxRATの進化版です。このサンプルはQuasarの修正版であり、GitHubにあるオープンソース版1.2.0.0から派生したことはほぼ間違いありません。クライアントはQuasarサーバ クライアント ビルダーを使って作成された可能性が高いです。私たちは以下のカスタマイズを確認しました。

C2サーバ:

ポート4664経由でapp.progsupdate[.]comと通信します。これは、185.141.25[.]68に解決されました。

Quasarのミューテックス名:

VMFvdCsC7RFqerZinfV0sxJFo

キーロガーのログ位置:

Users\hJTQwqwwSCkZU\AppData\Roaming\GoogleDesktop\

マルウェアは偽のバージョン情報を使ってMicrosoft更新プログラムおよび一度パック処理されたGoogle Desktopを装います。

パッカー

このサンプルは“Netz”を使ってパック処理されています。Netzはシンプルな.NET Frameworkパッカーで、圧縮済みの元の実行形式(zlib)をリソースとして保存します。実行時にパッカーはリソースを解凍し、Reflectionを使ってアセンブリをロードし、そのエントリ ポイントを見つけたら起動します。ペイロードの抽出処理は単純明快であり、リソースをダンプして解凍するだけです。解凍が済むと、パッカーは次のようになります。

リソースを見つけ、InvokeAppを呼び出します:

リソースを解凍しReflectionを使ってロードすることで、アセンブリ オブジェクトを入手します:

最後に、エントリ ポイントを見つけ、呼び出します:

抽出処理で得られたもの:

SHA256: c931de65d9655a772d23e4227a627a1140d8d3c4912ca71c324421b13efa1a02

このレイヤーは、検出/分析を回避しようとして難読化を利用します。

難読化

サンプルは.NET Reactorを使用して難読化されていることが分かりました。難読化を解除したサンプルを逆コンパイルして元のソース コードの大半を読みだすことは可能ですが、単純にコンパイルできるほど十分読みだすことはできません。

難読化解除後に以下のものを抽出しました。

SHA256: d773b12894d4a0ffb0df328e7e1aa4a7112455e88945a10471650e503eecdb3d

Quasarのコード

サンプルを逆コンパイルすると、オープン ソース版Quasarからの変更点について文書化することができました。

設定

Quasarの設定はSettingsオブジェクトの中に保存されています。このオブジェクトはパスワードにより暗号化されていますが、このパスワード自身は暗号化されない状態で保存されています。

変更点:

  • ISCHECKIPおよびINSTARTUPFOLDERはオープン ソース版Quasarサンプルには見つかりません。

暗号

分析対象のサンプルはECBモードおよびPKCS7パディングによるRijndaelManagedを使用しています。キーはハードコード化されたパスワードのSHA256のハッシュです。分析対象のサンプルのパスワードは次のとおりです。

“6y7u^Y&U6y7u^Y&U6y7u^Y&U”

一見すると少し複雑そうに見えますが、実際にはむしろ単純で、キーボードの並びを繰り返したものになっています。他のサンプル内に類似のキーボード パターンが見つかっており、それは“567%^&”, “zxc!@#ASD”です。

変更点:

  • MD5でなくSHA256を使用してキーを作成しています。
  • 暗号化にはAESでなくRijndaelManagedを使用しています。(ECBモードを使っていますが、このモードは弱いと考えられています。)

シリアライゼーション

Quasarには、クライアントとサーバが通信するために使用する高度なIPacketオブジェクトをシリアライゼーションするNetSerializerライブラリが含まれています。シリアライゼーションでは、シリアライズ可能なオブジェクト タイプに一意のIDを割り当てます。オープン ソースと私たちが検出した他のいくつかのサンプルでは、コンパイル時に1バイトIDが動的に割り当てられていました。分析したサンプルでは、動作が変更され、オブジェクト タイプごとにDWORDがハードコード化されていました。この方が、異なるバージョンのサーバとクライアントがある程度まで相互に通信可能となるため、より適した実装と言えます。

バージョン

分析したサンプルは、おそらく、オープン ソースのQuasar 1.2.0.0から分岐されたものです。バージョンを示唆する複数のファイル/オブジェクト名を見つけましたが、以下の点には従わざるを得ません。

Quasarバージョン1.1.0.0では、暗号化モジュール名前空間に“Encryption”と名付けていますが、後続のQuasarバージョンでは“Cryptography” (このサンプルで検出)が使用されています。

Quasarバージョン1.3.0.0では、暗号化キー生成が変更され、パスワードのサンプルへの保存は中止されました。オブジェクト名、ファイルなどのより多くの示唆があります。

分析した他のサンプルでは、暗号化とシリアライゼーションに別の組み合わせの変更が加えられていました。

C2サーバ

シリアライゼーション ライブラリの逆コンパイルは、単純に再コンパイルできるほど十分には完了しませんでした。代わりに、オープン ソースのQuasar RATの1.2.0.0サーバをダウンロードしてコンパイルし、これがほぼ同様のバージョンであるらしいことを突き止めました。すぐに使用可能なサーバですが、私たちが観察した前述の変更のせいで、クライアント サンプルとは通信できませんでした。これらの変更を私たちのビルドに統合し、これが、さらなる変更はほとんどなく、大半のサンプル バージョンで機能していたことを見つけました。

クライアントとサーバはどちらも、同じコードを使用して、通信をシリアライズし暗号化しています。クライアントごとに異なるサーバをコンパイルするのではなく、サーバはクライアント内のコードを使用して、クライアントと通信しています。サーバは、リフレクションを使用して、クライアントのアセンブリをロードして、関連する機能とパスワードを検索できます。

クライアント アセンブルのロード:

暗号化:

サーバ バージョンはサンプル クライアントと同じAPIを使用しているため、どちらかと言えば単純です。

AESクラスの取得:

setDefKeyの取得、暗号化および復号化方法:

サーバ機能の置換:

を、以下で

を、以下で

を、以下で

シリアライゼーション:

これは、さらに複雑でした。クライアントとサーバはどちらも同じAPIを使用しますが、クライアント シリアライザはサーバ オブジェクトをシリアライズできません。これは、サーバ オブジェクトがクライアント内で「ミラーされた」オブジェクトと同じでないからです。場合によっては、これらのオブジェクトは完全に異なっています。たとえば、ファイル システムを取得するためのサーバ コマンドの場合などです。

私たちのソリューション:

  1. サーバが送信したオブジェクトを即座に、ミラーされた一致するクライアント オブジェクトに変換します(クライアントにこのオブジェクトがないか、名前が変更されている場合は、動作しません)。
  2. サーバ オブジェクトから新しいクライアント オブジェクトにコンテンツをコピーします(クライアント実装が異なっている場合は動作しません)。
  3. クライアント オブジェクトをシリアライズします(後から暗号化し送信します)。
  4. 復号化された応答を別のクライアント応答オブジェクトにデシリアライズします。
  5. クライアント応答オブジェクトをクライアント応答オブジェクトのサーバ バージョンに変換します。
  6. クライアント応答オブジェクトから変換されたサーバ オブジェクトにコンテンツをコピーします。
  7. 変換後のオブジェクトを返します。

通信

サンプルは、TCPポート4664経由でapp.progsupdate[.]comと通信します。これは、185.141.25[.]68に解決されました。

アーキテクチャ

以下は、Quasarクライアントとサーバ間の通信アーキテクチャです(図8)。

図8 通信アーキテクチャ
図8 通信アーキテクチャ
  1. サーバがコマンドを送信します。たとえば、“Get System Information”。
  2. コマンドは、GetSystemInfoタイプのIPacketに変換されます。
  3. パケットは、バイト ストリームにシリアライズされます。
  4. バイト ストリームは暗号化されます(バージョンによっては、オプションの圧縮手順もあります)。
  5. バイト ストリームはTCP経由でクライアントに送信されます。
  6. クライアントは、パケットを受信し復号化します。
  7. クライアントは、パケットをIPacket GetSystemInfoにデシリアライズします。
  8. クライアントの関連するハンドラが呼び出され、システム情報を収集して、それをGetSystemInfoResponseのIPacket内に返送します。

私たちが見つけたさまざまなサンプル内では、これらの各層はある程度異なっているようです。IPacket、シリアライゼーション、暗号化のフレームワーク コードはクライアントとサーバで共有されているため、リフレクションでもそれを使用できます。ただし、サーバ ハンドラとコマンド関数は共有されていないため、完璧なシミュレーションは作成できません。

初期ハンドシェイク

TCPハンドシェイクの完了後、サーバは、パケットを以下の順序で送信して、クライアントとの別のハンドシェイクを開始します(図9)。

図9 初期ハンドシェイク
図9 初期ハンドシェイク

クライアントは被害者のコンピュータに関するデータをサーバに返し、それらがサーバGUIに表示されます(図10)。

図10 Quasar RATサーバGUI
図10 Quasar RATサーバGUI

その後、サーバとクライアントはキープアライブ モードに入ります。このモードで、攻撃者はクライアントにコマンドを送信し、さらなる応答を受信できます。

RATコマンド

攻撃者は、QuasarサーバGUIを通じて各クライアントに対してコマンドを実行できます(異なるサンプルですべてのコマンドが現れるわけではない)。

  • システム情報の取得
  • ファイル システムの取得
  • ファイルのアップロード/ダウンロード/実行
  • マネージャの起動
  • タスク マネージャを開く
  • プロセスの停止/開始
  • レジストリの編集
  • リバース プロキシ
  • コンピュータのシャットダウン/再起動
  • リモート デスクトップ接続を開く
  • デスクトップとアクティブ ユーザーのアクションの観察
  • リモートでのマウス クリックとキーボード ストロークの発行
  • パスワードを盗む
  • キーロガー ログの取得
  • Webサイトへの訪問
  • メッセージ ボックスの表示

私たちのサーバ ビルドでは、大半のコマンドを正常に実行できました。

ハンドラとIPacketを明確に示すファイル システム コマンドは、より多くの機能をサポートするように変更されたため、これらのコマンドはそのまますぐには動作せず、手動で実装する必要がありました。

両刃の剣…

さらにQuasar RAT C2サーバを分析すると、リモートでのコード実行が可能であるという、サーバ コードの脆弱性が明らかになりました。これによって、第2の攻撃者が好みのコード、たとえば、自分が所有するQuasar RATを元の攻撃者のサーバにインストールすることが可能となります。私たちはこの手法を(皮肉を込めて)“両刃の剣攻撃(Double Edged Sword Attack)”と呼んでいます。これは、稼働中のC2サーバには適用しませんでした。ラボ内の専用サーバでのみテストしました。

ラボでは、Quasar RATソース コードを、既知の暗号化キーを使用して、偽の被害者のIPアドレス、都市、国コード、フラグおよびユーザー名を送信するように変更しました。QuasarサーバはRATデータを検証せず、RATが実行されサーバに接続すると、このデータをRATサーバGUIに表示します。これは、GUIを介して「被害者」に接続している攻撃者を確信させるための説得力のある「被害者データ」を提供するために使えることがわかりました。

Quasarサーバには「ファイル マネージャ(File Manager)」ウィンドウが組み込まれているため、攻撃者は被害者のファイルを選択して、ファイル操作をトリガーできます。たとえば、被害者のマシンからサーバへファイルをアップロードします。アップロードされたファイルは、サーバのサブ ディレクトリ“clients\user_name@machine_name_ipaddress”に書き込まれます。

Quasarサーバは、アップロードされたファイルのサイズ、ファイル名、拡張子またはヘッダーが要求したものと同じであることを検証しません。そのため、ファイル“secret_info.doc (20KB)”を要求したものと攻撃者を確信させた場合、代わりに任意のサイズまたはタイプの任意に選択したファイルをサーバに返すことができます。

Quasarサーバは、被害者からアップロードされたファイルの名前を取得するときに、それが有効なファイル パスであることを検証しません。そのため、ファイル パス“..\..\ secret_info.doc ”を送信すると、代わりに私たちのファイルがQuasarサーバ コードと同じディレクトリに書き込まれます。

Quasarサーバは、ファイルが被害者から要求されたものだったかどうかも検証しません。攻撃者によって「File Manager(ファイル マネージャ)」ウィンドウが開かれるとすぐに、QuasarサーバはRATに2つのコマンド、GetDrivesとistDirectory (RATサーバGUIに被害者のファイルのリストを取り込むため)を送信します。私たちは、代わりに選択した2つのファイルをQuasarサーバに送信することで、それらのコマンドに応答できます。ここでも、ファイルのコンテンツ、サイズ、パス、およびファイル名を制御できます。

Quasarは、.NET Frameworkアセンブリであり、起動時に、たとえば“dnsapi.dll”などの複数のDLLをロードします。Quasarサーバは、単純なDLLハイジャック攻撃に対して脆弱です。この手法は、サーバDLLを置き換えるからです。

攻撃者がQuasarアプリケーションを再起動したときには、代わりに私たちがアップロードした“dnsapi.dll”がロードされます。このベクトルを通じて、私たちのQuasarクライアントを攻撃者のサーバにドロップし、それを実行できました。Quasar RATは専用の(もちろん、安全な) Quasarサーバに接続するため、それによって私たちは攻撃者のサーバを攻撃者自身のRATで制御できます。また、攻撃者がビルダー タブをクリックするたびにロードされる“shfolder.dll”を置き換える(さらに、クラッシュを回避するためにDLLエクスポート プロキシを追加する)こともできます。これによって、私たちは、サーバが稼働中に、アプリケーションの再起動を待機する必要なく、サーバを感染させることができます。

Downeks

Downeksはある程度まで公開で調査されてきましたが、私たちの分析から、いくつかの機能がまだ解明されていないことがわかりました。

以前のDowneksサンプルは、すべてネイティブ コードで記述されていました。ただし、私たちのDowneksサンプルの中で、.NETで記述されているらしい新しいバージョンを発見しました。ネイティブDowneksバージョンと新たな.NET Downeksバージョンでは、どちらにも多数の動作上の類似点と固有の文字列が観察されます。.NETバージョンのこの分析で説明するほぼすべての文字列と動作がネイティブ バージョンにも存在します。

これらのサンプルは、ヘブライ語を話す人々のみを標的として展開されていることが観察されました。

Downeks.NET – “SharpDownloader”

Downeks .NETの内部名は“SharpDownloader”で、“Sharp”はC#で記述された言語を指しているようです。

以前のDowneksバージョンで見られるように、VMwareワークステーション(図11)やCCleanerなどの人気のある正規のアプリケーション、またはDOCやPDFなどの共通のファイル形式を模倣したアイコン、ファイル名およびメタデータによる成りすましを使用しています。

図11 – VMWareワークステーションとして成りすましたアプリケーション メタデータ
図11 – VMWareワークステーションとして成りすましたアプリケーション メタデータ

3つのサンプルはすべて、同じタイムスタンプでコンパイルされていました。Downeks.NETは“Yano”を使用して難読化されており、de4dotユーティリティを使用して簡単に難読化を解除できます。

SHA256: 4dcf5bd2c7a5822831d9f22f46bd2369c4c9df17cc99eb29975b5e8ae7e88606
SHA256: 905f6a62749ca6f0fd33345d6a8b1831d87e9fd1f81a59cd3add82643b367693
SHA256: c885f09b10feb88d7d176fe1a01ed8b480deb42324d2bb825e96fe1408e2a35f

通信

Downeksは、非常に基本的な機能のみを備えたバックドアです。HTTP POSTリクエストを使用してC2サーバと通信します。

それは、無限ループ内で稼働し、ループごとにC2からのコマンドを要求し、その後、C2応答で受信した期間スリープします(スリープ時間が送信されない場合のデフォルトは1秒間)。

POSTで送信されたデータは、jsonを使ってシリアライズされ、その後、暗号化されて、最終的にbase64でエンコードされます。json形式は、通常、{“mth”:”some_method”, “data”:”some_encrypted_data”}です。C2サーバは、同じ形式およびシリアライゼーション/暗号化/エンコーディングを使用して応答します。

ダウンロードと実行

前の分析で説明したとおり、Downeksの主な目的はダウンローダとして動作することです。残念ながら、C2サーバに、ラボでテストしたサンプルに対してダウンロード コマンドを発行させることはできませんでした。

ダウンロードは、“download”コマンドとともにjsonを受信したときに開始されます。これには、ダウンロードするファイルのURLが含まれています。Downeksに、被害者のマシンに既存のバイナリを実行するように指示することもできます。正常に実行した後、Downeksはその結果をC2サーバに返します。

Downeksには、C2によって指示された場合に自己更新する機能もあります。

スクリーン キャプチャ

“img”コマンドを使用すると、被害者の画面をキャプチャして、C2に送り返すように、Downeksに指示することができます。パラメータ“wth”と“qlt”は、「幅」と「画質」を指定します。

Appdata

Downeks .NETは、マシンの特定のプロパティに基づいて、“Appdata”ディレクトリ内にファイルを作成します。分析中に、Downeksは“SD{new line} 0” (“SD”は、おそらく“SharpDownloader”の略)のみを含むファイルを“Appdata\Roaming”に作成しました。

このファイル自体は特に興味深くはありませんが、より古い(ネイティブ) Downeksバージョンも、同一のデータを持つファイルをAppdata\Roamingに作成します。

2つの亜種のファイル名には、著しい類似点があります。.NET亜種は“1FABFBFF0000065132F71D94”を作成する一方、ネイティブ バージョンは“000206511FABFBFF”を作成します。私たちは、ネイティブ亜種のデバッグ時に、メモリ内で文字列“1FABFBFF0000065132F71D94”を発見しました(図12)。これは、レジストリから取得したインストール日、ボリュームのシリアル番号、OSバージョンとサービス パック、プロセッサ アーキテクチャ、およびコンピュータ名に基づく、マシンごとの擬似固有IDです。

図12 メモリ内のマシンID
図12 メモリ内のマシンID

インストール済みのアンチウイルス チェック

Downeksは、被害者のマシンにインストールされているアンチウイルス製品を列挙し、そのリストをC2に送信します。このリストは、WMIクエリを使用して作成されます。

“SELECT displayName FROM AntivirusProduct”

持続性

Downeksは、レジストリの“run”キーまたは起動フォルダ内のショートカットのいずれかを通じて、ホストの持続性を実現します。

外部IP

両方の亜種のもう1つの類似点は、Dowenksがhttp://www.myexternalip.com/rawへのHTTPリクエストを使用して、外部IPを評価する点です。

その他のコマンド

C2は、他のいくつかのコマンドを実行するように、Downeksに指示することができます。

  • コンピュータ名とユーザー名、または外部IPアドレスが提供されたリスト内にあるかどうかをチェックし、ある場合は、C2によって定義されたとおりに、メッセージをメッセージ ボックスに表示します。
  • 任意の実行中のプロセスを停止し、関連付けられた実行可能ファイルの削除を試みます。
  • “Setup”コマンドは、C2通信ループのループごとにマシンに関するさまざまな情報を送信します。

暗号化キー

Downeksには、コードにハードコード化された静的な暗号化キーがあります。これらのキーは“Defaults”クラス コンストラクタ内で初期化されます。このことから、このマルウェアの作成者はスタックオーバーフローに深く傾倒していることが推察されます。

タイポ

このバージョンのコード内には“responce” (“response”)や“GroubID” (“GroupID”)などのいくつかのタイポが見受けられます。

範囲と侵害の痕跡(IoC)

Palo Alto Networksのお客様は、次の方法で、この攻撃で使用されるDowneksおよびQuasarから保護されます。

  • WildFireは、これらのDowneksおよびQuasarサンプルを悪意のあるものとして適切に分類します。
  • Trapsは、新しい未知のQuasarサンプルが示す悪意のある動作を検出しブロックします。
  • この活動に関連付けられたC2サーバは、脅威防御DNSシグネチャを通じてブロックされます。
  • AutoFocusのお客様は、DowneksおよびQuasarRATタグを使用して、この活動を監視できます。

侵害の痕跡のリストは、付録A「IoC」に記載されています。

付録A – IoC

C2ドメイン

downloadtesting.com
gameoolines.com
onlinesoft.space
newphoneapp.com
gamestoplay.bid
smartsftp.pw
galaxysupdates.com
galaxy-s.com
datasamsung.com
progsupdate.com
topgamse.com
bandtester.com
speedbind.com
ukgames.tech
wallanews.publicvm.com
wallanews.sytes.net
noredirecto.redirectme.net
dynamicipaddress.linkpc.net
downloadlog.linkpc.net
havan.qhigh.com
kolabdown.sytes.net
rotter2.publicvm.com
ftpserverit.otzo.com
webfile.myq-see.com
downloadmyhost.zapto.org
help2014.linkpc.net
safara.sytes.net
exportball.servegame.org
viewnet.better-than.tv
down.downloadoneyoutube.co.vu
netstreamag.publicvm.com
hostgatero.ddns.net
subsidiaryohio.linkpc.net
helpyoume.linkpc.net

Quasar & Downeks SHA256

3053e1e8df7e525ef98a77190cefce258aea365e2998425ecc8e139230680156
f19bc664558177b7269f52edcec74ecdb38ed2ab9e706b68d9cbb3a53c243dec
0d235478ae9cc87b7b907181ccd151b618d74955716ba2dbc40a74dc1cdfc4aa
96c1346351a53c865afef5e087a8cbcf8e28d652fbc083a93399a8b94328d456
15abd32342e87455b73f1e2ecf9ab10331600eb4eae54e1dfc25ba2f9d8c2e8a
b66e5af52fd4d802f64788692b3eafe6b5ff61cea09c06a237a96b6cdb90b41a
55a7ca1e5ed2d74c7eb6ab6a985c1d369157a91275f575967aefb7ddb3388e0c
9a8d73cb7069832b9523c55224ae4153ea529ecc50392fef59da5b5d1db1c740
39bdeaded0f919caa6697ae1ae4953de1c7afa79905939dbbd8c647a84f6cd07
0e41c3611da6e3a2b0dd0d43b9ce0b3f3405472efa5760767719cc82692afb7b
bc7c3f687d0589a4db53475bc65056a628b52aa27f84c1d76b9fe686d495df27
0d1aa670df8ae1379d6997c9dc8b40c893ee395c3d45b84c2ad1732e86973143
8ac7138215b2500d0737b483b9194419c0e0248014147e84f43b1e2b409184cf
8ca99455d244fab2701beb5127f94745154e03ac1231a58f8bd2cd01732a341b
a149340f920888256902e28e4c5d8587fed3037682e875ed1fdf6a3213c50e92
78aaed20914d3895708985aee089a464b31e11eb3b3e90b530dcebbe10e915ec
704b19e0460a0fa7d952ba6feb5eadb9054895d1d753df72faf6f470446a0519
118d0bd8ec35b925167c67217d2fe06ac021ce253f72d17f1093423b8f9b4a2b
68ec3588735341566e9736b897aac06affb4a4808b05ceffb72384e77ea04b2c
d3c710eaaf849598fa486823da42bdce03ea3c9421c3936e3330e98b34e4ef47
e6e9f7b0449976537d9276192e5767c9909cd34df028a8bf1cac3dbe490f0e73
75336b05443b94474434982fc53778d5e6e9e7fabaddae596af42a15fceb04e9
4dcf5bd2c7a5822831d9f22f46bd2369c4c9df17cc99eb29975b5e8ae7e88606
b8a3096a396c28462c0d168d97e28573e0e6d272bbc1dd2432e7effe098bd979
905f6a62749ca6f0fd33345d6a8b1831d87e9fd1f81a59cd3add82643b367693
c885f09b10feb88d7d176fe1a01ed8b480deb42324d2bb825e96fe1408e2a35f
0c4aa50c95c990d5c5c55345626155b87625986881a2c066ce032af6871c426a
1ac624aaf6bbc2e3b966182888411f92797bd30b6fcce9f8a97648e64f13506f
1acffe68fcdc301b8ab7640eda75ff82788b2f93d869e421e28bacbba93b76d1
723108103ccb4c166ad9cdff350de6a898489f1dac7eeab23c52cd48b9256a42
99a7cb43fb2898810956b6137d803c8f97651e23f9f13e91887f188749bd5e8f
86bd78b4c8c94c046d927fb29ae0b944bf2a8513a378b51b3977b77e59a52806
3243292E46A198BD83E0DCE58258312852C99217187E6D5399066189FEB2677B
9b8d8780454708b950459d43161097ac72f62ff349bc8f379b5b2216bc9ae935
3619b12b11cda6e87644d3316355d99ee5fa5407aa8a8f107aa1058e33b19bf6
0f8378603e269db16eb7eaca933b587c7de3e914c1d9afaaae688c410befb895
d3066fa4a7a1ef38c753796479768b765c6903ef50c35352e29e79dcd49e4348
39b991838653739eef482af6336fcf03922d7e9d88d17946b688a513dd2bfc34
4393ff391396cdfd229517dd98aa7faecad04da479fe8ca322f035ceee363273
759ae70b035c3bbb6699520db3a55f3947e6ba1b5ce639ec036e3096ee10b26d
17942d9d76dafb64aa0d3ab53c9ee56e5d8bd4477440f06780b70dd4c02af8b8
fea74bf9eed7363f97a09756b4652409cfcd7bbe023383805aec5da7de6310bd
f5413c785770400215c3191ea887517b4380ec81be4e5bdc5aea12bf82f9105d
8cdbea2aea51f73c68adc517eed533802e1f3b2a9ec0b0560b6bb8fc03ac3e4f
dbdc72a7cfbf03599b95d8f1c47e157da34ea5d2f951cf5f49715e8caab58cd4
65986f6f919e9152176a10ae3964fac130ae6195e189453d17306a225022774d
91a4e395d57a52a85a2bda653a0ed796865e8af01c1345dff63469759448daf0
53e82d01dd2502416ad49329e1224a7c4519182186e60f690ecd0cf266f5af5e
575708d3eb23f8111b7174408f05caf6574c5d6782c750562bfb9abe48cb219e
fefa0781e88fa215419b2a1294c8b952b192f8360aeab2f97bbd9cea15fc7338
ea16f0d55918752ad432d0da03a7e39ab9a8442b74ae0bbe724900605a9ba71f
6f6414c8f8a800c769da1f6994cad25757a2928375803a498171db3395183b98
dbeb3c262cc6eefea93846f817e8333ee541ec23d19ffef56a94585e519e6ff1
2ddce8b010f011a04cf24dc8e5932ae13b463dd6a3cb9bf02ae835b04a70d042
182c82100069834ad4a8dadee6874cfb612f0b9babc7cd3ee5d69f16440ad6d7
f772463bafef5f45f675658eee43b6f56911a4f449afb0cc68ac068002a2f875
b30e3dc47848666e71c1f13050a6502b2c2a7a542ee867d152ffb2dd186d7114
e5e4895d2195e14a3a105f3ed73fd49493e9dbdd7dfc6f6616023473fa8f86c6
f4eda40b3f1c77f8f9e02674d93214dd31c13080b034e37b26cc66d744500b1e
95d9a2b664e3e5c1206d94241ded115643aa0452dd3fe3338363ff826260f40c
575b84c2d3bceebfabb2deb289a230f52aca2c504aa854251c1e9057f3f0cf5a
21f09c93325c03940c24d8bd6f33a1a4876bfd5feb8c8bac05b0a359255c0b42
695821451be582d85cd8e42ce4446f131bd474e6c715bdf13fe8bac6de34b2e3
e874deabb7953c2b9b5e67fc08297019bb0171c2fbdbe136b822cee4d43b72e5
6a700aea23f7cb6907e464981a136b0fbfb5a48b910af2f9a44baf98d25f1722
b6adae77a975058720e525a7f6d2451a01fedd3c6cab1515570d8490a8eb4f67
d735c19fc9223e1bc4e625c1f47801d758426fbae89e5086bc56a8d6b1df2011
a66a27d801891e39d3819355366399fabbf2f05327ddb7c7b5d304fabeac7118
cdf4ec8beb3f15d04b54165b53475aa03949a67f9cb1847a749b2fb44a3fe0a4
0045c28ed2a9d98efb798ec59f34b6a3058838f933af7c0dae6482a0e86e37bf
8814fec28ccac77456be73305b32ad5a266a4929203b2acf431759c90fe579bd
f1b682808f1819f0e3d030fce1fd6b1ca95ad052b069e028cd9ed4afd81cd4d6
f361974e6fd6a6d7cfbfafb28159c4f8e514fe6f399788be4daa2449767d5904
11b1088ad962984f6df89ccc6bbc98bf220af952dec0b4622f8453a0a164cb65
Aacf24e288388431b30f8da765b4696975adc9cc0303d285abb05077eda21da2
02bd710d3055076f86116d28427322c9cb623291c6c5a66c1932181fc6558586
5e7d68c53212f6d467533f105d4a067682e28da47304a53c17b056d2b4404f0a
3ff059a53e38f9fcd24e8d6bf008b4e14733db317857764cfcef736119ff26c9
dcc04adf96045e7227a0e1f1d092919276b21035bcb3c5ed462650ef8d2e7aa3
20e3d4c9223955495d00e72e2fedfe825e9fcda57696a255215895cfba490876
6050d4c1efcf8242382293842313f3a93309f1e449197d98c60cec29090c6bff
1d533ddaefc7859a3f6c6751114e895b7aa5935eb0ed68b01ec61aa8560ae3d9
488ba22d6cb8c9b0310c58fa4c4739692cdf45676c3164b357314322542f9dff
7eeeae1f2fc62653593c7ce254e9cf855905035c2e8f8c0588887cb8e99dd770
d2d08bb2707b635617e5bab0fcd033b6f68a753dd2b3897adca1c627758e686b
d30dbf17078a11c32dd23acea42335860e739c9f18bf0ed611132eef4d5cfcb6
7c578dcdcefe78fb1dd51ac611f6450d9eb5be6c5f1e3363f460321a46be4a39
a40627acae6917787e92f9efa85739136c1670dcc5fe66695e105ddd72d7b80a
5668470c92408f4b9f3a659005c2acca9da8df750cc491bffc88ef640474fa4a
d735c19fc9223e1bc4e625c1f47801d758426fbae89e5086bc56a8d6b1df2011
25e6bf67410dffb95c527c19dcff5223dbc3bf4c987650e45fbea1267072e8ff
f53fd5389b09c6ad289736720e72392dd5f30a1f7822dbc8c7c2e2b655b4dad9
2c2ae3f482d9db2541de0d855b5b12cd18028a94887f0c28acf1e2d6a4f3d4ac
a35e2b21f7f770debcffc79eb4834ec8881465df06cee41af705b6ea5d899978
a7aeeead233fcdfe1c7475db982497a82d8ae745ec1c58bd87215e8869c3f9e4
f0e3562d0438695c7f3af0c280968cfc7134b484010d9ba2aceab944b441b127
f5413c785770400215c3191ea887517b4380ec81be4e5bdc5aea12bf82f9105d
29049e2c7671a7c4fc953cb76e539150cc7c80e1b83c19d0894dfa446ce5276e
2eb7aa306551d693691d14558c5dc4f6d80ef8f69cf466149fbba23953c08f7f
dbdc72a7cfbf03599b95d8f1c47e157da34ea5d2f951cf5f49715e8caab58cd4
de3e25a69ba43b9f236e544ece7f2da82a4fafb4489ad2e263754d9b9d88bc5c
bc846caa05939b085837057bc4b9303357602ece83dc1380191bddd1402d4a2b
44b99603dde822b6b86577e64622e9a2f5b76b6d8bd23a3fe1b4d91b73d0230a
bb24105295588d14c4509ec7374fbe6f7a4821cf4e9d9282754dd666ad7a7ea1