Cisco Japan Blog

大規模マルウェア攻撃で新たなバックドア TorNet が拡散

1 min read



  • Cisco Talos は、金銭目的で現在も繰り広げられているマルウェア攻撃を発見しました。攻撃は早ければ 2024 年 7 月から始まっており、フィッシングメールで使用されている言語から判断して、主にポーランドとドイツのユーザーが標的となっています。
  • 攻撃者は、Agent Tesla、Snake Keylogger に加え、これまで情報が公開されていなかった TorNet という新たなバックドアなど、さまざまなペイロードを送り込んでいます。TorNet は、PureCrypter マルウェアによってドロップされます。
  • 攻撃者は、バッテリー残量の少ないエンドポイントも含め、被害者のマシン上で Windows のスケジュールタスクを実行し、永続化を実現します。
  • 攻撃者は、被害者のマシンをネットワークから切断した後にペイロードをドロップし、その後ネットワークに再接続することによって、クラウドのマルウェア対策ソリューションによる検出を回避しています。
  • 秘匿性の高いコマンドアンドコントロール(C2)通信と検出回避のために、攻撃者が TorNet バックドアを使用して被害者のマシンを Tor ネットワークに接続していることも判明しました。

攻撃の概要

最初の感染経路はフィッシングメールです。攻撃者は金融機関になりすまして偽の送金確認書を送信したり、製造・物流企業になりすまして偽の注文受領書を送信したりしています。フィッシングメールの多くはポーランド語とドイツ語で書かれており、この両国のユーザーが主な標的であることが示唆されています。同じマルウェア攻撃で、英語で書かれたフィッシングメールのサンプルもいくつか確認されています。フィッシングメールの内容や添付ファイルのファイル名から判断して、金銭目的の攻撃である可能性がある程度考えられます。

フィッシングメールには「.tgz」という拡張子のファイルが添付されており、これは、添付ファイルに実際は悪意のあるコンテンツが格納されていることを隠してメールの検出を回避する目的で、攻撃者が gzip を使用して tar アーカイブ(悪意のある添付ファイル)を圧縮していることを示しています。

フィッシングメールのサンプル(ポーランド語)

フィッシングメールのサンプル(ドイツ語)

メールに添付された圧縮ファイルをユーザーが開いて手動で解凍すると .NET ローダーが実行され、その結果、侵害を受けたステージングサーバーから暗号化された PureCrypter マルウェアがダウンロードされます。.NET ローダーは PureCrypter マルウェアを復号し、システムメモリ内で実行します。

このマルウェア攻撃でのいくつかの侵入事例で、PureCrypter マルウェアが TorNet バックドアをドロップして実行することがわかりました。TorNet バックドアは C2 サーバーへの接続を確立し、さらに被害者のマシンを Tor ネットワークに接続します。TorNet バックドアには、C2 サーバーからダウンロードした任意の .NET アセンブリを被害者のマシンのメモリで受信して実行する機能があり、さらなる侵入のために攻撃対象領域を拡大します。

.NET ローダーによる PureCrypter の埋め込み

Talos は、圧縮された添付ファイルに大きな .NET 実行ファイルが含まれていることを発見しました。攻撃者は、リモートのステージングサーバーから次段階の悪意のある実行ファイルをダウンロードするか、埋め込まれている悪意のあるバイナリを反射的にロードするように、.NET 実行ファイルを細工していました。

今回のマルウェア攻撃で分析したローダーのサンプルのなかには、侵害された Web サイトのパス「/filescontentgalleries/pictorialcoversoffiles/」および「/post-postlogin/」にホストされている PureCrypter マルウェアの AES 暗号化バイナリを、ハードコードされた URL を使用してダウンロードするものもありました。暗号化された PureCrypter バイナリは、さまざまなファイル拡張子(.pdf、.dat、.wav、.vdf、.mp3、.mp4 など)を使用して、任意のファイル名で保存されていました。ローダーは PureCrypter バイナリを復号し、反射的にロードします。

暗号化された PureCrypter マルウェアをダウンロードするローダープログラムのスニペット

暗号化された PureCrypter マルウェアがホスティングサイトからダウンロードされたことを示すネットワークトラフィック

他にも、暗号化された PureCrypter バイナリがローダーに埋め込まれているサンプルもいくつか発見しました。これは、AES アルゴリズムを使用して復号され、被害者のマシンのメモリに反射的にロードされます。

PureCrypter バイナリが埋め込まれているローダーのスニペット

PureCrypter が TorNet バックドアをドロップ

