Načini zaščite pred mimikatzom v domeni Windows

Konec junija 2017 si je IT-skupnost zapomnila po množični okužbi številnih največjih podjetij in vladnih agencij v Rusiji, Ukrajini in drugih državah z novim virusom odkupne programske opreme Petya (NotPetya). Po večini primerov se je Petya po prodoru v korporativno omrežje takoj razširila na vse računalnike in domenske strežnike ter tako ohromila do 70-100% celotne infrastrukture Windows. Čeprav je bil eden od načinov za distribucijo Petye med računalniki v omrežju uporaba izkoriščanja EternalBlue (tako kot pri WannaCry), to ni bil glavni kanal distribucije ransomware. Za razliko od WCryja, ki je bil distribuiran izključno zaradi ranljivosti v SMBv1, je bil NotPetya prvotno zaprt zaradi korporativnih omrežij. Po okužbi sistema je šifrir, ki uporablja javni pripomoček Mimikatz, prejel poverilnice (gesla, heše) računalniških uporabnikov in jih uporabil za nadaljnjo distribucijo po omrežju z uporabo WMI in PsExec, do popolnega nadzora nad domeno. V skladu s tem za zaščito vseh sistemov ni bilo dovolj za namestitev posodobitve MS17-010.

V tem članku bomo razpravljali o osnovnih metodah zaščite sistemov Windows v domeni Active Directory pred napadi z orodji, podobnimi Mimikatz..

Uporabnost Mimikatz Z modulom sekurlsa omogoča ekstrahiranje gesel in hešov pooblaščenih uporabnikov, shranjenih v sistemskem pomnilniku LSASS.EXE (Storitev lokalnega varnostnega podsistema ) Že smo imeli članek s primerom uporabe mimikatz za pridobivanje gesel uporabnikov v jasnem besedilu (iz WDigest, LiveSSP in SSP).

Vsebina:

  • Prepreči odpravljanje napak
  • Onemogočanje WDigest-a
  • Zaščita LSA pred moduli drugih proizvajalcev
  • Onemogočanje LM in NTLM
  • Prepoved uporabe reverzibilnega šifriranja
  • Uporaba skupine zaščitenih uporabnikov
  • Ne uporabljajte shranjenih gesel
  • Zavrni zaupno predvajanje
  • Varnostnik zaupnika
  • Sklepi

Prepreči odpravljanje napak

Članek s zgornje povezave prikazuje, kako z uporabo privilegij za odpravljanje napak omogoča Mimikatz dostop do sistemskega procesa LSASS in iz njega izvleče gesla.

Dovoljenja za dostop do napak so dodeljena lokalni skupini skrbnikov (BUILTIN \ Administrators). Čeprav v 99% primerov ta privilegij absolutno ne uporabljajo skrbniki (običajno jih potrebujejo sistemski programerji), je zaradi varnostnih razlogov možnost uporabe privilegij SeDebugPrivilege bolje. To se izvede s skupinsko politiko (lokalno ali domensko). Pojdite na razdelek Konfiguracija računalnika -> Nastavitve sistema Windows -> Varnostne nastavitve -> Lokalne politike -> Dodelitev pravic uporabnikom in omogočite politiko Program za odpravljanje napak. V njej morate dodati domensko skupino uporabnikov, ki morda potrebujejo pravice za odpravljanje napak (običajno razvijalci) ali pa pustite to skupino prazno, da nihče nima te pravice.

Če poskusite odpraviti napako prek mimikatza, se prikaže napaka:

EROOR kuhl_m_privilege_simple; RtlAdjustPrivilege (20) c0000061

Opomba. Vendar je mogoče omejitve, ki jih nalaga ta politika, zlahka zaobiti - povezava.

Onemogočanje WDigest-a

Protokol WDigest se je pojavil v operacijskem sistemu Windows XP in je bil uporabljen za izvajanje overjanja HTTP Digest Authentication (HTTP Digest Authentication), katerega lastnost je bila uporaba uporabniškega gesla v jasni obliki. Windows 8.1 in Server 2012 R2 sta dodala možnost popolne prepovedi shranjevanja gesel v jasnem besedilu v LSASS. Da bi prepovedali shranjevanje WDigest-a v pomnilniku, v teh OS-jih v podružnici registra HKEY_LOCAL_MACHINE \ Sistem \ CurrentControlSet \ Control \ SecurityProviders \ WDigest že obstaja ime DWORD32 UseLogonCredential in vrednost 0.

Če morate popolnoma onemogočiti način preverjanja pristnosti WDigest, v isti veji (HKEY_LOCAL_MACHINE \ Sistem \ CurrentControlSet \ Control \ SecurityProviders \ WDigest) nastavite ključno vrednost Pogajati v 0.

Za podporo te funkcije v sistemih Windows 7, 8 in Windows Server 2008 R2 / 2012 morate namestiti posebno posodobitev - KB2871997 in nato nastaviti iste registrske ključe. V domenskem okolju je nastavitve registra najlažje distribuirati z uporabo skupinske politike.

Namig. Če zavrnete shranjevanje WDigest-a v pomnilnik, je najprej vredno preizkusiti pravilnost pooblastil uporabnikov in aplikacij na IIS strežnikih.

Zaščita LSA pred moduli drugih proizvajalcev

Windows 8.1 in Windows Server 2012 R2 sta predstavila možnost omogočanja zaščite LSA, ki ščiti LSA spomin in preprečuje možnost povezave nanj iz nevarnih procesov. Če želite omogočiti to zaščito, morate v podružnici registra HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ LSA ustvari parameter RunAsPPL z vrednostjo 1.

