LAC WATCH

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

RSS

株式会社ラック

メールマガジン

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

ラックピープル | 

オープンソースのツール「PoshC2」を悪用した新たな標的型攻撃を確認

ラックの石川です。
私の所属する脅威分析チームでは、日本を標的とする様々な攻撃を日々調査しています。その過程で、オープンソースで公開されているPoshC2*1 を悪用した攻撃を、今年(2019年)1月頃から確認しています。また、2018年12月末のFireEyeのブログ*2 によると、イラン政府の関与が疑われる攻撃者グループAPT33*3 が、PoshC2をエンジニアリング業界に対する一連の攻撃の中で悪用したとも報告されており、PoshC2がサイバー攻撃で使用される事例を最近多く目にする機会があります。

そこで今回は、日本を標的とした攻撃におけるPoshC2の悪用事例を紹介します。また、この攻撃を調査する上でPoshC2を悪用する他の事例も確認しましたので、それも併せて紹介します。
2つの攻撃の関連は確認できていませんが、攻撃者は、いずれのケースにおいても正規クラウドサービス(GCP=Google Cloud Platform、またはAWS=Amazon Web Services)をC2サーバとして利用しています。

PoshC2はペネトレーションテストで利用されるPowerShellベースのC2フレームワークで、Post-Exploitation※1 やLateral Movement※2 などの機能を備えています。PoshC2を使用した攻撃は"Core Dropper" と呼ばれるモジュール(ペイロード)を起点とし、このモジュールからシステムへの侵入後に利用する様々なペイロード*4 が実行可能となります。また、"Core Dropper"は、EXEファイル、BATファイル、LNKファイル、Officeマクロなどに埋め込まれて攻撃に利用されます。図1は、PoshC2サーバを実行し、ヘルプを表示させた画面です。

※1 エクスプロイトを成功させた後の振る舞いのこと
※2 組織内で侵入拡大を行うこと

図1 PoshC2サーバの実行画面(v3.8)

図1 PoshC2サーバの実行画面(v3.8)

1. GCP上に設置されたPoshC2を悪用する攻撃

私たちのチームは、2019年1月頃に、PoshC2を悪用する攻撃を確認しました。このPoshC2を悪用する攻撃手口は、ドロッパーから"Core Dropper"を実行するケースと、バッチファイルまたはJPGファイル※3 に含まれた"Core Dropper"そのものを実行するケースの2種類があります。図2は、これら2つの攻撃の流れを示したものです。

※3 拡張子のみJPGであり、中身はPowerShellスクリプトが含まれるテキスト

図2 Google CloudをC2サーバとして悪用する攻撃の概要図

図2 Google CloudをC2サーバとして悪用する攻撃の概要図

攻撃手口1では、DLLハイジャックの手法を悪用します。正規のEXEファイルが実行される際にPoshC2のコードを含む不正なDLLファイルがロードされ実行されます。このDLLファイルは、図3の赤枠線で囲んだPowerShellスクリプトを含むコードをバッチファイル(run.bat)として作成し、実行するドロッパーです。バッチファイルは、copyコマンドを利用して、正規のWindows PowerShell(powershell.exe)を別名の"firefox.exe"として複製した後、その複製したプログラムで青枠線の"function de"から始まる不正なPowerShellスクリプトを実行します。実行されるスクリプトは、攻撃手口2で利用されるバッチファイルまたはJPGファイルに含まれるPowerShellスクリプトと類似するコードのため、次の項目で紹介します。

なお、攻撃者が、正規のWindows PowerShellではなく、別名のプログラムを利用してPowerShellスクリプトを実行させているのは、セキュリティ製品による"powershell.exe"実行の検知を回避するためではないかと考えています。

図3 不正なDLLファイルをデコンパイルしたコード(一部抜粋)

図3 不正なDLLファイルをデコンパイルしたコード(一部抜粋)

攻撃手口2では、正規のWindows PowerShellとして複製された"firefox.exe"がバッチファイルまたはJPGファイルに含まれる不正なPowerShellスクリプトを実行します。赤矢印で示す内容は、オプション"-e(-enc)"以降のPowerShellスクリプトをBase64でデコードしたものです。

図4 バッチファイルまたはJPGファイルに含まれるPowerShellスクリプト(一部抜粋)

図4 バッチファイルまたはJPGファイルに含まれるPowerShellスクリプト(一部抜粋)

デコードされたスクリプトは、さらにzlib とBase64で圧縮および難読化されており、図5(上画像)は、このスクリプトをデコードしたものです。図5(下画像)で示すgithubで公開されているPoshC2の"Core Dropper"のコード*5 と比較してみると、コードが類似しており、デコードしたスクリプトは"Core Dropper"であることが確認できます。

