U ovom članku, koji je napisan kao dio niza članaka posvećenih sigurnosti sustava Windows (u prošlom smo članku razgovarali o sigurnosti lozinki pohranjenih u GPP-u), upoznat ćemo se s prilično jednostavnom tehnikom za dobivanje jasnih lozinki svih korisnika koji rade na Windows sustavu Korištenje Open Source Mimikatz Utility.
odricanje. Informacije i tehnologije opisane u ovom članku trebaju se koristiti samo u svrhe informiranja i upoznavanja i ni u kojem slučaju se ne smiju koristiti za pristup računima, informacijama i sustavima trećih strana..sadržaj:
- Pohranite lozinke i hasheve u Windows memoriji
- Mimikatz koristimo za izvlačenje korisničkih lozinki s interneta lsass.exe
- Dobivanje korisničke lozinke s deponija Windows memorije
- Dohvaćanje korisničkih lozinki iz datoteka virtualnog računala i datoteka hibernacije
- Korištenje Mimikatz-a u napadima pass-the-hasha
- Kako zaštititi Windows od vađenja lozinki iz memorije putem mimikatza?
Pohranite lozinke i hasheve u Windows memoriji
Većina administratora sustava uvjerena je da Windows ne pohranjuje korisničke lozinke u jasnom tekstu, već samo u obliku hash-a. Iako danas postoji veliki broj alata koji mogu izvući hashe korisničke lozinke iz sustava, moguće je sa sigurnošću reći da kada koristi prilično složenu lozinku, a ne "iz rječnika", napadač praktički nema šanse da je podigne izravnom grubom silom ili na temelju već izračunatih hashe-a.
To je u principu točno, ali postoje razne nijanse u vezi s korisnicima koji su prijavljeni na određeni Windows sustav. Činjenica je da neki sistemski procesi u službene svrhe i dalje upotrebljavaju korisničke lozinke u otvorenom (ili šifriranom) obliku, a ne njihove hashe.
Tako, na primjer, mehanizam provjera autentičnosti (HTTP probaviti ovjera), koristi se za podršku SSO (Single Sign On), za svoj rad zahtijeva poznavanje unesene korisničke lozinke, a ne samo njegov hash (možete samo nagađati zašto su programeri ovo implementirali na ovaj način). Lozinke (naime, lozinke, a ne njihove šifre) korisnika u šifriranom obliku pohranjuju se u OS memoriji i, da budemo precizniji u procesnoj memoriji LSASS.EXE. Problem je što se šifriranje lozinke provodi pomoću standardnih Win32 funkcija LsaProtectMemory i LsaUnprotectMemory, koje su dizajnirane za šifriranje / dešifriranje određenog dijela memorije. Utility French Developers mimikatz omogućava vam primanje šifriranih podataka iz memorije i dešifriranje ih pomoću funkcije LsaUnprotectMemory, omogućavajući prikazivanje svih korisničkih računa ovlaštenih u sustavu i njihovih lozinki (u otvorenom, već dešifriranom obliku!). Da bi iskoristio ranjivost, napadač mora biti u mogućnosti priključiti posebnu biblioteku u postupak lsass.exe.
Preuzmite uslužni program mimikatz može biti ovdje: http://blog.gentilkiwi.com/mimikatz
Informacije. Mimikatz uslužni program otkriva većina antivirusnih programa i preglednika kao potencijalno opasan softver (hakerski program).Uslužni program mimikatz omogućuje vam da izvadite korisničke lozinke izravno iz memorije (ubrizgavanjem biblioteke sekurlsa.dll u lsass.exe), iz spremljenog spremnika memorije računala ili čak iz datoteke hibernacije..
Mimikatz koristimo za izvlačenje korisničkih lozinki s interneta lsass.exe
- Preuzmite i pokrenite Mimikatz.exe s povlasticama administratora (postoje x86 i x64 verzije uslužnog programa za odgovarajuće sustave)
- Pokrenite naredbe u kontekstu uslužnog programa
mimikatz # privilegija :: ispravljanje
mimikatz # sekurlsa :: prijavaPasswords full
(zadnja naredba za sve aktivne korisnike u sustavu prikazat će imena računa i njihove lozinke).
Kao što vidite, uslužni program nam je u jasnom tekstu pokazao super složenu lozinku korisnika! Sve je to zbog činjenice da je dopušteno korištenje načina uklanjanja pogrešaka na ovom računalu postavljanjem zastave SeDebugPrivilege za željeni postupak. U ovom načinu programi mogu primati pristup niskoj razini memoriji procesa koji se izvode u ime sustava.
Zamislite da je to terminalni poslužitelj na kojem mnogi korisnici istodobno rade i na kojem, između ostalog, postoji sesija poslovnog administratora. tj ako imate administratorska prava na jednom poslužitelju, čak možete presresti lozinku administratora domene.
primjedba. U lipnju 2017. mnoge su velike tvrtke u Rusiji, Ukrajini i drugim zemljama zaražene virusom ne-petya ransomware, koji je integrirani mimikatz modul koristio za prikupljanje lozinki korisnika i domena.primjedba. Ova tehnika neće raditi ako na sustavu postoji moderan antivirus koji blokira injekciju. U ovom slučaju morat ćete prvo izraditi memorijski deponij uređaja i već na drugom računalu "izvući" lozinke s njega za sesije svih korisnika.Dobivanje korisničke lozinke s deponija Windows memorije
Izbacivanje memorije za LSASS proces može se dobiti pomoću funkcije PowerShell Out-Minidump.ps1. Uvoz Out-Minidump funkciju u PoSh i izvadite LSASS procesnu memoriju:
Get-Process lsass | Out-Minidump
Rezultirajući odlagač memorije, u našem primjeru, je Lsass_592.dmp (prema zadanom se sprema u direktorij% windir \ system32%), morate je kopirati na drugo računalo koje ima uslužni program mimikatz i pokrenuti naredbu:
Mimikatz “sekurlsa :: minidump lsass_592.dmp”
Sljedećom naredbom dobivamo iz spremljenog memorijskog otpada popis korisnika koji rade u sustavu i njihove lozinke:
mimikatz # sekurlsa :: prijavaPasswords
Kao što vidite, ništa komplicirano.
Na taj način možete dobiti memorijsku kopiju s udaljenog računala pomoću psexec-a ili putem WinRM-a (ako imate administratorska prava) i iz njega izdvojiti korisničku lozinku.
Dohvaćanje korisničkih lozinki iz datoteka virtualnog računala i datoteka hibernacije
Samo naprijed. Pomoću jednostavnih manipulacija napadač lako može izvaditi korisničke lozinke iz datoteka smeštaja u memoriji, datoteke hibernacije sustava (hiberfil.sys) i. vmem datoteke virtualnih strojeva (zamjenske datoteke virtualnih strojeva i njihove snimke).
Da biste to učinili, potreban vam je paket ispravljanje pogrešaka alat za Windows (WinDbg), sam mimikatz i alat za pretvorbu .vmem u dump datoteku memorije (za Hyper-V to može biti vm2dmp.exe ili MoonSols Windows Memory Toolkit za vmem VMWare datoteke).
Na primjer, ako je potrebno, pretvorite swap datoteku vmem virtualnog stroja VMWare u dump, izvršite naredbu:
bin2dmp.exe "winrv2008r2.vmem" vmware.dmp
Učitavamo rezultirajući dump u WinDbg (Datoteka -> Open Crash Dump), učitavamo biblioteku mimikatz s imenom mimilib.dll (odaberite verziju ovisno o dubini bita sustava):
.učitati mimilib.dll
Tražimo postupak lsass.exe na deponiju:
!postupak 0 0 lsass.exe
I na kraju upišemo:
.postupak / r / p fffffa800e0b3b30
!mimikatz
i dobiti popis Windows korisnika i njihove lozinke u čistom tekstu.
Dobivanje lozinki Windows korisnika u otvorenom obliku pomoću uslužnog programa Mimikatz djeluje na sljedećim sustavima, uključujući one koji se izvode na različitim verzijama Hyper-V 2008/2012 i VMWare:
- Windows Server 2008/2008 R2
- Windows Server 2012 / R2
- Windows 7
- Windows 8
Korištenje Mimikatz-a u napadima pass-the-hasha
U slučaju da nije moguće dobiti lozinku korisnika, već samo njezin hash, Mimikatz se može upotrijebiti za takozvani napad pass-the-hash (ponovno korištenje hash-a). U ovom slučaju, hash se može koristiti za pokretanje procesa u ime korisnika. Na primjer, nakon što primi NTLM hash od korisnika, sljedeća naredba će pokrenuti naredbeni redak u ime povlaštenog računa:sekurlsa :: pth / korisnik: Administrator / domena: CORP / ntlm: NTLM hash / trčanje: cmd
Kako zaštititi Windows od vađenja lozinki iz memorije putem mimikatza?
U sustavima Windows 8.1 i Server 2012 R2 (i novijim verzijama) mogućnost izdvajanja lozinki putem LSASS-a donekle je ograničena. Dakle, ovi sustavi prema zadanom ne spremaju LM hash i lozinke u čist tekst u memoriju. Ista je funkcionalnost podržana u starijim verzijama sustava Windows (7/8 / 2008R2 / 2012), u koje je potrebno instalirati posebno ažuriranje KB2871997 (ažuriranje pruža druge mogućnosti za jačanje sigurnosti sustava) i u HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest grana postavite parametar DWORD registra UseLogonCredential jednak 0 (WDigest je onemogućen).
Ako nakon instalacije ažuriranja i UseLogonCredential ključa pokušate izvući lozinke iz memorije, vidjet ćete da mimikats ne može izvući lozinke i hasheve pomoću naredbe creds_wdigest.
Međutim, ako imate administratorska prava, možete jednostavno promijeniti ovaj ključ:
reg dodaj HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest / v UseLogonCredential / t REG_DWORD / d 1
Nakon toga ponovo možete pristupiti lozinkama u LSA memoriji.
Alat mimikatz ima i druge alate za dohvaćanje lozinki i njihovih heševa iz memorije (WDigest, LM-hash, NTLM-hash, Kerberos modul za hvatanje karata), stoga se preporučuje provođenje sljedećih mjera kao preporuka:
- Odbijte pohranjivanje lozinki pomoću Reverzibilnog šifriranja
- Onemogući NTLM
- Zabranite upotrebu spremljenih zaporki u Credential Manageru
- Onemogući vjerodostojne korisničke vjerodajnice domene (tipka CachedLogonsCount i interaktivna prijava: Broj prethodnih prijava za pravila keširanja)
- Ako funkcionalna razina domene nije niža od Windows Server 2012 R2, možete dodati administrativne račune posebnoj skupini zaštićenih korisnika
Prilikom testiranja mimkatz-a na Windows 10 Pro x64 s postavkama, mimkatz 2.0 je mogao dobiti hash-ove lozinke aktivnog korisnika (ali ne i lozinku u jasnom tekstu).
Na starijim sustavima trebate ograničiti dobivanje povlastice za uklanjanje pogrešaka i onemogućiti wdigest davatelja sigurnosti kroz registar. Za to u grani HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa pronađi ključ Sigurnosni pakets i uklonite liniju s popisa paketa wdigest. Međutim, morate shvatiti da napadač nije teško imati pravo na registraciju.
nalazi. Još jednom se prisjećamo zajedničkih istina:
- Ne koristite iste lozinke za različite usluge (posebno terminalne u vlasništvu trećih strana).
- Razmislite o sigurnosti svojih lozinki i podataka koji se nalaze na virtualnim strojevima u oblacima, jer ne možete biti sigurni tko još ima pristup hipervizorima i pohrani u kojoj se nalaze datoteke virtualnog računala.
- Smanjite na svojim sustavima broj računa koji imaju lokalna prava administratora (pogledajte vodič o osiguranju administrativnih računa u sustavu Windows)
- Nikada se ne prijavite s administratorskim računom domene na poslužitelje i računala dostupna drugim korisnicima.