threat-research

Predator the Thief:新たな侵入経路

FortiGuard Labsによる脅威分析レポート

はじめに

2019年3月、FortiGuard Labsは、ロシア語を使う人々を標的としたスティーラー(情報窃取)型マルウェア、Predator the Thiefの新しいバージョンを使って現在展開されている攻撃キャンペーンを発見しました。この攻撃者は、以前にも1セットのダミーファイルを使い、ZIPファイル、偽物の文書やPDF、CVE-2018-20250で報告されているWinRARエクスプロイトなどの様々なフィッシング手法を駆使してこのスティーラー型マルウェアを送りつけていました。

この記事では、まず作者がハッキングやゲームチートのフォーラムでこのマルウェアをどのように販売しているか、そしてそれがどのように維持され更新されているかを見ていきます。その後、マルウェアのコードを確認してその中に仕組まれているトラップを検証します。最後に、購入者がどのようにこのマルウェアを難読化し送信しているのか、購入者が実験に使った他のサンプルとともに解説します。


Predator the Thief

私たちがPredator the Thiefを最初に発見したのは2018年7月のことで、ハッキングフォーラムで他の様々なスティーラー型マルウェアと一緒に販売されていました。このマルウェアには、C2(コマンド&コントロール)コントロールパネルとマルウェア実行ファイルビルダーが含まれています。

機能はスティーラーとしては極めて標準的で、感染しているホストに関する情報を収集する、ブラウザからパスワードを盗む、バッファーで仮想通貨ウォレットを置き換える、ウェブカメラから写真を撮影することができるほか、多くのオプション機能も設定可能になっています。興味深いのは、C#で書かれている他の多くのスティーラーと異なり、このマルウェアはすべてC/C++で書かれていることです。

このマルウェアのコアの部分は、このトピックに関する最後の投稿内容から多くの変化はないため、詳細はFumik0_が執筆した バージョン2.3.5.の分析レポート(英語)をご参照ください。

この分析では、このマルウェアは当初「Alexuiop1337」によって書かれたことが明らかになっています。ハッキングやゲームチートのフォーラムに表示される広告をチェックすると、Predatorのプロモーションが非常に活発に続いていること、そして作者は現在「Kongress_nlt」という名前を使っていることがわかります。

図1:Predator the Thiefマルウェアの広告

図1:Predator the Thiefマルウェアの広告

フォーラム上のリンクをクリックすると、「sett9」のTelegramのプロファイルが表示されました。sett9のチャットは現在も頻繁に更新されています。「@sett9blog」のチャットはそれほど使われていませんが、「@PredatorSoftwareChannel」の方は、リバースエンジニアリングやPredatorのアップデートニュースに関するプライベートブログとして使われているようです。

図2:Telegramにおけるユーザー「sett9」とその公開チャット

図2:Telegramにおけるユーザー「sett9」とその公開チャット

@PredatorSoftwareChannelで提供されている情報から、このマルウェアの更新タイムラインが確認できます。バージョンv3.0.8は2019年3月4日にリリースされ、次の新バージョンv3.1.0 は、2019年3月21日にリリースされています。この作者が発行した最新のリリースノートもTelegramのチャンネルで入手できます。次の図では、そのリリースノートと英訳を示しています。

図3:Predator v3.0.8とv3.1.0のリリースノート

図3:Predator v3.0.8とv3.1.0のリリースノート


最新リリースv3.2.0に関する情報

そして今では、最新のv3.2.0が発表されています。このリリースでは、マルウェアの価格が35米ドルから80米ドルに値上げされています。

図4:Predator the Thiefマルウェアのバージョン3.2.0のリリースノート英訳

図4:Predator the Thiefマルウェアのバージョン3.2.0のリリースノート英訳

ここで作者は、新たな興味深い機能についても書いています。今回のバージョンはすべて書き換えられ、ファイルレスのマルウェアになったというのです。つまり、被害を受けたシステムにはファイルやディレクトリが一切残らないので、ステルス性がはるかに高まることになります。残念なことに、この記事を書いている時点で出回っているv3.1.0やv3.2.0のサンプルを確認することができていません。そのため、このリサーチブログではPredator the Thiefの古いバージョン(v3.0.8)を分析することにしました。これは、作者自身もしくはこのマルウェアの購入者の一人が始めたと思われる攻撃キャンペーンで使われているバージョンです。


分析に対する罠

