Commando VMとは
「Commando VM(Complete Mandiant Offensive VM)」とは、ペネトレーション・テストやレッドチームの担当者をサポートすることに焦点を当てたWindows OSディストリビューションです。
サイバーセキュリティ企業のFireEye(ファイア・アイ)が立ち上げたプロジェクトです。
ペネトレーションテストに特化したディストリビューションとして、Kali LinuxやParrot Security Linuxが人気です。これらは、いずれもLinux OSをベースとしたディストリビューションです。
これに対して、Command VMは、Windows OSをベースとしたディストリビューションです。
このため、Windows OSおよびActive Directoryをネイティブサポートし、ファイル共有をより簡単に(かつインタラクティブに)実現。標的クライアントの資産上にアウトプットファイルを残すことなく、ツールを使用することができるといった特徴があげられます。
FireEye社の日本語ブログでは、「Commando VM」の概要に関する記事が公開されています。技術詳細を含むブログ全文は英語サイトにて公開されています。
本稿では、Commando VMのインストール手順について紹介します。
Commando VM システム要件
- Windows 7 Service Pack 1 または Windows 10
- 60 GBのハードドライブ
- 2 GB RAM
推奨
- Windows 10
- 80 GB以上のハードドライブ
- 4 GB以上のRAM
- 2つのネットワークアダプター
- VMの仮想化サポートを有効にする(Kali または Dockerの利用に必要)
Commando VMは、仮想マシンで使用することが推奨されています。これにより、展開が容易になり、各エンゲージメントの前にクリーンな状態に戻すことができます。
仮想化サポートの有効化
Commando VMでは、「Windows Subsystem for Linux(WSL)」に「Kali Linux」をインストールします。また、「Docker for Windows」をインストールします。
これらソフトウェアは、仮想環境で動作します。このため、仮想マシン(VMware Fusion仮想マシン)上でさらにネストし仮想環境を動かすこと(Nested Virtualization)になります。
Nested Virtualizationのためには、仮想マシンの設定を変更し、「Intel VT-x」という仮想化ハードウェア拡張を有効にする必要があります。その設定方法は次のとおりです。
- VMware Fusion 「プロセッサ オプションの詳細設定」
- [ウィンドウ] > [仮想マシンのライブラリ] を選択します。
- [仮想マシンのライブラリ] ウィンドウで仮想マシンを選択し、[設定] をクリックします。
- [設定] ウィンドウの [システム設定] で、[プロセッサとメモリ] をクリックします。
- クリックして [詳細オプション] を展開し、[この仮想マシンでハイパーバイザー アプリケーションを有効にする]チェックボックスをチェックします。
インストール手順
-
VMware上に、新規 Windows 10 November 2019 Update の仮想マシンを作成して構成します。
Commando VMのインストール前に「Windows 10 のディスク クリーンアップ」を実施しておくことをオススメします。 -
VMware Tools
をインストールします。この時点で、仮想マシンのスナップショットを取得しておくことをオススメします。 -
あらためて、ディスクに十分な空き容量があることを確認します。容量不足の場合には、仮想ディスクの拡張を検討します。
- SOFTANTENNA BLOG 「【Tips】Windows 10の仮想ディスクを拡張する方法」
- SOFTANTENNA BLOG 「【Tips】Windows 10の回復パーティションを削除する方法」
-
次のURLに移動し、圧縮された
Commando VM
リポジトリをcommando-vm-master.zip
ファイルとして仮想マシン上にダウンロードします。
https://github.com/fireeye/commando-vm
-
以下の手順に従って、Commando VMのインストールを完了します。
-
Commando VM
リポジトリ(commando-vm-master.zip
)をディレクトリ(ここでは、c:¥
)に展開します。 -
管理者特権で
PowerShell
の新しいセッションを開始します。Commando VMは追加のソフトウェアをインストールし、システム設定を変更しようとします。したがって、インストールには昇格された特権が必要です。
-
PowerShell内で、Commando VMリポジトリを展開した場所にディレクトリ(ここでは、
c:¥commando-vm-master
)を変更します。 -
次のコマンドを実行し、PowerShellのプロンプトが表示されたら「Y」と応答して、PowerShellの実行ポリシーを無制限に変更します。
Set-ExecutionPolicy unrestricted
-
最後に、次のようにインストーラースクリプトを実行します。
-
インストールを進行させるため、次の設問に
N
を選択します。[-] Do you need to change this setting? Y/N N
[-] Do you need to take a snapshot before continuing? Y/N N
-
残りのインストールプロセスは完全に自動化されています。ソフトウェアのインストール要件が多数あるため、仮想マシンは複数回再起動します。インストールが完了すると、PowerShellプロンプトは開いたままになり、終了する前にキーを押すまで待機します。
-
一連のスクリプトは「Boxstarter」、「Chocolatey(チョコレティ)」パッケージマネージャー、および「MyGet」を使用して環境をセットアップし、Commando VM環境のダウンロードとインストールを行います。
拡張されたコンテキストメニュー
Commando VMインストール後、コンテキストメニュー
(右クリックメニュー)は、次のとおり拡張されています。
最新の状態に保つ
次のコマンドを入力して、すべてのパッケージを最新バージョンに更新します。
cup all
新しいパッケージをインストールする
Commando VMはChocolatey Windowsパッケージマネージャーを使用します。新しいパッケージを簡単にインストールできます。たとえば、システムにGithubデスクトップを展開するには、管理者として次のコマンドを入力します。
cinst github
インストール済みツール
Active Directory Tools
- Remote Server Administration Tools (RSAT): @IT「Windows 10にリモートサーバー管理ツール(RSAT)をインストールしてWindows Serverを管理する」
- SQL Server Command Line Utilities: Microsoft「sqlcmd ユーティリティ」
- Windows Sysinternals: @IT「Windows 10とWindows Sysinternalsのいま」
Command & Control
- Covenant: .NETベースのC2フレームワーク。直感的でリッチなWebベースのUIが提供されている。
- PoshC2: PowerShellベースのC2フレームワーク。LAC「オープンソースのツール「PoshC2」を悪用した新たな標的型攻撃を確認」
- WMImplant: PowerShellベースのWMIによるC2フレームワーク。FireEye「WMImplant – A WMI Based Agentless Post-Exploitation RAT Developed in PowerShell」
- WMIOps: ネットワーク全体でWMIを使用し、さまざまなアクションを実行できるようにするPowerShellスクリプト。CHRISTOPHER TRUNCER'S WEBSITE「Introducing WMIOps」|
Developer Tools
- Dep
- Git
- Go
- Java
- Python 2
- Python 3 (default)
- Ruby
- Ruby Devkit
- Visual Studio 2017 Build Tools (Windows 10)
- Visual Studio Code
Docker
- OWASP Amass: パブリックデータからの情報収集と偵察技術を使用して、DNS列挙、資産の発見を可能にするツール。GitHub「OWASP Amass - Users' Guide」
- SpiderFoot: パブリックデータを自動的に巡回し、IPアドレス、ドメイン名、電子メールアドレス、名前などに関するインテリジェンスを収集する偵察ツール。SpiderFoot「SpiderFoot Documentation」
Evasion
- CheckPlease
- Demiguise
- DefenderCheck
- DotNetToJScript
- Invoke-CradleCrafter
- Invoke-DOSfuscation
- Invoke-Obfuscation
- Invoke-Phant0m
- Not PowerShell (nps)
- PS>Attack
- PSAmsi
- Pafishmacro
- PowerLessShell
- PowerShdll
- StarFighters
Exploitation
- ADAPE-Script
- API Monitor
- CrackMapExec
- CrackMapExecWin
- DAMP
- EvilClippy
- Exchange-AD-Privesc
- FuzzySec's PowerShell-Suite
- FuzzySec's Sharp-Suite
- Generate-Macro
- GhostPack
- Rubeus
- SafetyKatz
- Seatbelt
- SharpDPAPI
- SharpDump
- SharpRoast
- SharpUp
- SharpWMI
- GoFetch
- Impacket
- Invoke-ACLPwn
- Invoke-DCOM
- Invoke-PSImage
- Invoke-PowerThIEf
- Kali Binaries for Windows
- LuckyStrike
- MetaTwin
- Metasploit
- Mr. Unikod3r's RedTeamPowershellScripts
- NetshHelperBeacon
- Nishang
- Orca
- PSReflect
- PowerLurk
- PowerPriv
- PowerSploit
- PowerUpSQL
- PrivExchange
- RottenPotatoNG
- Ruler
- SharpClipHistory
- SharpExchangePriv
- SpoolSample
- SharpSploit
- UACME
- impacket-examples-windows
- vssown
- Vulcan
Information Gathering
- ADACLScanner
- ADExplorer
- ADOffline
- ADRecon
- BloodHound
- dnsrecon
- FOCA
- Get-ReconInfo
- GoBuster
- GoWitness
- NetRipper
- Nmap
- PowerView
- Dev branch included
- SharpHound
- SharpView
- SpoolerScanner
- Watson
Kali Linux
- kali-linux-default
- kali-linux-xfce
- VcXsrv
Networking Tools
- Citrix Receiver
- OpenVPN
- Proxycap
- PuTTY
- Telnet
- VMWare Horizon Client
- VMWare vSphere Client
- VNC-Viewer
- WinSCP
- Windump
- Wireshark
Password Attacks
- ASREPRoast
- CredNinja
- DomainPasswordSpray
- DSInternals
- Get-LAPSPasswords
- Hashcat
- Internal-Monologue
- Inveigh
- Invoke-TheHash
- KeeFarce
- KeeThief
- LAPSToolkit
- MailSniper
- Mimikatz
- Mimikittenz
- RiskySPN
- SessionGopher
Reverse Engineering
- DNSpy
- Flare-Floss
- ILSpy
- PEview
- Windbg
- x64dbg
Utilities
- 7zip
- Adobe Reader
- AutoIT
- Cmder
- CyberChef
- Explorer Suite
- Gimp
- Greenshot
- Hashcheck
- Hexchat
- HxD
- Keepass
- MobaXterm
- Mozilla Thunderbird
- Neo4j Community Edition
- Notepad++
- Pidgin
- Process Hacker 2
- SQLite DB Browser
- Screentogif
- Shellcode Launcher
- Sublime Text 3
- TortoiseSVN
- VLC Media Player
- Winrar
- yEd Graph Tool
Vulnerability Analysis
- AD Control Paths
- Egress-Assess
- Grouper2
- NtdsAudit
- PwndPasswordsNTLM
- zBang
Web Applications
- Burp Suite
- Fiddler
- Firefox
- OWASP Zap
- Subdomain-Bruteforce
- Wfuzz
Wordlists
- FuzzDB
- PayloadsAllTheThings
- SecLists
- Probable-Wordlists
- RobotsDisallowed
参考情報
Commando VM について
- FireEye 「Commando VM: 初の攻撃用Windowsディストリビューション」, https://www.fireeye.com/blog/jp-threat-research/2019/03/commando-vm-windows-offensive-distribution.html
- FireEye 「Commando VM 2.0:カスタマイズ機能の搭載、DockerとKaliのサポートを開始!」, https://www.fireeye.jp/blog/jp-threat-research/2019/08/commando-vm-customization-containers-kali.html
- FireEye 「Commando VM: The First of Its Kind Windows Offensive Distribution」, https://www.fireeye.com/blog/threat-research/2019/03/commando-vm-windows-offensive-distribution.html#par_entry
- GitHub 「fireeye / commando-vm」, https://github.com/fireeye/commando-vm
- Black Hat USA 2019 Arsenal 「Commando VM 2.0: Security Distribution for Penetration Testers and Red Teamers」, https://www.blackhat.com/us-19/arsenal/schedule/index.html#commando-vm--security-distribution-for-penetration-testers-and-red-teamers-16945
- Ethical hacking and penetration testing 「Commando VM: Windows for Hackers」, https://miloserdov.org/?p=3161
- SANS ISC InfoSec Forums 「Commando VM: The Complete Mandiant Offensive VM」, https://isc.sans.edu/forums/diary/Commando+VM+The+Complete+Mandiant+Offensive+VM/25136/
- 0xdf hacks stuff 「Commando VM: Installation」, https://0xdf.gitlab.io/2019/04/09/commando-vm-installation.html
- Insider Threat Security Blog 「Commando VM: Using the Testing Platform」, https://blog.stealthbits.com/commando-vm-using-the-testing-platform/
- 0xdf hacks stuff 「Commando VM: Looking Around」, https://0xdf.gitlab.io/2019/04/10/commando-vm-overview.html
- 0xdf hacks stuff 「Commando VM: Lessons Learned」, https://0xdf.gitlab.io/2019/04/15/commando-vm-lessons.html
FLARE VM について
- FireEye 「FLARE VM: The Windows Malware Analysis Distribution You’ve Always Needed!」, https://www.fireeye.com/blog/threat-research/2017/07/flare-vm-the-windows-malware.html
- GitHub 「fireeye / flare-vm」, https://github.com/fireeye/flare-vm
- setodaNote 「FLARE VM を使って Windows10 に解析環境を構築する」, https://soji256.hatenablog.jp/entry/2019/10/14/224121
Chocolatey について
- Qiita 「chocolatey 基本情報まとめ」, https://qiita.com/NaoyaOura/items/1081884068fe3ea79570
- @IT 「知っトクWindowsツール: コマンドでWindowsアプリを楽々管理「Chocolatey」」, https://www.atmarkit.co.jp/ait/articles/1806/22/news026.html
Boxstarter について
- Qiita 「Boxstarter で快適なセットアップを」, https://qiita.com/mihochannel/items/b7d2bfd8ecc5abaf84a5
- 株式会社FIXER 「PCセットアップを自動化しよう!Boxstarter」, https://tech-blog.cloud-config.jp/2019-12-20-pcsetup-automation-boxstarter/