OriginLogger: Agent Teslaの後継のマルウェアに関する概要

A conceptual image representing malware such as OriginLogger

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

概要

2019年3月4日、攻撃者が使用する最もよく知られたキーロガーの1つであるAgent Teslaは、法律上の問題により、販売を終了しました。このキーロガーの開発者は、Agent Tesla Discordサーバーに投稿したお知らせのメッセージの中で、新しいキーロガーに切り替えるように提案しています。「Agent Teslaのような強力なソフトウェアを探している人には、OriginLoggerを提案します。OriginLoggerはAgent Teslaベースのソフトウェアであり、すべての機能を備えています」OriginLoggerは、Agent Teslaの亜種です。そのため、Agent Teslaに対応するツールや検出の大部分は、OriginLoggerサンプルに対してもトリガーされます。

最近、Agent Teslaとタグ付けされたあるマルウェアの解析を始めたところ、それが実際には別のマルウェアだったことがわかって驚きました。この事実が判明したのは、マルウェアファミリを抽出するツールを作成した後、大量のマルウェアファミリの設定を分析し始めたときでした。

このブログでは、OriginLoggerキーロガーマルウェアについて、設定変数の文字列の難読化を処理する方法、および抽出した設定を調査して判明した、識別の強化とさらなるピボット検索に役立つ情報について説明します。

パロアルトネットワークスのお客様は、Cortex XDR次世代ファイアウォールを通じて、さらにWildFire高度な脅威防御を含むクラウド利用のセキュリティサービスを利用して、OriginLoggerおよびその前身であるAgent Teslaの両方からの保護を受けられます。

Unit 42の関連トピック Agent Tesla

目次

OriginLoggerビルダー
ドロッパーのおとり(ルアー)
OriginLoggerの設定
OriginLoggerをアーティファクトから特定
悪意のあるインフラ
結論

OriginLoggerビルダー

OriginLoggerについて調査し始めたとき、OriginLoggerに関する公開情報はほとんど見つけられませんでした。現在私がOriginLoggerに関する内容であると認識しているいくつかのAgent Tesla関連の分析ブログ(中にはAgentTeslav3というタグを付けているものもあります)はありますが、それを除けば、パブリックインターネットでは関連情報がかなり不足しています。

調査の過程で、「完全に検出不能(FUD)」なツールの売人らが2018年(Agent Teslaが販売を終了する前)に投稿したYouTube動画を偶然見つけました。彼らは、OriginLoggerツールを宣伝し、マルウェアやエクスプロイトなどを不正に売買する既知のサイトでこのツールを購入するためのリンクを示していました。

OriginLoggerの主要機能には、強力なキーボードフック(キーボードストロークをすべて検出。タイマーは使用せず直接フック。全言語(中国語、ギリシャ語、ラテン語など)に対応)、Webパネル(ログをホスティング上でモニタリング可能。パネルスクリプトは標準提供。インストールをサポート可能)、色付きログ(読みやすくするためにログをHTML形式の色付きテキストで保存)、スマートロガー(指定した単語が検出されたウィンドウでのみキーロガーが動作を開始)が含まれます。
図1. OriginLoggerの主要機能(出典: OriginLoggerに関するYouTube動画のOriginLogger販売ページのスクリーンショット)
OriginLoggerの全機能リストには、多言語対応、3つの提供方法(PHP、SMTP、FTP)、キーロガー、色付きログ、スクリーンショットロガー、マルチ ファイル バインダー、クリップボードロガー、スマートロガー、パスワード復元、Webパネル、年中無休サポート、偽メッセージ、自動購入、安定&高速、pure code、全Windows OS対応、UAC迂回(WIN 7/8/10)、アセンブリ&アイコンオプションが含まれます。
図2 OriginLoggerの機能リスト

さらにWebパネルとマルウェアビルダーのスクリーンショットも表示していました。

Screenshot of the Origin Logger web panel, with the
図3.OriginLogger Webパネル(出典: OriginLogger YouTube動画)
OriginLoggerビルダー。このスクリーンショットでは、Keyboard Logger (時間指定)、Clipboard Logger、Delete Backspaces、Smart Logger (ユーザーがfacebook、twitter、gmailなどの特定の単語を入力可能)、Screenshot Logger (時間指定)などが選択されています。
図4 OriginLoggerビルダー

