threat-research

Predator the Thief:最新バージョンの分析

はじめに

FortiGuard Labsは、Predator the Thiefという名前で知られているマルウェアの最新バージョン3.3.4の監視を続けてきました。Predator the Thiefに関する前回のブログ発表後も、我々はこのマルウェアファミリーの監視を継続しましたが、マイナーバージョンアップの度に変更が加えられたため、この最新バージョンは前回の記事で説明したバージョン3.0.8と大きく異なります。

12月上旬、バージョン3.3.3を使用したPredator the Thiefの新しいキャンペーンが確認されました。この新たなキャンペーンを分析したところ、以前のバージョンよりもステルス性が高く、より複雑であることがわかりました。さらに、クリスマスイブには再びバージョン3.3.4にアップグレードされました。本レポートでは、最新の機能セットを簡単に分析します。


最近のキャンペーン

まず、このキャンペーンでは請求書のように見せかけた複数のフィッシング文書が使用されており、すべてがPredator the Thiefの同じペイロードをプッシュ送信することがわかりました。図1に感染の連鎖を、図2にフィッシング文書の例を示します。

図1:最近のPredator the Thiefキャンペーンの感染の連鎖

図1:最近のPredator the Thiefキャンペーンの感染の連鎖

図2:フィッシング文書の例

図2:フィッシング文書の例


マルウェアのロード

文書が開かれると、マルウェアは以下の処理を実行します。

  1. AutoOpenマクロがマルウェアVBAスクリプトを実行します。
  2. PowerShellを使って3つのファイルをダウンロードします。
    • VjUea.dat:Legitimate AutoIt3.exe
    • SevSS.dat:Base64でエンコードされ、証明書ヘッダーが付いたAutoItスクリプト
    • apTz.dat:RC4で暗号化されたPredator the Thief

      図3:ファイルをダウンロードし、ローダーをコンパイルし、ローダーを実行してPredator the ThiefをロードするPowerShell

      図3:ファイルをダウンロードし、ローダーをコンパイルし、ローダーを実行してPredator the ThiefをロードするPowerShell

  3. 次に、正規のAutoIt3.exeを使用して、デコードされたAutoItスクリプトを実行します。

    「SevSS.data」は、Windowsの証明書サービスの一部である正規のコマンドラインプログラムであるcertutil.exeによってデコードされます。次に、スクリプトを実行してapTz.datをPredator the Thiefのペイロードに復号します。

    図4:証明書ヘッダーと、Base64でエンコードされたAutoItスクリプト(.au3)

    図4:証明書ヘッダーと、Base64でエンコードされたAutoItスクリプト(.au3)

  4. 次に、Predator the Thiefを特定のHollow Process(このサンプルではdllhost.exe)にロードします。

    図5:Predator the Thiefのデコードとdllhost.exeへのインジェクション

    図5:Predator the Thiefのデコードとdllhost.exeへのインジェクション


Predator the Thiefのハッシュ:

7195659c846b13069d19341b6da99d925acc7db827dd84e7dbe00815511d30b1.

私たちは、マルウェアの実行後にC2サーバーcorp2[.]siteに接続していることを発見しました。そのC2サーバーに送信されるデータからは、情報ファイル「information.txt」にこのマルウェアのバージョンが含まれていることがわかりました。

図6:バージョン3.3.3であることを示すInformation.txt

図6:バージョン3.3.3であることを示すInformation.txt

作成者は、いつものようにTelegramを使用して自らのマルウェアビジネスを宣伝しており、パネルとスティーラーを毎月のようにアップグレードしています。私たちは、更新履歴の情報を顧客に提供するために使用されていた以下のチャネルをチェックしました。


hxxps://t[.]me/PredatorSoftwareChannel

このマルウェアは12月上旬にバージョン3.3.3にアップグレードされ、その後クリスマスイブには新しいバージョン3.3.4に再びアップグレードされたことがわかりました。両方のバージョンのノートは以下のとおりです。

図7:Telegramチャネルのバージョン3.3.3のノート

図7:Telegramチャネルのバージョン3.3.3のノート

図8:Telegramチャネルのバージョン3.3.4のノート

図8:Telegramチャネルのバージョン3.3.4のノート

12月にリリースされたどちらのバージョンでも、スティーラー側に大きな変更点はありませんが、前回の記事以降にいくつかの新機能が追加されました。次のセクションでは、バージョン3.3.3の機能を分析してこの期間の変更点を明らかにします。


特長

より多くのデバッグ回避のトリック

