LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

ラックピープル | 

APT攻撃者グループ menuPass(APT10) による新たな攻撃を確認

当社脅威分析チームでは、日本を標的とする様々な攻撃者グループを日々調査しています。その中で、2018年4月下旬頃からmenuPass(APT10) ※1 が、多機能なペネトレーションテストツール Cobalt Strike *1 を悪用した攻撃を行っていることが複数確認できました。Cobalt Strikeは、APT19 *2 、 OceanLotus *3 、 PassCV(Winnti) *4 などの攻撃者グループやサイバー犯罪 *5 でも悪用されていることが報告されており、珍しい攻撃手法ではありませんが、menuPassが悪用するのは初めてのケースです。

  • ※1menuPassは、攻撃者グループ(キャンペーン名)であり、2011年頃から主に日本の大学組織や政府関係などを標的としている。

menuPassは、2018年3月末にトレンドマイクロ社のブログ *6 でも報告されたように、日々新しい攻撃手法や攻撃ツールを悪用して日本の組織などを攻撃してきています。menuPassの攻撃ツールに着目すると、独自に開発したマルウェア(ChChes、ANEL など)の使用も確認できますが、表1のようにオープンソースまたは商用のペネトレーションテストツールを悪用した攻撃が特に目につきます。その理由として考えられるのは、オープンソースまたは商用のペネトレーションツールを使用することによって攻撃を容易にすること、あるいは攻撃の匿名化によって背後にいる組織の正体を不明瞭にすることです。

攻撃者グループ オープンソースツール / 商用ペネトレーションツール
menuPass(APT10) PowerSploit, Koadic, QuasarRAT, Redleaves(Trochilus), PowerShell Empire, DKMC, Cobalt Strike
表1 menuPass(APT10)が悪用する攻撃ツール例

以下では、menuPassによるCobalt Strikeを悪用した2つの標的型メール攻撃の調査結果を報告します。

1.実行形式の暗号化ファイルの悪用

2018年4月下旬頃、複数の日本の組織に対して、実行形式の暗号化ファイルが添付された標的型メールが送信されました。図1は、この標的型メールから始まる一連の攻撃の流れを示した概要図です。

図1 実行形式の暗号化ファイルを悪用した攻撃の概要図

図1 実行形式の暗号化ファイルを悪用した攻撃の概要図

初めに、標的型メールに添付された実行形式の暗号化ファイルを実行すると、".doc.scr"という二重拡張子の不正なファイルが展開されます(①)。展開された不正なファイルを実行すると、図1の赤枠線にある3つのファイル("peisnce.exe"、 "vntfxf32.dll"、 "jeosa.ows")が作成され、"peisnce.exe"が実行されます(②)。その際、ユーザをだますようにデコイファイルも同時に表示されます。

作成された3つのファイルは、図2に示すように、二重拡張子の不正なファイル内の.dataセクションに含まれる暗号化された3つのデータ(unk_57A648、unk_595510、unk_5B2D10)に対して、赤線で囲った長さ分XOR演算(暗号鍵:0x36)し、データを復号することで作成されます。

図2 .dataセクションに含まれる暗号化された3つのデータ

図2 .dataセクションに含まれる暗号化された3つのデータ

作成されたファイルの1つ"peisnce.exe"は、まず同じディレクトリに展開されたローダー"vntfxf32.dll"ファイルを読み込みます。次に、読み込まれたdllファイルは、暗号化されたシェルコード"jeosa.ows"ファイルを読み込みます。"jeosa.ows"ファイルはAESで暗号化されており、dllファイルによって復号後、シェルコードとしてメモリ上で実行され、"Cobalt Strike Beacon"(DLLファイル)をダウンロードします(③)。

