標的型攻撃に利用されたオープンソースの Post-Exploitation フレームワークを調べてみた
とても久しぶりにブログを書いてみます。
国内外でセキュリティベンダーが標的型攻撃に関する記事を公開していますが、その中で最近、オープンソースのツールを利用した攻撃を見かけるようになりました。
今回はそうした標的型攻撃に利用されたオープンソースの Post-Exploitation フレームワークについて調べたので、その内容をまとめます。
はじめに
今回紹介しているツールはオープンソースソフトウェアとして公開されており、容易に悪用するすることができます。 今回の記事は、あくまでこうしたツールを用いた攻撃への対策を検討する際の参考なればという思いから公開しているものであり、決して悪用を促すものではありません。
また、今回の調査は個人でセキュリティの記事やブログをソースとしてまとめたものです。記事の内容の正確性は保証できません。
Post-Exploitation ツールについて
Post-Exploitation とは、その名前の通り Exploit後、つまり、攻撃者の侵入後の活動のことを言います。 具体的には、ホストの構成・設定、ネットワークや通信チャネルの把握、横展開による活動拡大、機密情報の収集などを指します。
よく利用されるツールとしては Mimikatz などが有名です。 Mimikatz なども含め、Post-Exploitation によく利用されるツールや手法をまとめたフレームワークがオープンソースのツールとしていくつか公開されています。
また、Post-Exploitation に関する情報を体系的にまとめたナレッジベースとして MITRE が開発する ATT&CK があります。
ATT&CK については こちらの記事が大変参考になります。
ATT&CK では Adversary Group(Groups)、Software、Technique、Tactics の4つの要素を関連付けます。 要素の詳細については上のリンクを参照してください。
今回は ATT&CK の4つの要素のうちの Adversary Group(Groups) と Software に関する情報、また他の公開されているブログや記事を参考として、 Post-Exploitation フレームワークについての内容をまとめました。
標的型攻撃で利用された Post-Exploitation フレームワーク
Empire
Post-Exploitation フレームワークの定番と言えるOSSです。ただし、Empire は2019年8月に開発を終了したとアナウンスしました。
Development stops on PowerShell Empire framework after project reaches its goal | ZDNet
Github のページを見ても、すでにサポートされていない旨が表示されます。
PowerShell Empire framework は Python と Powershell で作成されており、複数のプラットフォームに対応しています。各種ロガーや Mimikatz などのモジュール、Powershell なしでの Powershell スクリプト実行、ネットワーク検知を回避するための通信の設定など、多くの機能を利用しやすい形で備えています。
多くの攻撃者グループに利用されており、日本でも PowerShell Empire を利用した標的型が観測されています。
サポート終了がアナウンスされた今、攻撃者グループが別のフレームワークを利用するのか、それとも Empire を利用し続けるのかは不明です。
PowerSploit
様々な用途に合わせた Powershell スクリプトのモジュールが用意されています。以下のカテゴリに分かれています。
- CodeExecution (コード実行)
- ScriptModification (スクリプト変更)
- Persistence (永続的な感染)
- AntivirusBypass (アンチウイルス回避)
- Exfiltration (データ漏洩)
- Mayhem (混乱)
- Privesc (権限昇格)
- Recon (偵察)
ほとんどのモジュールは単一のモジュールとして利用できるようになっています。そのため、一部のモジュールを利用して別の感染や行動へ移行することも多いようです。また、こちらも改変して利用される場合もあります。
JPCERTで報告されている例では Invoke-Shellcode.ps1 というモジュールを利用し、別のマルウェアを埋め込んで感染させる事例が紹介されています。
Koadic
Koadic の特徴はインプラントの大半が Windows Script Host (JScript/VBScript) で構成されていることです。JScript/VBScript により、対象ホストを制御するため、Windows 2000 以降のすべての Windows プラットフォームで動作します。 コマンドのやり取りはCOMインターフェースを介して行われます。
APT28 で利用されたほか、APT10(menupass) でも攻撃の中に組み込まれています。
PoshC2
Powewrshell で作成されたプロキシに対応したフレームワークです。C2サーバは Python、もしくは Powershell で動きます。 Windows 向けにはさまざまな Powershell モジュールが用意されており、また、Pythonで作成された Linux/Mac 向けのバックドアも存在します。
C2サーバとの通信にもさまざまなオプションを利用することで、通信の検知を回避できるような作りになっています。
FireEyeがAPT33の攻撃のレポートの中で言及しているほか、最近は日本を狙った標的型攻撃に利用されているというレポートもあります。 また、Secureworklsが報告している中東を標的とした攻撃キャンペーンでは、PoshC2 の Powershell モジュールの一部が利用されていました。
Pupy
Pupy は Python で作成されたクロスプラットフォームのフレームワークで、Windows、Linux の他、MacOS、Android にも一部対応しています。 メモリ上で展開したコードを実行するため、侵入の痕跡は最小限で済みます。
APT33 や Magic Hound と呼ばれるイランの攻撃者グループによって利用されていたようです。
QuasarRAT
QuasarRAT はドイツの開発者である MaxXor 氏が開発した xRAT の後継です。 C# で実装されたオープンソースのRAT(remote access tool)であり、.NET を利用しているので、インストール先のクライアントに .NET Framework 4.0 が必要になります。
書いてはみたけど、こちらは Post-Exploitation フレームワークとは少し違うのかなと、後で思いました。 ただ、他のオープンソースのツールを一緒に標的型攻撃に利用されることがあるので、一応載せています。
標的型攻撃で様々なバージョンの QuasarRAT が用いられていることが確認されています。中にはソースコードを改変し、難読化や検知回避が試みられていることもあります。 また、標的型攻撃以外でも、最近はばらまき型のスパムメールを使ってQuasarRAT をベースに作成されたと思われるマルウェア配信している事例も見かけます。
またスペルミス… #QuasarRat でした。
— bom (@bomccss) September 20, 2019
QuasarRatは.NET FrameworkベースのオープンソースRATのようです。
日本では標的型で利用されたという報告もありますが、オープンソースであり当然ばらまきでも使われてしまいます。https://t.co/oEfIHbKCU6https://t.co/VSwf4som1H
SILENTTRINITY
Python 3、IronPython と .NET で作成されています。.NET 互換言語で記述されたペイロードをロードできるため、柔軟に機能を追加することができます。 例えば、IronPython を利用して、Python を使って自由度の高いインプラントを作成できます。 現在は C2サーバとの通信には HTTP 1.1 のみがサポートされています。
最近、クロアチアの政府機関に対する標的型攻撃へ利用されたことが報じられています。
- Croatia government agencies targeted with news SilentTrinity malwareSecurity Affairs
- Croatian government targeted by mysterious hackers | ZDNet
その他 Post-Exploitation フレームワーク
紹介したフレームワーク以外にも標的型攻撃などでよく利用されるものとして、商用のペネトレーションテスト用のフレームワークである Cobalt Strike があります。 いろいろな場所で耳にするフレームワークなのですが、商用のため、私自身はあまり詳しくありません。
- APT攻撃者グループ menuPass(APT10) による新たな攻撃を確認 | セキュリティ対策のラック
- Operation Cobalt Kitty: A large-scale APT in Asia carried out by the OceanLotus Group
- https://www.fireeye.com/blog/threat-research/2017/06/phished-at-the-request-of-counsel.html
また、他のオープンソースの Post-Exploitation フレームワークとして、以下のようなものもあります。
- APfell
- Faction C2
- Merlin
- Silver
- TrevorC2
攻撃者によって利用されたという報告はありませんが、これらのフレームワークに関しても、今後誰にどのように利用されるかはわかりません。 上記以外にも、新しい Post-Exploitation のツールやフレームワークが登場しており、EmpireProject のサポート終了など、オープンソースツールの状況も変化しています。
今後もこうした Post-Exploitation フレームワークを利用した攻撃には注意を払う必要がありそうです。
結論
標的型攻撃に利用されたオープンソースの Post-Exploitation フレームワークについて調査しました。
攻撃者がこのようなオープンソースのフレームワークを利用するメリットとして、
といった点が考えられます。
こうしたツールの多くはそもそもセキュリティを高めるためのペネトレーションテスト用に開発されました。
いくつかのツールを触ってみるとわかるのですが、単純に攻撃にしやすさ、使いやすさだけでなく、守る側の視点が考慮されており、設定やオプションを駆使されると、検知や防御がやりにくいものが多いです。
単純な通信の検知だけでなく、よく言われる多層防御の必要性がよくわかります。 SOC や Blue Team の人間であれば、攻撃者がどのように侵入し、活動するのかを理解するためにも、一度こうしたツールを触ってみることをお勧めします。
今回はまとめただけですが、今後はツールの検証などをやって守る側の視点として、どのような対策を講じることができるかを検討してみたいとは考えています。
今後ブログでその内容を公開するかについては未定です。そういうことをやりすぎると、今の日本だといつどこかの警察が尋ねてくるとも限らないので……。
参考
http://pentestit.com/list-of-open-source-c2-post-exploitation-frameworks/
EncodedCommandによるPowerShell攻撃を暴く - Palo Alto Networks