デバッグ回避のさらに多くのトリックがPredator the Thiefに追加されました。

  1. NtSetInformationThread
  2. NtQueryInformationProcess
  3. BeingDebuggedフラグ
  4. CheckRemoteDebuggerPresent
  5. AddVectoredExceptionHandlerによるブレークポイントの検知
  6. デバッガーを永続的に監視するスレッド
  7. 記述子テーブルレジスターチェック
  8. GetTickCountチェック

また、割り当てたメモリにntdll.dllの一部をコピーすることもわかりました。そして、コピーされた部分を単純なシェルコードでフックし、デバッグ回避の目的で関数NtQueryInformationProcessをコールします。また、分析によってNtQueryInformationProcessのフックが検知されないようにしています。さらに、変更を阻止するため、割り当てたメモリのcrc32チェックサムもチェックしています。

図9:NtQueryInformationProcessによるデバッグ回避

図9:NtQueryInformationProcessによるデバッグ回避

メインルーチンの前にも複数レベルのデバッグ回避機能が含まれており、スレッドを使って5秒毎にデバッガーを検知しています。

図10:メインルーチンの前の複数レベルのデバッグ回避

図10:メインルーチンの前の複数レベルのデバッグ回避


より複雑になったアセンブリコード

前のバージョン3.0.8とは異なり、メインルーチンのほとんどのジャンクコードが削除されました。また、アセンブリコードは大幅に短くなりましたが、より複雑化していることもわかります。たとえば、すべての文字列は実行時にXORまたはSUBでデコードされ、それらの文字列デコードループによってフローがより複雑になっています。

図11 バージョン3.0.8と3.3.3のグラフ比較

図11 バージョン3.0.8と3.3.3のグラフ比較


ファイルレス化

また、盗んだ情報をzipファイルとして送信することも明らかになりました。ただし、それらのファイルはファイルシステム内に生成されることはありません。代わりにこのマルウェアは、メモリ空間を割り当ててzipファイル構造全体の場所を特定し、zipファイルをメモリから要求データに直接追加します。

図12:パケット内のデータと解凍されたファイル

図12:パケット内のデータと解凍されたファイル

図13:zipファイルの場所を特定するために割り当てられたメモリ

図13:zipファイルの場所を特定するために割り当てられたメモリ


C2分析:check.get

これは、C2サーバーから構成を取得するために使用されるAPIです。構成が前のバージョンより複雑で詳細になっただけでなく、接続時に暗号化されます。ある例では、Base64でエンコードされたと思われる以下のデータが返されました。

図14:応答パケット内の暗号化されたデータ

図14:応答パケット内の暗号化されたデータ

この文字列は実際に、ベーシックなBase64とRC4のアルゴリズムを使用して暗号化されています。RC4アルゴリズムは、C2ドメイン名をキーとして使用しています。前の図に示した文字列をデコードすると、以下の構成文字列が見つかりました。IP情報は非表示にしてあります。

[0;1;0;0;0;1;1;0;1;;;1]#[]#[City;Country;Longitude;Latitude;IP;Timezone;Postal code]#[]#[]

この文字列は、「#」を使用して5つの部分に分割できます。「[]」は、構成が空であることを示します。

1. バージョン3.3.3で最初に分析した文字列の冒頭部分には、セミコロンで分割された12個の引数が含まれていましたが、バージョン3.3.4ではCISリージョンチェックに関連する構成が削除されました。

  • Webカメラのキャプチャ画像
  • アンチVMチェックの有効化:
    SIDT、SGDT、STR、CPUID
  • Skype情報の収集
  • Steam情報の収集
  • 画面キャプチャ
  • デフォルト言語によるCISリージョンチェックを有効化

バージョン3.3.3では、ロシア語、アルメニア語、アゼリ語、ベラルーシ語、グルジア語、カザフ語、タジク語、トルクメン語、ウズベク語、ウクライナ語がチェックされることがわかりました。ところが、バージョン3.3.4ではデフォルトの言語チェックに関連するコードは削除されていました。図8に示す作成者のノートに記載された情報によると、これはCISリージョンチェックがサーバー側で実行されるようになったためである可能性があります。

  • 実行後に自分自身の削除
  • Telegram情報の収集
  • InetCookiesの収集
  • ファイル検索の制限
  • Base64でエンコードされたPowerShellコマンド(バージョン3.3.2で追加)
  • ブラウザ履歴(バージョン3.3.3で追加)

2. 二番目の部分には、ファイル取得のためのパスが含まれています。その構成の構造例を以下に示します。