図3は、"vntfxf32.dll"ファイル内に含まれる文字列であり、AESの暗号鍵(gfjkdnropqhsjfjb)や暗号化されたシェルコード"jeosa.ows"ファイルの文字列がハードコードされていることが確認できます。また、AESの暗号鍵"gfjkdnropqhsjfjb"には、menuPass が使用する特徴的なマルウェアRedLeavesの亜種Himawariのインストーラでも同じ鍵が使われていました。なお、図4は、復号後の"jeosa.ows"ファイルであり、"Cobalt Strike Beacon"をダウンロードするシェルコードであり、C2サーバのIPアドレスや通信を行う際のUserAgent情報などが可読性のある文字列として埋め込まれていることが確認できます。

図3 

図3 "vntfxf32.dll"ファイル内に含まれる文字列

図4 

図4 "Cobalt Strike Beacon"をダウンロードするシェルコード

このシェルコードは、図5に示すリクエストを介して、"Cobalt Strike Beacon"をダウンロードし、メモリ上で実行します(④)。ダウンロードされたファイルには、図6に示すような名前のDLLファイル(beacon.dll)や図7の赤枠線のような特徴的な文字列が含まれており、"Cobalt Strike Beacon"であることがわかります。

図5 

図5 "Cobalt Strike Beacon"をダウンロードするリクエスト

図6 ダウンロードファイル(rF5o)内でエクスポートされるDLLファイル(beacon.dll)

図6 ダウンロードファイル(rF5o)内でエクスポートされるDLLファイル(beacon.dll)

図7 ダウンロードファイル内に含まれる特徴的な文字列

図7 ダウンロードファイル内に含まれる特徴的な文字列

最後に、"Cobalt Strike" が悪用されるC2サーバに目を向けてみます。今回の攻撃で悪用されたC2サーバは、図8に示すように、ルーマニアでVPSサービスを提供するHETNiX(AS3280)が管理するIPアドレスにありました。

図8 C2サーバのIPアドレス

