今更ですが当時参加したことを思い出しながら投稿します
AutomatedLabで内部ペンテストラボを自動構築して学ぶ:やられ社内ネットワークのすすめ
内部ペネトレーションテストを学ぶには、自分の手で攻撃→検証→再構築できる環境が不可欠です。
本記事では、小松奈央(@n_etupirka)さんがPentestSecJPで登壇された内容を元に、
Microsoft公式のラボ構築ツール「AutomatedLab」を使って、やられ社内ネットワークを自動構築する方法と活用法をご紹介します。
🔧 なぜ「やられ環境」が必要なのか?
- ペンテストツールの挙動を安全に検証できる
- 実際の環境で発見された脆弱性を再現→対策検討できる
- 構築・作り込み・検証を通じて深い理解が得られる
💡 AutomatedLabとは?
Microsoftが提供する、PowerShellベースの自動ラボ構築モジュール
- Hyper-V または Azure 環境上に、AD・MSSQL・CA など含む構成をスクリプトで構築可能
- GitHub: https://github.com/AutomatedLab/AutomatedLab
- 対応OS: Windows Server 2008 R2〜2022、Windows 10/11、Linux(一部)
✅ 特徴
- 何度でも再構築可能:壊してもスクリプトから復元できる
- スクリプト共有が簡単:セキュリティ研修などに最適
- VMwareライセンスの壁を回避:Hyper-Vベースでライセンス不要
🚀 セットアップ手順(超ざっくり)
Install-PackageProvider -Name Nuget -Force
Install-Module -Name AutomatedLab -AllowClobber
Install-Module -Name Pester -Force
New-LabSourcesFolder -DriveLetter D
- 必要な ISO(Windows Server, MSSQLなど)を
/LabSources/ISOs
に配置 - OSは基本的に en-US 推奨
- Windows 11 HomeではHyper-V不可(Pro以上が必要)
🧪 最小構成の例(AD + クライアント)
New-LabDefinition -Name GettingStarted -DefaultVirtualizationEngine HyperV
Add-LabMachineDefinition -Name DC -Roles RootDC -DomainName contoso.com `
-OperatingSystem "Windows Server 2022 Standard Evaluation (Desktop Experience)"
Add-LabMachineDefinition -Name Client -DomainName contoso.com `
-OperatingSystem "Windows 11 Pro"
Install-Lab
Show-LabDeploymentSummary -Detailed
🛠 PostInstallationActivity で環境を自動構成
AutomatedLabでは、VM構築後に任意のPowerShellを実行できる「PostInstallationActivity」が超便利!
例:ドメインユーザー追加
$Users = Import-Csv -Path "$ScriptsFolder\Users.csv" -Encoding UTF8
foreach ($User in $Users) {
$Password = $User.Password | ConvertTo-SecureString -AsPlainText -Force
New-ADUser -Name $User.Username -AccountPassword $Password `
-PasswordNeverExpires $true -Enabled $true
}
- グループポリシーの適用もスクリプト化可能
- スクリプト+依存ファイルをまとめてGitで管理すれば再現性バッチリ!
🧨 脆弱性の作り込み例(PentestingLab)
GitHub公開中:
👉 https://github.com/n-etupirka/PentestingLab
1. Kerberoast
- SPN付きサービスアカウントを1行で追加可能
setspn.exe -S "HTTP/IIS.contoso.com" "contoso\iis_admin"
- STを取得し、オフラインでパスワード解析(Kerberosチケットの悪用)
2. Steal NetNTLM from MSSQL
- MSSQL の
xp_dirtree
による共有フォルダアクセスを利用し、NetNTLMv2ハッシュを窃取 - 条件を満たす設定も自動構築可
3. ADCS Attack - ESC1
- 脆弱な証明書テンプレート(事前に作成しておく)をPostInstallationActivityで適用
- 証明書発行後に Pass-the-Ticketでドメイン管理者になりすまし
📌 まとめ
ポイント | 内容 |
---|---|
自動構築 | スクリプトだけでAD+MSSQL+CAなど構築可能 |
再現性 | スナップショットや再ビルドで実験し放題 |
学習効果 | 作り込みスクリプト自体が最高の教材になる |
共有性 | GitHub管理でチーム学習にも◎ |
✍️ あとがき
「やられ環境」=学びの宝庫。
現実の世界では一歩間違えると犯罪になるのでなかなか踏み出せない世界ですが、やられ環境はペンテスターとしての一歩を踏み出すきっかけにできそうです!