Japan
サイト内の現在位置
日本の大学を詐称する日本語で書かれたばらまき型メールの解析
NECセキュリティブログ2022年11月25日
NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの竹内です。
今回のブログでは、10月28日に確認した大学を詐称するばらまき型メールおよび感染させるコンピュータウイルス(以下、ウイルスとする)について解析した結果を紹介します。
Emotet以外でメール本文が日本語で書かれたばらまき型メールは多くなく、注意が必要であると考えています。
日本の大学を詐称するばらまき型メールは2022年7月末から定期的に確認されています。直近では10月28日にも確認されており、NECでも当該ばらまき型メールを検知しています。今回はメール添付ファイルを開いた際に発生しうる影響や通信先について調査した結果について紹介します。今後も類似のメールがばらまかれることも予想されるため、攻撃に対する調査等に役立てば幸いです。
(注意事項)
- 本ブログに記載の内容を悪用したクラッキング行為等は絶対にしないでください。
- コンピュータウイルス入手ならびに解析は、ご自身の責任の範囲内で行ってください。
大学を詐称するばらまき型メールについて
10月28日にNECで検知したばらまき型メールは図 1に示すものです。メール本文には添付されているファイルを開くように誘導する内容が書かれています。
また、メールには詐称している大学のロゴ画像や署名が含まれていました(図中の大学のロゴ画像および署名関しては一部分マスクしています)。このようにすることで大学から送られてきたメールであることを受信者に思い込ませる目的であったと考えられます。
なお、このメールは公開情報上でも確認していることから、特定の組織を狙ったものではないと考えています。
添付Excelファイルの解析
メールに添付されていたExcelファイル(図 2)はOfficeアプリケーションの脆弱性を悪用しており、脆弱なバージョンのアプリケーションを使用していた場合、当該ファイルを開くことで不正接続先への通信が発生します。
不正なOfficeファイルの解析方法
oletools(https://github.com/decalage2/oletools)に含まれているoleidやoledirを使うと、不正なOfficeファイルにどのような処理が含まれているかをチェックすることができます。今回のメールに添付されていたExcelファイルに対してoleidを実行した結果は図3、oledirを実行した結果は図4の通りです。
oleidの結果から、このExcelファイルにはシート保護がされていること、VBAマクロやExcel4.0マクロが使われていないことがわかります。また、oledirの実行結果から、このExcelファイルはCVE-2017-11882もしくはCVE-2018-0802を悪用している可能性があることがわかります。通信先等を解析するためには、Excelファイルから脆弱性を悪用するコードを抽出する必要があります。
参考:oletoolsは複数のツールが含まれており、マクロの解析にはolevbaというツールを、rtfファイルの解析にはrtfdumpというツールを使うことで効率的に解析ができます。
脆弱性を悪用するコードの抽出および解析
Office文書ファイルに含まれているデータの抽出には、oledump (https://github.com/DidierStevens/DidierStevensSuite/blob/master/oledump.py)というツールを使います。oledumpの実行した結果については図 5の通りです。
oledumpではオプションをつけずに実行することで、ファイルにどのようなデータが含まれているか表示します。また、「-s <oledump表示結果の数字>」オプションを使うことで特定のセクションのデータを表示、「-d」オプションを使うことで当該セクションの生データを抽出することができます。oledirの結果からセクション9「\x01ole10Native」に不正なシェルコードが含まれていると予想されるため、「oledump -s 9 -d “不正ファイル名” > 抽出先のファイル名」でシェルコードを抽出しました。
この抽出したシェルコードの解析には、scdbg (http://sandsprite.com/blogs/index.php?uid=7&pid=152)というツールを使います。「/findsc」オプションでシェルコードの検知が可能です。oledumpを使って抽出したデータに対しscdbgを使った結果が図 6の通りです。
scdbgの実行結果より、この不正ファイルは不正接続先「https[://]192.3.223[.]212/140/vbc.exe」へ通信を行い、通信先からファイルをダウンロードして「C:\Users\Public\vbc.exe」に保存します。その後、当該ファイルを実行し、ウイルスに感染させることが予想されます。
不正通信先からダウンロードされる実行ファイルの解析
シェルコードを解析したことにより判明した不正接続先のファイルを解析していきます。
解析の結果、不正通信先からダウンロードされる実行ファイルは「Lokibot」と呼ばれる情報窃取を目的としたウイルスでした。
不正通信先からダウンロードされる実行ファイルはパッカーによって、難読化(※1)されていました。今回のプログラムは図7のように2段階パッカーで難読化(圧縮)(※2)されていました。
- ※1パッカーはプログラムのファイルサイズの圧縮の用途で使われますが、本来のコードが圧縮され、難読化のような効果が得られることから、ウイルスによって悪用されることがあります。
- ※2このパッカーはBlackBicornとも呼ばれます。
パッカーによる難読化(圧縮)を解除すると、最終的に実行ファイルが得られます。この実行ファイルは図 8のようにいくつかの文字列が見ることができるようになります。
しかし、呼び出すWindowsAPIの一部および不正接続先の情報はなく、ウイルス内に隠されていました。WindowsAPIはAPIの名前をハッシュ関数で難読化する「API hashing」という手法で隠されていました。また、不正接続先は3DESのアルゴリズムで、暗号化されていました。
ウイルスが使っている、「API hashing」は次のような計算をしていました。
def hash_math(str_buf):
ret = 0xffffffff
for c in str_buf:
ret = (ret ^ ord(c)) & 0xffffffff
for i in range(8):
if ret & 1:
ret = (ret ^ 0x4358ad54) & 0xffffffff
ret = (ret >> 1) & 0xffffffff
ret = (~ret) & 0xffffffff
return ret
ウイルス内の暗号化された通信先の復号処理部分は図 10の通りです。「0x6603」が使用しているアルゴリズム(https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id)を示しています。
ウイルスが復号の処理の際に参照しているデータおよび鍵を用い、復号すると図 11のように不正接続先が判明します。このウイルスには5つの通信先が暗号化されていました。
- http[://]192.64.118[.]167/profile.php
- http[://]kbfvzoboss[.]bid/alien/fre.php
- http[://]alphastand[.]trade/alien/fre.php
- http[://]alphastand[.]win/alien/fre.php
- http[://]alphastand[.]top/alien/fre.php
これらの通信先はLokibotの通信先として利用されていることが公開情報からも判明しており、検体の動作含めウイルスはLokibotであると判断できます。
影響と対策
攻撃メールの添付ファイルは既知の脆弱性を悪用するものでした。そのため最新版のOfficeソフトウェアを使用している場合、通信は発生せず、ウイルスの感染には至りません。もし、脆弱なソフトウェアを使っていた場合、ウイルスに感染したことで、情報窃取が行われ機密情報の漏洩等の被害に至る可能性が考えられます。
本件に限りませんが、ソフトウェアのバージョンやセキュリティソフトを最新の状態にしておくこと、身に覚えのないメールの添付ファイルは開かないといった対策も重要です。
まとめ
2022年10月28日にばらまかれていた日本の大学を詐称する攻撃メールを解析してみました。添付ファイルは最終的に情報窃取を目的とするウイルス「Lokibot」に感染させるものでした。特定の組織を標的としたものではありませんが、企業等で感染した場合、機密情報の漏洩等につながる可能性もあるため、注意が必要です。対策としては月並みですが、不審なメールの添付ファイルは開かないことや、ソフトウェアについては最新のものを使用するといった対策をしていただければと思います。
IoC
ハッシュ値
Excelファイルのハッシュ値(md5) | e6e8c7fc6c2222da06cb69b1a4f98b43 |
不正通信先の実行ファイルのハッシュ値(md5) | 528b9a997b0ecc6be6ba41b24653ad65 |
通信先
- https[://]192.3.223[.]212/140/vbc.exe
- http[://]192.64.118[.]167/profile.php
- http[://]kbfvzoboss[.]bid/alien/fre.php
- http[://]alphastand[.]trade/alien/fre.php
- http[://]alphastand[.]win/alien/fre.php
- http[://]alphastand[.]top/alien/fre.php
参考
[1] oletools
https://github.com/decalage2/oletools
[2] oledump
https://github.com/DidierStevens/DidierStevensSuite/blob/master/oledump.py
[3] scdbg
http://sandsprite.com/blogs/index.php?uid=7&pid=152
[4] Windows App Development ALG_ID
https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id
執筆者プロフィール
竹内 俊輝(たけうち としき)
セキュリティ技術センター リスクハンティング・アナリシスグループ
リスクハンティング・アナリシスグループにて脆弱性診断やペネトレーションテストを担当。趣味はマルウェア解析
SEC560メダル保持
情報処理安全確保支援士(登録番号014728号)
GIAC GPEN
執筆者の他の記事を読む
アクセスランキング