DanderSpritz ラボ
目的
DanderSpritz ラボの目的は、研究者や防御者が、完全に機能するバージョンの DanderSpritz(Equation Group のポストエクスプロイテーションツールセット)と、ターゲットとしての Windows Server 2008 ドメインおよびクライアントを迅速に立ち上げられるようにすることです。Windows ターゲットには、DanderSpritz とその機能を調査する際に有用だと私が判断したリバースエンジニアリングツールがいくつか含まれています。
DanderSpritz ラボについて詳しくはこちらをご覧ください: https://medium.com/@francisck/introducing-danderspritz-lab-461912313d7c
DanderSpritz の機能とツールを文書化した私のウェブサイト: https://danderspritz.com
注: このラボは一切強化されておらず(意図的に脆弱です)、デフォルトの vagrant 認証情報で実行されます。重要なネットワークに接続したりブリッジしたりしないでください。
要件
- 20GB 以上の空きディスク容量
- 8GB 以上の RAM
- 20GB の帯域幅使用量(ISO、アップデート、サービスパックなどのダウンロード用)
- Packer v1.2.3 以降
- Vagrant v2.1.1 以降
- Vagrant-Reload プラグイン
- Virtualbox(VMWare Fusion/Workstation は 後日 対応予定)
DanderSpritz ラボの起動
DanderSpritz は Packer、Vagrant、および Vagrant-reload プラグインを使用して、ラボを ゼロから インストールおよび構成します。Packer は Microsoft から直接 Windows ISO をダウンロードし、研究中使用するためにソフトウェアの試用版をインストールします。
- このリポジトリを自分のマシンにクローンします
git clone [email protected]:francisck/DanderSpritz_lab.git
- Vagrant-reload プラグインがインストールされていることを確認します
vagrant plugin install vagrant-reload
- ISO をダウンロードし、Vagrant ボックスのビルドを実行するには、以下のコマンドを実行します:
packer build danderspritz_lab.json
- Vagrant ボックスがビルドされたら、VM を起動し、追加の構成を続行させます:
vagrant up
FuzzBunch プロジェクトの作成
- Windows コマンドプロンプト (cmd) を起動し、以下を実行します:
D:\
python fb.py
- デフォルトの ターゲット アドレスを 192.168.40.3 に設定します
- デフォルトの コールバック アドレスを 192.168.40.4 に設定します
- (最初は)リダイレクトを 使用しない
- デフォルトのログディレクトリのままにする
- 新しいプロジェクトを作成する(オプション 0)
- 新しいプロジェクトに名前を付ける
- デフォルトのログディレクトリのままにする

ターゲットマシンのエクスプロイト
- EternalBlue を使用してマシンをエクスプロイトするには、次のコマンドを実行します
use eternalblue
- 配信メカニズム 以外 のすべてのデフォルトオプションを選択します。配信メカニズムには "FB"(従来の展開)を使用します
- eternalblue が成功したら、danderspritz と peddlecheap を構成します
DanderSpritz の構成と起動
- 別の Windows コマンドプロンプト (cmd) を起動し、以下を実行します:
D:\
python configure_lp
- Java がファイアウォールを通過することを許可する
- 「ログディレクトリ」の横にある
browse を選択し、作成した FuzzBunch プロジェクトの名前を選択します
- 「go」をクリックします

PeddleCheap の準備(インプラントの構成)
- DanderSpritz コンソールで、次のコマンドを実行します:
pc_prep
- 標準の x64-winnt レベル 3 sharedlib ペイロードを選択します
5
- 詳細設定を 選択しない
- 即時コールバックを実行することを選択する
- デフォルトの PC ID (0) を使用する
- 「リッスンしますか?」に対して 「はい」 を選択する
- リッスンポートを 変更しない
- デフォルトの「コールバック」アドレス (127.0.0.1) のままにする
- exe 名を変更しない
- デフォルトの鍵(オプション 2)を使用する
- PeddleCheap 構成が有効であることを確認する
- FC(felonycrowbar)で構成 しない
- 構成されたバイナリの場所をコピーする:

DoublePulsar バックドア経由でインプラント (peddlecheap) を配信する:
- 元の Fuzzbunch ウィンドウで次のように入力します:
use doublepulsar
- 変数設定の入力を求められるかどうかを尋ねられたら「はい」を選択します
- ターゲットアーキテクチャ 以外 のすべてのデフォルト変数設定を選択します(オプション 1 を選択)
1) x64 x64 64-bits
- 「RunDLL」関数(オプション 2)を選択します
2) RunDLL Use an APC to inject a DLL into a user mode process.
- 他のすべてのオプションはデフォルトのままにし、プラグインを実行するかどうかを尋ねられたら「はい」を選択します
- 「Doublepulsar succeeded」と表示されるはずです