このような未知の攻撃者が使用しているPredatorのバージョンは、一つ前のバージョンとそれほど変わっていません。

分析を開始すると、このマルウェアの実行後にテキストファイルでバージョン情報を入手できました。

図5:information.txtに書かれたPredatorのバージョン情報

図5:information.txtに書かれたPredatorのバージョン情報

マルウェアのコードは、分析のペースを落とすために難読化されています。私たちは、Predatorのすべての文字列が動的に作られており、その一部は「xor」や「not」、「sub」のエンコーディングなどのシンプルなバイト操作によってファイルまたはアセンブリの中でハードコード化されていることを発見しました。

興味深い点は、文字デコーダーのように偽の関数ペアを実施するトラップが含まれていることです。正しい文字をバイト単位で関数ペアに入力した後、同じ文字を出力します。図6の赤で囲った部分は、文字列「cmdvrt64.dll」がトラップ関数に入力されている箇所です。

図6:通常の文字列入力に対する複雑な文字列生成とトラップ関数

図6:通常の文字列入力に対する複雑な文字列生成とトラップ関数


C2サーバーへの接続

このキャンペーンでは、すべてのサンプルがC2(コマンド&コントロール)サーバーとして以下のドメインを使っています。

  • hxxp://sonsobakq1.mcdir[.]ru/

「mcdir[.]ru」はロシアのWebホスティングサービスで、誰でも無料でサブドメインを登録できます。私たちは、このC2サーバーとの下記の接続パターンも発見しています。

  • hxxp://sonsobakq1.mcdir[.]ru/api/conf.get
  • hxxp://sonsobakq1.mcdir[.]ru/api/info.get
  • hxxp://sonsobakq1.mcdir[.]ru/api/gate.get?p1=[x]&p2=[x]&p3=[x]&p4=[x]&p5=[x]&p6=[x]&p7=[x]
  • hxxp://sonsobakq1.mcdir[.]ru/api/download.get

Fumik0が執筆した前回の分析レポート(英語)で触れられていないのは、「conf.get」のみです。これは、このマルウェアのさらに新しいバージョンで追加されためだと考えられます。ここで、追加情報を提供するためにさらに詳しく調べてみましょう。

応答データには7つのアイテムがありますが、configuration processing(構成処理)関数で処理されているのはそのうち5つだけです。これらは、特定の機能を有効 / 無効化するためにPredator the Thiefのメインルーチンにおいてフラグとして使われているだけだということがわかりました。

図7:構成応答のデータ

図7:構成応答のデータ

各アイテムの意味は以下の通りです。

  • p1: Webカメラのビデオキャプチャ
  • p2: アンチデバッグ / アンチサンドボックス
  • p3: logins.jsonとsignons.sqliteを収集するためのFirefox用パスワードスティーラー構成フラグ
  • p4: スチームデータスティーラー
  • p5: スクリーンショットキャプチャ

現行バージョンでは、p7とp8のフラグは使用されていませんが、グラバーがターゲットファイルの拡張子を変えるための設定があります。しかし、その設定も有効になっていません。

上記の図7は、スクリーンショットキャプチャとFirefox構成フラグを有効にした構成です(0は、Firefox構成用に有効になっています)。


今回のPredatorキャンペーンで使用されている送信トリック

今回のキャンペーンにおいて、AutoItで圧縮されたPredatorのサンプルを複数発見しました。これらはすべて、生地の価格リストや布の写真を使って犠牲者を引き寄せ、AutoItで圧縮されたこのマルウェアを実行しようとします。


アーカイブと偽物の文書を使ったフィッシング

今回のキャンペーンで発見されたサンプルの一つはZIPファイルの中にあり、複数の写真の中にある文書として偽装されています。

図8は、この古いトリックを紹介しています。 ここでは、文書に似たアイコンを使って実行ファイルを文書に見せかけています。ZIPファイルの名前は英語になっており、個人向け防護用品やユニフォームのデザインと販売に特化した会社の名前が付けられています。この偽物の文書名は「仕立用の注文」という意味で、その後にはロシアのある連邦市の行政区画の名前が続いており、この文書の対象は非常に絞られたものになっています。

exeファイルを実行すると、あたかも正当な文書かのようにダミー文書が表示され(図9)、その背後でマルウェアも同時に実行されます。

図8:偽造文書とダミー画像の入ったフィッシングZIPファイル

図8:偽造文書とダミー画像の入ったフィッシングZIPファイル

