Mimikatz támadások kivédése

Share this:

A Mimikatz alkalmazás kulcsfontosságú szerepet játszik a penetrációs tesztekben. Lényege, hogy a ramból tiszta és hashelt formában próbál kiszedni hitelesítő adatokat, így az egyik legjobb eszköz Windows rendszerek ellen. Jelentések szerint a támadók is előszeretettel használják, főleg, mivel a Metasploit Framework egyik moduljáról van szó. Annak ellenére, hogy még a Windows 2008 Servernél régebbi rendszerekre is van patch, még mindig hatékony. Óriási támadássorozatok, zsarolóvírusok és egyéb kártevők részét képezi.

TÖRTÉNETE

Benjamin Delpy a hotelszobájába igyekezett a President Hotelbe, Moszkvába. A szobájába lépve egy sötét öltönyös embert látott a gépe előtt.

Pár perccel ezelőtt egy 25 éves francia programozó jelentette, hogy problémák vannak a szoba internet kapcsolatával. Két nappal a beszéd előtt érkezett, amit egy közeli biztonsági konferencián rendeztek és megállapította, hogy nincs Wifi és az Ethernet csatlakozója is rossz. A személyzet ragaszkodott ahhoz, hogy várjanak meg egy szakembert, aki felmegy és megjavítja. Delpy visszautasította és visszament a szobájába.

Belépve megdöbbent a szobájában lévő ember láttán, aki levette a kezét a billentyűzetről. Elmondása szerint olyan volt az egész, mint egy kémfilmben. A gép még mindig zárt képernyőt mutatott, az öltönyös ember bocsánatot kért, arra hivatkozva, hogy véletlen rossz szobába ment. Delpy hamar rájött, hogy a laptopja azért volt célpont, mert forrásokat tartalmazott a moszkvai konferenciára, korai verzióját egy programnak, amit Mimikatz-nak hívott. Ez az erős hackereszköz arra lett tervezve, hogy a Windows memóriájából extrahálja a felhasználói jelszavakat, így folyamatos hozzáférést nyerve a számítógéphez, vagy más áldozatok fiókjához a hálózaton. Az Oroszok, mint egyéb hackerek világszerte, akarták Delpy forráskódját.

Az elmúlt években Delpy nyilvánosságra hozta a kódot, és a Mimikatz számos hacker eszközévé vált, lehetővé téve a támadóknak, hogy olyan gyorsan átugorjanak a hálózaton lévő más gépekre, amilyen gyorsan hozzáférést szereztek a kezdetihez. A közelmúltban szerepet kapott globális támadásokban is, mint például a BadRabbit féreg és a WannaCry zsarolóvírus. Része volt még NotPetya nevezetü zsarolóvírusnak is, ami önmagában milliárd dolláros károkat okozott nagyvállalatoknál mint a Maersk, FedEx.

Delpy eredeti célja az volt, hogy megmutassa mennyire sebezhető a Windows és csak egy mellékprojekt lett volna. Nem a támadóknak készítette el a kódot. Célját elérte, a operációs rendszer újabb verzióiban változtattak a hitelesítési rendszeren, így lényegesen nehezebb Mimikatz módszerrel jelszavakhoz jutni.

MŰKÖDÉSE ÉS VÉDEKEZÉS ELLENE

A „WDigest” nevű Windows funkciót képes kihasználni egy funkciója, ami eredetileg a felhasználók életét könnyítené meg, azzal, hogy csak egyszer kell megadniuk a felhasználónevük és jelszavuk, melyet aztán automatikusan használ, amint hálózati vagy internetes alkalmazásoknak szüksége van rá. A rendszer ezt úgy éri el hogy a jelszó titkosított változatát tárolja a memóriában, és mellette a titkos kulcsot amivel vissza tudja fejteni. „Olyan ez, mintha jelszóval védett titkot tárolnánk e-mailben, a jelszóval egy helyen” – monja Delpy. Asztali vonalon Windows 8.0-ig, szerver vonalon Windows Server 2012-ig alapértelmezetten engedélyezve van a WDigest. Ezt Mimikatzban sekurlsa::wdigest paranccsal ellenőrizhetjük.

Registryben a „UseLogonCredential” és a „Negotiate” kulcsok értékét 0-ra kell állítani.