図5 PoshC2の Core Dropper デコード後のコード

図5 PoshC2の Core Dropper githubのコード

図5 PoshC2の"Core Dropper"(上:デコード後のコード/下:githubのコード)

また、図6は、"Core Dropper"の初期リクエスト例です。赤枠線で囲ったCookieヘッダには、AESで暗号化し、Base64でエンコードした感染PCのドメイン名、ユーザ名、PC名、プロセッサ、プロセスID、C2の情報が含まれます。

図6 Core Dropper の初期リクエスト例

図6 "Core Dropper"の初期リクエスト例

2. AWS上に設置されたPoshC2を悪用する攻撃

項目1のPoshC2を悪用した日本を標的とする攻撃を調査する中で、2018年7月頃にPoshC2を悪用する別の攻撃があることを確認しました。図7は、この攻撃の流れを示したものです。なお、この攻撃については、@DissectMalware氏によってTwitterでも報告*6 されています。

図7 AWSをC2サーバとして悪用する攻撃の概要図

図7 AWSをC2サーバとして悪用する攻撃の概要図

初めに、Excelファイル(confidential.xlsx)を実行すると、図8のような、他のソースへのデータリンクがある旨のポップアップが表示されます。次に、「はい」をクリックすると、他のアプリケーションの実行許可を求めるポップアップが表示されます。

図8 confidential.xlsxの実行画面

図8 confidential.xlsxの実行画面

このExcelファイルは、Dynamic Data Exchange(DDE)機能※4 を悪用しており、Excelファイル内に外部参照情報を持つXMLファイル(externalLink1.xml)に図9の赤枠線のような "cmd.exe" を利用して PowerShellスクリプトを実行するコードが埋め込まれています。このスクリプトは、C2サーバに接続し、図10に示すような不正なPowerShellスクリプト(s2.txt)をダウンロードして実行します。

※4 Microsoft Office アプリケーションには Dynamic Data Exchange (DDE) プロトコルが実装されており、複数のソフトウェア間で通信を行うことができる

図9 Excelファイルに含まれるPowerShellスクリプト

図9 Excelファイルに含まれるPowerShellスクリプト

Base64でデコードしたスクリプトは、赤矢印で示すように、C2サーバに接続し"posh.x"をダウンロード後、このファイルを"p.exe"として保存して実行します。ダウンロードされたファイル内のデータは、XOR演算(暗号鍵:0x37)で難読化されており、デコードすると.NET Frameworkで作成された実行ファイルとなります。

図10 s2.txtに含まれるPowerShellスクリプト

図10 s2.txtに含まれるPowerShellスクリプト

図11は、.NET Frameworkで作成された実行ファイルをdnSpy*7 でデコンパイルした内容の一部抜粋です。赤枠線で囲うデータは、Base64でエンコードされたデータであり、デコードすると図4と同様にzlib とBase64で圧縮および難読化されたスクリプトとなります。このスクリプトは、デコードすると、図5で示すようなPoshC2の"Core Dropper"となります。

図11 dnSpyでデコンパイルしたコード(一部抜粋)

図11 dnSpyでデコンパイルしたコード(一部抜粋)

近年、サイバー攻撃にオープンソースツールが利用されるケースが散見されます。特に日本を標的とする攻撃では、PoshC2、 Empire*8 、Quasar*9 などのツールが悪用されており、今後も攻撃者によって使用される可能性が高いため、注意が必要です。また、攻撃者は、オープンソースツールを使用することで攻撃を容易にしたり、匿名化を図ったりしており、引き続き様々なオープンソースツールを悪用し、攻撃を仕掛けてくることが予想されます。このような状況の中で、当社は、日本を標的とする様々な攻撃を継続的に調査し、広く情報を提供していきたいと考えていますので、その情報をご活用いただければ幸いです。

IOC(Indicator Of Compromise)

ハッシュ値

2368070857c0cc0d5fab98687334af5c
8c1f50e52b6ff4abec1afb736eab3c68
dde6e10ab4f4a7dc399c19bd3dd7d1ab
3f15d229ab559e6180758f0e23fdf7cf

通信先※5

35.202.253[.]45
ec2-13-126-174-234.ap-south-1.compute.amazonaws[.]com

※5 2つの通信先は、2019年1月末ごろまではC2サーバとして悪用されていたことを確認しています。



記事訂正のお知らせ(2020年4月23日)

2019年2月13日に公開した記事の内容を訂正しました。

【誤】攻撃手口1では、DLLサイドローディングの手法を悪用します。
【正】攻撃手口1では、DLLハイジャックの手法を悪用します。

現在公開中の記事は訂正済みのものです。

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

はい いいえ