AD CS Domain Escalation
Dit is 'n opsomming van die eskalasie tegniekafdelings van die poste:
Verkeerd Geconfigureerde Sertifikaatsjablone - ESC1
Verduideliking
Verkeerd Geconfigureerde Sertifikaatsjablone - ESC1 Verduidelik
Inskrywingsregte word aan lae-bevoorregte gebruikers toegeken deur die Enterprise CA.
Goedkeuring deur bestuurder is nie nodig nie.
Geen handtekeninge van gemagtigde personeel is nodig nie.
Sekuriteitsbeskrywings op sertifikaatsjablone is oormatig toegeeflik, wat lae-bevoorregte gebruikers toelaat om inskrywingsregte te verkry.
Sertifikaatsjablone is gekonfigureer om EKU's te definieer wat outentifikasie fasiliteer:
Uitgebreide Sleutelgebruik (EKU) identifiseerders soos Kliëntoutentifikasie (OID 1.3.6.1.5.5.7.3.2), PKINIT Kliëntoutentifikasie (1.3.6.1.5.2.3.4), Slimkaart Aanmelding (OID 1.3.6.1.4.1.311.20.2.2), Enige Doel (OID 2.5.29.37.0), of geen EKU (SubCA) is ingesluit.
Die vermoë vir aanvragers om 'n subjectAltName in die Sertifikaatondertekeningsversoek (CSR) in te sluit, word toegelaat deur die sjabloon:
Die Aktiewe Gids (AD) prioritiseer die subjectAltName (SAN) in 'n sertifikaat vir identiteitsverifikasie indien teenwoordig. Dit beteken dat deur die spesifisering van die SAN in 'n CSR, 'n sertifikaat aangevra kan word om enige gebruiker te simuleer (bv. 'n domein-administrateur). Of 'n SAN deur die aanvrager gespesifiseer kan word, word aangedui in die AD-sjabloon se AD-objek deur die
mspki-sertifikaat-naam-vlag
eienskap. Hierdie eienskap is 'n bitmasker, en die teenwoordigheid van dieCT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
vlag maak die spesifisering van die SAN deur die aanvrager moontlik.
Die konfigurasie wat uitgelig word, maak dit vir lae-bevoorregte gebruikers moontlik om sertifikate met enige SAN van keuse aan te vra, wat outentifikasie as enige domeinprinsipaal deur Kerberos of SChannel moontlik maak.
Hierdie kenmerk word soms geaktiveer om die aan-die-gang-generering van HTTPS- of gasheersertifikate deur produkte of implementeringsdienste te ondersteun, of as gevolg van 'n gebrek aan begrip.
Dit word opgemerk dat die skep van 'n sertifikaat met hierdie opsie 'n waarskuwing ontlok, wat nie die geval is wanneer 'n bestaande sertifikaatsjabloon (soos die WebServer
-sjabloon, wat CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
geaktiveer het) gedupliseer word en dan gewysig word om 'n outentiserings-OID in te sluit.
Misbruik
Om kwesbare sertifikaatsjablone te vind kan jy hardloop:
Om misbruik te maak van hierdie kwesbaarheid om as 'n administrateur te impersoneer kan 'n persoon die volgende hardloop:
Dan kan jy die gegenereerde sertifikaat na .pfx
-formaat omskep en dit gebruik om te verifieer met behulp van Rubeus of certipy weer:
Die Windows-binêre lêers "Certreq.exe" & "Certutil.exe" kan gebruik word om die PFX te genereer: https://gist.github.com/b4cktr4ck2/95a9b908e57460d9958e8238f85ef8ee
Die enumerasie van sertifikaatsjablone binne die AD Forest se konfigurasieskema, spesifiek dié wat nie goedkeuring of handtekeninge vereis nie, wat 'n Kliëntverifikasie of Slimkaart Aanteken EKU besit, en met die CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
vlag geaktiveer, kan uitgevoer word deur die volgende LDAP-navraag te hardloop:
Verkeerd Geconfigureerde Sertifikaatsjablone - ESC2
Verduideliking
Die tweede misbruikscenario is 'n variasie van die eerste:
Inschrywingsregte word deur die Enterprise CA aan lae-gepriviligeerde gebruikers toegeken.
Die vereiste vir bestuursgoedkeuring is gedeaktiveer.
Die behoefte aan gemagtigde handtekeninge word weggelaat.
'n Oormatig toegeeflike sekuriteitsbeskrywing op die sertifikaatsjabloon gee sertifikaatinskrywingsregte aan lae-gepriviligeerde gebruikers.
Die sertifikaatsjabloon is omskryf om die Any Purpose EKU of geen EKU in te sluit.
Die Any Purpose EKU maak dit moontlik vir 'n aanvaller om 'n sertifikaat vir enige doel te bekom, insluitend klientverifikasie, bedienerverifikasie, kodesondertekening, ens. Dieselfde tegniek wat vir ESC3 gebruik word kan gebruik word om van hierdie scenario misbruik te maak.
Sertifikate sonder EKUs, wat as ondergeskikte CA-sertifikate optree, kan misbruik word vir enige doel en kan ook gebruik word om nuwe sertifikate te onderteken. Dus kan 'n aanvaller arbitrêre EKUs of velde spesifiseer in die nuwe sertifikate deur 'n ondergeskikte CA-sertifikaat te gebruik.
Nietemin sal nuwe sertifikate wat vir domeinverifikasie geskep is, nie funksioneer as die ondergeskikte CA nie vertrou word deur die NTAuthCertificates
-voorwerp nie, wat die verstekinstelling is. Nietemin kan 'n aanvaller steeds nuwe sertifikate met enige EKU en arbitrêre sertifikaatwaardes skep. Hierdie kan potensieel misbruik word vir 'n wye verskeidenheid doeleindes (bv., kodesondertekening, bedienerverifikasie, ens.) en kan beduidende implikasies hê vir ander toepassings in die netwerk soos SAML, AD FS, of IPSec.
Om sjablone wat by hierdie scenario in die AD Forest se konfigurasieskema pas, op te som, kan die volgende LDAP-navraag uitgevoer word:
Verkeerd geconfigureerde Inschrijvingsagent-sjablone - ESC3
Verduideliking
Hierdie scenario is soos die eerste en tweede een, maar misbruik 'n verskillende EKU (Sertifikaataanvraagagent) en 2 verskillende sjablone (daarom het dit 2 stelle vereistes),
Die Sertifikaataanvraagagent EKU (OID 1.3.6.1.4.1.311.20.2.1), bekend as Inschrywingsagent in Microsoft-dokumentasie, maak dit vir 'n hoofmoontlikheid moontlik om vir 'n sertifikaat in te skryf namens 'n ander gebruiker.
Die "inschrywingsagent" skryf in vir so 'n sjabloon en gebruik die resulterende sertifikaat om 'n CSR mede te onderteken namens die ander gebruiker. Dit stuur dan die mede-ondertekende CSR na die CA, skryf in vir 'n sjabloon wat "inskrywing namens" toelaat, en die CA reageer met 'n sertifikaat wat aan die "ander" gebruiker behoort.
Vereistes 1:
Inskrywingsregte word deur die Ondernemings-CA aan lae-gepriviligeerde gebruikers toegeken.
Die vereiste vir bestuursgoedkeuring word weggelaat.
Geen vereiste vir gemagtigde handtekeninge nie.
Die sekuriteitsbeskrywing van die sertifikaatsjabloon is buitensporig toegeeflik, wat inskrywingsregte aan lae-gepriviligeerde gebruikers toeken.
Die sertifikaatsjabloon sluit die Sertifikaataanvraagagent EKU in, wat die aanvraag van ander sertifikaatsjabbone namens ander hoofmoontlikhede moontlik maak.
Vereistes 2:
Die Ondernemings-CA ken inskrywingsregte toe aan lae-gepriviligeerde gebruikers.
Bestuursgoedkeuring word omseil.
Die sjabloon se skemas weergawe is óf 1 óf oorskry 2, en dit spesifiseer 'n Aansoekbeleid Uitreikingsvereiste wat die Sertifikaataanvraagagent EKU vereis.
'n EKU wat in die sertifikaatsjabloon gedefinieer is, maak domeinverifikasie moontlik.
Beperkings vir inskrywingsagente word nie op die CA toegepas nie.
Misbruik
Jy kan Certify of Certipy gebruik om hierdie scenario te misbruik:
Die gebruikers wat toegelaat word om 'n enrollment agent sertifikaat te verkry, die templaat waarin enrollment agents toegelaat word om in te skryf, en die rekeninge namens wie die enrollment agent mag optree kan beperk word deur ondernemings CAs. Dit word bereik deur die certsrc.msc
snap-in oop te maak, regs te klik op die CA, Eienskappe te kies, en dan te navigeer na die "Enrollment Agents" lêer.
Dit word egter opgemerk dat die verstek instelling vir CAs is om "Moenie enrollment agents beperk nie." Wanneer die beperking op enrollment agents deur administrateurs geaktiveer word, deur dit in te stel op "Beperk enrollment agents," bly die verstek konfigurasie uiters inskiklik. Dit laat Almal toe om in te skryf vir alle templaat as enigiemand.
Kwesbare Sertifikaat Templaat Toegangsbeheer - ESC4
Verduideliking
Die sekuriteitsbeskrywing op sertifikaat templaat definieer die toestemmings wat spesifieke AD hoofde besit rakende die templaat.
Indien 'n aanvaller die nodige toestemmings het om 'n templaat te verander en enige uitbuitbare verkeerde konfigurasies soos uiteengesit in vorige afdelings te instel, kan voorreg-escalasie gefasiliteer word.
Bekende toestemmings wat van toepassing is op sertifikaat templaat sluit in:
Eienaar: Verleen implisiete beheer oor die objek, wat die verandering van enige eienskappe moontlik maak.
VolleBeheer: Stel volledige gesag oor die objek in, insluitend die vermoë om enige eienskappe te verander.
SkryfEienaar: Laat die verandering van die objek se eienaar toe na 'n hoof onder die aanvaller se beheer.
SkryfDacl: Maak die aanpassing van toegangsbeheer moontlik, wat moontlik 'n aanvaller VolleBeheer kan gee.
SkryfEienskap: Magtig die redigering van enige objek eienskappe.
Misbruik
'n Voorbeeld van 'n privesc soos die vorige een:
ESC4 is wanneer 'n gebruiker skryfregte het oor 'n sertifikaat templaat. Dit kan byvoorbeeld misbruik word om die konfigurasie van die sertifikaat templaat te oorskryf om die templaat kwesbaar te maak vir ESC1.
Soos ons kan sien in die pad hierbo, het slegs JOHNPC
hierdie regte, maar ons gebruiker JOHN
het die nuwe AddKeyCredentialLink
kant na JOHNPC
. Aangesien hierdie tegniek verband hou met sertifikate, het ek hierdie aanval ook geïmplementeer, wat bekend staan as Shadow Credentials. Hier is 'n klein voorskou van Certipy se shadow auto
bevel om die NT-hash van die slagoffer te herwin.
Certipy kan die konfigurasie van 'n sertifikaatsjabloon oorskryf met 'n enkele bevel. Standaard sal Certipy die konfigurasie oorskryf om dit vatbaar te maak vir ESC1. Ons kan ook die -save-old
parameter spesifiseer om die ou konfigurasie te stoor, wat nuttig sal wees vir die herstel van die konfigurasie na ons aanval.
Kwesbare PKI-voorwerptoegangsbeheer - ESC5
Verduideliking
Die uitgebreide web van onderling gekoppelde ACL-gebaseerde verhoudings, wat verskeie voorwerpe buite sertifikaatsjablone en die sertifikaatautoriteit insluit, kan die veiligheid van die hele AD CS-stelsel beïnvloed. Hierdie voorwerpe, wat die veiligheid aansienlik kan beïnvloed, behels:
Die AD-rekenaarvoorwerp van die CA-bediener, wat deur meganismes soos S4U2Self of S4U2Proxy gekompromitteer kan word.
Die RPC/DCOM-bediener van die CA-bediener.
Enige afstammeling AD-voorwerp of houer binne die spesifieke houerpad
CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>
. Hierdie pad sluit houers en voorwerpe in soos die Sertifikaatsjablone-houer, Sertifiseringsowerhede-houer, die NTAuthCertificates-voorwerp, en die Inschrywingsdienshouer.
Die veiligheid van die PKI-stelsel kan gekompromitteer word as 'n lae-bevoorregte aanvaller beheer oor enige van hierdie kritieke komponente verkry.
EDITF_ATTRIBUTESUBJECTALTNAME2 - ESC6
Verduideliking
Die onderwerp wat bespreek word in die CQure Academy-pos raak ook die implikasies van die EDITF_ATTRIBUTESUBJECTALTNAME2
-vlag aan, soos deur Microsoft uiteengesit. Hierdie konfigurasie, wanneer geaktiveer op 'n Sertifiseringsowerheid (CA), maak die insluiting van gebruiker-gedefinieerde waardes in die alternatiewe naam van die onderwerp vir enige versoek moontlik, insluitend dié wat vanuit Active Directory® saamgestel is. Gevolglik maak hierdie bepaling dit vir 'n indringer moontlik om deur enige sjabloon wat vir domein verifikasie opgestel is, in te skryf—veral dié wat oop is vir onbevoorregte gebruikersinskrywing, soos die standaard Gebruiker-sjabloon. As gevolg hiervan kan 'n sertifikaat beveilig word, wat die indringer in staat stel om as 'n domein-administrateur of enige ander aktiewe entiteit binne die domein te verifieer.
Nota: Die benadering om alternatiewe name by 'n Sertifikaatondertekeningversoek (CSR) aan te heg, deur die -attrib "SAN:"
-argument in certreq.exe
te gebruik (verwys na as "Naamwaardepare"), bied 'n teenstelling tot die uitbuitingsstrategie van SANs in ESC1. Hier lê die onderskeid in hoe rekeninginligting ingekapsuleer word—binne 'n sertifikaateienskap eerder as 'n uitbreiding.
Misbruik
Om te verifieer of die instelling geaktiveer is, kan organisasies die volgende bevel met certutil.exe
gebruik:
Hierdie operasie maak in wese gebruik van afgeleë register toegang, dus 'n alternatiewe benadering kan wees:
Hulpmiddels soos Certify en Certipy is in staat om hierdie wanopset te detecteer en dit uit te buit:
Om hierdie instellings te verander, mits 'n persoon domain administratiewe regte het of gelykstaande regte het, kan die volgende bevel uitgevoer word vanaf enige werkstasie:
Om hierdie konfigurasie in jou omgewing uit te skakel, kan die vlag verwyder word met:
Na die Mei 2022-sekuriteitsopdaterings, sal nuut uitgereikte sertifikate 'n sekuriteitsuitbreiding bevat wat die aanvrager se objectSid
eienskap inkorporeer. Vir ESC1 word hierdie SID afgelei van die gespesifiseerde SAN. Tog, vir ESC6, weerspieël die SID die aanvrager se objectSid
, nie die SAN nie.
Om ESC6 uit te buit, is dit noodsaaklik vir die stelsel om vatbaar te wees vir ESC10 (Swak Sertifikaatafbeeldings), wat die SAN bo die nuwe sekuriteitsuitbreiding prioriteer.
Kwesbare Sertifikaatowerheidstoegangsbeheer - ESC7
Aanval 1
Verduideliking
Toegangsbeheer vir 'n sertifikaatowerheid word deur 'n stel toestemmings wat CA-aksies regeer, onderhou. Hierdie toestemmings kan besigtig word deur certsrv.msc
te benader, 'n CA met die regterknoppie te kliek, eienskappe te kies, en dan na die Sekuriteit-lap te navigeer. Daarbenewens kan toestemmings geënumereer word deur die PSPKI-module te gebruik met opdragte soos:
Dit bied insigte in die primêre regte, naamlik ManageCA
en ManageCertificates
, wat ooreenstem met die rolle van "CA-administrator" en "Sertifikaatbestuurder" onderskeidelik.
Misbruik
Die besit van ManageCA
regte op 'n sertifikaatautoriteit stel die hoof in staat om instellings op afstand te manipuleer deur PSPKI te gebruik. Dit sluit in die skakeling van die EDITF_ATTRIBUTESUBJECTALTNAME2
vlag om SAN-spesifikasie in enige templaat toe te laat, 'n kritieke aspek van domein-escalasie.
Vereenvoudiging van hierdie proses is haalbaar deur die gebruik van PSPKI se Enable-PolicyModuleFlag cmdlet, wat wysigings sonder direkte GUI-interaksie moontlik maak.
Die besit van ManageCertificates
regte fasiliteer die goedkeuring van hangende versoek, wat die "CA-sertifikaatbestuurder-goedkeuring" beskerming omseil.
'n Kombinasie van Certify en PSPKI modules kan gebruik word om 'n sertifikaat aan te vra, goed te keur, en af te laai:
Aanval 2
Verduideliking
In die vorige aanval is die Manage CA
-permissies gebruik om die EDITF_ATTRIBUTESUBJECTALTNAME2-vlag te aktiveer om die ESC6-aanval uit te voer, maar dit sal geen effek hê totdat die CA-diens (CertSvc
) herlaai word nie. Wanneer 'n gebruiker die Manage CA
toegangsreg het, is die gebruiker ook toegelaat om die diens te herlaai. Dit beteken egter nie dat die gebruiker die diens op afstand kan herlaai nie. Verder mag ESC6 nie uit die boks werk in die meeste opgedateerde omgewings as gevolg van die Mei 2022-sekuriteitsopdaterings.
Daarom word 'n ander aanval hier aangebied.
Vereistes:
Slegs
ManageCA
-toestemmingManage Certificates
-toestemming (kan vanafManageCA
verleen word)Sertifikaatsjabloon
SubCA
moet geaktiveer wees (kan vanafManageCA
geaktiveer word)
Die tegniek steun op die feit dat gebruikers met die Manage CA
en Manage Certificates
toegangsreg kan mislukte sertifikaataanvrae uitreik. Die SubCA
-sertifikaatsjabloon is kwesbaar vir ESC1, maar slegs administrateurs kan in die sjabloon inskryf. Dus kan 'n gebruiker versoek om in die SubCA
in te skryf - wat geweier sal word - maar daarna deur die bestuurder uitgereik sal word.
Misbruik
Jy kan jouself die toegangsreg Manage Certificates
gee deur jou gebruiker as 'n nuwe amptenaar by te voeg.
Die SubCA
templaat kan geaktiveer word op die CA met die -enable-template
parameter. Standaard is die SubCA
templaat geaktiveer.
Indien ons aan die voorvereistes vir hierdie aanval voldoen het, kan ons begin deur 'n sertifikaat aan te vra gebaseer op die SubCA
templaat.
Hierdie versoek sal geweier word, maar ons sal die privaatsleutel stoor en die versoek-ID neerskryf.
Met ons Bestuur CA
en Bestuur Sertifikate
, kan ons dan die mislukte sertifikaat versoek uitreik met die ca
bevel en die -issue-request <versoek ID>
parameter.
En uiteindelik kan ons die uitgereikte sertifikaat herwin met die req
bevel en die -herwin <versoek ID>
parameter.
NTLM Relay na AD CS HTTP-eindpunte - ESC8
Verduideliking
In omgewings waar AD CS geïnstalleer is, indien 'n webaanvraag-eindpunt kwesbaar bestaan en ten minste een sertifikaatsjabloon gepubliseer is wat domeinrekenaarinskrywing en klientverifikasie toelaat (soos die verstek Machine
-sjabloon), word dit moontlik vir enige rekenaar met die spooler-diens aktief om deur 'n aanvaller gekompromitteer te word!
Verskeie HTTP-gebaseerde inskrywingsmetodes word ondersteun deur AD CS, beskikbaar deur addisionele bedienerrolle wat administrateurs mag installeer. Hierdie koppelvlakke vir HTTP-gebaseerde sertifikaatinskrywing is vatbaar vir NTLM-relay-aanvalle. 'n Aanvaller kan vanaf 'n gekompromitteerde masjien enige AD-rekening naboots wat deur inkomende NTLM geoutentiseer word. Terwyl die slagofferrekening nageboots word, kan hierdie webkoppelvlakke deur 'n aanvaller benader word om 'n klientverifikasiesertifikaat aan te vra deur die User
of Machine
-sertifikaatsjablone te gebruik.
Die webinskrywingskoppelvlak (‘n ouer ASP-toepassing beskikbaar by
http://<kaserver>/certsrv/
), verstek na slegs HTTP, wat nie beskerming teen NTLM-relay-aanvalle bied nie. Daarbenewens staan dit uitdruklik slegs NTLM-outentisering toe deur sy Autorisasie-HTTP-kop, wat meer veilige outentiseringsmetodes soos Kerberos ontoelaatbaar maak.Die Sertifikaatinskrywingsdiens (CES), Sertifikaatinskrywingsbeleid (CEP) Webdiens, en Netwerktoestelinskrywingsdiens (NDES) ondersteun standaard onderhandelingsoutentisering via hul Autorisasie-HTTP-kop. Onderhandelingsoutentisering ondersteun beide Kerberos en NTLM, wat 'n aanvaller in staat stel om af te gradeer na NTLM-outentisering tydens relay-aanvalle. Alhoewel hierdie webdienste verstek na HTTPS ondersteun, beskerm HTTPS alleenlik nie teen NTLM-relay-aanvalle nie. Beskerming teen NTLM-relay-aanvalle vir HTTPS-dienste is slegs moontlik wanneer HTTPS gekombineer word met kanaalbinding. Ongelukkig aktiveer AD CS nie Uitgebreide Beskerming vir Outentisering op IIS nie, wat vereis word vir kanaalbinding.
'n Algemene probleem met NTLM-relay-aanvalle is die kort duur van NTLM-sessies en die onvermoë van die aanvaller om met dienste te interaksieer wat NTLM-ondertekening vereis.
Hierdie beperking word egter oorkom deur 'n NTLM-relay-aanval te benut om 'n sertifikaat vir die gebruiker te bekom, aangesien die geldigheidsperiode van die sertifikaat die duur van die sessie bepaal, en die sertifikaat gebruik kan word met dienste wat NTLM-ondertekening voorskryf. Vir instruksies oor die gebruik van 'n gesteelde sertifikaat, verwys na:
pageAD CS Account Persistence'n Ander beperking van NTLM-relay-aanvalle is dat 'n aanvallerbeheerde masjien deur 'n slagofferrekening geoutentiseer moet word. Die aanvaller kan óf wag óf probeer om hierdie outentisering af te dwing:
pageForce NTLM Privileged AuthenticationMisbruik
Certify se cas
tel geaktiveerde HTTP AD CS-eindpunte op:
Die msPKI-Enrollment-Servers
eiendom word deur ondernemingsertifikaatautoriteite (CA's) gebruik om Sertifikaat Inschrywingsdiens (CES) eindpunte te stoor. Hierdie eindpunte kan gepars en gelys word deur die werktuig Certutil.exe te gebruik:
```powershell Import-Module PSPKI Get-CertificationAuthority | select Name,Enroll* | Format-List * ```
Misbruik met Certify
Misbruik met Certipy
Die versoek vir 'n sertifikaat word standaard deur Certipy gedoen op grond van die templaat Machine
of User
, bepaal deur of die rekeningnaam wat oorgedra word, eindig in $
. Die spesifisering van 'n alternatiewe templaat kan bereik word deur die gebruik van die -template
parameter.
'N Tegniek soos PetitPotam kan dan gebruik word om outentisering af te dwing. Wanneer daar gewerk word met domeinbeheerders, is die spesifisering van -template DomainController
vereis.
Geen Sekuriteitsuitbreiding - ESC9
Verduideliking
Die nuwe waarde CT_FLAG_NO_SECURITY_EXTENSION
(0x80000
) vir msPKI-Enrollment-Flag
, bekend as ESC9, voorkom die inbedding van die nuwe szOID_NTDS_CA_SECURITY_EXT
sekuriteitsuitbreiding in 'n sertifikaat. Hierdie vlag word relevant wanneer StrongCertificateBindingEnforcement
ingestel is op 1
(die verstekinstelling), wat teenstrydig is met 'n instelling van 2
. Sy belangrikheid word verhoog in scenario's waar 'n swakker sertifikaatkartering vir Kerberos of Schannel benut kan word (soos in ESC10), aangesien die afwesigheid van ESC9 nie die vereistes sou verander nie.
Die omstandighede waarin hierdie vlag se instelling betekenisvol word, sluit in:
StrongCertificateBindingEnforcement
is nie aangepas na2
(met die verstekinstelling wat1
is) nie, ofCertificateMappingMethods
sluit dieUPN
-vlag in.Die sertifikaat is gemerk met die
CT_FLAG_NO_SECURITY_EXTENSION
-vlag binne diemsPKI-Enrollment-Flag
-instelling.Enige kliëntverifikasie EKU word deur die sertifikaat gespesifiseer.
GenericWrite
-toestemmings is beskikbaar oor enige rekening om 'n ander te compromitteer.
Misbruikscenario
Stel John@corp.local
het GenericWrite
-toestemmings oor Jane@corp.local
, met die doel om Administrator@corp.local
te compromitteer. Die ESC9
sertifikaatsjabloon, waarin Jane@corp.local
toegelaat word om in te skryf, is gekonfigureer met die CT_FLAG_NO_SECURITY_EXTENSION
-vlag in sy msPKI-Enrollment-Flag
-instelling.
Aanvanklik word Jane
se hasj verkry deur Shadow Credentials, danksy John
se GenericWrite
:
Daarna word Jane
se userPrincipalName
gewysig na Administrator
, met die doel om die @corp.local
domein gedeelte doelbewus weg te laat:
Hierdie wysiging oortree nie beperkings nie, aangesien Administrator@corp.local
onderskei bly as Administrator
se userPrincipalName
.
Hierna word die ESC9
sertifikaatsjabloon, wat as kwesbaar gemerk is, aangevra as Jane
:
Dit word opgemerk dat die sertifikaat se userPrincipalName
Administrator
weerspieël, sonder enige "object SID".
Jane
se userPrincipalName
word dan teruggekeer na haar oorspronklike, Jane@corp.local
:
Poging tot verifikasie met die uitgereikte sertifikaat lewer nou die NT-hash van Administrator@corp.local
op. Die bevel moet -domain <domain>
insluit weens die sertifikaat se gebrek aan domeinspesifikasie:
Swakke Sertifikaat Afbeeldings - ESC10
Verduideliking
Twee register sleutelwaardes op die domeinbeheerder word deur ESC10 genoem:
Die verstekwaarde vir
CertificateMappingMethods
onderHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel
is0x18
(0x8 | 0x10
), voorheen ingestel op0x1F
.Die verstek instelling vir
StrongCertificateBindingEnforcement
onderHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
is1
, voorheen0
.
Geval 1
Wanneer StrongCertificateBindingEnforcement
ingestel is as 0
.
Geval 2
Indien CertificateMappingMethods
die UPN
bit (0x4
) insluit.
Misbruik Geval 1
Met StrongCertificateBindingEnforcement
ingestel as 0
, kan 'n rekening A met GenericWrite
toestemmings benut word om enige rekening B te kompromiteer.
Byvoorbeeld, met GenericWrite
toestemmings oor Jane@corp.local
, poog 'n aanvaller om Administrator@corp.local
te kompromiteer. Die prosedure weerspieël ESC9, wat enige sertifikaatsjabloon toelaat om gebruik te word.
Aanvanklik word Jane
se hasj opgehaal deur Shadow Credentials, wat die GenericWrite
uitbuit.
Daarna word Jane
se userPrincipalName
verander na Administrator
, doelbewus om die @corp.local
gedeelte uit te sluit om 'n beperkingsoortreding te vermy.
Volgens hierdie, word 'n sertifikaat wat klientverifikasie moontlik maak aangevra as Jane
, met behulp van die standaard User
templaat.
Jane
se userPrincipalName
word dan teruggekeer na sy oorspronklike, Jane@corp.local
.
Die verifikasie met die verkrygte sertifikaat sal die NT-hash van Administrator@corp.local
lewer, wat die spesifisering van die domein in die bevel noodsaak as gevolg van die afwesigheid van domeinbesonderhede in die sertifikaat.
Misbruikgeval 2
Met die CertificateMappingMethods
wat die UPN
-bitvlag (0x4
) bevat, kan 'n rekening A met GenericWrite
-regte enige rekening B in gevaar stel wat 'n userPrincipalName
-eienskap ontbreek, insluitend masjienrekeninge en die ingeboude domein-administrateur Administrator
.
Hier is die doel om DC$@corp.local
in gevaar te stel, beginnende met die verkryging van Jane
se has through Shadow Credentials, deur die gebruik van die GenericWrite
.
Jane
se userPrincipalName
word toe dan gestel as DC$@corp.local
.
'n Sertifikaat vir klientverifikasie word aangevra as Jane
deur die verstek Gebruiker
templaat.
Jane
se userPrincipalName
word teruggekeer na sy oorspronklike waarde na hierdie proses.
Om te verifieer via Schannel, word Certipy se -ldap-shell
opsie gebruik, wat aandui dat die verifikasie suksesvol was as u:CORP\DC$
.
Deur die LDAP shell, stel opdragte soos set_rbcd
Resource-Based Constrained Delegation (RBCD) aanvalle in werking, wat moontlik die domeinbeheerder kan kompromitteer.
Hierdie kwesbaarheid strek ook na enige gebruikersrekening wat 'n userPrincipalName
kortkom of waar dit nie ooreenstem met die sAMAccountName
nie, met die verstek Administrator@corp.local
wat 'n primêre teiken is weens sy verhoogde LDAP-voorregte en die afwesigheid van 'n userPrincipalName
standaard.
Oordra NTLM na ICPR - ESC11
Verduideliking
As die CA-bediener nie ingestel is met IF_ENFORCEENCRYPTICERTREQUEST
nie, kan dit NTLM-oordra-aanvalle maak sonder om te onderteken via RPC-diens. Verwysing hier.
Jy kan certipy
gebruik om op te som of Enforce Encryption for Requests
gedeaktiveer is en certipy sal ESC11
kwesbaarhede wys.
Misbruik Scenario
Dit moet 'n relê-diens opstel:
Nota: Vir domeinbeheerders moet ons -template
spesifiseer in DomainController.
Of deur sploutchy se fork van impacket te gebruik:
Skeltoegang tot ADCS CA met YubiHSM - ESC12
Verduideliking
Administrateurs kan die Sertifikaatautoriteit opstel om dit op 'n eksterne toestel soos die "Yubico YubiHSM2" te stoor.
As 'n USB-toestel aan die CA-bediener gekoppel is via 'n USB-poort, of 'n USB-toestelbediener in die geval van die CA-bediener wat 'n virtuele masjien is, word 'n verifikasiesleutel (soms verwys as 'n "wagwoord") benodig vir die Sleutelbergingverskaffer om sleutels in die YubiHSM te genereer en te gebruik.
Hierdie sleutel/wagwoord word in die register onder HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword
in teks bewaar.
Verwysing na hier.
Misbruikscenario
As die CA se privaatsleutel op 'n fisiese USB-toestel gestoor word wanneer jy skeltoegang het, is dit moontlik om die sleutel te herwin.
Eerstens moet jy die CA-sertifikaat verkry (dit is openbaar) en dan:
OID Groep Skakel Misbruik - ESC13
Verduideliking
Die msPKI-Certificate-Policy
eienskap maak dit moontlik om die uitreikingsbeleid by die sertifikaatsjabloon te voeg. Die msPKI-Enterprise-Oid
voorwerpe wat verantwoordelik is vir die uitreikingsbeleide kan ontdek word in die Konfigurasie Naamkonteks (CN=OID,CN=Public Key Services,CN=Services) van die PKI OID-houer. 'n Beleid kan aan 'n AD-groep gekoppel word deur hierdie voorwerp se msDS-OIDToGroupLink
eienskap te gebruik, wat 'n stelsel in staat stel om 'n gebruiker te magtig wat die sertifikaat voorlê asof hy 'n lid van die groep is. Verwysing hier.
Met ander woorde, wanneer 'n gebruiker toestemming het om 'n sertifikaat in te skryf en die sertifikaat aan 'n OID-groep gekoppel is, kan die gebruiker die voorregte van hierdie groep erf.
Gebruik Check-ADCSESC13.ps1 om OIDToGroupLink te vind:
Misbruik Scenario
Vind 'n gebruikerspermissie wat dit kan gebruik certipy find
of Certify.exe find /showAllPermissions
.
As John
toestemming het om in te skryf vir VulnerableTemplate
, kan die gebruiker die voorregte van die VulnerableGroup
groep erf.
Al wat dit hoef te doen is om die sjabloon te spesifiseer, dit sal 'n sertifikaat kry met OIDToGroupLink regte.
Kompromittering van Bosse met Sertifikate Verduidelik in Passiewe Stem
Verbreek van Bosvertroue deur Gekompromitteerde CA's
Die konfigurasie vir kruisbos inskrywing is relatief maklik. Die wortel CA sertifikaat van die hulpbronbos word gepubliseer na die rekeningbosse deur administrateurs, en die ondernemings CA sertifikate van die hulpbronbos word bygevoeg tot die NTAuthCertificates
en AIA houers in elke rekeningbos. Om dit te verduidelik, verleen hierdie reëling die CA in die hulpbronbos volledige beheer oor alle ander bosse waarvoor dit PKI bestuur. Indien hierdie CA deur aanvallers gekompromitteer word, kan sertifikate vir alle gebruikers in beide die hulpbron- en rekeningbosse deur hulle gefabriseer word, wat dus die sekuriteitsgrens van die bos verbreek.
Inskrywingsregte Verleen aan Buitelandse Prinsipale
In multi-bos omgewings is versigtigheid nodig met betrekking tot Ondernemings CA's wat sertifikaatsjablone publiseer wat Geautehtiseerde Gebruikers of buitelandse prinsipale (gebruikers/groepe ekstern aan die bos waaraan die Ondernemings CA behoort) inskrywings- en wysigingsregte toelaat. Met die verifikasie oor 'n vertroue, word die Geautehtiseerde Gebruikers SID by die gebruiker se token deur AD gevoeg. Dus, indien 'n domein 'n Ondernemings CA besit met 'n sjabloon wat Geautehtiseerde Gebruikers inskrywingsregte toelaat, kan 'n sjabloon moontlik deur 'n gebruiker van 'n ander bos ingeskryf word. Net so, indien inskrywingsregte eksplisiet aan 'n buitelandse prinsipaal verleen word deur 'n sjabloon, word 'n kruisbos toegangsbeheer-verhouding daardeur geskep, wat 'n prinsipaal van een bos in staat stel om in te skryf in 'n sjabloon van 'n ander bos.
Beide scenario's lei tot 'n toename in die aanvalsoppervlak van die een bos na die ander. Die instellings van die sertifikaatsjabloon kan deur 'n aanvaller uitgebuit word om addisionele voorregte in 'n vreemde domein te verkry.
Last updated