Windows サーバーを攻撃してマルウェア配布サーバーとして使用する Lazarus 攻撃グループ

AhnLab Security Emergency response Center (ASEC)は、国家レベルの支援を受けている攻撃グループとして知られている Lazarus グループが、Windows の Internet Information Services(IIS) Web サーバーを攻撃し、マルウェア配布サーバーとして利用している状況を確認した。

Lazarus グループは、初期侵入方式として水飲み場型攻撃の手法を使用することで知られている。[1] まず韓国国内の Web サイトをハッキングし、そのサイトから提供されるコンテンツを改ざんする。その後、脆弱なバージョンの INISAFE CrossWeb EX V6 を使用しているシステムにおいて当該サイトに Web ブラウザからアクセスした場合、INISAFECrossWebEXSvc.exe の脆弱性によりマルウェア配布サイトから Lazarus マルウェア(SCSKAppLink.dll)がインストールされる方式である。

INITECH の脆弱性はすでにパッチが適用されているが、パッチを適用していないシステムを対象とする脆弱性を利用した攻撃は最近でも発生している。Lazarus グループは IIS Web サーバーを攻撃して制御権を獲得したあと、INITECH の脆弱性を利用した攻撃に使用するマルウェアを配布する目的のサーバーとして使用した。

脆弱なバージョンの INISAFE CrossWeb EX V3 がインストールされている場合は、以下のセキュリティアップデートの推奨を参考にし、削除したあとに最新版へのアップデートを行わなければならない。

1. Windows IIS Web サーバーの攻撃

Lazarus 攻撃グループが IIS サーバーを攻撃する事例は、2023年5月の ASEC ブログ「Windows IIS Web サーバーを狙う Lazarus グループ」[2]で紹介している。この攻撃事例では、攻撃者が不適切に管理されている、または脆弱な Web サーバーを初期侵入の経路として使用したことを確認しており、内部偵察段階を経て RDP を利用し、ラテラルムーブメントを試みた状況まで確認した。

一般的に攻撃者たちはスキャンの結果で脆弱なバージョンを持つ Web サーバーが確認されると、バージョンに応じた脆弱性を利用して Web シェルをインストールするか、悪意を持ったコマンドを実行する。攻撃者が脆弱性を利用して不正なコマンドを実行する、または Web シェルを利用してファイルのダウンロード/アップロード、遠隔コマンドの実行のような振る舞いを行った場合、IIS Web サーバープロセスである w3wp.exe により不正な振る舞いが行われる。

今回確認された攻撃では、過去の事例と同じく w3wp.exe、すなわち IIS Web サーバープロセスによって Lazarus 攻撃グループのマルウェアが生成された事例が確認されている。

Figure 1. IIS Web サーバーによって生成されるマルウェア

2. JuicyPotato 権限昇格マルウェア(usopriv.exe)

w3wp.exe プロセスによって生成されたマルウェア usopriv.exe は Themida でパックされた JuicyPotato マルウェアである。Potato マルウェアは権限昇格機能を担うマルウェアであり、権限昇格方式によって JuicyPotato、RottenPotato、SweetPotato 等、様々なタイプが存在する。

Figure 2. 攻撃に使用された JuicyPotato

攻撃者は Web シェルや辞書攻撃によって当該プロセスを制御できたとしても w3wp.exe プロセスに適切な権限が存在しないため、意図した不正な振る舞いを実行させることはできない。これは MS-SQL サーバーの sqlservr.exe プロセスも同様だが、これらの問題を解決するために攻撃者は攻撃のプロセスで権限昇格マルウェアを同時に使用する傾向がある。

特に IIS Web サーバーや MS-SQL データベースサーバーを対象とする攻撃では、主に Potato 権限昇格マルウェアが使われる。Potato は特定の権限が活性化した一部のプロセスを悪用する方式で権限を昇格し、その後攻撃者は昇格した権限で不正な振る舞いを実行することができる。

以下は、攻撃者が感染システムにインストールした JuicyPotato を利用して実行したコマンドのリストである。権限昇格が正常に行われたかどうかを確認するために whoami コマンドを使用しており、実質的に不正な振る舞いを担当する Loader マルウェアを実行したログも確認されている。

Time Location Command
2023-6-28 11:35 AM %ALLUSERSPROFILE%\usopriv.exe %SystemRoot%\system32\cmd.exe /c whoami > c:\programdata
2023-6-29 7:48 AM %ALLUSERSPROFILE%\usopriv.exe %SystemRoot%\system32\cmd.exe /c whoami > c:\programdata
2023-6-29 7:51 AM %ALLUSERSPROFILE%\usopriv.exe %SystemRoot%\system32\cmd.exe /c whoami > c:\programdata\nueio.txt
2023-6-29 8:27 AM %ALLUSERSPROFILE%\usopriv.exe %SystemRoot%\system32\cmd.exe /c rundll32 c:\programdata\usoshared.dat ,usoprivfunc 4729858204985024133
2023-6-29 8:40 AM %ALLUSERSPROFILE%\usopriv.exe %SystemRoot%\system32\cmd.exe /c del c:\programdata\nueio.txt
2023-6-29 3:08 PM %USERPROFILE%\desktop\ngc\usopriv.exe %SystemRoot%\system32\cmd.exe /c whoami > c:\users\%ASD%\desktop\ngc\test.txt
Table 1. 権限昇格マルウェアによって実行されたコマンドのリスト
Figure 3. 権限昇格マルウェア実行ログ