図9:マルウェアが使用しているダミー文書

図9:マルウェアが使用しているダミー文書


WinRARエクスプロイトによるフィッシング

別のサンプルでは、過去にCVE-2018-20250(英語)で特定されているWinRARソフトウェアの「UNACEV2.dll」ライブラリの脆弱性を悪用しています。

ここでは、トリックのトリガーとなるこのエクスプロイトを、2つの図を使って紹介しましょう。

図10は、このエクスプロイトがどのように使用されているかを示したものです。悪意のある「.rar」ファイルを犠牲者が解凍すると、「.png」拡張子がついた3つのダミー画像が表示されます。しかしながら、その背後ではエクスプロイトがトリガーされ、悪意ある「hi.exe」というファイルがWindowsのスタートアップフォルダに置かれます。

図11は、このエクスプロイトをトリガーしてWindowsのスタートアップフォルダにマルウェアを置くための隠された解凍パスです。ユーザーが次回システムにログインすると、解凍されたファイルが実行されます。

図10:WinRARエクスプロイト(CVE-2018-20250)経由でスタートアップフォルダに投下されたマルウェア

図10:WinRARエクスプロイト(CVE-2018-20250)経由でスタートアップフォルダに投下されたマルウェア

図11:CVE-2018-20250を悪用するための隠された解凍パス

図11:CVE-2018-20250を悪用するための隠された解凍パス

ZIPアーカイブとWinRARエクスプロイトの他にも、攻撃者はこのマルウェアで追加の「コンテナ」も使用しています。その例として、以下が挙げられます。

  • ZIPファイルから投下されたものと同じ文書名が付けられた偽物のPDFファイル
  • 同じC2サーバーを使用するPredatorマルウェアを投下する、別の偽文書

逆コンパイルされたAutoItスクリプトの分析

私たちが調査したサンプルは、すべてペイロードを隠すためにAutoITスクリプト言語を使う「CypherIT Crypter」で圧縮されていました。

フィッシング用ZIPファイルに含まれている偽物の文書は、AutoItで二度圧縮されている例もありました。攻撃者は、PredatorマルウェアをCypherITで圧縮した後、実行ファイルにダミー文書を追加する目的でその出力ファイルを再度圧縮していました。次の図は、第一段階のAutoItスクリプトを示しています。

図12:マルウェアとダミー文書をインストールするための第一段階のAutoItスクリプト

図12:マルウェアとダミー文書をインストールするための第一段階のAutoItスクリプト

私たちは、WinRARエクスプロイト経由でスタートアップフォルダに置かれた悪意あるペイロードにおいて、このスクリプトがさらに難読化されていることを発見しました。図13は、このスクリプトの主要部分です。Predator the Thiefスティーラーをデコードし実行する関数を呼び出すために使われています。

図13:難読化を解除したAutoItスクリプト

図13:難読化を解除したAutoItスクリプト

この難読化を解除したスクリプトを見ればお分かりのように、リソースを読み取ってデコードした後、デコードしたペイロードを挿入するためのシェルコードをロードしています。このペイロードがPredator the Thiefマルウェアです。

図14:元の実行ファイル内のリソースセクションからデコードされた実行ファイル

図14:元の実行ファイル内のリソースセクションからデコードされた実行ファイル


Hollow Processを挿入する一般的なシェルコード

AutoItスクリプトは、シェルコードを呼び出すと、「dllhost.exe」用に一時停止されたプロセスを作成し、その後このHollow Processを使用してPredatorペイロードを挿入します。

図15:PredatorペイロードをHollow Processに挿入するためのシェルコード

図15:PredatorペイロードをHollow Processに挿入するためのシェルコード


悪意あるAutoItスクリプトで使用されていない関数

  1. リムーバブルデバイスでのファイル置換
    .pif拡張子のついたファイルを作成し、元のファイルから名前をコピーしてから、元のファイルを削除します。リムーバブルデバイス上のファイルをすべてマルウェアと置換して、犠牲者にマルウェアを実行させようとします。
  2. UACバイパス
    ファイルレスのUACバイパスを実装するために、2つの方法を使用します。1つは、レジストリをハイジャックして「Event Viewer」を使う方法、もう1つは「fodhelper.exe」を使う方法です。
  3. マルウェアの次の段階を実行するダウンローダー

アーティファクトの探索

この攻撃者が作成したAutoItスクリプトを再度チェックすると、そのパスの中に興味深いものが見つかりました。スクリプトの作者は、自分のシステムのインストールパスを残していたのです。

