DNS TXT レコードを利用したマルウェアの実行方法

AhnLab Security Emergency response Center (ASEC)では、マルウェアを実行するプロセスで DNS TXT レコードを利用する状況を確認した。

このような方式は従来のマルウェア実行方法としては広く利用されていなかったため、解析/検知を始めとする様々な観点において意味があると思われる。

DNS TXT レコードはドメイン管理者が DNS にテキストを入力できる機能である。本来は人間が読めるメモを記入するための目的であったが、現在の DNS TXT レコードはスパムメール受信防止&ドメイン所有権の確認目的を始めとして、DNS に保存された様々なタイプの情報を表示させるために使用されている。

代表的な2つの使用目的、1) スパムメール受信防止、2) ドメイン所有権の確認について簡単に説明すると、以下の通りである。
スパムメールを送信する攻撃者は電子メール送信元のドメインを偽造(スプーフィング)しようとするが、この時にメールを受信するサーバーは電子メールが信頼できるアドレスから送信されたものかどうかを確認するプロセスを実行する。この時に使用される核心的要素が DNS TXT レコードである。
2つ目に、ドメイン管理者は特定の情報が含まれた TXT レコードをアップロードする、または現在の TXT レコードを変更することにより当該ドメインを所有していることを証明できる。

しかし、本文で紹介するマルウェアが DNS TXT レコードを利用した方式は、上記の通り今日一般的に DNS TXT レコードが利用される方向性とは少し異なる。むしろ、本来の使用意図であった DNS 関連情報を記入するための目的というほうがより近いと思われる。

図1) 不正な PPAM ファイルが添付されたフィッシングメール

攻撃者はフィッシングメールに注文の問い合わせ(Order Inquiry)を装った PPAM ファイルを添付している。PPAM ファイルはユーザー定義マクロおよび VBA コード等の特殊機能を保存したパワーポイントで実行可能なファイルである。パワーポイントのマクロが実行されると、以下のプロセスツリーのように PowerShell を通じて nslookup 管理ツールが実行されることを確認できる。

図2) 当社マルウェア自動解析インフラ RAPIT でのプロセスツリー

 

図3) PPAM ファイルのマクロコード

PPAM ファイル内部に存在するマクロコードは、図3)のように非常にシンプルである。マクロが実行されると PowerShell を通じて nslookup ツールを実行後、DNS TXT レコードをクエリする短い内容で構成されている。マクロコードが難読化されているわけでもなく、コードの内容も非常に簡単だが、ここで注目すべき点は DNS TXT レコードに攻撃者が望む次のプロセスでの実行コマンドが入力されていることである。

これにより、攻撃者はアンチウイルス製品の検知を回避するために子プロセスに対して様々な試みを行うものと判断される。

一般的に DNS TXT レコードのクエリ結果は以下の通りとなる。
以下の図4)は当社ドメインの DNS TXT レコード結果を示したものであるが、google-site-verification トークンを始めとして SPF レコードが設定されていることがわかる。

図4) 正常な DNS TXT レコードのクエリ結果

しかし、攻撃者サーバー(abena-dk[.]cam)の DNS TXT レコードを確認してみると、以下の図5)のように DNS TXT レコードの一般的な使用目的とはかけ離れたデータが表示されることがわかる。攻撃者は、様々なサブドメインを生成して電卓(calc.exe)を実行させたり、js ファイルではなく vbs ファイルも利用して数回にわたるテストを実行したものと判断できる。

図5) 攻撃者の Web サーバーの様々なサブドメインの nslookup 確認結果

攻撃者は DNS TXT レコードに PowerShell コマンドを始めとする様々なコマンドをアップロードしており、nslookup によって DNS TXT レコードのクエリ時に当該コマンドが実行されるようにしているのである。単純にマクロコードに PowerShell コマンドを作成するのではなく、これまで確認されたことのなかった新たな方式で nslookup ツールをマルウェアの実行に利用した点が特徴だと言える。

続いて、PowerShell コマンドの URL に存在する methewPayload.js ファイルを meth.js で保存したあと wscript.exe によって実行するが、meth.js ファイルは PowerShell により別の外部 URL から Base64 でエンコードされたバイナリを受け取る。

図6) 外部 URL に保存された Encoded PE

外部 URL から確保が可能な Base64 でエンコードされたデータは DLL バイナリだが、未知の新種のマルウェアがロードされるわけではなく、これは2021年後半から配布されている Hagga(Aggah)という攻撃グループにより製作されたタイプのマルウェアである。最初の配布の試みは不正なマクロが挿入されたドキュメントファイルから始まる点、既知の .NET ベースのコードで確認できる特徴的な関数/変数の名前や StrReverse 関数を利用する点、外部からさらなる不正なファイルをダウンロードした後、メモリから実行する全体的な TTP を根拠に Threat Actor を推定した。追加でダウンロードされる不正なファイルは AgentTesla のような .NET ベースのインフォスティーラー型マルウェアのタイプであることが確認されている。

V3 では、本文で紹介したマルウェアに対して以下のように検知している。

[ファイル検知]
Downloader/PPT.MalQuery (2023.06.16.00)
Downloader/JS.Runner (2023.06.16.00)
Trojan/Win.Generic.R526355 (2022.10.12.00)
Trojan/Win.Injector.C4641320 (2021.09.22.01)

[ビヘイビア検知]
Execution/MDP.Powershell.M2514

[IOC]
f6b8a4c6ed15a1a17896797ce3fe2440
4a647e9baffe95acb9e2ec989b23808b
2a59f2a51b96d9364e10182a063d9bec
hxxp://abena-dk[.]cam
hxxp://calc.abena-dk[.]cam
hxxp://blessed.abena-dk[.]cam
hxxp://methew.abena-dk[.]cam
hxxps://bitbucket[.]org/mounmeinlylo/rikirollin/downloads/methewPayload.js
hxxps://bitbucket[.]org/mounmeinlylo/rikirollin/downloads/blessed_Payload.js
hxxps://bitbucket[.]org/mounmeinlylo/rikirollin/downloads/test_Payload.vbs
hxxps://firebasestorage.googleapis[.]com/v0/b/fir-8c14f.appspot.com/o/rumpe_js.txt?alt=media&token=0ebb3747-9f9d-427c-a6fd-d0c057ba176e

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

5 2 votes
評価する
Subscribe
Notify of
guest

0 コメント
Inline Feedbacks
View all comments