今回の侵入で見つかった PureCrypter マルウェアは、Eziriz 社の難読化ツール .NET Reactor で難読化された Windows ダイナミック リンク ライブラリ(DLL)です。これには、TorNet バックドアのほか、protobuf-net DLL や Microsoft タスクスケジューラ DLL など、暗号化された正規 DLL のバイナリのリソースが含まれています。

PureCrypter はまず、被害者のマシンにミューテックスを作成し、被害者のマシンに現在割り当てられている DHCP IP アドレスを解放するコマンドを実行して永続性を確立します。次に、さまざまな分析対策や検出タスクを実行し、ペイロードをドロップして実行した後、最終的に被害者のマシンの IP アドレスを更新するコマンドを実行します。

Cmd /c ipconfig /release

Cmd /c ipconfig /renew

攻撃者は、被害者のマシンをネットワークから切断し、バックドアをドロップして実行した後に再びネットワークに接続するという手法を使って、クラウドベースのマルウェア対策プログラムによる検出を回避していると考えられます。

次に説明するように、PureCrypter マルウェアは被害者のマシン上でさまざまなデバッガ対策、分析対策、VM 対策、マルウェア対策のチェックを行います。

  • 「CheckRemoteDebuggerPresent」関数を使用して、プロセスがデバッグされていないかチェックします。
  • プロセスを列挙して「sbieDLL.dll」および「cuckoomon.dll」を探し、Sandboxie と Cuckoo Sandbox の環境でないかチェックします。
  • WMI クエリを実行して「VMware」、「VIRTUAL」、「AMI」、「Xen」の文字列を検索し、仮想環境で DLL が実行されていないかチェックします。
Select * from Win32_BIOS

Select * from Win32_ComputerSystem
  • VMware 環境を検出するために、実行中のプロセスが「vmGuestLib.dll」に関連付けられていないかチェックします。
  • 被害者のマシンのユーザー名が「john」、「anna」、または「xxxxxxxx」でないかチェックします。
  • 被害者のマシンで実行中のプロセスモジュールに「amsi.dll」および「amsiscanbuffer」の文字列がないかチェックします。
  • 任意のプロセスが「ntdll.dll」の「EtwEventWrite」関数を指していないかチェックすることで、Windows のイベントトレース(ETW)が被害者のマシンに設定されていないかチェックします。
  • PowerShell コマンドを実行して Windows Defender 設定を変更し、自身のプロセスとドロップされたバックドアのパスを除外リストに追加します。
Add-MpPreference –ExclusionPath

Add-MpPreference –ExclusionProcess

これらの回避チェックの後、PureCrypter は暗号化されたバックドアをリソースから復号し、ランダムなファイル名でユーザープロファイルのアプリケーション一時フォルダにドロップします。また独自の文字列復号アルゴリズムを使用して別のファイルリソースを復号し、任意のファイル名の文字列と Windows タスクスケジューラ用のタスク名の文字列を生成します。

PureCrypter はローダーのパスをレジストリの実行キーに追加することで永続性を確立します。またリソースファイルから文字列を復号して得られたタスク名を使用して Windows タスクを作成し、実行時間制限なしで 2 ~ 4 分ごとにローダーを実行します。このタスクは、マシンがバッテリー駆動に切り替わっても実行され、バッテリー残量が少なくなっても停止しません。攻撃者はこの手法を利用し、被害者のマシンが低電力モードで動作している場合でも、被害者のマシンのオペレーティングシステムが対象プロセスの優先順位を下げないようにすることで、感染した状態が続くようにしています。

Windows のスケジュールタスクを作成するコードスニペット

PureCrypter は、Windows のスタートアップフォルダに Visual Basic スクリプトをドロップし、ドロップされたバックドアをロードして実行するように指示します。

VB スクリプトをドロップして実行するコマンドを示すコードスニペット

