Mimikatz Izdvoji korisničke lozinke za Windows iz memorije u jasnom tekstu

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
primjedba. Usput, funkcionalnost mimikatz-a već je implementirana u Metasploit Framework.

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
vijeće. Detaljan članak o načinima zaštite memorije Windows sustava od vađenja lozinki i heševa - Metode zaštite od mimikatza u Windows domeni

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.