Strokovno podrocje

Active Directory Security

Napadi, ki jih vidim v 90% slovenskih podjetij. Od začetnega dostopa do Domain Admin v nekaj urah.

Active Directory je hrbtenica večine poslovnih omrežij - in najpogostejša pot do popolne kompromitacije. V svojih testih vidim iste napačne konfiguracije v 90% slovenskih podjetij. Napake, ki napadalcu omogočijo prehod od navadnega uporabnika do popolnega nadzora v nekaj urah.

Zakaj Active Directory vedno odpove

Problem ni tehnologija sama po sebi. Problem je v letih nakopičene tehnične dolžnice, "začasnih" rešitvah ki so postale trajne, in pomanjkanju razumevanja kako napadalci dejansko razmišljajo.

Revizorji gledajo konfiguracije. Jaz gledam poti. Konfiguracija je lahko "pravilna" po vseh standardih in še vedno omogoča popoln kompromis. To je bistvena razlika med compliance pristopom in pristopom napadalca.


NTLM Relay napadi

NTLM je zastareli avtentikacijski protokol, ki ga večina okolij še vedno uporablja za združljivost. Problem? NTLM avtentikacijo je mogoče prestrezati in posredovati drugim sistemom.

Kako deluje

Ko se uporabnik poskuša avtenticirati proti napadalčevemu sistemu (preko SMB, HTTP, LDAP), napadalec to avtentikacijo posreduje legitimnemu strežniku. Strežnik misli, da se avtenticira prvotni uporabnik.

Pogoji za uspešen napad

  • SMB podpisovanje onemogočeno - Privzeto onemogočeno na večini sistemov razen domenskih krmilnikov
  • LLMNR/NBT-NS omogočen - Privzeto omogočeno v Windows okoljih, omogoča prestrezanje poizvedb
  • IPv6 ni upravljan - Napadalec postane DHCPv6 strežnik in preusmeri promet
  • WebDAV omogočen - Omogoča relay preko HTTP, obide SMB podpisovanje

Tarče za relay

  • LDAP(S) - Kreiranje uporabnikov, spreminjanje članstev skupin, Resource-Based Constrained Delegation (RBCD)
  • SMB - Izvajanje ukazov na oddaljenih sistemih
  • ADCS (Active Directory Certificate Services) - Izdajanje certifikatov za prestrezene uporabnike (ESC8)
  • HTTP - Exchange, SCCM, druge spletne storitve

Zaščita

  • Omogočite SMB podpisovanje na vseh sistemih (ne samo DC)
  • Onemogočite LLMNR in NBT-NS preko GPO
  • Implementirajte EPA (Extended Protection for Authentication)
  • Onemogočite NTLM kjer je mogoče, uporabite Kerberos
  • Upravljajte IPv6 ali ga popolnoma onemogočite

Kerberos napadi

Kerberos je privzeti avtentikacijski protokol v Active Directory. Kljub temu da je varnejši od NTLM, ima svoje ranljivosti - večinoma zaradi napačnih konfiguracij in slabih gesel.

Kerberoasting

Kateri koli uporabnik domene lahko zahteva TGS (Ticket Granting Service) vstopnico za storitvene račune (račune s SPN - Service Principal Name). Ta vstopnica je šifrirana z geslom storitvenega računa.

Napad: Zahtevam TGS za vse storitvene račune, prenesem jih offline, in razbijem gesla. Če ima storitveni račun šibko geslo (kar ima večina), ga razbijem v minutah.

Zakaj je kritično: Storitveni računi pogosto imajo privilegije Domain Admin ali dostop do kritičnih sistemov. In pogosto imajo gesla, ki se niso spremenila leta.

AS-REP Roasting

Če ima uporabniški račun omogočeno "Ne zahtevaj Kerberos pred-avtentikacije" (DONT_REQUIRE_PREAUTH), lahko napadalec zahteva AS-REP brez poznavanja gesla. Ta odgovor je šifriran z uporabnikovim geslom.

Napad: Poiscem račune brez pred-avtentikacije, zahtevam AS-REP, razbijem geslo offline.

Delegacija

Kerberos delegacija omogoča storitvi, da deluje v imenu uporabnika. Obstajajo tri vrste:

  • Neomejena delegacija (Unconstrained) - Strežnik lahko pridobi TGT katerega koli uporabnika, ki se poveže. Če pridobim dostop do takega strežnika, lahko počakam na administratorja in ukradem njegov TGT.
  • Omejena delegacija (Constrained) - Strežnik lahko delegira samo določenim storitvam. Vendar lahko napadalec z dostopom do takega računa delegira do katerekoli storitve na seznamu.
  • Resource-Based Constrained Delegation (RBCD) - Konfigurirana na ciljnem računu. Če lahko spreminjam atribut msDS-AllowedToActOnBehalfOfOtherIdentity, lahko konfiguriram delegacijo do tega računa.