永続性を確立した後、PureCrypter は URL スキーム「file[://]<ドロップされたバックドアのパス>」を使用してアクセスすることで、ドロップされたバックドアをロードし、被害者のマシンの .NET ランタイム実行プロセスにバックドアを埋め込みます。攻撃者はこの手法を使って、被害者のマシンのログでファイルアクセス アクティビティを Web リクエストに見せかけ、被害者のマシンの不審なファイルパスからファイルがロードされたことが検出されないようにしていると考えられます。

プロセスインジェクションを示すコードスニペット

ペイロードである TorNet が被害者のマシンにバックドアを作成

このマルウェア攻撃の最近の侵入事例で、ペイロードである新たな .NET バックドアが見つかりました。Talos では、これを TorNet と呼んでいます。TorNet バックドアも Eziriz 社の難読化ツール .NET Reactor で難読化されており、コンパイル時のハッシュ値を持っています。これは、Visual Studio の「/deterministic」パラメータを使用してサンプルをコンパイルした際に作成されたアーティファクトだと考えられます。Visual Studio が決定論的(deterministic)バイナリを生成するように設定されている場合、バイナリのコンパイル日時フィールドがコンパイルオプションのハッシュ値に置き換えられます。Talos は以前にも、他の攻撃者が実際のマルウェアバイナリのコンパイル時間を偽装するためにこの手法を使用している事例を確認しており、報告していました

TorNet はまず base64 エンコードされた文字列を復号し、C2 ドメイン、ポート番号、16 文字の英数字文字列(5e7a81857a353068)を取得します。その後、前に説明した PureCrypter と同様に、デバッグ対策、マルウェア対策、VM 対策、サンドボックス回避のチェックを実行します。

base64 文字列を復号して文字列、C2 ドメイン、ポート番号を取得していることを示すコードスニペット

回避チェックの後、TorNet は base64 エンコードされた文字列から復号した C2 ドメインの IP アドレスを解決し、C2 サーバーへの TCP ソケット接続を確立します。この接続には、8194、7890、8410 のいずれかのポート番号を使用します。バックドアが使用する C2 ドメインは IP アドレス 104[.]168[.]7[.]37 に解決されていることが Talos の調査期間中に確認されました。

ドメインとポート番号を使用して C2 に接続している TorNet バックドアのサンプル

C2 サーバーへの接続が確立した後、TorNet は base64 エンコードされた文字列を復号して得られた文字列「5e7a81857a353068」を C2 サーバーに送信します。その後、長さが 20 バイトの 16 進数のバイトストリームを生成し、GzipStream 関数を使って圧縮してメモリストリームに書き込みます。

16 進数のストリーム:「3A 12 12 10 35 65 37 61 38 31 38 35 37 61 33 35 33 30 36 38」

ASCII の場合:「:<2 バイトのプレースホルダ>\n5e7a81857a353068」

次に TorNet は、文字列「5e7a81857a353068」の MD5 ハッシュ値を生成し、それをキーとして使用して、圧縮された 20 バイトの 16 進数のデータストリームをトリプル DES アルゴリズムで暗号化します。そして、暗号化されたバイトストリームを Bitconverter 関数を使用して分割し、ソケット経由で TCP ストリームに書き込むことで、C2 サーバーに送信します。

ソケット経由で C2 サーバーにデータを漏洩していることを示す TorNet のコードスニペット

C2 サーバーは、TorNet のリクエストに対する応答として、任意の暗号化された .NET アセンブリを送信することがあります。TorNet は任意のバイナリを復号し、反射的に実行します。Talos は調査中、C2 からの応答を受信できませんでしたが、TorNet バイナリを分析したところ、C2 から受信する応答は任意の .NET アセンブリコードであり、さらなる攻撃のために攻撃対象領域を拡大することがわかりました。

受信した任意の .NET アセンブリを実行するためのコードスニペット

TorNet は被害者のマシンを Tor ネットワークにも接続します。Tor Project のアーカイブサイトから Tor エキスパートバンドルをダウンロードし、それを解凍して「tor[.]exe」をバックグラウンドプロセスとして実行し、Tor に接続します。

tor[.]exe のダウンロードと実行を示すコードスニペット

Tor が起動すると、TorNet は Tor の SocksPort(127[.]0[.]0[.]1:9050)を使用して Tor ネットワークに接続し、「socket.Poll」関数を使用して、被害者のマシンのバックドアプロセスからすべてのトラフィックを Tor ネットワーク経由でルーティングします。攻撃者は Tor ネットワークを利用して C2 通信を匿名化し、検出を回避しています。

分析マシン上の TorNet から Tor ノードへの接続

カバレッジ

Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。

Cisco Secure Web Appliance の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。

Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。

Threat Defense Virtual適応型セキュリティアプライアンスMeraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。

Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。

Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Umbrella の無料トライアルはこちらからpopup_iconお申し込みください。

Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。

特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。

Cisco Duopopup_icon は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。

オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.orgpopup_icon で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。この脅威を検出する Snort SID は、64440、64439、64437、64438、301115 です。

ClamAV でも、次の脅威を検出できます。

Win.Backdoor.TorNet-10041435-0
Win.Downloader.TorNet-10041463-0
Win.Malware.TorNet-10041565-0
Win.Malware.TorNet-10041601-0
Win.Trojan.TorNet-10041734-0

IOC(侵害の指標)

この脅威の IOC は、こちらpopup_iconの GitHub リポジトリで提供しています。

 

本稿は 2025 年 1 月 28 日にTalos Grouppopup_icon のブログに投稿された「New TorNet backdoor seen in widespread campaignpopup_icon」の抄訳です。

 

コメントを書く