Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Stopnjevanje privilegijev je uporaba napadalčevih pravic do trenutnega računa za pridobitev dodatne, običajno višje ravni dostopa do sistema. Medtem ko je stopnjevanje privilegijev lahko posledica izkoriščanja ničelnega dne, izvajanja ciljnih napadov s strani hekerjev ali spretno prikrite zlonamerne programske opreme, se največkrat zgodi zaradi napačne konfiguracije računalnika ali računa. Z nadaljnjim razvojem napada napadalci izkoristijo številne posamezne ranljivosti, ki lahko skupaj povzročijo katastrofalno uhajanje podatkov.

Zakaj uporabniki ne bi smeli imeti pravic lokalnega skrbnika?

Če ste strokovnjak za varnost, se morda zdi očitno, da uporabniki ne bi smeli imeti pravic lokalnega skrbnika, saj:

  • Zaradi tega so njihovi računi bolj ranljivi za različne napade
  • Naredi te iste napade veliko resnejše

Na žalost je to za mnoge organizacije še vedno zelo sporno vprašanje in ga včasih spremljajo burne razprave (glej npr. moj upravitelj pravi, da morajo biti vsi uporabniki lokalni skrbniki). Ne da bi se spuščali v podrobnosti te razprave, menimo, da je napadalec pridobil lokalne skrbniške pravice v sistemu, ki je predmet preiskave, bodisi z izkoriščanjem bodisi zato, ker stroji niso bili ustrezno zavarovani.

1. korak: Obratno razreševanje imen DNS z lupino PowerShell

PowerShell je privzeto nameščen na številnih lokalnih delovnih postajah in večini strežnikov Windows. In čeprav ne brez pretiravanja velja za neverjetno uporabno orodje za avtomatizacijo in nadzor, se lahko prav tako spremeni v skoraj nevidno zlonamerna programska oprema brez datotek (hekerski program, ki ne pušča sledi napada).

V našem primeru napadalec začne izvajati izvidovanje omrežja z uporabo skripta PowerShell, ki zaporedoma preiskuje omrežni naslovni prostor IP in poskuša ugotoviti, ali se dani IP razreši na gostitelja, in če je tako, kakšno je omrežno ime tega gostitelja.
To nalogo lahko opravite na več načinov, vendar z uporabo ukaza cmdlet Pridobite-ADComputer je zanesljiva možnost, ker vrne res bogat nabor podatkov o vsakem vozlišču:

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

Če je hitrost v velikih omrežjih težava, lahko uporabite povratni sistemski klic DNS:

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

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Ta način naštevanja gostiteljev v omrežju je zelo priljubljen, ker večina omrežij ne uporablja varnostnega modela ničelnega zaupanja in ne spremlja notranjih poizvedb DNS za sumljive izbruhe dejavnosti.

2. korak: izberite cilj

Končni rezultat tega koraka je pridobitev seznama imen gostiteljev strežnikov in delovnih postaj, ki jih je mogoče uporabiti za nadaljevanje napada.

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Glede na ime se zdi strežnik 'HUB-FILER' vreden cilj, ker... Sčasoma se datotečni strežniki nagibajo k kopičenju velikega števila omrežnih map in pretiranemu dostopu preveč ljudi do njih.

Brskanje z Windows Explorerjem nam omogoča, da ugotovimo, da obstaja odprta mapa v skupni rabi, vendar naš trenutni račun ne more dostopati do nje (verjetno imamo samo pravice do seznama).

3. korak: Učenje ACL

Zdaj lahko na našem gostitelju in ciljnem deležu HUB-FILER zaženemo skript PowerShell, da pridobimo ACL. To lahko naredimo z lokalnega računalnika, saj že imamo lokalne skrbniške pravice:

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

Rezultat izvedbe:

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Iz nje vidimo, da ima skupina Domain Users dostop samo do seznama, skupina Helpdesk pa ima tudi pravice urejanja.

4. korak: Identifikacija računa

S tekom Get-ADGroupMember, lahko dobimo vse člane te skupine:

Get-ADGroupMember -identity Helpdesk

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Na tem seznamu vidimo računalniški račun, ki smo ga že identificirali in do katerega smo že dostopali:

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

5. korak: Uporabite PSExec za delo pod računom računalnika

Psexec iz Microsoft Sysinternals vam omogoča izvajanje ukazov v kontekstu sistemskega računa SYSTEM@HUB-SHAREPOINT, za katerega vemo, da je član ciljne skupine Helpdesk. Se pravi, narediti moramo samo:

PsExec.exe -s -i cmd.exe

No, potem imate popoln dostop do ciljne mape HUB-FILERshareHR, saj delate v kontekstu računalniškega računa HUB-SHAREPOINT. In s tem dostopom je mogoče podatke kopirati na prenosno napravo za shranjevanje ali kako drugače pridobiti in prenesti po omrežju.

6. korak: Odkrivanje tega napada

To posebno ranljivost konfiguracije dovoljenj računa (računalniški računi dostopajo do omrežnih skupnih rab namesto uporabniških računov ali računov storitev) je mogoče odkriti. Brez ustreznih orodij pa je to zelo težko narediti.

Za odkrivanje in preprečevanje te kategorije napadov lahko uporabimo DataAdvantage za prepoznavanje skupin z računalniškimi računi v njih in nato zavrnitev dostopa do njih. DataAlert gre še dlje in vam omogoča, da ustvarite obvestilo posebej za to vrsto scenarija.

Spodnji posnetek zaslona prikazuje obvestilo po meri, ki se bo sprožilo vsakič, ko račun računalnika dostopa do podatkov na nadzorovanem strežniku.

Uporaba lupine PowerShell za dvig privilegijev lokalnega računa

Naslednji koraki z uporabo PowerShell

Želite izvedeti več? Uporabite kodo za odklepanje "blog" za prost dostop do celotnega Video tečaj PowerShell in Active Directory Basics.

Vir: www.habr.com

Dodaj komentar