(HKEY_LOCAL_MACHINE\System\CurentControlSet\Control\SecurityProviders\WDigest alatt találjuk meg őket. UseLogonCredential kulcsot Windows Server 2016-tól és Windows 10-től nem fogunk találni)

A Mimikatznak szüksége van hibakereső jogkörre, ami annyit tesz, hogy van jogunk minden folyamathoz hibakeresőt csatolni. Ezt az alkalmazásban a privilege::debug parancsot kiadva ellenőrizhetjük.

Tiltsuk le a „SeDebugPrivilege” jogkört a Biztonsági házirend-beállításoknál, így az esetleges támadók nem lesznek képesek kihasználni a Mimikatz nyújtotta lehetőségeket.

(Több infó: https://msdn.microsoft.com/hu-hu/library/dn221963(v=ws.11).aspx)

A Local Security Authority Subsystem Service, azazLSASS” Windows alatt a helyi és távoli bejelentkezéseket érvényesíti. Az LSASS memóriájában tárolt adatokat (jelszavakat, felhasználói adatokat) képes kiolvasni a Mimikatz.

A sekurlsa::logonPassword parancsot kiadva listázza is nekünk a jelszavakat és egyéb hitelesítő adatokat.

Ha tehetjük aktiváljuk az LSA védelmet ami megakadályozza a Mimikatz számára a hozzáférést a szükséges memóriahelyekhez. Ehhez a „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL” kulcs értékét kell 1 re állítanunk.

Előfordulhat, hogy a támadó rendszergazdai jogosultságot szerez és változtat ezeken a beállításokon. A fentieket érdemes rendszeresen ellenőrizni, ha változtak nagy valószínűséggel támadás áldozatai lettünk.

Korlátozott admin mód: Windows Server 2012 R2-ben bemutattak egy biztonsági frissítést ami megakadályozza, hogy az Adminisztrátor tiszta szöveges hitelesítő adatai az LSASS-ban tárolódjanak, RDP munkamenet során. Az LSA védelem mellett szükséges ezt is használni, ha egy támadás során kikapcsolnák az előbbit.

DisableRestrictedAdmin” kulcsot kell létrehozni 0-ás értékkel és „DisableRestrictedAdminOutboundCred” kulcsot 1-es értékkel a következő helyen:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\”

Érvényesíteni kell a „Restrict delegation of credentials to remote server” házirendet, hogy a kimenő RDP kapcsolatok a Korlátozott Admin módot használják. Kapcsoljuk be a „Require Restricted Admin” módot távoli elérésnél.

A tartományvezérlő kiesése esetére a Windows az utolsó 10 jelszó hashet tárolja, hogy hitelesíteni tudja a felhasználókat. Ezt a Mimikatz képes kiolvasni a registryből az lsadump::cache paranccsal.

Éppen ezért, ajánlott ezt a gyorsítótárat tiltani:

Control Panel → Administrative Tools → Local Security Policy → Local Policies → Security Options → Interactive Logon: Number of previous logon to cache → értéket 0-ra állítani.

A Windows Server 2012 (frissítéssel elérhetővé tették régebbi Windows verziók is) már alapértelmezésben tartalmaz egy „Védett felhasználók” névű biztonsági csoportot. A funkció lehetővé teszi a tartományi rendszergazdáknak, hogy megvédjék a privilegizált felhasználókat. A csoport tagjait csak Kerberossal hitelesítik, ami segít kivédeni a jelszó hashek szivárgását, illetve a tiszta szöveg formátumú hitelesítő adatokat. Magas jogosultságú felhasználói fiókokat érdemes beletenni, melyeket előszeretettel támadnak rosszindulatú szereplők.

A védett felhasználói fiókok listáját az alábbi helyen módosíthatjuk: „Administrative Tools → Active Directory Users and Computers

Vagy PowerShellel hozzáadhatunk felhasználókat: „Add-ADGroupMember -Identity ‘Protected Users’ -Members <felhasználó neve>”

A védelem következő lépcsőjét jelenti a fejlett végpontvédelem (Pl.: Sophos EndUser Protection, Palo Alto Networks TRAPS, Symantec Endpoint Protection vagy Carbon Black). Ha mégis egy támadó átírná a Registry kulcsokat, célszerű Blue Team megfigyelést alkalmazni, hogy hamar fény derüljön a támadásra.

 

Több információért érdemes megnézni Delpy blogját: http://blog.gentilkiwi.com/mimikatz

Other Posts