Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Eskalacija privilegija je korištenje trenutnih prava računa od strane napadača za dobivanje dodatne, obično više razine pristupa sustavu. Iako eskalacija privilegija može biti rezultat iskorištavanja zero-day ranjivosti, ili rada prvoklasnih hakera koji provode ciljani napad, ili vješto prikrivenog zlonamjernog softvera, to je najčešće zbog pogrešne konfiguracije računala ili računa. Daljnjim razvojem napada, napadači koriste niz pojedinačnih ranjivosti, koje zajedno mogu dovesti do katastrofalnog curenja podataka.

Zašto korisnici ne bi trebali imati prava lokalnog administratora?

Ako ste stručnjak za sigurnost, može se činiti očiglednim da korisnici ne bi trebali imati prava lokalnog administratora, budući da je ovo:

  • Čini njihove račune ranjivijima na razne napade
  • Čini te iste napade mnogo težim

Nažalost, za mnoge organizacije ovo je još uvijek vrlo kontroverzno pitanje i ponekad je popraćeno žestokim raspravama (vidi, na primjer, moj upravitelj kaže da svi korisnici moraju biti lokalni administratori). Ne ulazeći u detalje ove rasprave, vjerujemo da je napadač stekao lokalna administratorska prava na sustavu koji se istražuje, bilo kroz exploit ili zato što strojevi nisu bili dobro osigurani.

Korak 1. Obrnuti DNS razrješenje pomoću PowerShell-a

Prema zadanim postavkama, PowerShell je instaliran na mnogim lokalnim radnim stanicama i na većini Windows poslužitelja. I dok se ne bez pretjerivanja smatra nevjerojatno korisnim alatom za automatizaciju i kontrolu, jednako je sposoban pretvoriti se u gotovo nevidljiv malware bez datoteka (hakerski program koji ne ostavlja tragove napada).

U našem slučaju, napadač počinje s izviđanjem mreže pomoću skripte PowerShell, uzastopno ponavljajući prostor IP adrese mreže, pokušavajući utvrditi rješava li se dani IP na host, i ako jest, koji je mrežni naziv tog hosta.
Postoji mnogo načina da se izvrši ovaj zadatak, ali pomoću cmdleta Dobiti-ADComputer je pouzdana opcija jer vraća stvarno bogat skup podataka o svakom čvoru:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

Ako je brzina na velikim mrežama problem, može se koristiti obrnuti poziv DNS sustava:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Ova metoda enumeracije hostova na mreži vrlo je popularna jer većina mreža ne koristi sigurnosni model nultog povjerenja i ne nadzire interne DNS upite za sumnjive rafalne aktivnosti.

Korak 2: Odaberite metu

Krajnji rezultat ovog koraka je dobivanje popisa imena poslužitelja i radnih stanica koji se mogu koristiti za nastavak napada.

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Iz imena se poslužitelj 'HUB-FILER' čini kao dostojna meta, jer Tijekom vremena, datotečni poslužitelji imaju tendenciju nakupljanja velikog broja mrežnih mapa i pretjeranog pristupa previše ljudi njima.

Pregledavanje Windows Explorerom omogućuje nam da utvrdimo da postoji otvorena dijeljena mapa, ali joj naš trenutni račun ne može pristupiti (vjerojatno imamo samo prava na popis).

Korak 3: Naučite ACL-ove

Sada na našem HUB-FILER hostu i ciljnom dijeljenju možemo pokrenuti PowerShell skriptu da dobijemo ACL. To možemo učiniti s lokalnog računala, budući da već imamo lokalna administratorska prava:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

Rezultat izvršenja:

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Iz njega vidimo da grupa Domain Users ima pristup samo popisu, ali Helpdesk grupa također ima pravo uređivanja.

Korak 4: Identifikacija računa

Trčanjem Get-ADGroupMember, možemo dobiti sve članove ove grupe:

Get-ADGroupMember -identity Helpdesk

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Na ovom popisu vidimo račun računala koji smo već identificirali i kojem smo već pristupili:

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Korak 5: Koristite PSExec za pokretanje kao račun računala

PsExec iz Microsoft Sysinternals omogućuje vam izvršavanje naredbi u kontekstu SYSTEM@HUB-SHAREPOINT računa sustava, za koji znamo da je član Helpdesk ciljne skupine. Odnosno, samo trebamo učiniti:

PsExec.exe -s -i cmd.exe

Pa, onda imate potpuni pristup ciljnoj mapi HUB-FILERshareHR, budući da radite u kontekstu računalnog računa HUB-SHAREPOINT. Uz ovaj pristup, podaci se mogu kopirati na prijenosni uređaj za pohranu ili na neki drugi način dohvatiti i prenijeti preko mreže.

Korak 6: Otkrivanje ovog napada

Ova konkretna ranjivost konfiguracije dopuštenja računa (računalni računi koji pristupaju mrežnim dijeljenjima umjesto korisničkih ili servisnih računa) mogu se otkriti. Međutim, bez pravih alata to je vrlo teško učiniti.

Da bismo otkrili i spriječili ovu kategoriju napada, možemo koristiti DataAdvantage identificirati grupe s računalnim računima u njima, a zatim im zabraniti pristup. DataAlert ide dalje i omogućuje vam stvaranje obavijesti posebno za ovu vrstu scenarija.

Snimak zaslona u nastavku prikazuje prilagođenu obavijest koja će se aktivirati svaki put kada račun računala pristupi podacima na nadziranom poslužitelju.

Korištenje PowerShell-a za povećanje privilegija lokalnih računa

Sljedeći koraci s PowerShell-om

Želite znati više? Upotrijebite kod za otključavanje "bloga" za besplatan pristup cijelosti Video tečaj PowerShell i Active Directory Basics.

Izvor: www.habr.com

Dodajte komentar