図8 C2サーバのIPアドレス(DomainToolsの検索結果より引用 *7

C2サーバでは、図9(上画像)に示すように、マルウェアの通信などにSSLを使用するために自己署名のサーバ証明書が利用されていました。図9の赤枠線を確認すると、"発行者が不明であるため、この証明書の有効性を検証できませんでした"というエラー警告と共に、CNやOUに "wikipedia"が指定されていることに気がつきます。
図9(下画像)は、正規の"wikipedia.org"が提供するSSLサーバ証明書を確認したものです。青枠線を確認すると、DigiCertが発行した正規の証明書であることが確認できます。

図9 SSLサーバ証明書の比較(C2サーバ)

図9 SSLサーバ証明書の比較(wikipedia.org)

図9 SSLサーバ証明書の比較(上:C2サーバ/下:"wikipedia.org")

攻撃者がC2サーバで利用した自己署名証明書において、CNやOUに"wikipedia"を指定した理由は定かではありませんが、"Cobalt Strike Beacon"のHTTPリクエストからは、通常通信と誤認させようとする攻撃者の意図が見え隠れします。図10は、"Cobalt Strike Beacon"のリクエスト例であり、赤枠線で囲ったHostヘッダに、"en.wikipedia.org"が指定されていることに気が付きます。C2サーバは、"wikipedia.org"とは無関係の"95.128.168[.]227"であり、Hostヘッダは攻撃者によって偽装されていることがわかります。このような通信が発生した場合、セキュリティ機器によっては、C2サーバへの通信が"wikipedia.org"へアクセスしているように記録されてしまう可能性があるため、通常通信と誤認しないように注意が必要です。なお、C2サーバへの命令は、青線のsearchパラメータ部分であり、初期通信として、ユーザ名、ホスト名、IPアドレス、OS情報、インジェクションしたプロセスIDなどの情報を送信しています。

図10 Cobalt Strike Beacon のリクエスト例

図10 "Cobalt Strike Beacon"のリクエスト例

2.マクロを悪用する文章ファイル

2018年5月上旬頃、複数の日本の組織に対して、マクロを悪用する文章ファイルが暗号化zipとして添付された標的型メールが送信されました。図11は、この標的型メールから始まる一連の攻撃の流れを示した概要図です。

図11 マクロを悪用する文章ファイルによる攻撃の概要図

図11 マクロを悪用する文章ファイルによる攻撃の概要図

初めに、標的型メールに添付された文章ファイル内のマクロを実行すると、PowerShellを介して図12に示すスクリプトが実行され(①)、赤枠線のC2サーバから次のダウンローダであるVBScriptをダウンロードし、"Computer.vbs"としてスタートアップフォルダに保存されます(②)。

図12 マクロに含まれるPoweShellスクリプト例

図12 マクロに含まれるPoweShellスクリプト例

図13は、"Computer.vbs"の内容の一部を抜粋したものであり、ここでもPowerShellスクリプトを実行していることが確認できます。赤矢印で示す内容は、オプション"-enc"以降のPowerShellスクリプトを復号したものです。復号されたスクリプトは、さらに一部のデータがBase64とgzipで難読化されており、図14は、そのデータを復号したものです。このスクリプトは、Don't Kill My Cat(DKMC) *8 と呼ばれるオープンソースのツールを使用して作成されており、赤枠線で示すようにC2サーバから次のファイル(cat.bmp)をダウンロード後、メモリ上に展開し実行します(③)。

図13 Computer.vbsに含まれるスクリプト例

図13 Computer.vbsに含まれるスクリプト例

図14 復号したスクリプトの一部抜粋(DKMC)

図14 復号したスクリプトの一部抜粋(DKMC)

ダウンロードした"cat.bmp"は、図15に示すように、ビットマップファイルを表すマジックナンバー(0x4d42)を持ち、画像ファイルとして閲覧することができますが、図16に示すように、このファイルの正体はシェルコードであり、メモリ上で実行され、最終的には1.の事例と同様に"Cobalt Strike Beacon" をダウンロードします(④)。

ビットマップファイルヘッダ(BITMAPFILEHEADER)の構造 *9 では、オフセット0-1の2バイトがbfType(BMという文字列)、2-5の4バイトがbfSizeでビットマップファイルのサイズ、その後に続くbfReserved1とbfReserved2はそれぞれ2バイトの予約領域でゼロを保存する仕様です。図15のビットマップファイルでは、青枠線で示すように本来ファイルサイズと予約領域である範囲を利用し、"e97cc40300"という値を指定することで、アドレス"0x3c483"※2へジャンプするコードを埋め込んで利用しています。

  • ※2"e97cc40300"は、アセンブラでは、オペコード:e9(JMP命令)、オペランド:7cc40300(0x3c47c)と解釈でき、オフセットアドレス(0x7)と合わせ、ジャンプアドレスは、図16の赤枠線で示すように"0x3c483"となる。

図15 cat.bmpのバイナリデータ

図15 "cat.bmp"のバイナリデータ

図16 cat.bmpのシェルコード確認

図16 cat.bmpのシェルコード確認

図16 "cat.bmp"のシェルコード確認

menuPassは、日本を標的の1つとして絶えず攻撃を仕掛けてきており、今後も新しい攻撃手法や攻撃ツールを変化させ、継続的に攻撃をしかけてくることが考えられます。このような状況の中で、当社は今後もこの攻撃者グループについて継続的に調査し、広く情報を提供していきたいと考えていますので、その情報をご活用いただければ幸いです。なお、本資料においては、文書の体裁上、製品名への商標登録表示、その他の商標表示を省略している場合があります。

IOC (Indicator Of Compromised)【2018.06.14 更新】

ハッシュ値

9a0b957f164508830342310c44d56e49
ee794b3595285f2de4a618dead0287ed
246cb77ecfd0a8e62b68c76be5a6ce5c
56cbbea8535c0e8ae967fcdec17db491
64711fadf0deff67428153cd9a741eb5
d108c5cf5aefafc55348dad0748c3d86

通信先

95[.]128[.]168[.]227
www[.]jadl-or[.]com
91[.]235[.]129[.]180
193[.]70[.]125[.]186


この記事は役に立ちましたか?

はい いいえ