3. Loader マルウェア(usoshared.dat)

攻撃者は JuicyPotato を利用して Loader マルウェアを実行させた。Loader は DLL フォーマットであるため、rundll32 を利用して実行しており、ランダムな文字列を引数として伝達する。

> rundll32 c:\programdata\usoshared.dat ,usoprivfunc 4729858204985024133

Loader はまず使用するデータファイルの名前を復号化して「{20D1BF68-64EE-489D-9229-95FEFE5F12A4}」文字列を取得する。この文字列はデータファイルの名前であり、すべて3つのパスから当該名称を持つファイルを検索する。現在まで当該パスのファイルを確保できていないが、Loader マルウェアのルーティンを通じて、このマルウェアがエンコードされたデータファイルを復号化してメモリ上で実行させる Loader マルウェアであるという事実は確認できる。

  • rundll32.exe が存在するフォルダー
  • usoshared.dat が存在するフォルダー
  • C:\Windows\Installer\
Figure 4. 復号化されたデータのファイル名

上記パスに {20D1BF68-64EE-489D-9229-95FEFE5F12A4} ファイルが存在する場合は、最初の3バイトを読み込んで「GIF」文字列かどうかをチェックする。攻撃者はデータファイルを GIF 画像ファイルに偽装したものと推定される。同じ場合は次の4バイトを読み込むが、これは以降から読み込むデータのサイズを表す。

Figure 5. データファイルの検証ルーティン

残りのデータは以下のような復号化ルーティンを通じてメモリ上で実行されるため、エンコードされた実際の PE と推定される。最初に取得した 0xC00 以下のデータはメモリ上で PE を実行する際に引数として伝達するため、復号化されたマルウェアが使用する設定データと推定される。

Figure 6. 復号化された PE をメモリ上でロードするルーティン
Offset Size データ
0x0000 0x0003 シグネチャ(GIF)
0x0003 0x0004 設定データのサイズ
0x0007 SizeOfConfig エンコードされた設定データ
0x0007 + SizeOfConfig 残り エンコードされた PE のサイズ(0x04)とエンコードされた PE
Table 2. エンコードされたデータファイルの構造

一般的に Lazarus グループは上記のように Loader マルウェアと暗号化されたデータファイルを同時に使用する傾向がある。上記のように PE フォーマットの Loader が特定パスに位置するエンコードされたデータファイルをメモリ上で復号化した後に実行する形式である。現在までデータファイルは確認されていないが、過去の事例から見た場合、最終的に実行されるマルウェアは大半が追加のマルウェアをダウンロードするダウンローダーか、攻撃者のコマンドを受け取って不正な振る舞いを実行するバックドアである。

4. INISAFE 脆弱性攻撃

当社 AhnLab Smart Defense(ASD)のログによると、パッチを適用していない過去バージョンの INISAFECrossWebEX を使用しているシステムへの INISAFE 脆弱性攻撃は持続的に行われている。

その後も、攻撃者は INISAFE 脆弱性攻撃により感染システムにさらなるマルウェア「SCSKAppLink.dll」のインストールを試みており、「SCSKAppLink.dll」のダウンロードアドレスが上記で取り上げた IIS Web サーバーであることが確認された。すなわち、攻撃者は IIS Web サーバーを攻撃して制御権を奪取したあと、マルウェアを配布するサーバーとして利用していた。

Figure 7. INISAFE 脆弱性発現ログ

この脆弱性によりインストールされるマルウェア「SCSKAppLink.dll」は確認されていないが、過去の ASEC ブログ「INITECH プロセスを悪用する Lazarus 攻撃グループの新種マルウェア」[3]と類似していると見られる。過去に確認された「SCSKAppLink.dll」は外部からさらなるマルウェアをダウンロードして実行するダウンローダーマルウェアであり、システムに攻撃者が指定したマルウェアをインストールして制御権を奪取することができる。

5. 結論

Lazarus グループは初期侵入のために共同認証書の脆弱性3CX サプライチェーン攻撃等、様々な攻撃ベクトルを使用する非常に脅威的であり、全世界的に活発な活動を見せている攻撃グループの一つである。したがって、企業のセキュリティ担当者は攻撃対象領域管理(Attack Surface Management)を通じて、攻撃対象にさらされる可能性がある資産を識別し、持続的に最新のセキュリティパッチ等の管理を行わなければならない。

攻撃者は最新バージョンのパッチが適用されていないシステムを対象に、最近でも脆弱性を利用した攻撃を初期侵入に利用している。もし最新バージョンの INITECH 製品を使用していない場合は、以下のセキュリティアップデートの推奨を参考にし、最新版へのアップデートを行わなければならない。

また、V3 を最新バージョンにアップデートしてマルウェアへの感染を事前に遮断できるように注意を払わなければならない。

ファイル検知
– Exploit/Win.JuicyPotato.C5452409 (2023.07.12.03)
– Trojan/Win.Loader.C5452411 (2023.07.12.03)

ビヘイビア検知
– InitialAccess/MDP.Event.M4242

IOC
MD5

– 280152dfeb6d3123789138c0a396f30d : JuicyPotato (usopriv.exe)
– d0572a2dd4da042f1c64b542e24549d9 : Loader (usoshared.dat)

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

Categories:マルウェアの情報

Tagged as:,

4 4 votes
評価する
Subscribe
Notify of
guest

0 コメント
Inline Feedbacks
View all comments