DanderSpritz で PeddleCheap インプラントに接続する
- DanderSpritz で画面上部の「PeddleCheap」を選択します
- 鍵ドロップダウンメニューから「default」鍵を選択します
- ターゲットマシンのアドレス (192.168.40.3) を入力します
- 「Connect to target」を選択します
- 自分の Fuzzbunch プロジェクト名を選択します
- DanderSpritz Survey が完了するのを待ちます(かなり時間がかかります)。その間にいくつかの質問に答える必要があります。
- 成功!
善用し、悪用しないでください!
このプロジェクトの目的は、セキュリティ研究者 がリバースエンジニアリングとテストのために完全に機能する DanderSpritz ラボを簡単に構築および構成できるようにすることです。
- このラボ外のターゲットに対して実行しないでください。
- 「レッドチーム演習」に使用しないでください。
- 研究結果をコミュニティに貢献してください。
- 質問があれば 私 に連絡してください :)
日常的な使用方法
Packer を一度実行すると、再度実行する必要はありません。Vagrant ボックスは、ラボの再構築、破棄、再起動に利用できます。
以下は、ラボでの作業中に使用できる便利なコマンドです:
基本的な Vagrant の使用法
- すべての DanderSprotz ラボホストを起動:
vagrant up
- 特定のホストを起動:
vagrant up <hostname>
- 特定のホストを再起動:
vagrant reload <hostname>
- 特定のホストを再起動し、プロビジョニングプロセスを再実行:
vagrant reload <hostname> --provision
- 特定のホストを破棄:
vagrant destroy <hostname>
- Danderspritz ラボ環境全体を破棄:
vagrant destroy
- マシンのスナップショットを作成:
vagrant snapshot save <hostname> <snapshot_name>
- マシンのスナップショットを復元:
vagrant snapshot restore <hostname> <snapshot_name>
- 各ホストのステータスを確認:
vagrant status
- ラボ環境をサスペンド:
vagrant suspend
- ラボ環境をレジューム:
vagrant resume
期限切れの Windows ホストの再アクティブ化
テストライセンスの有効期限が切れた場合は、管理者コマンドプロンプトで次のコマンドを実行することで、ホストを最大 3 回(90 日間の Windows ライセンス延長)再アクティブ化できます。
マシンを再起動する必要があります。
ラボ情報
ラボ図

追加ラボ情報
- ドメイン名: windomain.local
- 管理者ログイン(全マシン): vagrant:vagrant
- DC(ドメインコントローラー): 192.168.40.2/24
- ターゲット: 192.168.40.3/24
- DanderSpritz: 192.168.40.4/24
ラボホスト
- DC - Windows 2008 R2 ドメインコントローラー
- Windomain.local の Windows ドメインコントローラー
- WEF サーバー構成 GPO
- PowerShell ログ記録 GPO
- 強化された Windows 監査ポリシー GPO
- ターゲット - Windows 7 ワークステーション
- ターゲットワークステーション / マシンをシミュレート
- Windomain.local Windows AD ドメインに参加
- いくつかのリバース / 可視化ツールがプリインストール
- さらにツールをインストールするために Chocolatey(FireEye Flare REPO 付き)が利用可能
- DanderSpritz ボックス - Windows 10
- DanderSprirtz と Fuzzbunch がプリインストール
ターゲットにインストールされたツール(Windows 7 SP1)
- Sysmon
- Sysinternals ツール(Procmon、TCPview など)
- API Monitor
- InfoPe
- HxD
- PEView
- Windbg
- WireShark
- Binary Ninja
- HashCalc
- IDA 7 Free
- Ollydbg
- 強化された監査 GPO
- PowerShell ログ記録 GPO
- ドメインコントローラーに転送される Windows イベント(WEC)
クレジット / リソース
このコードのかなりの部分は、Chris Long の DetectionLab プロジェクト、および Stefan Scherer の packer-windows と adfs2 の GitHub リポジトリから借用および適応されたものです。このようなプロジェクトを容易に(あるいは可能に)してくれたコードを提供してくださったすべての方々に 心から 感謝します。
謝辞