Po uporabi tega parametra napadalec ne bo mogel dostopati do pomnilnika LSA in mimikatz bo izdal napako z ukazom securlsa :: logonpassword

NAPAKA kuhl_m_securlsa_acquireLSA: Rokovanje s pomnilnikom (0x00000005).

Onemogočanje LM in NTLM

Zastareli protokol za preverjanje pristnosti LM in s tem shranjevanje LM hešes morata biti onemogočena z uporabo pravilnika skupine Network Security: Ne shranjujte vrednosti loputa menedžerja LAN pri naslednji spremembi gesla (na ravni privzete politike domene).

Nato morate opustiti uporabo vsaj protokola NTLMv1 (pravilnik pod Konfiguracija računalnika -> Politike -> Nastavitve sistema Windows -> Varnostne nastavitve -> Lokalne politike -> Varnostne možnosti  -  Varnost omrežja: Omejite NTLM: overjanje NTLM v tej domeni), in kot največ in NTLMv2

In če je zavrnitev NTLMv1 običajno neboleča, bo treba za zavrnitev NTLMv2 trdo delati. V velikih infrastrukturah praviloma pridejo do scenarija največje omejitve uporabe NTLMv2. I.e. kjer koli je mogoče, je treba uporabiti Kerberos avtentikacijo (praviloma bo potreben dodaten čas za konfiguriranje avtentikacije Kerberos v IIS in SQL), na preostalih sistemih pa - NTLMv2.

Prepoved uporabe reverzibilnega šifriranja

Izrecno bi moralo biti prepovedano shranjevanje uporabniških gesel v AD v besedilni obliki. Če želite to narediti, omogočite domensko politiko Shranite geslo z uporabo reverzibilne enkripcije za vse uporabnike v domeni v konfiguraciji računalnika -> nastavitve sistema Windows -> varnostne nastavitve -> pravilniki računa -> razdelek »Politika gesla« in nastavite njegovo vrednost na onemogočeno.

Uporaba skupine zaščitenih uporabnikov

Pri uporabi funkcionalne ravni domene Windows Server 2012 R2 je za zaščito privilegiranih uporabnikov mogoče uporabiti posebno zaščiteno skupino Zaščiteni uporabniki. Zlasti so ti računi zaščiteni pred ogrožanjem zaradi dejstva, da se člani te skupine lahko prijavijo samo prek Kerberosa (brez NTLM, WDigest in CredSSP) itd. (podrobnosti na zgornji povezavi). Priporočljivo je, da tej skupini dodate račune skrbnikov domen, strežnikov itd. Ta funkcionalnost deluje na strežnikih in bo delovala v sistemu Windows Server 2012 R2 (za Windows Server 2008 R2 morate namestiti zgoraj navedeno posodobitev KB2871997)

Ne uporabljajte shranjenih gesel

Uporabnikom domen lahko preprečite shranjevanje gesel za dostop do omrežnih virov v upravitelju poverilnic.

Če želite to narediti, omogočite pravilnik Dostop do omrežja: Ne dovolite shranjevanja gesel in poverilnic za preverjanje pristnosti omrežja  pod Konfiguracija računalnika -> Nastavitve sistema Windows -> Varnostne nastavitve -> Lokalne politike -> Varnostne možnosti.

<Opomba. Upoštevajte, da bo tudi uporaba shranjenih gesel pri nalogah planerja prepovedana..

Zavrni zaupno predvajanje

Ena od značilnosti mimikatov je pridobivanje hash uporabniških gesel iz podružnice registra HKEY_LOCAL_MACHINE \ SECURITY \ Predpomnilnik, v katero se shranijo razpršitve za geslo zadnjih 10 (privzeto) uporabnikov domen, ki so se prijavili. Ti razpršilniki se običajno uporabljajo za avtorizacijo uporabnikov v sistemu, če krmilnik domene ni na voljo.

Priporočljivo je, da se z omogočanjem politike prepove uporaba shranjevanja predpomnjenih podatkov Interaktivni Prijava: Številka od prejšnji logotipi do predpomnilnik (v primer domena krmilnik je ne na voljo) pod Konfiguracija računalnika -> Nastavitve sistema Windows -> Lokalna politika -> Varnostne možnosti, spremenite vrednost svojega parametra v 0.

Poleg tega morate v podružnici pospešiti čiščenje pomnilnika postopka lsass iz uporabniških računov, ki so končali sejo. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa morate ustvariti tipko DWORD z imenom TokenLeakDetectDelaySecs in vrednost 30. I.e. pomnilnik bo izbrisan 30 sekund po uporabnikovem logotipu. V operacijskem sistemu Windows 7, 8 / Server 2008R2, 2012 morate za delovanje tega ključa namestiti prej omenjeno posodobitev KB2871997.

Varnostnik zaupnika

V sistemu Windows 10 Enterprise, Windows Server 2016, je bila dodana nova komponenta Credential Guard, ki izolira in ščiti sistemski proces LSASS pred nepooblaščenim dostopom. Podrobnosti tukaj.

Sklepi

Zgoraj obravnavani ukrepi bodo znatno zmanjšali zmožnosti mimikatza in podobnih pripomočkov za pridobivanje gesel in hešov skrbnikov iz postopka LSASS in registra. Vsekakor jih je treba pri odločanju o izvajanju teh politik in metod uvajati v fazah z obveznim testiranjem..

V naslednjem članku bomo preučili najboljše prakse za izboljšanje varnosti sistema Windows z omejevanjem uporabe skrbniških računov, ki naj bi na tehnični in organizacijski ravni izboljšali zaščito domene Windows pred takšnimi napadi. Spremljajte nas!