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.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OSCPでのActive Directory攻略
OSCP勉強会 #2での講演スライドです。
https://off-sec-lab.connpass.com/event/276425/
Fire
March 24, 2023
More Decks by Fire
See All by Fire
オフェンシブセキュリティと隠蔽実行技術
firefire2
0
170
ゼロトラストペネトレにおける情報持ち出し戦術最前線
firefire2
0
150
Azure Cloud ペンテスト入門(仮)
firefire2
0
1.1k
サイバーセキュリティの話 Ver.20210904
firefire2
1
590
Other Decks in Technology
See All in Technology
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.1k
JavaScript 研修 (2026)
recruitengineers
PRO
1
460
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
300
モダンフロントエンド 開発研修
recruitengineers
PRO
3
560
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
440
Goでデータパイプラインを作ろう
sansantech
PRO
0
360
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
140
MIRU 2026 チュートリアル
keisuke198619
0
870
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
670
Featured
See All Featured
HDC tutorial
michielstock
2
790
The Limits of Empathy - UXLibs8
cassininazir
1
600
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
Mind Mapping
helmedeiros
PRO
1
300
Are puppies a ranking factor?
jonoalderson
1
3.8k
How STYLIGHT went responsive
nonsquared
100
6.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Chasing Engaging Ingredients in Design
codingconduct
0
260
Facilitating Awesome Meetings
lara
57
7.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
890
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
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