[%userprofile%\Desktop|%userprofile%\Downloads;*.txt,*doc;2048;test.txt;0]:[another grabber configuration]

複数のパス構成が含まれている場合があり、構成毎に以下の5つのパートがあります。

  • 初期フォルダ
  • ターゲットファイルタイプ
  • 最大ファイルサイズ
  • ファイル名の除外リスト
  • ディレクトリ構造をメンテナンスするためのオプション

3. 三番目の部分は被害者のIP情報で、C2サーバーによってチェックされ、返されます。

  • 経度
  • 緯度
  • IP
  • タイムゾーン
  • 郵便番号

4. 四番目の部分は、ダウンロードモジュールやその他のマルウェアの実行に関連するサブ構成です。興味深いことに、このマルウェアは他のマルウェアをダウンロードできるため、他のマルウェアのローダーとして利用されるようになった可能性もあります。

Hollow Processインジェクション、リフレクションDLLインジェクション、CreateProcessAやShellExecuteAなどの一般的なAPIの使用をはじめとする、ファイルを実行する複数の方法があります。

このセクションは構成の構造が複雑であるため、簡略化して以下の項目にまとめました。

  • ダウンロードURL
  • ファイル実行方法オプション
  • Hollow Processのコマンドライン文字列
  • ダウンロードファイル名
  • 永続化のためのレジストリ
  • ダウンロードファイルタイプ(.dllまたは.exe)

5. 五番目である最後の部分は、モジュールのダウンロードと実行に関連する別の構成です。構成の4番目の部分とは異なり、APIリストを定義しています。それぞれのAPIが、[APIName].getと[APIName].postからファイルをダウンロードします。

URLの形式は以下のとおりです。

http[s]://[PredatorC2]/api/[APIName].[get|post]
「.get」は、「.rdata」という名前のPEファイルセクションです。
「.post」は、PEファイルの主要部分です。

最終的に、「%ProgramData%\ [5-random-lowercase-letters name]」フォルダに実行可能ファイル「Werfault.exe」が作成され、ShellExecuteAで直ちにそれが実行されます。興味深いことに、API名だけではなくAPIリストとしても実装されているため、異なるAPIから複数のファイルをダウンロードして直ちに実行できます。


C2分析:gate.get

これは、収集した情報をC2サーバーに送信するために使用されます。形式は以下のとおりです。

gate.get?p1=0&p2=315&p3=0&p4=0&p5=0&p6=0&p7=0&p8=0&p9=0&p10=fZWvcQzEdNJmebrpmhICjrWiShZP9vAWnA==

それぞれの引数の意味は以下のとおりです。

  • p1: パスワードの数
  • p2: Cookieの数
  • p3: カードの数
  • p4: フォームの数
  • p5: Steamアカウントの数
  • p6: ウォレットの数
  • p7: Telegramアカウントの数
  • p8: Crc32チェックサムデバッグ回避の結果
  • p9: モジュール実行方法の構成

    この項目は4番目の部分の構成に関連しており、4番目の部分が有効な場合はこの引数が1に設定されます。

  • p10: レジストリキー名とOSバージョンが暗号化された文字列

    この項目はRC4とBase64によって暗号化され、ドメイン名もRC4キーとして使用されます。

    たとえば、このセクションの先頭に、暗号化された以下の文字列があります。

    fZWvcQzEdNJmebrpmhICjrWiShZP9vAWnA==

    これを復号すると以下の文字列になります。

    |Windows 7 Enterprise x64

    これは「レジストリキー名|OSバージョン」という形式で、レジストリキー名は構成の4番目の部分から取得されます。構成が設定されていないと空になり、この構成を設定すると、レジストリキーがHKCU\Software\AdviceService Ltd.\[Name]に作成されます。


終わりに

この最新のPredator the Thiefマルウェアとキャンペーンには、正規のAutoItソフトウェアを悪用してPredator the Thiefマルウェアのペイロードを実行する、単純ではあるものの巧妙な方法が追加されていました。さらに、プログラムフロー全体が変更され、より多くの分析防止機能を使用するようになり、構成がさらに詳細で複雑になりました。また、ファイルレスで情報を収集し、C2に情報を送信した直後に自らを削除するようになっています。これにより、アナリストによる被害者システムの損害の分析がさらに困難になりました。さらには、複数の異なる方法で追加モジュールおよび第2段階のマルウェアを実行するための新機能も追加されました。