私が特に興味を持ったのは、図4に示すビルダーの画像です。ここに示されているデフォルトの文字列(facebook, twitter, gmail, instagram, movie, skype, porn, hack, whatsapp, discord)は、このアプリケーションに固有である可能性がありました。案の定、VirusTotalでコンテンツ検索したところ、2022年5月17日にアップロードされた1つのファイル(SHA256: 595a7ea981a3948c4f387a5a6af54a70a41dd604685c72cbd2a55880c2b702ed)と一致しました。

Searching on VirusTotal for the string
図5.VirusTotalの文字列の検索結果

このファイルをダウンロードして実行しようとすると、依存関係の欠落によりエラーが発生します。ただし、ビルダーのファイル名がOriginLogger.exeであることがわかっているので、検索範囲を広げて、OriginLoggerを実行するために必要なすべてのファイルが含まれるZipアーカイブ(SHA256: b22a0dd33d957f6da3f1cd9687b9b00d0ff2bdf02d28356c1462f3dbfb8708dd)を見つけることができました。

Zipアーカイブにバンドルされているファイルには、OriginLogger.exe、Updater.exe、NetCore.dll、Mono.Cecil.dll、settings.ini、eula.html、profile.originが含まれます。
図6.Zipアーカイブにバンドルされているファイル

settings.iniファイルにはビルダーが使用する設定が含まれており、図7に示すように前述の検索文字列がSmartWordsに記載されています。

OriginLoggerのSettings.iniには、Delivery、remember、keylogger、grabip、Log、ScreenLogger、screeninterval、Clipboard、Backspace、email、toemail、password、smtp、port、SSL、attach、ftphost、ftpuser、ftppassword、URL、UrlKey、istor、telegram_api、telegram_chatid、SmartLogger、SmartWords、smartLoggerTypeなどのログ設定が含まれます。
図7 OriginLoggerビルダーのsettings.iniファイル

ファイルprofile.originには、顧客がOriginLoggerを購入する際に登録したユーザー名/パスワードが埋め込まれています。

OriginLoggerビルダーのログイン画面のスクリーンショット。電子メールとパスワードのフィールドおよびパスワードを記憶するオプションがあります。
図8 OriginLoggerビルダーのログイン画面

面白いことに、プロファイルファイルで2つの値を入れ替えると、平文のパスワードが表示されます。

profile.originファイルで赤い矢印で示されている2つの値を入れ替えると、平文のパスワードを表示できます。
図9 profile.originファイルの内容
図9で示すようにファイルの値を入れ替えた結果を示すOriginLoggerビルダーのログイン画面のスクリーンショット。 The threat actor
図10 攻撃者のパスワードが平文で表示されているOriginLoggerビルダーのログイン画面

ユーザーがログインすると、ビルダーは、OriginLoggerサーバーによる認証でサブスクリプションを検証しようとします。

この時点で、私は2つのバージョンのビルダーを入手していました。1つ目はZipファイルに含まれていたバージョン(b22a0d*)であり、2020年9月6日にコンパイルされています。2つ目はSmartWords文字列を含むバージョン(595a7e*)であり、1つ目のバージョンからほぼ2年後の2022年6月29日にコンパイルされています。

2つ目のバージョンは、TCP/3345からIP 23.106.223[.]46に認証要求を行います。2022年3月3日以降、このIPは、ドメインoriginpro[.]meに解決されます。このドメインは、以下のIPアドレスに解決されます。

23.106.223[.]46
204.16.247[.]26
31.170.160[.]61

2つ目のIP 204.16.247[.]26は、以下に示す他のOriginLogger関連ドメインを解決している点で目立っています。

originproducts[.]xyz
origindproducts[.]pw
originlogger[.]com

1つ目のバージョンのビルダーを調べると、さらに面白いことがわかります。このバージョンは、別のIPアドレスに接続して認証しようとします。

1つ目のバージョンのOriginLoggerは、pcapに示されるように、認証のために74.118.138[.]76に接続します。
図11 リモートIPアドレスを示すPCAP
originpro[.]meと異なり、74.118.138[.]76は、どのOriginLoggerドメインにも直接解決されることはありませんが、代わりに0xfd3[.]comに解決されます。このドメインを調べたところ、mail.originlogger[.]comのDNS MXレコードとDNS TXTレコードが両方とも含まれていました。