Zaščita pred Kerberos napadi

  • Uporabite Group Managed Service Accounts (gMSA) - 240-znakovna kompleksna gesla, ki se samodejno menjajo
  • Zahtevajte Kerberos pred-avtentikacijo za vse račune
  • Izogibajte se neomejeni delegaciji - uporabite omejeno ali RBCD
  • Nadzorujte SPN-je na uporabniških računih
  • Implementirajte dolga, kompleksna gesla za storitvene račune (25+ znakov)

Active Directory Certificate Services (ADCS) napadi

ADCS je pogosto prezrt, a izjemno močan vektor napada. Napačno konfiguriran ADCS lahko napadalcu omogoči izdajo certifikatov za kateregakoli uporabnika - vključno z Domain Admini.

Najpogostejše ranljivosti (ESC1-ESC8)

ESC1 - Napačna konfiguracija predloge certifikata

Predloga omogoča zahtevajočemu, da specificira alternativno ime (SAN). Napadalec zahteva certifikat za Domain Admina.

ESC4 - Ranljiva ACL na predlogi

Napadalec lahko spreminja predlogo certifikata in jo spremeni v ranljivo verzijo (ESC1).

ESC6 - EDITF_ATTRIBUTESUBJECTALTNAME2

Ta zastavica omogoča zahtevajočemu, da doda SAN katerikoli zahtevi. Če je omogočena, je vsaka predloga ranljiva.

ESC8 - NTLM Relay do ADCS Web Enrollment

Če ima ADCS web enrollment omogočen HTTP (brez HTTPS ali EPA), lahko napadalec posreduje NTLM avtentikacijo in pridobi certifikat za žrtev.

Posledice

Z veljavnim certifikatom za Domain Admina lahko:

  • Avtenticiram kot Domain Admin preko PKINIT
  • Uporabim certifikat za UnPAC-the-hash in pridobim NTLM hash
  • Persistence - certifikati so veljavni leta, tudi če se geslo spremeni

Zaščita ADCS

  • Revidirajte vse predloge certifikatov - odstranite možnost dodajanja SAN
  • Omejite enrollment pravice na minimalno potrebne
  • Omogočite Manager Approval za občutljive predloge
  • Onemogočite EDITF_ATTRIBUTESUBJECTALTNAME2
  • Zahtevajte HTTPS in EPA za web enrollment

Pot do Domain Admin - realni scenarij

Tipičen napad v slovenskem podjetju poteka takole:

  1. Začetni dostop - Phishing, VPN s kompromitiranimi poverilnicami, izpostavljeni servis
  2. Enumeracija - BloodHound analiza, iskanje napačnih konfiguracij
  3. Kerberoasting - Pridobim hash storitvenega računa z lokalnimi admin pravicami
  4. Password cracking - Geslo "Pomlad2024!" razbito v 30 sekundah
  5. Lateralno premikanje - Dostop do strežnika z LSASS dump
  6. Credential harvesting - NTLM hash Domain Admina v pomnilniku
  7. DCSync - Replikacija vseh hashev iz domenskega krmilnika
  8. Golden Ticket - Trajni dostop, ki preživi spremembe gesel

Celoten proces? 2-4 ure od začetnega dostopa do popolne kompromitacije domene.


Kaj dejansko deluje za zaščito

Tiered Administration Model

Ločite administrativne račune glede na občutljivost sistemov:

  • Tier 0 - Domenski krmilniki, ADCS, Azure AD Connect
  • Tier 1 - Strežniki, aplikacije
  • Tier 2 - Delovne postaje, uporabniki

Tier 0 admin se nikoli ne prijavi na Tier 2 sistem. Če to naredi, napadalec na delovni postaji pridobi Tier 0 poverilnice.

Local Administrator Password Solution (LAPS)

Unikatno, naključno geslo lokalnega administratorja na vsaki delovni postaji. Brez LAPS, eno kompromitirano geslo omogoča dostop do vseh sistemov z enakim geslom.

Protected Users skupina

Člani te skupine imajo dodatne zaščite:

  • NTLM avtentikacija onemogočena
  • Kerberos delegacija onemogočena
  • TGT veljavnost zmanjšana na 4 ure
  • Poverilnice se ne shranjujejo v LSASS

Credential Guard

Izolira LSASS v virtualizirani enklavi. Tudi z administratorskim dostopom napadalec ne more dumpati poverilnic iz pomnilnika.


Moj pristop k AD penetracijskemu testiranju

Ne izvajam samo skeniranja. Simuliram realnega napadalca:

  • BloodHound analiza - Vizualizacija vseh napadalnih poti do visokih privilegijev
  • Ročna eksploatacija - Ne zanašam se samo na orodja, razumem vsak korak
  • Proof of Concept - Pokažem dejanski vpliv, ne samo teoretično ranljivost
  • Remediacija - Konkretna, prioritizirana priporočila za odpravo

Potrebujete AD varnostni pregled?

Preverite, ali vaše Active Directory okolje vsebuje napačne konfiguracije, ki jih napadalci izkoriščajo.