図16:第一段階のAutoItスクリプトのインストールパス

図16:第一段階のAutoItスクリプトのインストールパス

私たちは、これらのパスの中で興味深い文字列をいくつか発見しました。ある文字列の中にあったのは、「Рабочий стол」です。これは、Windowsのロシア語バージョンの「デスクトップ」を意味します。さらに、C2サーバーである hxxp://sonsobakq1.mcdir[.]ru もロシア語で、「犬の息子」または「犬の夢」と解釈できます。ロシア語で書かれた文書名と組み合わせて考えると、このキャンペーンの背後にいる攻撃者は、ロシア語を自在に使う人間であることが明確になります。

さらに私たちは、悪意あるスクリプトファイルに書かれた「nrjat」というユーザー名につながる情報が他にないか探すことにしました。このユーザー名自体、複数の攻撃者が広く使用している「njRAT」マルウェアのタイプミスのようにも見えます。そこで、マルウェアで使用されている「C:\Users\nrjat\」文字列を探してみると、恐らくこの攻撃者関係していると思われるサンプルがいくつか見つかりました。最初に発見したのは、前のセクションで分析したものとほぼ同じAutoItスクリプトのサンプルです。

図17:nrjatに関係するAutoItスクリプトのサンプル

図17:nrjatに関係するAutoItスクリプトのサンプル

さらに、この攻撃者はVisual Studioのデバッグモードでマルウェアをコンパイルする癖があります。以下の図は、「nrjat」が開発またはコンパイルしたサンプルのリストです。

図18:攻撃者が開発またはコンパイルしたサンプル

図18:攻撃者が開発またはコンパイルしたサンプル

このようなアーティファクトを使うと、マルウェアのサンプルに残されたものからこの攻撃者の活動を容易に観察できます。2018年6月、アクターはXMRマイナーをコンパイルしています。さらに、2018年10月からは「Arkei stealer」マルウェアをコンパイルして使い始めました。この攻撃者の過去の活動を調査したところ、いくつかのサンプルにバグが多いことが明らかになりました。解読コンポーネントが壊れていて、マルウェアを適切に解凍できなかったのです。また、この攻撃者が「セルフモーフィングC#バイナリ」パッカー(私たちはこのソースをGitHubで発見しました)を使って「Arkei stealer」を難読化しようとしていることも判明しています。

全体として、私たちが調べたサンプルにはすべて「nrjat」のデバッグ情報が含まれているほか、現在展開中の攻撃キャンペーンで使用されているCypherIT Crypterなど特定の難読化ツールを一貫して使用していることも明らかになりました。

まとめ

FortiGuard Labsは、 ロシア語を使う人々を標的とするPredator the Thiefキャンペーンを追跡しました。

そして、このキャンペーンの実行者は2018年6月から活動していることも明らかにしています。恐らく、この攻撃者はハッキングのフォーラムやチャットからマルウェアを収集し、フィッシングキャンペーンのためにテンプレートを少なくとも1つ準備したと推測されます。さらに、シンプルながら効果的な様々なフィッシングテクニックを使って、犠牲者にこのマルウェアを実行させようとしています。

このキャンペーンで使用されているスティーラーは以前のバージョンから大きく変化してはいませんが、このマルウェアを拡散するために攻撃者が使用している新たなトリックがいくつか発見されています。偽のZIPファイルや文書を使ったり、時には標的を絞って犠牲者を狙ったりすることはもちろん、マルウェアを拡散するためにWinRARエクスプロイトも使用しています。ペイロードは、AutoITスクリプト言語を使うサードパーティ製のツールを用いて圧縮されていました。また、スクリプトでハードコード化されているパスを確認することで、この「nrjat」攻撃者が様々なマルウェアやスティーラーを使用した実験を行っていることもがわかっています。

FortiGuard Labsは、引き続きこのマルウェア攻撃者の活動を監視するとともに、Predator the Thiefマルウェアによる攻撃キャンペーンの更なる展開も調査を継続していきます。

-= FortiGuard Lionチーム =-


ソリューション

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

  • ファイルはFortiGuardアンチウイルスによって検知されます
  • 悪意のあるURLは、FortiGuard Webフィルタリングサービスによってブロックされます

IOC

WinRARエクスプロイトのサンプル:
0387349a884258b521ab239aa8d66832f61998276f07d928cddd6bcbc1cf6235 - AutoIt/Injector.DVD!tr