2022年3月7日ごろから、問題のドメインはIP 23.106.223[.]47に解決され始めましたが、その最終オクテットは、originpro[.]meで使用されているIPの最終オクテット(46)より1だけ大きい値です。

これら2つのIPアドレスは、以下に示す複数のSSL証明書を共有しています。

SHA1 シリアル番号 (Serial Number) コモンネーム (Common Name) 観測されたIP
2dec9fdf91c3965960fecb28237b911a57a543e2 38041735159378560318847695768150611562 WIN-4K804V6ADVQ 23.106.223[.]46
23.106.223[.]47
7a7e732229287c1d53a360e08201616179217117 133152806647474295963986900899009859692 WIN-4K804V6ADVQ 23.106.223[.]46
23.106.223[.]47
74.118.138[.]76
204.16.247[.]26
3b3cf8039b779d93677273e09961203ffaac2d6f 89480234209393487842197137895395039274 WIN-4K804V6ADVQ 23.106.223[.]46
23.106.223[.]47
74.118.138[.]76
204.16.247[.]26

表1 共有されているSSL証明書

IP 23.106.223.Xで始まる両方のサーバーのRDPログイン画面には、Windows Server 2012 R2サーバーと複数のアカウントが示されています。

23.106.223[.]46のRDPログイン画面には、Windows Server 2012 R2サーバーと複数のアカウント(administrator、ftpuser、postgres)が示されています。
図12.23.106.223[.]46のRDPログイン画面
このドメインをさらに調べたところ、ユーザー0xfd3のGitHubプロファイルが見つかりました。このプロファイルには、図13に示す2つのリポジトリが含まれています。

スクリーンショットに示されているユーザー0xfdには、OutlookPasswordRecoveryとChrome-Password-Recoveryの2つのGitHubリポジトリが関連付けられています。
図13.ユーザー0xfdのGitHub

これらについてはこのブログ記事の後半でコードを調べる際に説明しますが、(ネタバレになりますが)これらもOriginLoggerで使用されています。

ドロッパーのおとり(ルアー)

このマルウェアの詳細に進む前に、分析しようとしているサンプルにつながるドロッパーについて簡単に説明します。Agent TeslaとOriginLoggerはどちらも商品化されたキーロガーなので、きっかけとなるドロッパーはキャンペーンごとに大きく異なり、いずれかに特有であると考えてはいけません。以下に示すのは、OriginLoggerをドロップする攻撃の実例であり、かなり複雑化および難読化できることがわかります。

きっかけとなるおとり文書は、Microsoft Wordファイル(SHA256: ccc8d5aa5d1a682c20b0806948bf06d1b5d11961887df70c8902d2146c6d1481)です。この文書を開くと、ドイツ国民のパスポートとクレジットカードの写真が表示されます。通常のユーザーにとってこれがどれほど魅力的なおとりになるのかはよくわかりませんが、いずれにしても、図14に示すように画像の背後に大量のExcelワークシートが含まれていることがわかります。

Microsoft Word文書を開くと、ドイツ国民のパスポートとクレジットカードの写真が表示されます。画像の背後には大量のExcelワークシートが表示されます。
図14 おとり文書

各ワークシートは、別々に埋め込まれているExcelワークブックに含まれており、まったく同じものです。

dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet1.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet10.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet2.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet3.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet4.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet5.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet6.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet7.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet8.xls
dc8b81e2f3ea59735eb1887128720dab292f73dfc3a96b5bc50824c1201d97cf Microsoft_Excel_97-2003_Worksheet9.xls

各ワークブックには、実行するコマンドを以下の場所に保存するためだけのマクロが1つ存在します。

C:\Users\Public\olapappinuggerman.js

スクリーンショットに示すのは、悪意のあるWord文書に埋め込まれている各Excelワークブックに含まれるマクロです。このマクロは、実行するコマンドをC:\Users\Public\olapappinuggerman.jsに保存します。
図15.Excel VBAマクロ

これを実行すると、MSHTA経由でhxxp://www.asianexportglass[.]shop/p/25.htmlのファイルの内容をダウンロードして実行します。このWebサイトのスクリーンショットを図16に示します。

