本日の記事は、SOC アナリスト 野村 和也の記事です。
---
SOCでは3月中、複数のお客様環境にて、特徴的な悪性ファイルの挙動をEDRで検知しました。この悪性ファイルは、タイ正規の入国申請システム(以下、正規申請システム)を装い、利用者をターゲットにしたスピアフィッシングに関連するものと考えられます。また、悪性ファイル実行後のマルウェア感染までの特徴が過去Crypter-as-a-serviceを利用したキャンペーン [1]、及びAHKLoader [2]、さらにAgentTesla [3]など複数のマルウェアと類似しており、共通するCrypterサービス [4]を利用している可能性が考えられます。また、攻撃者がフィッシングに使用していたメールアドレスや、設置サイト上に置かれていたファイル等の痕跡から、Twitter上でこの攻撃キャンペーンを行ったアクターは「Ahmad」と呼ばれており、マルウェアのインストールを試みる悪性ファイルは、「AhmadLoader」とも呼ばれています [5]。この悪性ファイルを実行することで、被害端末は最終的にRATに感染する恐れがあります。
マルウェア感染経路の全貌
悪性ファイルのダウンロードから感染までの挙動を紹介します。SOCではこのフィッシングキャンペーンに関連するとみられる悪性ファイルの設置サイトについて、以下の図の通り2つのパターンを確認しています。VBSがZIP/ISOファイル形式で配布されている、最初にダウンロードされるHTMLファイルがZIP圧縮されている/されていないなどの細かな違いはありますが、③のVBS実行後の動作は類似しています。
(感染経路の概要:赤字は執筆時点(3/28)でオンラインだったもの)
また、これらの設置サイトはOpendirになっており、「desktop.ini」という特徴的なファイルが見受けられます。Desktop.iniの中身はオンラインストレージ「Mega」のクライアントソフトに使用されるものであり、攻撃者がMegaを使用している可能性を示唆しています。
(34.105[.]85.231のディレクトリ desktop.iniが特徴)
本ブログでは、パターンⒶについて具体的な解析結果を取り上げます。
① タイ入国システムを装ったフィッシング
正規申請システムを装ったフィッシングは直近でも様々な情報があり、SOCでの検知事例と関連するものと見られる情報もありました [6]。このブログでは、重要な申請でしか使わないメールアドレスで正規申請システムを利用したところ、1週間後にフィッシングメールが届き、最終的に悪性ファイルへのリンクが記載されたメールが届いた事例が紹介されています。
②~③ 悪性HTMLファイルおよびVBS
メール内に記載された短縮URLを開くと、ZIP圧縮されたHTMLファイルがダウンロードされます。このHTMLファイルは正規申請システムに似せたページを表示しますが、埋め込まれたZIPファイルをドロップするJavaScriptが埋め込まれています。
(悪性HTMLファイル:正規の申請システムと似た見た目になっている)
また、このHTMLファイルにはアラビア語のコメントが含まれており、攻撃者がアラビア語の話者である可能性を示唆しています。また、Ahmadはアラビア語圏の名前としても知られています。
(HTMLファイル中のアラビア語のコメント)
このZIPファイルには悪性なVBSが含まれており、AWSのIPアドレスからTestavast+denf.txtを取得し、実行します。パターンBのVBSもほぼ同様の挙動となります。
(ZIPファイル内の悪性VBSの難読化を解いた様子 さらにスクリプトをダウンロードし実行する)
④ 複数のPowerShellスクリプトの実行
Testavast+denf.txtは、被害端末にインストールされているアンチウイルス製品を検知し、対応するスクリプトをダウンロードした後、実行します。AgentTeslaの
感染挙動でも、同じようなスクリプトが確認されています [3]。
(被害端末内にインストールされているアンチウイルスを検知し、対応したスクリプトを実行する)
各製品の条件ごとに、ダウンロードするスクリプト、スケジューラへの登録手法、登録するスクリプトなどに若干の違いがあります。各ケースの差異は最後にまとめますが、共通する動作が多いため、本ブログでは”Else文”のケースに着目します。else-ifに該当するアンチウイルスが該当しない場合ですが、昨今ではWindowsの利用者が意識していないケースでも、多くの場合でWindows Defenderがアンチウイルスとして有効になっています。つまり、このケースでは、攻撃者がWindows Defenderの利用者をターゲットにしていると考えられます。
(“Else”に該当するスクリプト)
このケースでは、まずmicrosoft[.]soundcast[.]meから、⑴PS1スクリプト(Untitled.ps1) 、⑵Exeファイル (SecurityHealth.exe) 、⑶マニフェストファイル (SeculityHealth.exe.manifest) をC:\Users\Public\Music配下にダウンロードします。その後、ダウンロードした⑴Untitled.ps1を通じて一度⑵SecurityHealth.exeを実行したのち、スタートアップフォルダに⑵、⑶のコピーを作成することで永続化を図ります。再起動後はスタートアップから自動実行されるため、⑴のスクリプトは最後に削除されます。
⑤ VBSスクリプト実行
ここで、スタートアップに登録される⑵SecurityHealth.exeには名前の通り、Windows Securityを思わせるアイコンがついていますが、Windows Securityとは関係のない実行ファイルです。
(SecurityHealth.exeのアイコン)
しかし、SecurityHealth.exeは厳密にはマルウェア本体ではありません。VirusTotalの検出結果も悪性判定は多くなく、有効なデジタル署名もついています。(ちなみに最新版のWindows Defenderはこのファイルを悪性判定し、隔離します)
(SecurityHealth.exeのVTでの検出の様子)
このファイルには「AderSoft」の署名がついており、このファイルはAderSoftが提供するフリーソフト「VBSEdit」 [7]により、VBSをExe化する際に作成されたものとみられます。このファイルはVBSを読み込み動作させるだけのものなので、このファイルをもってして悪性な実行ファイルであるとは言えません。
一方で、同時にダウンロードされる⑶のマニフェストには、悪性なスクリプトが埋め込まれています。マニフェストのコメント内に、VBSがBASE64Encodeされて埋め込まれています。
ちなみに、このでGoogle検索すると、他にもRATの検体が出てきます。また、過去のAHKLoaderを用いたキャンペーン [2]でも、このVBSEditを悪用した特徴的な手法が確認されています。
(SecurityHealth.exe.manifestには悪性VBSが埋め込まれている)
このVBSが実行されると、さらにPowerShellスクリプトが実行されます。
⑥ マルウェアの動作
PS1スクリプトを実行することにより、マルウェアが動作します。PS1スクリプトの中は大きく3つに分かれており、それぞれ簡単な難読化がされた3つのバイナリが埋め込まれています。以降、これら3つの検体をスクリプト内の出現順にA, B, Cとします。
AはGetTempFileName()の一時領域にDLLを書きだした後にメソッドの呼び出しを行っています。
B,Cについては、[Reflection:Assembly]を用いることで、Bをメモリ上に直接読みこみ、(Reflective DLL Injection)。さらにこのDLLのメソッドを利用しCを読み込み実行している様子です。この部分は先ほど紹介したAgentTeslaの記事 [3]でも、ほぼ同様のコードが紹介されています。
(最終的にマルウェアを動作させるPowerShellスクリプト スクリプト内にバイナリが埋め込まれている)
これら三つのうち、今回はB,Cの検体に注目します。Cをデコンパイルすると、C#で書かれたASyncRATであるNYAN-x-CAT/AsyncRAT-C-Sharp [8]とほぼ同様のソースコードであることがわかりました。
(検体CからデコンパイルしたコードとNYAN-x-CATによるRATの通信部分のコードの比較)
また、ソースコードを深堀り分析した結果、C2等が記載された設定ファイルもNYAN-x-CATによるRATと同様の構造をもっていました。AESで暗号化されていましたが、周辺の情報から容易に復号することが可能でした。さらに、このRATにも永続化機能があり、自らをタスクスケジューラに登録します。
一方、Bが持つメソッドは、同時に正規のASP.NET Compilerのパスも引数に持っています。また、メソッドの呼び出しの引数が先ほど紹介したAsyncRAT同様、NYAN-x-CATによるC#で書かれたRunPE [9]と類似しています。これらの情報から、このファイルは正規のプロセスを装いProcess Hollowingを行う、「RunPE」に使用されると考えられます。先ほど紹介したAgentTesla [3]及び、過去のSnip3を利用したとみられるキャンペーン [1]でも、同じくRunPEを用いてRATを動作させるマルウェアが見受けられます。
今回、スピアフィッシングメールからインストールされるマルウェアについて簡単な解析を行いました。Opendirとなっていたマルウェア設置サイト上には、他にも同様にVBSEditで検出回避された、AsyncRATと同様のC2サーバを持つvjw0rmなどの検体や、クレデンシャル情報の窃取に使用されると思われる「AllInOnePasswordRecoveryPro」などが確認できました。このことから、攻撃者は様々なマルウェアを所有している可能性があります。
下の画像は、今回のキャンペーンにおいて使用されていたAsyncRATのConfigを、tria[.]geで参照したものです。今回解析を行った検出回避の手法は、今回のキャンペーンだけでなく、類似のフィッシングキャンペーンに属するとみられるケース [4]とも多く共通点があります。
他アンチウイルス製品を検知した場合の動作
マルウェアの動作までを追跡できたところで、先ほどの④Testavast+denf.txtでほかのアンチウイルス製品を検知した場合、どのような動作になるかを簡単に紹介します。
ケース | Testavast+denf以下のプロセス | 永続化されるもの | 備考 |
ESET | Untitled.ps1 ↓ Off.vbs ↓ Off.Ps1 (マルウェア) | Off.vbs (schtasksで永続化) | GoogleUpdateという名前でタスクが作られる C:\Users\Public\Untitled.ps1 C:\ProgramData\Instagram\System32\Microsoft\SystemData.OFF.vbs C:\ProgramData\Instagram\System32\Microsoft\SystemData.OFF.ps1 が作られる |
AVG | Untitled.ps1 ↓ OFF.vbs ↓ OFF.Ps1 (マルウェア) | OFF.vbs (Register-ScheduledTaskで永続化) | Officeという名前でタスクが作られる C:\Users\Public\ Untitled.ps1 C:\ProgramData\Instagram\System32\Microsoft\SystemData\OFF.vbs C:\ProgramData\Instagram\System32\Microsoft\SystemData\OFF.PS1 が作られる |
MalwareBytes | Untitled.ps1※1 ↓ admin.vbs Untitled.ps1※2 ↓ SecurityHealth.exe ↓ aaa.PS1 (マルウェア) | SecurityHealth.exe (スタートアップで永続化) | ※1がC:\Users\Public\Untitled.ps1に作成される。 ※1はC:\local以下にadmin.vbsなどたくさんのPS1、VBSを作成し、SilentCleanupを利用してUACByPassをおこなったのち、PowerRunからMalwarebytesを停止させる。 [3]で類似のスクリプトが確認されている。 ※2はC:\Users\Public\Music\Untitled.ps1に作成される。 ※2を実行した後は下記の「他」ケースと同様 |
Avast | AVGと同じ | ||
他(Windows Defender?) | Untitled.ps1 ↓ SecurityHealth.exe ↓ aaa.PS1 (マルウェア) | SecurityHealth.exe (スタートアップで永続化) | C:\Users\Public\Music\Untitled.ps1 C:\Users\Public\Music\SecurityHealth.exe C:\Users\Public\Music\SecurityHealth.manifest.exe が作成される スタートアップにSecurityHealth.exeとSecurityHealth.manifest.exeが登録される |
対策
一般的なフィッシングの対策が有効であると考えられます。メールの送信元が信頼できる送信元か、短縮URLが使われている場合、リダイレクト先のURLが意図したものか、などを確実に確認することが重要です。また、先述した通りSOCでは悪性ファイルの実行をEDR製品からのアラートで検知しました。EDR製品の導入及び分析サービスの導入も、有効な対策です。
まとめ
本ブログではフィッシングメールが起点となる最新のマルウェア被害の通知事例を紹介しました。本悪性ファイルにて観測されるIoCはbit[.]ly、Onedrive、DDNS(soundcast[.]me、dnslive[.]net)など、IPS/IDSで一般的なIoCを基にした検出が困難なものです。しかし、今回はアナリストがEDRのアラートを確認し、最新の脅威情報と照らし合わせながら分析を行うことで悪性動作を突き止めることができました。また、マルウェア感染の経路や手法も上記のように複雑化していますので、引き続き最新の脅威情報を注視し続けることが重要です。
IoC
- 悪性HTMLファイル
- https[:]//bit[.]ly/Document-Required
- https[:]//bit[.]ly/Thailand-passport
- 悪性ファイル設置先
- http[:]//34.71.81[.]158
- http[:]//34.105.85[.]231
- http[:]//35.184.204[.]221
- http[:]//ec2-34-229-64-131.compute-1.amazonaws[.]com
- http[:]//microsoft.soundcast[.]me
- C2
- help-microsoft[.]dnslive[.]net
参考文献
[1] Fortinet, 航空会社を狙った新手のスピアフィッシングキャンペーン
(https://www.fortinet.com/jp/blog/threat-research/spear-phishing-campaign-with-new-techniques-aimed-at-aviation-companies)
[2] Morphisec, AHK RAT LOADER USED IN UNIQUE DELIVERY CAMPAIGNS
(https://blog.morphisec.com/ahk-rat-loader-leveraged-in-unique-delivery-campaigns)
[3] ASEC, より精巧になった不正な PPT を通じて AgentTesla が拡散
(https://asec.ahnlab.com/jp/29329/)
[4] Cisco Talos Intelligence Group, Threat Spotlight: AsyncRAT campaigns feature new version of 3LOSH crypter
(https://blog.talosintelligence.com/2022/04/asyncrat-3losh-update.html)
[5] Ankit Anubhav, Ankit Anubhav on Twitter
(https://twitter.com/ankit_anubhav/status/1501797059795435523)
[6] ShenanigansJason’s, Almost Got Scammed by Thailand Pass Impersonators
(https://geek0ut.substack.com/p/almost-got-scammed-by-thailand-pass?s=r)
[7] AderSoft, VBSEdit
(https://www.vbsedit.com/)
[8] NYAN-x-CAT, AsyncRAT-C-Sharp
(https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp)
[9] NYAN-x-CAT, CSharp-RunPE
(https://github.com/NYAN-x-CAT/CSharp-RunPE)