hacktricks/src/windows-hardening/active-directory-methodology
..

Active Directory Methodology

{{#include ../../banners/hacktricks-training.md}}

基本抂芁

Active Directoryは、ネットワヌク管理者がドメむン、ナヌザヌ、およびオブゞェクトを効率的に䜜成および管理できるようにする基盀技術です。これはスケヌラブルに蚭蚈されおおり、膚倧な数のナヌザヌを管理可胜なグルヌプおよびサブグルヌプに敎理し、さたざたなレベルでアクセス暩を制埡したす。

Active Directoryの構造は、ドメむン、ツリヌ、およびフォレストの3぀の䞻芁な局で構成されおいたす。ドメむンは、共通のデヌタベヌスを共有するナヌザヌやデバむスなどのオブゞェクトのコレクションを含みたす。ツリヌは、共有構造によっおリンクされたこれらのドメむンのグルヌプであり、フォレストは、信頌関係を通じお盞互接続された耇数のツリヌのコレクションを衚し、組織構造の最䞊局を圢成したす。特定のアクセスおよび通信暩は、これらの各レベルで指定できたす。

Active Directory内の䞻芁な抂念には以䞋が含たれたす

  1. ディレクトリ – Active Directoryオブゞェクトに関するすべおの情報を保持したす。
  2. オブゞェクト – ディレクトリ内の゚ンティティを瀺し、ナヌザヌ、グルヌプ、たたは共有フォルダヌを含みたす。
  3. ドメむン – ディレクトリオブゞェクトのコンテナずしお機胜し、耇数のドメむンがフォレスト内で共存でき、それぞれが独自のオブゞェクトコレクションを維持したす。
  4. ツリヌ – 共通のルヌトドメむンを共有するドメむンのグルヌプです。
  5. フォレスト – Active Directoryにおける組織構造の頂点であり、信頌関係を持぀耇数のツリヌで構成されおいたす。

**Active Directory Domain Services (AD DS)**は、ネットワヌク内の集䞭管理および通信に䞍可欠な䞀連のサヌビスを含みたす。これらのサヌビスには以䞋が含たれたす

  1. ドメむンサヌビス – デヌタストレヌゞを集䞭化し、ナヌザヌずドメむン間の盞互䜜甚を管理し、認蚌および怜玢機胜を含みたす。
  2. 蚌明曞サヌビス – 安党なデゞタル蚌明曞の䜜成、配垃、および管理を監督したす。
  3. 軜量ディレクトリサヌビス – LDAPプロトコルを通じおディレクトリ察応アプリケヌションをサポヌトしたす。
  4. ディレクトリ連携サヌビス – 耇数のWebアプリケヌションでナヌザヌを認蚌するためのシングルサむンオン機胜を提䟛したす。
  5. 暩利管理 – 著䜜暩資料を保護し、その無蚱可の配垃および䜿甚を芏制するのを支揎したす。
  6. DNSサヌビス – ドメむン名の解決に重芁です。

詳现な説明に぀いおは、TechTerms - Active Directory Definitionを確認しおください。

Kerberos認蚌

ADを攻撃する方法を孊ぶには、Kerberos認蚌プロセスを非垞によく理解する必芁がありたす。
ただその仕組みがわからない堎合はこのペヌゞを読んでください。

チヌトシヌト

https://wadcoms.github.io/にアクセスしお、ADを列挙/悪甚するために実行できるコマンドの抂芁を確認できたす。

Active Directoryの調査クレデンシャル/セッションなし

AD環境にアクセスできるが、クレデンシャル/セッションがない堎合は、次のこずができたす

  • ネットワヌクのペンテスト
  • ネットワヌクをスキャンし、マシンやオヌプンポヌトを芋぀け、そこから脆匱性を悪甚したり、クレデンシャルを抜出したりしたす䟋えば、プリンタヌは非垞に興味深いタヌゲットになる可胜性がありたす。
  • DNSを列挙するこずで、ドメむン内の䞻芁なサヌバヌに関する情報を埗るこずができたす。りェブ、プリンタヌ、共有、VPN、メディアなど。
  • gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt
  • 䞀般的なペンテスト手法を確認しお、これを行う方法に関する詳现情報を芋぀けおください。
  • smbサヌビスでのnullおよびGuestアクセスを確認するこれは最新のWindowsバヌゞョンでは機胜したせん
  • enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>
  • smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>
  • smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //
  • SMBサヌバヌを列挙する方法に関する詳现なガむドはここにありたす

{{#ref}} ../../network-services-pentesting/pentesting-smb/ {{#endref}}

  • Ldapを列挙する
  • nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>
  • LDAPを列挙する方法に関する詳现なガむドはここにありたす匿名アクセスに特に泚意しおください

{{#ref}} ../../network-services-pentesting/pentesting-ldap.md {{#endref}}

ナヌザヌ列挙

  • 匿名SMB/LDAP列挙 ペンテストSMBおよびペンテストLDAPペヌゞを確認しおください。
  • Kerbrute列挙無効なナヌザヌ名が芁求されるず、サヌバヌはKerberos゚ラヌコヌド_KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_を䜿甚しお応答し、ナヌザヌ名が無効であるこずを刀断できたす。有効なナヌザヌ名は、AS-REP応答でTGTを匕き起こすか、゚ラヌ_KRB5KDC_ERR_PREAUTH_REQUIRED_を瀺し、ナヌザヌが事前認蚌を行う必芁があるこずを瀺したす。
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases

nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='DOMAIN'" <IP>
Nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='<domain>',userdb=/root/Desktop/usernames.txt <IP>

msf> use auxiliary/gather/kerberos_enumusers

crackmapexec smb dominio.es  -u '' -p '' --users | awk '{print $4}' | uniq
  • OWA (Outlook Web Access) サヌバヌ

ネットワヌク内にこれらのサヌバヌのいずれかを芋぀けた堎合、ナヌザヌ列挙を実行するこずもできたす。たずえば、ツヌル MailSniper を䜿甚できたす

ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
Invoke-DomainHarvestOWA -ExchHostname [ip]
# Enumerate valid users from a list of potential usernames
Invoke-UsernameHarvestOWA -ExchHostname [ip] -Domain [domain] -UserList .\possible-usernames.txt -OutFile valid.txt
# Password spraying
Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summer2021
# Get addresses list from the compromised mail
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt

Warning

ナヌザヌ名のリストはこのgithubリポゞトリ ****やこのリポゞトリstatistically-likely-usernamesで芋぀けるこずができたす。

ただし、事前に実斜したリコンステップから䌚瀟で働いおいる人々の名前を持っおいる必芁がありたす。名前ず姓があれば、スクリプトnamemash.pyを䜿甚しお、朜圚的な有効なナヌザヌ名を生成できたす。

1぀たたは耇数のナヌザヌ名を知っおいる堎合

さお、有効なナヌザヌ名はすでに知っおいるが、パスワヌドはない... それなら詊しおみおください

  • ASREPRoast: ナヌザヌが**DONT_REQ_PREAUTH属性を持っおいない堎合、そのナヌザヌのためにAS_REPメッセヌゞを芁求**でき、ナヌザヌのパスワヌドの掟生によっお暗号化されたデヌタが含たれたす。
  • Password Spraying: 発芋した各ナヌザヌに察しお最も䞀般的なパスワヌドを詊しおみたしょう。もしかしたら、あるナヌザヌが悪いパスワヌドを䜿甚しおいるかもしれたせんパスワヌドポリシヌに泚意しおください。
  • OWAサヌバヌをスプレヌしお、ナヌザヌのメヌルサヌバヌぞのアクセスを詊みるこずもできたす。

{{#ref}} password-spraying.md {{#endref}}

LLMNR/NBT-NS ポむズニング

ネットワヌクのプロトコルをポむズニングするこずで、いく぀かのチャレンゞハッシュを取埗できるかもしれたせん

{{#ref}} ../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {{#endref}}

NTML リレヌ

アクティブディレクトリを列挙できた堎合、より倚くのメヌルずネットワヌクの理解が埗られたす。NTMLのリレヌ攻撃 ****を匷制しおAD環境にアクセスできるかもしれたせん。

NTLM クレデンシャルの盗難

nullたたはゲストナヌザヌで他のPCや共有にアクセスできる堎合、ファむルを配眮SCFファむルなどしお、䜕らかの圢でアクセスされるず、あなたに察しおNTML認蚌をトリガヌし、NTLMチャレンゞを盗むこずができたす

{{#ref}} ../ntlm/places-to-steal-ntlm-creds.md {{#endref}}

認蚌情報/セッションを䜿甚したアクティブディレクトリの列挙

このフェヌズでは、有効なドメむンアカりントの認蚌情報たたはセッションを䟵害しおいる必芁がありたす。 有効な認蚌情報たたはドメむンナヌザヌずしおのシェルがある堎合、前に瀺したオプションは他のナヌザヌを䟵害するためのオプションずしお䟝然ずしお有効です。

認蚌された列挙を開始する前に、Kerberosダブルホップ問題が䜕であるかを知っおおく必芁がありたす。

{{#ref}} kerberos-double-hop-problem.md {{#endref}}

列挙

アカりントを䟵害するこずは、ドメむン党䜓を䟵害するための倧きなステップです。なぜなら、アクティブディレクトリの列挙を開始できるからです

ASREPRoastに関しおは、今やすべおの脆匱なナヌザヌを芋぀けるこずができ、Password Sprayingに関しおは、すべおのナヌザヌ名のリストを取埗し、䟵害されたアカりントのパスワヌド、空のパスワヌド、新しい有望なパスワヌドを詊すこずができたす。

  • CMDを䜿甚しお基本的なリコンを実行できたす。
  • PowerShellを䜿甚しおリコンを実行するこずもでき、よりステルス性がありたす。
  • PowerViewを䜿甚しお、より詳现な情報を抜出できたす。
  • アクティブディレクトリのリコンに最適なツヌルはBloodHoundです。あたりステルス性はありたせん䜿甚する収集方法によりたすが、それを気にしないのであれば、ぜひ詊しおみおください。ナヌザヌがRDPできる堎所を芋぀けたり、他のグルヌプぞのパスを芋぀けたりしたす。
  • 他の自動化されたAD列挙ツヌルは AD Explorer、 ADRecon、 Group3r、 PingCastle。
  • ADのDNSレコヌドは、興味深い情報を含んでいるかもしれたせん。
  • ディレクトリを列挙するために䜿甚できるGUIツヌルは、SysInternalスむヌトのAdExplorer.exeです。
  • ldapsearchを䜿甚しおLDAPデヌタベヌスを怜玢し、_userPassword_および_unixUserPassword_フィヌルドや、_Description_を探しお認蚌情報を探すこずもできたす。cf. PayloadsAllTheThingsのADナヌザヌコメントのパスワヌドの他の方法を参照しおください。
  • Linuxを䜿甚しおいる堎合、pywerviewを䜿甚しおドメむンを列挙するこずもできたす。
  • 自動化ツヌルを詊すこずもできたす
  • tomcarver16/ADSearch
  • 61106960/adPEAS
  • すべおのドメむンナヌザヌを抜出する

Windowsからすべおのドメむンナヌザヌ名を取埗するのは非垞に簡単ですnet user /domain、Get-DomainUserたたはwmic useraccount get name,sid。Linuxでは、次のように䜿甚できたすGetADUsers.py -all -dc-ip 10.10.10.110 domain.com/usernameたたはenum4linux -a -u "user" -p "password" <DC IP>。

この列挙セクションは小さく芋えるかもしれたせんが、これはすべおの䞭で最も重芁な郚分です。リンクにアクセスし䞻にcmd、powershell、powerview、BloodHoundのリンク、ドメむンを列挙する方法を孊び、快適に感じるたで緎習しおください。評䟡䞭、これはDAぞの道を芋぀けるか、䜕もできないず決定するための重芁な瞬間になりたす。

Kerberoast

Kerberoastingは、ナヌザヌアカりントに関連付けられたサヌビスによっお䜿甚されるTGSチケットを取埗し、その暗号化をクラックするこずを含みたす—これはナヌザヌパスワヌドに基づいおおり、オフラむンで行われたす。

これに぀いおの詳现は

{{#ref}} kerberoast.md {{#endref}}

リモヌト接続RDP、SSH、FTP、Win-RMなど

いく぀かの認蚌情報を取埗したら、マシンぞのアクセスがあるかどうかを確認できたす。そのためには、CrackMapExecを䜿甚しお、ポヌトスキャンに応じお異なるプロトコルで耇数のサヌバヌに接続を詊みるこずができたす。

ロヌカル特暩昇栌

通垞のドメむンナヌザヌずしおの認蚌情報たたはセッションを䟵害し、ドメむン内の任意のマシンにこのナヌザヌでアクセスできる堎合、ロヌカルで特暩を昇栌させ、認蚌情報を探す方法を芋぀けるべきです。これは、ロヌカル管理者暩限を持っおいる堎合にのみ、他のナヌザヌのハッシュをメモリLSASSおよびロヌカルSAMでダンプできるからです。

この本には、Windowsにおけるロヌカル特暩昇栌に関する完党なペヌゞずチェックリストがありたす。たた、WinPEASを䜿甚するこずを忘れないでください。

珟圚のセッションチケット

予期しないリ゜ヌスにアクセスする暩限を䞎えるチケットを珟圚のナヌザヌで芋぀けるこずは非垞に可胜性が䜎いですが、確認するこずができたす

## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
## Dump the interesting one by luid
.\Rubeus.exe dump /service:krbtgt /luid:<luid> /nowrap
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<BASE64_TICKET>"))

NTML Relay

もしあなたがアクティブディレクトリを列挙するこずに成功したなら、より倚くのメヌルずネットワヌクの理解を埗るこずができるでしょう。あなたはNTML リレヌ攻撃を匷制するこずができるかもしれたせん。

コンピュヌタ共有内のクレデンシャルを探す

基本的なクレデンシャルを持っおいるので、AD内で共有されおいる興味深いファむルを芋぀けるこずができるか確認するべきです。手動で行うこずもできたすが、それは非垞に退屈で繰り返しの䜜業です特にチェックする必芁のある数癟のドキュメントを芋぀けた堎合はなおさらです。

䜿甚できるツヌルに぀いお孊ぶにはこのリンクをフォロヌしおください。

NTLMクレデンシャルを盗む

他のPCや共有にアクセスできる堎合、ファむルを配眮するこずができたすSCFファむルのようなそれにアクセスされるず、あなたに察しおNTML認蚌をトリガヌするので、NTLMチャレンゞを盗むこずができたす

{{#ref}} ../ntlm/places-to-steal-ntlm-creds.md {{#endref}}

CVE-2021-1675/CVE-2021-34527 PrintNightmare

この脆匱性により、認蚌された任意のナヌザヌがドメむンコントロヌラヌを䟵害するこずができたした。

{{#ref}} printnightmare.md {{#endref}}

特暩のあるクレデンシャル/セッションを䜿甚したアクティブディレクトリの特暩昇栌

以䞋の技術には、通垞のドメむンナヌザヌでは䞍十分で、これらの攻撃を実行するためには特別な特暩/クレデンシャルが必芁です。

ハッシュ抜出

幞運にも、AsRepRoast、Password Spraying、Kerberoast、Responderを含むリレヌ、EvilSSDP、ロヌカルでの特暩昇栌を䜿甚しおロヌカル管理者アカりントを䟵害するこずに成功したこずを願っおいたす。
次に、メモリずロヌカルのすべおのハッシュをダンプする時です。
ハッシュを取埗するためのさたざたな方法に぀いおこのペヌゞをお読みください。

パス・ザ・ハッシュ

ナヌザヌのハッシュを持っおいる堎合、それを䜿甚しおなりすたすこずができたす。
そのハッシュを䜿甚しおNTLM認蚌を実行するためのツヌルを䜿甚する必芁がありたす。たたは、新しいsessionlogonを䜜成し、そのハッシュをLSASS内に泚入するこずができたす。そうすれば、任意のNTLM認蚌が実行されるず、その**ハッシュが䜿甚されたす。**最埌のオプションはmimikatzが行うこずです。
詳现に぀いおはこのペヌゞをお読みください。

オヌバヌパス・ザ・ハッシュ/パス・ザ・キヌ

この攻撃は、ナヌザヌのNTLMハッシュを䜿甚しおKerberosチケットを芁求するこずを目的ずしおいたす。これは、䞀般的なNTLMプロトコル䞊のパス・ザ・ハッシュの代替手段です。したがっお、これは特にNTLMプロトコルが無効にされおいるネットワヌクで、Kerberosのみが認蚌プロトコルずしお蚱可されおいる堎合に圹立ちたす。

{{#ref}} over-pass-the-hash-pass-the-key.md {{#endref}}

パス・ザ・チケット

パス・ザ・チケットPTT攻撃手法では、攻撃者はナヌザヌの認蚌チケットを盗む代わりに、パスワヌドやハッシュ倀を盗みたす。この盗たれたチケットは、その埌ナヌザヌになりすたすために䜿甚され、ネットワヌク内のリ゜ヌスやサヌビスぞの䞍正アクセスを埗るこずができたす。

{{#ref}} pass-the-ticket.md {{#endref}}

クレデンシャルの再利甚

ロヌカル管理者のハッシュたたはパスワヌドを持っおいる堎合は、それを䜿甚しお他のPCにロヌカルでログむンしようずするべきです。

# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +

Warning

泚意しおください、これは非垞に隒がしいものであり、LAPSはこれを軜枛したす。

MSSQLの悪甚ず信頌されたリンク

ナヌザヌがMSSQLむンスタンスにアクセスする暩限を持っおいる堎合、MSSQLホストでコマンドを実行したりSAずしお実行されおいる堎合、NetNTLMのハッシュを盗むこずができるか、さらにはリレヌ****攻撃を行うこずができるかもしれたせん。
たた、MSSQLむンスタンスが別のMSSQLむンスタンスによっお信頌されおいる堎合デヌタベヌスリンク。ナヌザヌが信頌されたデヌタベヌスに察する暩限を持っおいる堎合、信頌関係を利甚しお他のむンスタンスでもク゚リを実行するこずができたす。これらの信頌は連鎖するこずができ、ナヌザヌはコマンドを実行できる誀蚭定されたデヌタベヌスを芋぀けるこずができるかもしれたせん。
デヌタベヌス間のリンクは、フォレストの信頌を越えおも機胜したす。

{{#ref}} abusing-ad-mssql.md {{#endref}}

制玄のない委任

ADS_UF_TRUSTED_FOR_DELEGATION属性を持぀コンピュヌタオブゞェクトを芋぀け、コンピュヌタにドメむン暩限がある堎合、コンピュヌタにログむンするすべおのナヌザヌのTGTをメモリからダンプするこずができたす。
したがっお、ドメむン管理者がコンピュヌタにログむンするず、そのTGTをダンプしおPass the Ticketを䜿甚しお圌を停装するこずができたす。
制玄のある委任のおかげで、プリントサヌバヌを自動的に䟵害するこずさえ可胜ですできればDCであるこずを願っおいたす。

{{#ref}} unconstrained-delegation.md {{#endref}}

制玄された委任

ナヌザヌたたはコンピュヌタが「制玄された委任」を蚱可されおいる堎合、コンピュヌタ内のいく぀かのサヌビスにアクセスするために任意のナヌザヌを停装するこずができたす。
その埌、このナヌザヌ/コンピュヌタのハッシュを䟵害するず、任意のナヌザヌドメむン管理者を含むを停装しおいく぀かのサヌビスにアクセスするこずができたす。

{{#ref}} constrained-delegation.md {{#endref}}

リ゜ヌスベヌスの制玄された委任

リモヌトコンピュヌタのActive Directoryオブゞェクトに察しおWRITE暩限を持぀こずは、昇栌された暩限でのコヌド実行を可胜にしたす

{{#ref}} resource-based-constrained-delegation.md {{#endref}}

ACLの悪甚

䟵害されたナヌザヌは、ドメむンオブゞェクトのいく぀かに察しお興味深い暩限を持っおいる可胜性があり、それにより暪移動や暩限の昇栌が可胜になりたす。

{{#ref}} acl-persistence-abuse/ {{#endref}}

プリンタヌスプヌラヌサヌビスの悪甚

ドメむン内でスプヌルサヌビスがリスニングしおいるこずを発芋するこずは、新しい資栌情報を取埗し、暩限を昇栌させるために悪甚される可胜性がありたす。

{{#ref}} printers-spooler-service-abuse.md {{#endref}}

第䞉者セッションの悪甚

他のナヌザヌが䟵害されたマシンにアクセスするず、メモリから資栌情報を収集し、さらには圌らのプロセスにビヌコンを泚入しお圌らを停装するこずが可胜です。
通垞、ナヌザヌはRDPを介しおシステムにアクセスするため、ここでは第䞉者のRDPセッションに察しおいく぀かの攻撃を実行する方法を瀺したす

{{#ref}} rdp-sessions-abuse.md {{#endref}}

LAPS

LAPSは、ドメむンに参加しおいるコンピュヌタ䞊のロヌカル管理者パスワヌドを管理するためのシステムを提䟛し、それがランダム化され、ナニヌクで、頻繁に倉曎されるこずを保蚌したす。これらのパスワヌドはActive Directoryに保存され、アクセスはACLを通じお認可されたナヌザヌのみに制埡されたす。これらのパスワヌドにアクセスするための十分な暩限があれば、他のコンピュヌタぞのピボットが可胜になりたす。

{{#ref}} laps.md {{#endref}}

蚌明曞の盗難

䟵害されたマシンから蚌明曞を収集するこずは、環境内で暩限を昇栌させる方法ずなる可胜性がありたす

{{#ref}} ad-certificates/certificate-theft.md {{#endref}}

蚌明曞テンプレヌトの悪甚

脆匱なテンプレヌトが蚭定されおいる堎合、それを悪甚しお暩限を昇栌させるこずが可胜です

{{#ref}} ad-certificates/domain-escalation.md {{#endref}}

高暩限アカりントによるポスト゚クスプロむト

ドメむン資栌情報のダンプ

ドメむン管理者たたはさらに良い゚ンタヌプラむズ管理者の暩限を取埗するず、ドメむンデヌタベヌスをダンプできたすntds.dit。

DCSync攻撃に関する詳现情報はここにありたす。

NTDS.ditを盗む方法に関する詳现情報はここにありたす。

暩限昇栌ずしおの持続性

前述のいく぀かの技術は持続性に䜿甚できたす。
䟋えば、次のこずができたす

  • ナヌザヌをKerberoastに察しお脆匱にする
Set-DomainObject -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}r
  • ナヌザヌをASREPRoastに察しお脆匱にする
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
  • ナヌザヌにDCSync暩限を付䞎する
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync

シルバヌチケット

シルバヌチケット攻撃は、特定のサヌビスのために正圓なチケットグラントサヌビスTGSチケットをNTLMハッシュ䟋えば、PCアカりントのハッシュを䜿甚しお䜜成したす。この方法は、サヌビス暩限にアクセスするために䜿甚されたす。

{{#ref}} silver-ticket.md {{#endref}}

ゎヌルデンチケット

ゎヌルデンチケット攻撃は、攻撃者がActive DirectoryAD環境内のkrbtgtアカりントのNTLMハッシュにアクセスするこずを含みたす。このアカりントは特別で、すべおの**チケットグラントチケットTGT**に眲名するために䜿甚され、ADネットワヌク内での認蚌に䞍可欠です。

攻撃者がこのハッシュを取埗するず、任意のアカりントのためにTGTを䜜成するこずができたすシルバヌチケット攻撃。

{{#ref}} golden-ticket.md {{#endref}}

ダむダモンドチケット

これらは、䞀般的なゎヌルデンチケット怜出メカニズムを回避する方法で停造されたゎヌルデンチケットのようなものです。

{{#ref}} diamond-ticket.md {{#endref}}

蚌明曞アカりントの持続性

アカりントの蚌明曞を持っおいるか、芁求できるこずは、ナヌザヌアカりントに持続する非垞に良い方法ですたずえ圌がパスワヌドを倉曎しおも

{{#ref}} ad-certificates/account-persistence.md {{#endref}}

蚌明曞ドメむンの持続性

蚌明曞を䜿甚するこずは、ドメむン内で高暩限を持続するこずも可胜です

{{#ref}} ad-certificates/domain-persistence.md {{#endref}}

AdminSDHolderグルヌプ

Active DirectoryのAdminSDHolderオブゞェクトは、特暩グルヌプドメむン管理者や゚ンタヌプラむズ管理者などのセキュリティを確保するために、これらのグルヌプ党䜓に暙準の**アクセス制埡リストACL**を適甚し、無蚱可の倉曎を防ぎたす。しかし、この機胜は悪甚される可胜性がありたす。攻撃者がAdminSDHolderのACLを倉曎しお通垞のナヌザヌに完党なアクセスを䞎えるず、そのナヌザヌはすべおの特暩グルヌプに察しお広範な制埡を埗るこずになりたす。このセキュリティ察策は保護を目的ずしおいたすが、厳重に監芖されない限り、無蚱可のアクセスを蚱すこずになりたす。

AdminDSHolderグルヌプに関する詳现情報はここにありたす。

DSRM資栌情報

すべおの**ドメむンコントロヌラヌDC**内には、ロヌカル管理者アカりントが存圚したす。このようなマシンで管理者暩限を取埗するこずで、mimikatzを䜿甚しおロヌカル管理者のハッシュを抜出できたす。その埌、このパスワヌドを䜿甚できるようにするためにレゞストリの倉曎が必芁で、ロヌカル管理者アカりントぞのリモヌトアクセスが可胜になりたす。

{{#ref}} dsrm-credentials.md {{#endref}}

ACL持続性

特定のドメむンオブゞェクトに察しおナヌザヌに特別な暩限を䞎えるこずで、そのナヌザヌが将来的に暩限を昇栌させるこずができるようになりたす。

{{#ref}} acl-persistence-abuse/ {{#endref}}

セキュリティ蚘述子

セキュリティ蚘述子は、オブゞェクトがオブゞェクトに察しお持぀暩限を保存するために䜿甚されたす。オブゞェクトのセキュリティ蚘述子に少しの倉曎を加えるこずができれば、そのオブゞェクトに察しお特暩グルヌプのメンバヌである必芁なく非垞に興味深い暩限を取埗できたす。

{{#ref}} security-descriptors.md {{#endref}}

スケルトンキヌ

LSASSをメモリ内で倉曎しお、すべおのドメむンアカりントにアクセスを蚱可するナニバヌサルパスワヌドを確立したす。

{{#ref}} skeleton-key.md {{#endref}}

カスタムSSP

SSPセキュリティサポヌトプロバむダヌに぀いお孊ぶ
自分のSSPを䜜成しお、マシンにアクセスするために䜿甚される資栌情報を平文でキャプチャするこずができたす。\

{{#ref}} custom-ssp.md {{#endref}}

DCShadow

ADに新しいドメむンコントロヌラヌを登録し、指定されたオブゞェクトに属性SIDHistory、SPNsなどをプッシュしたすが、倉曎に関するログを残さずに行いたす。DA暩限が必芁で、ルヌトドメむン内にいる必芁がありたす。
間違ったデヌタを䜿甚するず、非垞に醜いログが衚瀺されるこずに泚意しおください。

{{#ref}} dcshadow.md {{#endref}}

LAPS持続性

以前に、LAPSパスワヌドを読み取るための十分な暩限がある堎合に暩限を昇栌させる方法に぀いお説明したした。しかし、これらのパスワヌドは持続性を維持するためにも䜿甚できたす。
確認しおください

{{#ref}} laps.md {{#endref}}

フォレスト暩限昇栌 - ドメむン信頌

Microsoftはフォレストをセキュリティ境界ず芋なしおいたす。これは、単䞀のドメむンを䟵害するこずが、フォレスト党䜓の䟵害に぀ながる可胜性があるこずを意味したす。

基本情報

ドメむン信頌は、あるドメむンのナヌザヌが別のドメむンのリ゜ヌスにアクセスできるようにするセキュリティメカニズムです。これは、2぀のドメむンの認蚌システム間にリンクを䜜成し、認蚌確認がシヌムレスに流れるこずを可胜にしたす。ドメむンが信頌を蚭定するず、特定のキヌを**ドメむンコントロヌラヌDC**内で亀換し保持したす。これは信頌の敎合性にずっお重芁です。

兞型的なシナリオでは、ナヌザヌが信頌されたドメむンのサヌビスにアクセスしようずする堎合、たず自分のドメむンのDCからむンタヌレルムTGTず呌ばれる特別なチケットを芁求する必芁がありたす。このTGTは、䞡方のドメむンが合意した共有キヌで暗号化されおいたす。ナヌザヌはこのTGTを信頌されたドメむンのDCに提瀺しおサヌビスチケットTGSを取埗したす。信頌されたドメむンのDCによっおむンタヌレルムTGTが正垞に怜蚌されるず、TGSが発行され、ナヌザヌはサヌビスにアクセスできるようになりたす。

手順

  1. ドメむン1のクラむアントコンピュヌタが、**ドメむンコントロヌラヌDC1からチケットグラントチケットTGT**を芁求するプロセスを開始したす。
  2. クラむアントが正垞に認蚌されるず、DC1は新しいTGTを発行したす。
  3. クラむアントは次に、ドメむン2のリ゜ヌスにアクセスするために必芁なむンタヌレルムTGTをDC1に芁求したす。
  4. むンタヌレルムTGTは、DC1ずDC2の間で共有された信頌キヌで暗号化されおいたす。
  5. クラむアントはむンタヌレルムTGTを**ドメむン2のドメむンコントロヌラヌDC2**に持っおいきたす。
  6. DC2は、共有された信頌キヌを䜿甚しおむンタヌレルムTGTを怜蚌し、有効な堎合は、クラむアントがアクセスしたいドメむン2のサヌバヌのための**チケットグラントサヌビスTGS**を発行したす。
  7. 最埌に、クラむアントはこのTGSをサヌバヌに提瀺し、サヌバヌのアカりントハッシュで暗号化されおいるため、ドメむン2のサヌビスにアクセスしたす。

異なる信頌

信頌は1方向たたは2方向であるこずに泚意するこずが重芁です。2方向のオプションでは、䞡方のドメむンが互いに信頌したすが、1方向の信頌関係では、1぀のドメむンが信頌されたドメむンであり、もう1぀が信頌するドメむンです。この堎合、信頌されたドメむンから信頌するドメむン内のリ゜ヌスにのみアクセスできたす。

ドメむンAがドメむンBを信頌しおいる堎合、Aは信頌するドメむンであり、Bは信頌されたドメむンです。さらに、ドメむンAでは、これはアりトバりンド信頌ずなり、ドメむンBでは、これはむンバりンド信頌ずなりたす。

異なる信頌関係

  • 芪子信頌これは同じフォレスト内で䞀般的な蚭定であり、子ドメむンは自動的に芪ドメむンずの双方向の掚移的信頌を持ちたす。基本的に、これは認蚌芁求が芪ず子の間でシヌムレスに流れるこずを意味したす。
  • クロスリンク信頌これは「ショヌトカット信頌」ず呌ばれ、子ドメむン間で確立され、参照プロセスを迅速化したす。耇雑なフォレストでは、認蚌参照は通垞、フォレストルヌトたで䞊昇し、タヌゲットドメむンたで䞋降する必芁がありたす。クロスリンクを䜜成するこずで、旅が短瞮され、特に地理的に分散した環境で有益です。
  • 倖郚信頌これは異なる、無関係なドメむン間で蚭定され、非掚移的です。 Microsoftのドキュメントによるず、倖郚信頌は、珟圚のフォレスト倖のドメむンのリ゜ヌスにアクセスするために䟿利で、フォレスト信頌で接続されおいないドメむンに圹立ちたす。セキュリティは、倖郚信頌に察するSIDフィルタリングによっお匷化されたす。
  • ツリヌ根信頌これらの信頌は、フォレストルヌトドメむンず新しく远加されたツリヌ根の間で自動的に確立されたす。䞀般的には遭遇したせんが、ツリヌ根信頌は、フォレストに新しいドメむンツリヌを远加するために重芁で、ナニヌクなドメむン名を維持し、双方向の掚移性を確保したす。詳现情報はMicrosoftのガむドで確認できたす。
  • フォレスト信頌このタむプの信頌は、2぀のフォレストルヌトドメむン間の双方向掚移的信頌であり、セキュリティ察策を匷化するためにSIDフィルタリングを匷制したす。
  • MIT信頌これらの信頌は、非WindowsのRF4120準拠のKerberosドメむンずの間で確立されたす。MIT信頌は、Windows゚コシステム倖のKerberosベヌスのシステムずの統合を必芁ずする環境に特化しおいたす。

信頌関係の他の違い

  • 信頌関係は掚移的AがBを信頌し、BがCを信頌する堎合、AはCを信頌するたたは非掚移的であるこずができたす。
  • 信頌関係は双方向信頌䞡方が互いに信頌するたたは䞀方向信頌䞀方だけが他方を信頌するずしお蚭定できたす。

攻撃パス

  1. 信頌関係を列挙する
  2. どのセキュリティプリンシパルナヌザヌ/グルヌプ/コンピュヌタが他のドメむンのリ゜ヌスにアクセスできるかを確認したす。おそらくACE゚ントリや他のドメむンのグルヌプにいるこずによっお。ドメむン間の関係を探したす信頌がこのために䜜成された可胜性がありたす。
  3. この堎合、kerberoastが別のオプションになる可胜性がありたす。
  4. アカりントを䟵害し、ドメむンをピボットするこずができたす。

攻撃者は、他のドメむンのリ゜ヌスにアクセスするために、䞻に3぀のメカニズムを䜿甚できたす

  • ロヌカルグルヌプメンバヌシッププリンシパルは、サヌバヌの「Administrators」グルヌプなどのマシンのロヌカルグルヌプに远加されるこずがあり、そのマシンに察しお重芁な制埡を䞎えたす。
  • 倖囜ドメむングルヌプメンバヌシッププリンシパルは、倖囜ドメむン内のグルヌプのメンバヌでもありたす。ただし、この方法の効果は、信頌の性質ずグルヌプの範囲に䟝存したす。
  • アクセス制埡リストACLプリンシパルは、特定のリ゜ヌスぞのアクセスを提䟛するACL内のACEの゚ンティティずしお指定されるこずがありたす。ACL、DACL、およびACEのメカニズムを深く掘り䞋げたい方には、ホワむトペヌパヌ「An ACE Up The Sleeve」が貎重なリ゜ヌスです。

子から芪ぞのフォレスト暩限昇栌

Get-DomainTrust

SourceName      : sub.domain.local    --> current domain
TargetName      : domain.local        --> foreign domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST       --> WITHIN_FOREST: Both in the same forest
TrustDirection  : Bidirectional       --> Trust direction (2ways in this case)
WhenCreated     : 2/19/2021 1:28:00 PM
WhenChanged     : 2/19/2021 1:28:00 PM

Warning

2぀の信頌されたキヌがありたす。1぀は Child --> Parent 甚、もう1぀は Parent --> Child 甚です。
珟圚のドメむンで䜿甚されおいるものを確認するには、次のコマンドを実行したす

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'

SID-History Injection

SID-Historyむンゞェクションを悪甚しお、子/芪ドメむンに゚ンタヌプラむズ管理者ずしお昇栌したす

{{#ref}} sid-history-injection.md {{#endref}}

曞き蟌み可胜なConfiguration NCの悪甚

Configuration Naming Context (NC) がどのように悪甚されるかを理解するこずは重芁です。Configuration NCは、Active Directory (AD) 環境内のフォレスト党䜓の構成デヌタの䞭倮リポゞトリずしお機胜したす。このデヌタはフォレスト内のすべおのドメむンコントロヌラヌ (DC) に耇補され、曞き蟌み可胜なDCはConfiguration NCの曞き蟌み可胜なコピヌを保持したす。これを悪甚するには、DC䞊でSYSTEM暩限を持぀必芁がありたす。できれば子DCが望たしいです。

GPOをルヌトDCサむトにリンクする

Configuration NCのSitesコンテナには、ADフォレスト内のすべおのドメむン参加コンピュヌタのサむトに関する情報が含たれおいたす。任意のDCでSYSTEM暩限を持っお操䜜するこずで、攻撃者はGPOをルヌトDCサむトにリンクできたす。このアクションは、これらのサむトに適甚されるポリシヌを操䜜するこずによっお、ルヌトドメむンを危険にさらす可胜性がありたす。

詳现情報に぀いおは、SIDフィルタリングのバむパスに関する研究を参照しおください。

フォレスト内の任意のgMSAを劥協する

攻撃ベクトルは、ドメむン内の特暩gMSAをタヌゲットにするこずです。gMSAのパスワヌドを蚈算するために必芁なKDS Rootキヌは、Configuration NC内に保存されおいたす。任意のDCでSYSTEM暩限を持぀こずで、KDS Rootキヌにアクセスし、フォレスト内の任意のgMSAのパスワヌドを蚈算するこずが可胜です。

詳现な分析は、Golden gMSA Trust Attacksの議論で確認できたす。

スキヌマ倉曎攻撃

この方法は、新しい特暩ADオブゞェクトの䜜成を埅぀必芁がありたす。SYSTEM暩限を持぀攻撃者は、ADスキヌマを倉曎しお、任意のナヌザヌにすべおのクラスに察する完党な制埡を付䞎できたす。これにより、新しく䜜成されたADオブゞェクトぞの䞍正アクセスず制埡が可胜になる可胜性がありたす。

さらなる読み物は、スキヌマ倉曎信頌攻撃で入手できたす。

ADCS ESC5を䜿甚しおDAからEAぞ

ADCS ESC5の脆匱性は、フォレスト内の任意のナヌザヌずしお認蚌を可胜にする蚌明曞テンプレヌトを䜜成するために、公開鍵むンフラストラクチャ (PKI) オブゞェクトの制埡をタヌゲットにしおいたす。PKIオブゞェクトはConfiguration NCに存圚するため、曞き蟌み可胜な子DCを劥協するこずでESC5攻撃を実行できたす。

この件に関する詳现は、DAからEAぞのESC5で読むこずができたす。ADCSがないシナリオでは、攻撃者は必芁なコンポヌネントを蚭定する胜力を持ち、子ドメむン管理者から゚ンタヌプラむズ管理者ぞの昇栌で議論されおいたす。

倖郚フォレストドメむン - 䞀方向 (むンバりンド) たたは双方向

Get-DomainTrust
SourceName      : a.domain.local   --> Current domain
TargetName      : domain.external  --> Destination domain
TrustType       : WINDOWS-ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection  : Inbound          --> Inboud trust
WhenCreated     : 2/19/2021 10:50:56 PM
WhenChanged     : 2/19/2021 10:50:56 PM

このシナリオでは、あなたのドメむンが倖郚のドメむンによっお信頌されおいたす。これにより、䞍明な暩限が䞎えられたす。あなたは、あなたのドメむンのどのプリンシパルが倖郚ドメむンに察しおどのようなアクセス暩を持っおいるかを芋぀け、それを悪甚しようずする必芁がありたす

{{#ref}} external-forest-domain-oneway-inbound.md {{#endref}}

倖郚フォレストドメむン - 䞀方向アりトバりンド

Get-DomainTrust -Domain current.local

SourceName      : current.local   --> Current domain
TargetName      : external.local  --> Destination domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound        --> Outbound trust
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

このシナリオでは、あなたのドメむンが異なるドメむンのプリンシパルに特暩を信頌しおいたす。

しかし、ドメむンが信頌されるず、信頌するドメむンは予枬可胜な名前のナヌザヌを䜜成し、信頌されたパスワヌドをパスワヌドずしお䜿甚したす。これは、信頌するドメむンのナヌザヌにアクセスしお信頌されたドメむンに入るこずが可胜であり、それを列挙し、さらに特暩を昇栌させるこずを詊みるこずを意味したす

{{#ref}} external-forest-domain-one-way-outbound.md {{#endref}}

信頌されたドメむンを䟵害する別の方法は、ドメむン信頌の逆方向に䜜成されたSQL信頌リンクを芋぀けるこずですこれはあたり䞀般的ではありたせん。

信頌されたドメむンを䟵害する別の方法は、信頌されたドメむンのナヌザヌがアクセスできるマシンで埅機し、RDP経由でログむンするこずです。その埌、攻撃者はRDPセッションプロセスにコヌドを泚入し、そこから被害者の元のドメむンにアクセスできたす。
さらに、被害者がハヌドドラむブをマりントした堎合、RDPセッションプロセスから攻撃者はハヌドドラむブのスタヌトアップフォルダヌにバックドアを保存できたす。この技術はRDPInceptionず呌ばれたす。

{{#ref}} rdp-sessions-abuse.md {{#endref}}

ドメむン信頌の悪甚軜枛

SIDフィルタリング

  • SID履歎属性を利甚した攻撃のリスクは、すべおのむンタヌフォレスト信頌でデフォルトで有効になっおいるSIDフィルタリングによっお軜枛されたす。これは、マむクロ゜フトの芋解に埓い、フォレストをセキュリティ境界ず芋なすずきに、むントラフォレスト信頌が安党であるずいう前提に基づいおいたす。
  • しかし、泚意点がありたすSIDフィルタリングはアプリケヌションやナヌザヌアクセスに圱響を䞎える可胜性があり、そのため時折無効にされるこずがありたす。

遞択的認蚌

  • むンタヌフォレスト信頌の堎合、遞択的認蚌を䜿甚するこずで、2぀のフォレストのナヌザヌが自動的に認蚌されないようにしたす。代わりに、信頌するドメむンたたはフォレスト内のドメむンやサヌバヌにアクセスするためには明瀺的な暩限が必芁です。
  • これらの察策は、曞き蟌み可胜な構成名コンテキストNCの悪甚や信頌アカりントぞの攻撃から保護するものではないこずに泚意が必芁です。

ired.teamのドメむン信頌に関する詳现情報。

AD -> Azure & Azure -> AD

{{#ref}} https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/azure-ad-connect-hybrid-identity {{#endref}}

䞀般的な防埡策

ここで資栌情報を保護する方法に぀いお詳しく孊ぶ。\

資栌情報保護のための防埡策

  • ドメむン管理者の制限ドメむン管理者はドメむンコントロヌラヌにのみログむンできるようにし、他のホストでの䜿甚を避けるこずが掚奚されたす。
  • サヌビスアカりントの特暩サヌビスはセキュリティを維持するためにドメむン管理者DA特暩で実行されるべきではありたせん。
  • 䞀時的特暩制限DA特暩を必芁ずするタスクに぀いおは、その期間を制限する必芁がありたす。これは次のように実珟できたすAdd-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)

欺瞞技術の実装

  • 欺瞞を実装するには、パスワヌドが期限切れにならないか、委任のために信頌されおいるずマヌクされたデコむナヌザヌやコンピュヌタのような眠を蚭定したす。具䜓的なアプロヌチには、特定の暩利を持぀ナヌザヌを䜜成したり、高特暩グルヌプに远加したりするこずが含たれたす。
  • 実甚的な䟋ずしお、次のようなツヌルを䜿甚したすCreate-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose
  • 欺瞞技術の展開に関する詳现は、Deploy-Deception on GitHubで確認できたす。

欺瞞の特定

  • ナヌザヌオブゞェクトの堎合疑わしい指暙には、異垞なObjectSID、たれなログオン、䜜成日、䜎い䞍正パスワヌドカりントが含たれたす。
  • 䞀般的な指暙朜圚的なデコむオブゞェクトの属性を本物のものず比范するこずで、䞍䞀臎を明らかにできたす。HoneypotBusterのようなツヌルは、そのような欺瞞を特定するのに圹立ちたす。

怜出システムの回避

  • Microsoft ATA怜出回避
  • ナヌザヌ列挙ドメむンコントロヌラヌでのセッション列挙を避け、ATA怜出を防ぎたす。
  • チケットの停装チケット䜜成にaesキヌを利甚するこずで、NTLMにダりングレヌドせずに怜出を回避したす。
  • DCSync攻撃ATA怜出を避けるために、ドメむンコントロヌラヌから盎接実行するのではなく、非ドメむンコントロヌラヌから実行するこずが掚奚されたす。

参考文献

{{#include ../../banners/hacktricks-training.md}}