フィッシングZIPのサンプル:
52fecde66e386cc9b8affe3ff9a0a3ca7d1183ff64e22e9538d0da710bb0818d - AutoIt/Injector.DTS!tr

AutoItで圧縮されたPredator:
976246e1663a6a4281ded0fecf4623f046f3d469afce3606987cdf95853ec72b - AutoIt/Injector.DVD!tr
1f6be31a365b27db0b241c2cca082f3125c9b1614a333131d094d803e663d30d - AutoIt/Injector.DUS!tr
63ac7687506b4fe7538bc21c349c3eb913b334e2e6536ff1e5beb05f34587ce5 - AutoIt/Injector.DUS!tr
924c3d33537b72f7f499c982757e630a3e6fe673ee1293ea2e669a14d18155b5 - AutoIt/Injector.DUS!tr

解凍されたPredator:
6651bd04b08e6ac98189750348c32c8c78f35cb800f87a4c654c28451242eb50 - W32/Agent.PPZ!tr.spy

CypherITのAutoItスクリプト:
e627dd82ff3bfed8fcac4f297e41af46856109c333640d14af3027e9ec576707 - VBS/Nymeria.6707!tr.dldr

Coinminer:
a501dbeb6190252dee719099a7df2857c4dba4a0c196ac3ca9200c23bc348597 - Riskware/CoinMiner
b3e0e892968f12a0511014cde572f04ef03d1719e98d9f63eca0eb766e6049e7 - MSIL/Kryptik.EOJ!tr
818c1ea41f995580fa01a46f1ffd38f58d0633bba6a21e4cede525fd2c289dbf - MSIL/Kryptik.EOJ!tr
d8f8811b49dcda80908e3c8fe98d5b9ac45344c2fbbe3ba3ab0533ea897ffd5e - MSIL/GenKryptik.BYPV!tr
a3a30b0521eb8fd3d2f13c2c934d12c44db80a4e81642b800549009de4cf40ec - W32/Kryptik.OIC!tr
83ef12cddbc4b68357b79d167dacefc4e94b3cf49fde2f8412f08b8a50cf7a23 - MSIL/Kryptik.OJC!tr
126e43dbcd5851341ac2b5dcf3729d06b6ee4c858984effff8150f36990a56ce - W32/Generic_PUA_MP!tr
d4c1d131ff1d5df5ec8584a3bf0364c94cafea4fd107a081c413cba8c7384f20 - W32/Kryptik.OIO!tr
d42876d4c096fdc9b6fd3b1ef94088c0605b06ff288c4658c39c304dc65bd6e3 - W64/CoinMiner!tr

自己モーフィング型C#バイナリ:
85f5c093609938bdd0eede165e9c225e64bd3af1020f38e86bfb20ad708cf694 - MSIL/Agent.DMA!tr

Arkeiスティーラー:
98a951540c810b9b20ba319eb2ec43656cd5e02a9644292f8682752f1697aa1c - MSIL/Agent.DMA!tr
7390a16aa246b30faac296c8ce50eda601943b032497b950c8c47c41c02ac588 - MSIL/Agent.DMA!tr
7b5d2783d41e962b590f5727c07619997c060068c4e864d9c605777dc161f506-MSIL/GenKryptik.CLXD!tr
dab4ce6249544b0bf0f8e6ae8a7cea826e0c21225e8aaf9beacf6a6eb800169d - MSIL/GenKryptik.CLXD!tr
0c77942d137bf7e6ecf279e1adc98b04641c510eebc2ed826391aef57b086f50 - MSIL/Agent.DMA!tr
7bb0f3485812173fec7e4e1ffda148631de33438cc9ece5bfb6f3ea0dc912a16 - MSIL/GenKryptik.CLXD!tr
1e0a23c53f8aad24446a6ad9404b0251687d402547ab8bb3f949ab9e2e89d9c3-MSIL/GenKryptik.CLXD!tr

C2サーバーのURL:
hxxp://sonsobakq1.mcdir[.]ru/ - Malicious
hxxp://sonsobakq1.mcdir[.]ru/api/conf.get - Malicious
hxxp://sonsobakq1.mcdir[.]ru/api/info.get - Malicious
hxxp://sonsobakq1.mcdir[.]ru/api/gate.get - Malicious
hxxp://sonsobakq1.mcdir[.]ru/api/download.get - Malicious