hxxp://www.asianexportglass[.]shopの必要最低限だが本物に見えるWebサイト
図16.本物に見えるWebサイト
このファイルでは、難読化されたスクリプトが文書の途中にコメントとして埋め込まれています。

本物に見えるWebサイトのHTMLのコメントに隠されているのが、埋め込まれている難読化されたスクリプトです。
図17 Webサイトの隠されたコメント

スクリプトをアンエスケープすると、図18に示すコードが表示されます。このコードは、BitBucketスニペット(hxxps://bitbucket[.]org/!api/2.0/snippets/12sds/pEEggp/8cb4e7aef7a46445b9885381da074c86ad0d01d6/files/snippet.txt)から次のペイロードをダウンロードして、calsaasdenderswという名前のスケジュール済みタスクにより永続性を確立します。このタスクは83分ごとに動作して、ここでもMSHTAを使用してhxxp://www.coalminners[.]shop/p/25.htmlに埋め込まれているスクリプトを実行します。

図に示すアンエスケープされたスクリプトは、BitBucketスニペットから次のペイロードをダウンロードして、スケジュール済みタスクにより永続性を確立します。このタスクは83分ごとに動作し、MSHTAを使用してスクリプトを実行します。
図18.アンエスケープされたスクリプト

BitBucket Webサイトでホストされるこのスニペットには、さらに難読化されたPowerShellコードおよびエンコードされて圧縮された2つのバイナリが含まれています。

この2つのファイルのうち、1つ目のファイル(SHA256: 23fcaad34d06f748452d04b003b78eb701c1ab9bf2dd5503cf75ac0387f4e4f8)は、CSharp-RunPEを使用するC#反射型ローダーです。このツールは、プロセスを空洞化して、その内部に別の実行可能ファイルを注入します。今回のケースでは、キーロガーペイロードが、aspnet_compiler.exeプロセスの内部に配置されます。

PowerShellコマンド。[Reflection.Assembly]で始まるコマンドが示されています。
図19 dotNetアセンブリに含まれるメソッドを実行するPowerShellコマンド
Executeメソッドの呼び出し元であるprojFUD.PAクラスに注目してください。Morphisecは、2021年に投稿したRevealing the Snip3 Crypter, a highly evasive RAT loaderというタイトルのブログ記事の中で、サービスとしての暗号化システムを分析し、このアーティファクトを使用する暗号化システム作成者のフィンガープリントを作成しています。

2つのファイルのうち、2つ目のファイル(SHA256: cddca3371378d545e5e4c032951db0e000e2dfc901b5a5e390679adc524e7d9c)は、OriginLoggerペイロードです。

OriginLoggerの設定

前述したように、今回の分析の本来の目的は、キーロガーから設定関連の詳細を自動的に抽出することでした。この目的を達成するために、まず設定関連の文字列がどのように使用されているかを調べました。

マルウェアの実際の機能については、非常に標準的であり、既存のAgent Teslaの亜種の分析が反映されているので、ここでは詳しく説明しません。攻撃者の広告で宣伝されているように、このマルウェアは実証済みの手法を使用して、キーストロークの記録、認証情報の窃取、スクリーンショットの取得、他のペイロードのダウンロード、無数の方法によるユーザーデータのアップロード、および検出を回避する試みといった機能を備えています。

設定関連の詳細の抽出を開始するために、ユーザーが入力したデータがマルウェアにどのように保存されるのかを解明する必要がありましたが、調べてみると単純でした。ビルダーは、動的な文字列値を受け取り、それを巨大なBLOBテキストに連結してからエンコードしてバイト配列に保存します。このバイト配列は実行時にデコードされます。このマルウェアが動作して、スクリーンショットのアップロード先のHTTPアドレスなどの文字列を必要とする関数に到達すると、BLOB内からテキストを取り出す関数にその位置を示すオフセットと文字列長を渡します。

説明のために、メインBLOBテキストに対して使用されるデコードロジックを以下に示します。

The decoding logic used for OriginLogger
図20 OriginLoggerの平文BLOBのデコード

各バイトは、そのバイトのバイト配列インデックスでXOR演算され、さらに値170でXOR演算されて、平文として取り出されます。

このBLOBテキストは、ビルダーで生成されるサンプルごとに設定内容に応じて異なり、オフセットとポジショニングも変化します。図21に示されている生のテキストが参考になりますが、スプライシングしないと、境界がどこで終わるのか、またはどこで始まるのかを判定するのは困難です。

ユーザーが入力したデータを保存するためにOriginLoggerが使用する生の平文のBLOB。
図21.平文のBLOB

マルウェアを分析する際も、いつどこで何が使用されるかがわからないので、役に立ちません。この問題を解決するには、OriginLoggerがどのようにスプライシングを処理しているのかを調べる必要がありました。

以下に示すのは、文字列を取り出す関数、およびそれに続くオフセットと長さを含むいくつかのメソッドです。

スクリーンショットには、文字列を取り出す関数、およびそれに続くオフセットと長さを含む一連のメソッドの一部が示されています。
図22.OriginLoggerの文字列を処理する一連の関数

この場合、マルウェアのどこかでB()メソッドが呼び出されると、このメソッドが、画像の先頭に示されている難読化された名前のない関数に「2, 2, 27」を渡します。1つ目の整数は、デコードされた文字列の保存先を示す配列インデックスとして使用されます。2つ目の整数(オフセット)と3つ目の整数(長さ)は、テキストを取得するGetString関数に渡されます。このエントリで生成される値<font color="#00b1ba"><b>[は、窃取したデータを表示するためにアップロードするHTMLページを作成する際に使用されます。

文字列解析の仕組みを理解したことにより、文字列の抽出を自動化することができました。まずは、中間言語(IL)のアセンブリ命令を調べることが役に立ちます。

OriginLoggerのILアセンブリ命令は、3つのldc.i4.X命令が、解析を目的としてバイナリ内の対応する関数をすべて照合するために使用できる枠組みを構成していることを示しています。
図23.OriginLoggerの文字列関数のIL命令

どれだけ検索しても、関数ブロックの構造はずっと同じです。図23のインデックス6~8には3つのldc.i4.X命令があります。Xは、前述のスプライシング関数を呼び出す前にスタックにプッシュされる整数値を示します。この構造全体が、解析を目的としてバイナリ内の対応する関数をすべて照合するために使用できる枠組みを構成しています。

この枠組みを利用して、エンコードされたバイト配列を特定し、XOR値を決定して、デコードされたBLOBをマルウェアと同じ方法でスプライシングするスクリプトを作成しました。これを使用すると、デコードされた文字列をスクロールしながら興味のあるものを探すことができます。何かが見つかったら、オフセットとそれに続く関数名はわかっているので、マルウェアの中でそれらを利用する場所の周辺を調査することができます。

OriginLoggerのデコードされた文字列の例。Index、Offset、Countなどの文字列があります。
図24.OriginLoggerのデコードされた文字列

ここから、難読化されたメソッドの名前を、その実際の値を反映するように変更する作業を開始しました。これにより、分析の際に読みやすくなります。

難読化されたメソッドの名前を、その実際の値を反映するように変更する例。
図25 OriginLoggerのFTPアップロード関数

これと同じ文字列の難読化解除は、de4dotとその動的な文字列復号機能を使用して、文字列型をdelegateと指定し、関心のあるトークンを指定することによって達成できます。これは、1つのファイルを分析する場合に極めて有効です。

このブログ記事のOriginLoggerビルダーセクションで、0xfd3ユーザーのGitHubリポジトリについては後で説明しますと書いたことを思い出してください。図26に示すのは、キーロガーの世界でOriginLoggerがAgent Teslaに取って代わった後、2020年3月にアップロードされたChrome Password Recoveryコードです。

Code from user 0xfd3
図26.Chrome Password Recovery

図27に示したメソッドの名前を変更したOriginLoggerサンプルのコードを図26と比較してください。

メソッドの名前を変更したOriginLoggerコード。Opera、Comodo Dragon、Chrome、360 Browser、Yandex、SRWare Iron、Torch Browser、Brave Browser、Iridium Browser、CoolNovo、7Star、Epic Privacy Browser、Amigo、CentBrowser、CocCoc、Chedot、Elements Browser、Kometa、Sleipnir 6、Citrioなどのメソッドが含まれています。
図27.OriginLoggerのChromeパスワード窃取関数

似てませんか? OriginLoggerは、Agent Teslaが中止した開発を継続しているので、この種の類似性がたくさん見つかります。

OriginLoggerをアーティファクトから特定

作成したツールを使用して、1,917個の異なる設定を抽出しました。ここから、使用された流出方法についての洞察を得て、基盤となるインフラストラクチャに基づいてサンプルをクラスタリングすることができます。

この時点で、これまで調べていたのがAgent Teslaではなく、別のキーロガーであるOriginLoggerであることがわかってきました。2つの流出方法が両方ともある方法で「origin」を複数回参照しているのを見つけたことから、全容が明らかになってきました。

たとえば、キーロガーとスクリーンショットのデータをアップロードするためにサンプルに設定されているURLの1つは、hxxps://agusanplantation[.]com/new/new/inc/7a5c36cee88e6b.phpでした。このURLはすでにアクティブではないので、それに関する履歴情報を検索した結果、HTTP POST要求の受信側に何があったのかがわかりました。URLScan.ioでこのドメインをスキャンしたところ、同じディレクトリにあるパネルのログインページが表示されましたが、さらに重要なのは、4か月前にスキャンした時点で、このホストでOriginLogger Webパネル(SHA256: c2a4cf56a675b913d8ee0cb2db3864d66990e940566f57cb97a9161bd262f271)が検出されたという点です。

URLScan.ioでagusanplantation[.]comをスキャンした結果の中に、OriginLogger Webパネルを確認できます。
図28 ドメインのURLScan.ioでのスキャン履歴
同様に、流出方法の1つは、Telegramボットを使用します。Telegramボットを利用するには、OriginLoggerにTelegramボットトークンが含まれている必要があります。これにより、OriginLoggerはTelegramボットとやり取りできるようになります。これも、使用されているインフラストラクチャを分析するまたとない手がかりになります。このケースでは、トークンを使用してwhoamiコマンドと同等のクエリをTelegramに対して実行し、ボット作成者が使用している名前を観察することができます。関連する名前を示すいくつかの例を以下に示します。

"id":2046248941,"is_bot":true,"first_name":"origin","username":"mailerdemon_bot"
"id":1731070785,"is_bot":true,"first_name":"@CodeOnce_bot","username":"PWORIGIN_bot"
"id":1644755040,"is_bot":true,"first_name":"ORIGINLOGGER","username":"softypaulbot"
"id":1620445910,"is_bot":true,"first_name":"ORIGINLOGS","username":"badboi450hbot"
"id":2081699912,"is_bot":true,"first_name":"Zara","username":"Zaraoriginbot"
"id":5054839999,"is_bot":true,"first_name":"Origin Poster","username":"origin_post_bot"

悪意のあるインフラ

商品として販売されている他のキーロガーと同様に、OriginLoggerは、世界中でさまざまな人々により悪意のあるさまざまな目的で使用されています。以前、キーロガーの被害者について詳細に調査し、それらのスクリーンショットを分析することによって、攻撃者の潜在的な意図の何を明らかにできるかについて記事を書きました。このブログ記事では、私が収集したOriginLoggerサンプルのコーパスから抽出したデータを観察した結果をまとめます。ほとんどのサンプルに複数の流出手法が設定されており、それぞれについて以下に説明します。

SMTPは、依然としてデータ流出で使用される主要なメカニズムであり、1,909個のサンプルで検出されました。これはおそらく以下の理由によるものです。

  • このプロトコルによるトラフィックは、使用されている他のプロトコルよりも、通常のユーザートラフィックにうまく溶け込みます。攻撃者が窃取した電子メールアカウントを取得するのは、比較的簡単です。
  • 電子メールプロバイダは通常、大量のストレージ領域を提供します。

窃取したデータの一意の電子メール受信者アドレスは296個あり、それらを送信するために使用された一意の電子メールアカウント認証情報は334個ありました。

FTPは1,888個のサンプルで設定され、56個の一意のFTPサーバーと79個の一意のFTPアカウントが使用されていました。複数のアカウントが、おそらく複数のキャンペーンで使用されたことにより、複数のディレクトリにログを記録していました。56個のうちアクセス可能な11個のサーバー全体で442件の一意の被害者が存在し、中には数百回のログが記録された被害者もいました。

わずかな差で続くのがOriginLoggerパネルへのWebアップロードであり、1,866個のサンプルで設定され、92個の一意のURLに対してアップロードが行われました。これらのURLを分析したところ、アップロードに使用されるPHPファイルは、ファイル名に英数字のパターンが見られ、さらにディレクトリ構造内に配置する方法にもいくつかのパターンが見られました。図29に示すWebパネルのソースコードを見ると、PHPファイル名はランダムバイトのMD5値であり、/inc/ (incoming)ディレクトリに配置されます。

setup.phpのソースコードには、PHPファイル名はランダムバイトのMD5値であり、/inc/ディレクトリに配置されることが示されています。
図29.OriginLoggerのsetup.phpのソースコード

多くのキーロガー購入者は技術的経験が乏しく、キーロガーを配布するだけでいいようにすべてを準備してくれる「フルサービス」ベンダーを使用する傾向があることに注意する必要があります。多くのURIが同じ構造を持っているのは、これが理由だと思われます。たとえば、あらゆる場所でhttp://<ipaddress>/<name>/inc/<md5>.phpという構造が繰り返し使用されており、ディレクトリの最初のレベルには、自動生成された可能性の低い、おそらくアカウントに関連する値が使用されています。

b0ss/inc
rich/inc
divine/inc
ma2on/inc
darl/inc
jboy/inc
newmoney/inc

同様に、以下に示すディレクトリ構造では、incmawaに変更され、名前の前にwebpanelが付加されています。

webpanel-roth/mawa
webpanel-qwerty/mawa
webpanel-dawn/mawa
webpanel-charles/mawa
webpanel-muti/mawa
webpanel-ghul/mawa
webpanel-reza/mawa

最後の流出方法であるTelegramは、1,732個のサンプルで検出され、181個の一意のTelegramボットで窃取したデータを受信していました。このボットには、whoamiを発行できるだけでなく、窃取した情報のアップロード先のチャンネルに関する情報をクエリすることもできます。以下に、最も多く使用されているチャンネルと現在使用中の詳細情報を示します。

件数 チャンネルの紹介文 所有者 ボット名
41 Invest in bitcoin now and attain financial freedom Alaa Ahmed obomike_bot
25 Free Cannabis 🌵🌵 Cry_ptoSand sales3w7_bot、oasisx_bot、valiat073_bot
21 Atrium Investment Ltd: We Help You ACHIEVE YOUR LIFE GOALS Doris E. Athey Tino08Bot
20 Self Discipline, Consistency and humanity. Lucas Grayson Odion2023bot
18 Come Closer Anthony Forbes Anthonyforbes2023bot
14 Think it, Code It CodeOnce DeSpartan PWORIGIN_bot
12 Dream cha$er 4L Lurgard da Great johnwalkkerBot
11 coder..no system is safe.. Private crypt 100$..knowledge is power 💯💯 ☠️The Devil☠️👹👿( do not disturb )) Skiddoobot
10 PhD Engineering Alexander Macbill swft_bot

表2 最も多く使用されているチャンネル

最後に、あまり利用されない機能として、OriginLoggerが被害システムに感染した後に他のペイロードをダウンロードする機能があります。前述のサンプルのうち、他のマルウェアをダウンロードするように設定されていたのは2つだけでした。

結論

OriginLoggerは、その前身であるAgent Teslaと同様に、多くの重複する類似点とコードを共有するコモディティ化されたキーロガーですが、追跡および理解するためには、この2つを区別することが重要です。商品化されているキーロガーは、これまであまり高度ではない攻撃者向けでした。しかし、この記事で分析した、きっかけとなるおとり文書に示されているように、攻撃者が複数のツールとサービスを使用して難読化し、分析を一層複雑にする能力が低下するわけではありません。商品化されているキーロガーも、他のマルウェアと同様に警戒して取り扱う必要があります。

幸運なことに、この例では前述の2つのキーロガーが似ているので、シグネチャの命名は多少不正確ですが、検出と保護の方法は、世代間で引き継がれます。

パロアルトネットワークスのお客様は、Cortex XDR次世代ファイアウォールを通して、さらにWildFire高度な脅威防御を含むクラウド利用のセキュリティサービスを利用して、OriginLoggerおよびその前身であるAgent Teslaの両方からの保護を受けることができます。