私たちは、今後もこのマルウェアファミリーとそれに関連するアクティビティの監視を継続し、重要な変更点が見つかった場合は報告する予定です。

この脅威の詳細は、お客様の保護の強化を目的として、フォーティネットが参加するCyber Threat Allianceの他の参加メンバーにリアルタイムで共有されました。


ソリューション

フォーティネットを採用しているお客様は、以下のソリューションによって前述の悪意のある脅威から保護されています。


IOC

不正文書:VBA/Agent.5C0F!trとして検知されます

670c3bb2d41335cee28f4fe90cf9a76a9b68a965e241df648a0198e0be6a9df1
46710b47763f27a6ffb39055082fa22e3e5a2bd9ae602ea651aefe01079e0c8d
bcf6f482a8a7e81d3e96c54840d2d341d12923a3277688eddd2534d614dab70b
67093ad07a8342c42b01dd1645dbd18ea82cc13081b5ba84fa87617675cc7054
76a4e5baa3650dff80df493fa4aaf04d37bb5d20d7a569ec3bc550bdfb3c1991
50f7c8b3c825930b242dceef47bec9e7039bff40362f960c84cd9ff9edafc94b
759dc4b2ab45e6faf7a9f1325f75956c1954f3695400e66670f6950c06db44c2
4792c8a417b7accd3092788504332881154785a9ee2db2e93e63306813497c7c
35820393614d39e600b4afc3332de4547f25f4b5d076b43ea1af98020ec5a8f0
91722acec748c76de9d98e1797186a03dc9ab2efbd065a0f04e7c04654644dba
14b25649cf6f10670fc8e1afb923895ae0300a8feb78e5033488879d5206267b
b53dd972d466e2d2ded3ce8cc7af28eda77f2939de0d9c1fbd3663fd057ea87d
cb76b3ee29944a7d8b839025c1e9eae32b188443a7bf5cbfbf7eabe682424d92
68875254237c6f887d0f9771b8f356381f8a0384841ae422ef2d49faf30932e9
248ad207c6891d84765ea81d0aa3ca04bee69e0467dff8d693fa4eb76a491c16
4cac9af0198fe82f5ae87ac19e964471f6e87461743a21054c2f063be9c2c514
3118a980caf696fc5c84cb9ee88015f3a0cf205f021270b1f4f313bbae6b6464
caeb9b2518d47f3df6f2ec515ce314dca6993370b9e124479bff959075379a90
e5420cf530192596f2c388eeecfd8d6754af06939461629c94d509b991b967f4
c392229b34617ee5bc9e48bacde3fc8e9046eea51e6101624d312719e970dc00
6215d8637357be64510af9daf778ce12bf8401cdd16216a24da257d42217c65b
c97d6c8075bd9c55fbdcadda6c69c21432d59e872acdc860228b2709edbb6e6c

エンコードされたAutoItスクリプト:

36fe75ca8ca8bcef475737dae530e50eb262484ba0cd4dac0081d8508412d0ad - Autoit/Injector.ESA!tr

RC4で暗号化されたPredator the Thief 3.3.3:

dce3bb2609c710339569404f8dce4e0786521bb0de46ad9358fc27d5b687f043 - W32/Agent.PTM!tr

Predator the Thiefバージョン3.3.3:

7195659c846b13069d19341b6da99d925acc7db827dd84e7dbe00815511d30b1 - W32/Agent.PTM!tr

Predator the Thiefバージョン3.3.4:

b7e0218883dfb06a4bf5bab7bf5ad4038258dd0e925d4fdd772def810ee2c92d - W32/Agent.PTM!tr

C2:以下をマルウェアとして検知します

hxxp://stranskl[.]site/
hxxp://stranskl[.]site/apTz.dat
hxxp://stranskl[.]site/VjUea.dat
hxxp://stranskl[.]site/SevSS.dat
hxxp://stranskl[.]site/api/check.get
hxxp://stranskl[.]site/api/gate.get
hxxp://corp2[.]site/
hxxp://corp2[.]site/api/check.get
hxxp://corp2[.]site/api/gate.get
hxxp://tretthing[.]site/
hxxp://tretthing[.]site/api/check.get
hxxp://tretthing[.]site/api/gate.get


FortiGuard Labs が統合AIシステムを使用して提供する、比類ないセキュリティおよびインテリジェンスサービスの詳細をご確認ください。

FortiGuardセキュリティサービスのポートフォリオの詳細をご覧いただき、毎週お届けしている脅威インテリジェンスブリーフ(英文)をぜひご購読ください。