Dom · Sigurnost · Potrebno je povećanje prava pristupa. Povećanje korisničkih privilegija u sustavu Windows

Potrebno je povećanje prava pristupa. Povećanje korisničkih privilegija u sustavu Windows

Mnogi programi zahtijevaju povećanje prava pri pokretanju (ikona štita pored ikone), ali zapravo ne zahtijevaju administratorska prava za normalan rad (na primjer, ručno ste dodijelili potrebna prava korisnicima za programski direktorij u ProgramFiles i grane registra koje koristi program). U skladu s tim, kada pokrećete takav program kao jednostavan korisnik, ako je kontrola korisničkog računa omogućena na računalu, pojavit će se upit UAC i od korisnika će se tražiti da unese administratorsku lozinku. Kako bi zaobišli ovaj mehanizam, mnogi jednostavno onemoguće UAC ili dodijele korisniku administratorska prava na računalu tako da ga dodaju u grupu lokalnih administratora. Naravno, obje ove metode nisu sigurne.

Zašto obična aplikacija može trebati administratorska prava

Program će možda trebati administratorska prava za izmjenu određenih datoteka (dnevnici, konfiguracije itd.) u vlastitoj mapi u C:\Program Files (x86)\SomeApp). Prema zadanim postavkama, korisnici nemaju prava za uređivanje ovog direktorija, stoga su za normalan rad takvog programa potrebna administratorska prava. Da biste riješili ovaj problem, trebate ručno dodijeliti prava promjene/pisanja korisniku (ili grupi korisnika) u mapu programa kao administrator na razini NTFS-a.

Bilješka. Zapravo, praksa pohranjivanja promijenjenih podataka aplikacije u vlastiti direktorij pod C:\Program Files je netočna. Ispravnije je podatke aplikacije pohraniti u korisnički profil. Ali to je pitanje lijenosti i nesposobnosti programera.

Pokretanje programa koji zahtijeva administratorska prava standardnog korisnika

Prethodno smo opisali kako možete koristiti parametar RunAsInvoker. Međutim, ova metoda nije dovoljno fleksibilna. Možete ga koristiti i sa spremanjem administratorske lozinke /SAVECRED (također nesigurno). Razmotrimo jednostavniji način prisiljavanja bilo kojeg programa da se pokrene bez administratorskih prava (i bez unosa administratorske lozinke) s uključenim UAC-om (4.3 ili razina 2).

Na primjer, uzmimo uslužni program za uređivanje registra - regedit.exe(nalazi se u direktoriju C:\windows\system32). Kada pokrenete regedit.exe, pojavljuje se UAC prozor i, osim ako ne potvrdite povećanje privilegija, uređivač registra se ne pokreće.

Kreirajmo datoteku na radnoj površini run-as-non-admin.bat sa sljedećim tekstom:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Da biste prisilili aplikaciju da se pokrene bez administratorskih prava i potisnuli UAC upit, jednostavno povucite željenu exe datoteku na ovu bat datoteku na radnoj površini.

Nakon toga bi se uređivač registra trebao pokrenuti bez pojavljivanja UAC upita. Otvorite upravitelj procesa i dodajte stupac Povišen(S većim dopuštenjima), vidjet ćete da sustav ima proces regedit.exe s nepovišenim statusom (radi s korisničkim pravima).

Pokušajte urediti bilo koji parametar u grani HKLM. Kao što vidite, pristup za uređivanje registra u ovoj grani je odbijen (ovaj korisnik nema prava pisanja u grane registra sustava). Ali možete dodavati i uređivati ​​ključeve u ogranku registra korisnika - HKCU.

Na isti način možete pokrenuti određenu aplikaciju kroz bat datoteku, samo odredite put do izvršne datoteke.

run-app-as-non-admin.bat

Postavite ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Također možete dodati kontekstni izbornik, koji svim aplikacijama daje mogućnost pokretanja bez elevacije. Da biste to učinili, stvorite sljedeću reg datoteku i uvezite je u registar.

Windows Registry Editor verzija 5.00


@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

Nakon toga, za pokretanje bilo koje aplikacije bez administratorskih prava, samo odaberite stavku "" u kontekstnom izborniku.

__COMPAT_LAYER varijabla okruženja i parametar RunAsInvoker

Varijabla okruženja __COMPAT_LAYER omogućuje vam postavljanje različitih razina kompatibilnosti za aplikacije (kartica Kompatibilnost u svojstvima exe datoteke). Pomoću ove varijable možete odrediti postavke kompatibilnosti s kojima bi program trebao raditi. Na primjer, za pokretanje aplikacije u načinu kompatibilnosti sa sustavom Windows 7 i razlučivosti 640x480, postavite:

postavite __COMPAT_LAYER=Win7RTM 640x480

Među opcijama varijable __COMPAT_LAYER koje su nam zanimljive izdvajamo sljedeće parametre:

  • RunAsInvoker- pokretanje aplikacije s privilegijama nadređenog procesa bez UAC zahtjeva.
  • RunAsHighest- pokretanje aplikacije s maksimalnim pravima dostupnim korisniku (UAC zahtjev se pojavljuje ako korisnik ima administratorska prava).
  • RunAsAdmin- pokrenite aplikaciju s administratorskim pravima (uvijek se pojavljuje upit AUC).

Oni. Parametar RunAsInvoker ne daje administratorska prava, već samo blokira pojavu UAC prozora.

UAC(User Account Control) tehnologija je kontrole računa koja se prvi put pojavila u Windows Vista i starije. Ova tehnologija sprječava programe u izvođenju radnji koje zahtijevaju administratorska prava. Kada program izvrši takve radnje, njegov rad se obustavlja, a korisniku se prikazuje prozor sa zahtjevom na zaštićenoj radnoj površini (tako da je nemoguće programski pritisnuti gumb OK). Na primjer, ako vaš program treba napraviti promjene u ključu registra HKEY_LOCAL_MACHINE, tada će joj trebati administratorska prava.
Da biste riješili ovaj problem, možete koristiti implementaciju datoteke manifesta u projektu, koju će operativni sustav pročitati i automatski odrediti parametre potrebne za pokretanje.
Razmotrimo uvođenje datoteke manifesta u aplikaciju " Windows obrazac" Da biste to učinili, otvorite Visual Studio (u ovom primjeru koristi se verzija 2012) i izradite projekt " Windows obrazac" Otvoren " Istraživač rješenja(Solution Explorer), koji pruža organizirani prikaz projekata i njihovih datoteka, idite na izbornik Pogled» - « Istraživač rješenja" Desnom tipkom miša kliknite na " Istraživač rješenja" prema nazivu projekta i odaberite iz kontekstnog izbornika, " Dodati» - « Stvori element...».

Otvorit će se novi prozor " Dodavanje novog elementa -..." potražite element Visual C# pod nazivom " Datoteka manifesta aplikacije", odaberite ga i kliknite na " Dodati».

U " Istraživač rješenja"Imat ćete novu stavku s nazivom datoteke manifesta. Također će se automatski otvoriti u uređivaču koda.

Da biste konfigurirali prava potrebna za pokretanje aplikacije, morate odrediti razinu sigurnosti i opisati element “ requestedExecutionLevel" Ovaj element nema podređene elemente i ima sljedeće atribute:
1) Razina- Obavezno. Postavlja razinu sigurnosti koju zahtijeva aplikacija. Za ovaj atribut dostupne su sljedeće vrijednosti:
  • asInvoker- aplikacija počinje s pravima nadređenog procesa. To znači da ako pokrenete program iz aplikacije koja je već pokrenuta s administratorskim pravima, automatski će imati ista prava. Ovaj način rada u većini slučajeva preporučuje Microsoft. Oni. To su oni programi koji ne zahtijevaju administratorska prava;
  • najvišiDostupan— aplikacija se pokreće s većim pravima nego što ima trenutni korisnik. Regedit.exe, Mmc.exe pokreću se s ovim pravima;
  • zahtijevajAdministrator- tražena su puna administratorska prava. Oni. potrebno za aplikacije koje se ne mogu pokrenuti bez administratorskih prava.

Instaliranje aplikacija" Kliknite jednom" moguće je samo s vrijednošću "asInvoker". Bilo koja druga vrijednost neće dopustiti instalaciju.

2) uiAccess- Neobavezno. Označava zahtijeva li aplikacija pristup zaštićenim elementima korisničkog sučelja za implementaciju značajki pristupačnosti. Dostupne vrijednosti " pravi"I" lažno", zadana vrijednost je " lažno". Značenje " pravi" mora imati samo potpisane aplikacije i biti pokrenut iz mapa "\Program Files\" i "\windows\system32\". Najčešće to nije potrebno.
Kako bi program prilikom pokretanja zahtijevao podizanje prava na razinu administratora, zamijenite atribut " Razina» zadana vrijednost « asInvoker" na " zahtijevajAdministrator».

Konstruirajte rješenje pritiskom na " F6" Ako ste sve učinili ispravno, tada će se u operacijskim sustavima Windows Vista i starijim na ikoni izvršne datoteke programa pojaviti ikona štita, što znači da ovaj program zahtijeva povećanje prava.

Kako biste provjerili dopuštenja svoje aplikacije, možete koristiti popis u nastavku.
niz s = novi WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator)? "Administrator" : "Obični korisnik"; Ako imate konzolnu aplikaciju, onda je princip rada isti.

Hmm, razlika između jednog i drugog je samo u tome kako se postavljaju parametri kompatibilnosti, u prvom slučaju - ručno, u drugom - ista stvar, samo kroz čarobnjaka. Ali svejedno hvala na detaljnom odgovoru))

Hvala, znam)))))))))))))))))))))

Ok, ja sam admin (možda malo nepismen, ali nadam se da ću to nadoknaditi...) Kako mi se može dopustiti pokretanje ove aplikacije (i samo ove)? Istovremeno, kako ne bi stalno trčao do svog stroja (da unese lozinku lokalnog administratora, koju ne bi trebao znati) kada treba pokrenuti ovu aplikaciju.

Jako sam Vam zahvalan što ste me podsjetili na dio predavanja iz predmeta “Operacijski sustavi”. Dat ću vam još jedan, sada već klasičan primjer:

Ponekad korisnik mora promijeniti svoju lozinku za prijavu. Sam korisnik nema prava pristupa bazi lozinki. Međutim, program koji koristi za promjenu lozinke radi s povišenim pravima. Što mu omogućuje da eventualno promijeni lozinku.

Dakle, moj slučaj je sličan. Kako mogu "reći" sustavu da program treba raditi s povišenim pravima? U tom slučaju će ga pokrenuti korisnik iz grupe “korisnik”/“napredni korisnik”.

To se zapravo može učiniti pokretanjem programa kao "planiranog zadatka" kao drugi korisnik. Sve bi bilo u redu - čak se i pokreće, ali se grafičko sučelje (prozori programa) ne prikazuje na radnoj površini korisnika...

Konceptualna kontradikcija??? Gore sam dao primjer - zadatak je prilično standardan za bilo koji OS. Samo ga ne želim riješiti alatima trećih strana (koji nisu uključeni u sustav Windows Vista). Već sam onemogućio UAC - u svakom slučaju, aplikacija radi ispravno samo s administratorskim pravima, tako je to - specifično.... Čini se da nije moguće uključiti ovog korisnika u lokalnu grupu "Administratori" iz sigurnosnih razloga .

Što se tiče scenarija - za trčati kao postoji zastavica koja vam omogućuje da zapamtite lozinku, ali u ovom slučaju korisnik će se moći pokrenuti bilo koji program s administratorskim pravima.

To znači da ne želim pokrenuti softver čiji izvorni kod nitko nije vidio, ništa se ne zna o dobavljaču i čija je web stranica "u rukama ljudi". Što je s korisnicima - eh, da je to dovoljno, onda se ova rasprava ne bi pojavila na forumu..... =(

Volio bih vjerovati da nije sve tako loše.

Podizanje privilegija možda je jedna od ključnih točaka o kojoj ovisi scenarij daljnjeg pentestiranja ili napada. Vrlo često sve završava u ovoj fazi ako nije moguće "proširiti svoje moći". Stoga ćemo danas malo govoriti o načinima koji korisniku omogućuju povećanje privilegija ne samo administratoru, već i sustavu.

Uvod

Eskalacija privilegija malo se razlikuje u sustavu Windows i Linux. Iako oba operativna sustava nose uobičajen broj ranjivosti, istraživači primjećuju da je potpuno zakrpan Windows poslužitelj puno češći od Linux poslužitelja koji je ažuriran na najnovije stanje. Osim toga, vrijeme izdavanja zakrpa za Windows često je kraće, što povećavanje privilegija na Windowsima čini prilično zanimljivim i ambicioznim zadatkom. Njoj ćemo posvetiti našu priču.

Mogućnosti

Pa kakve prilike imamo da se uzdignemo u svijetu Windowsa? Prije svega, nedavno je u jezgri OS-a pronađeno dovoljno ranjivosti povezanih s parsiranjem fonta, što proces eskalacije privilegija čini prilično jednostavnim ako imate odgovarajući exploit pri ruci. Ako koristite Metasploit, dovoljna je samo jedna naredba da dobijete ljusku sustava. No, sve će to vjerojatno uspješno funkcionirati samo ako sustav nije u potpunosti zakrpan. Ako su sva ažuriranja instalirana na stroju, tada, za razliku od Linuxa, neće biti moguće pronaći SUID binarne datoteke, a varijable okruženja obično se ne prosljeđuju uslugama ili procesima s višim privilegijama. Što nam kao rezultat ostaje?

Od admina do sustava, ili ono što svi znaju

Tipično, kada razmišljate o eskalaciji privilegija, metoda koja vam odmah padne na pamet je korištenje planera zadataka. U sustavu Windows možete dodati zadatak pomoću dva pomoćna programa: at i schtasks. Drugi će pokrenuti zadatak u ime korisnika koji je dodao zadatak, dok će prvi pokrenuti zadatak u ime sustava. Standardni trik za koji ste vjerojatno čuli da vam omogućuje pokretanje konzole sa sistemskim pravima:

U 13:01 /interaktivni cmd

Druga stvar koja mi pada na pamet je dodavanje usluge koja će pokrenuti potrebnu datoteku / izvršiti naredbu:

@echo off @break off title root Cls echo Stvaranje usluge. sc create evil binpath= "cmd.exe /K start" type= own type= interact > nul 2>&1 echo Pokretanje usluge. sc start evil > nul 2>&1 echo U pripravnosti... ping 127.0.0.1 -n 4 > nul 2>&1 echo Uklanjanje usluge. jeka. sc brisanje zla > nul 2>&1

Treća metoda je zamjena uslužnog programa sustava C:\windows\system32\sethc.exe s, na primjer, cmd. Ako se nakon toga odjavite i nekoliko puta pritisnete tipku Shift, pojavit će se konzola sa sistemskim pravima.

Što se tiče automatiziranih metoda, odmah mi padaju na pamet Metasploit i njegov getsystem. Alternativna opcija je PsExec iz Sysinternals (psexec -i -s -d cmd.exe).

Ići ćemo drugim putem

Sve ove metode imaju zajednički nedostatak: potrebne su administratorske ovlasti. To znači da eskaliramo privilegije s povlaštenog računa. U većini slučajeva, kada dobijete administratorska prava, imate hrpu opcija kako se popeti još više. Dakle, to nije jako težak zadatak. Danas ćemo govoriti o metodama za eskalaciju privilegija koje ne koriste nikakve 0day ranjivosti, pod pretpostavkom da imamo normalan sustav i račun običnog neprivilegiranog korisnika.

Potraga za vjerodajnicama

Jedan od pouzdanih i stabilnih načina povećanja privilegija i učvršćivanja u sustavu je dobivanje lozinki administratora ili korisnika s višim privilegijama. A sada je vrijeme da se prisjetimo automatizirane instalacije softvera. Ako upravljate domenom koja uključuje veliku flotu strojeva, definitivno ne želite ručno instalirati softver na svakom od njih. I to će oduzeti toliko vremena da ga neće biti dovoljno ni za kakve druge zadatke. Stoga se koriste Unattended instalacije koje generiraju datoteke koje sadrže administratorske lozinke u njihovom najčišćem obliku. Što je jednostavno blago i za pentestere i za napadače.

Instalacije bez nadzora

U slučaju automatizirane instalacije, nama dosta zanimljiva datoteka Unattended.xml ostaje na klijentu koji se obično nalazi ili u %WINDIR%\Panther\Unattend\ ili u %WINDIR%\Panther\ i može pohranite administratorsku lozinku u čistom tekstu. S druge strane, da biste dobili ovu datoteku s poslužitelja, nije vam potrebna nikakva provjera autentičnosti. Trebate samo pronaći poslužitelj “Windows Deployment Services”. Da biste to učinili, možete koristiti skriptu auxiliary/scanner/dcerpc/windows_deployment _services iz Metasploita. Iako Windows Deployment Services nije jedini način za izvođenje automatiziranih instalacija, datoteka Unattended.xml smatra se standardom, pa se njezino otkrivanje može smatrati uspješnim.

GPP

XML datoteke preferencije grupnih pravila često sadrže skup šifriranih vjerodajnica koje se mogu koristiti za dodavanje novih korisnika, stvaranje dijeljenja i tako dalje. Srećom, metoda enkripcije je dokumentirana, tako da možete lako dobiti lozinke u njihovom čistom obliku. Štoviše, Metasploit tim je već učinio sve za vas - samo koristite /post/windows/gather/credentials/gpp.rb modul. Ako vas zanimaju detalji, onda su sve potrebne informacije dostupne na ovom linku.

Prava korisnika

Vrlo često je eskalacija privilegija posljedica pogrešno konfiguriranih korisničkih prava. Na primjer, kada je korisnik domene lokalni administrator (ili napredni korisnik) na glavnom računalu. Ili kada su korisnici domene (ili članovi domenskih grupa) lokalni administratori na svim hostovima. U ovom slučaju zapravo nećete morati ništa učiniti. Ali takve se opcije ne pojavljuju često.

AlwaysInstallElevated

Ponekad administratori dopuštaju običnim korisnicima da sami instaliraju programe, obično putem sljedećih ključeva registra:

HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

HKCU\SOFTWARE\Policies\Microsoft\Window s\Installer\AlwaysInstallElevated

Oni govore sustavu da se svaka MSI datoteka mora instalirati s povišenim privilegijama (NT AUTHORITY\SYSTEM). Sukladno tome, korištenjem posebno kreirane datoteke, ponovno možete izvoditi radnje u ime sustava i nadograditi svoje privilegije.

Metasploit uključuje poseban modul exploit/windows/local/always_install_elevated, koji stvara MSI datoteku s posebnom izvršnom datotekom ugrađenom u nju, koju ekstrahira i izvršava instalater sa sistemskim privilegijama. Nakon izvršenja, MSI datoteka prekida instalaciju (pozivanjem posebno izrađenog nevažećeg VBS-a) kako bi spriječila zapisivanje radnje u sustav. Osim toga, ako instalaciju pokrenete s prekidačem /quiet, korisnik neće niti vidjeti pogrešku.

Nedostaje automatsko pokretanje

Često se događa da sustav vodi evidenciju datoteke koju je potrebno automatski pokrenuti, čak i nakon što je sama datoteka već pala u zaborav. Možda je neka usluga pogrešno uklonjena - nema izvršne datoteke, ali unos u registru ostaje, a svaki put kada pokrenete sustav ga neuspješno pokušava pokrenuti, ispunjavajući dnevnik događaja porukama o kvarovima. Ova se situacija također može iskoristiti za proširenje vaših moći. Prvi korak je pronaći sve takve zapise bez roditelja. Na primjer, pomoću uslužnog programa autorunsc tvrtke Sysinternals.

Autorunsc.exe -a | findstr /n /R "Datoteka\ nije\ pronađena"

Nakon čega, kao što pogađate, ostaje samo da nekako ubacite svog kandidata umjesto datoteke koja nedostaje.

Čarolija citata

Da, da, navodnici ne samo da mogu odigrati okrutnu šalu u SQL upitima, dopuštajući ubacivanje, već također mogu pomoći u povećanju privilegija. Problem je prilično star i poznat je još od novozavjetnih vremena. Radi se o tome da staze do izvršnih datoteka nekih servisa nisu pod navodnicima (na primjer, ImagePath=C:\Program Files\Common Files\Network Associates\McShield\McShield.exe), a u staza. U tom slučaju, ako napadač kreira datoteku koja će dodati nove administratore u sustav ili izvršiti neke druge radnje, i nazove je C:\Program Files\common.exe, tada će usluga pri sljedećem pokretanju biti uobičajena. exe koji će se pokrenuti, a preostali dio staze bit će uzet kao argument(i). Jasno je da neprivilegirani korisnik neće moći ništa staviti u Program Files, ali izvršna datoteka servisa može se nalaziti u drugom direktoriju, odnosno korisnik će imati priliku ubaciti svoju datoteku.

Kako biste koristili ovu tehniku, trebate pronaći ranjivu uslugu (koja neće koristiti navodnike na putu do svoje binarne datoteke). To se radi na sljedeći način:

Wmic usluga dohvati ime, ime za prikaz, ime staze, početni način |findstr /i "auto" |findstr /i /v "c: \windows\\" |findstr /i /v """

Istina, na XP-u će za to biti potrebne administratorske ovlasti, pa je tamo bolje koristiti sljedeću metodu: nabavite popis usluga - sc query, zatim pogledajte informacije za svaku uslugu - sc qc servicename.

Sve po planu

Još jedan mehanizam koji može pomoći u povećanju prava, a na koji se obično zaboravlja je planer zadataka. Uslužni program schtasks omogućuje vam dodjeljivanje zadataka određenim događajima. Nama su najzanimljiviji ONIDLE, ONLOGON i ONSTART. Kao što nazivi sugeriraju, ONIDLE će se izvršiti svaki put kada je računalo u stanju mirovanja, ONLOGON i ONSTART - kada se korisnik prijavi, odnosno kada se sustav pokrene. Stoga se svakom događaju može dodijeliti poseban zadatak. Na primjer, kada se sustav pokrene, kopirajte zlonamjerni binarni/keylogger/… negdje i pokrenite ga. Kada se korisnici prijave, pokrenite alatku za ispuštanje kreditne kartice. Ukratko, sve je ograničeno samo vašom maštom i zadatkom.

Trikovi s dopuštenjima

Dozvole za datoteke obično su prva obrana koja nas sprječava da povećamo svoje privilegije. Bilo bi primamljivo jednostavno prebrisati neku sistemsku datoteku (na primjer, isti sethc.exe spomenut na samom početku članka) i odmah dobiti sistemske privilegije. Ali sve su to samo snovi u stvarnosti, imamo samo dopuštenje za čitanje, što nam ne daje apsolutno ništa. Međutim, ne biste trebali objesiti nos, jer ni s dozvolama nije sve tako glatko - ovdje, kao i drugdje, postoje zamke čije vam poznavanje omogućuje da nemoguće učinite mogućim.

Jedan od direktorija sustava zaštićen ovim mehanizmom posebno je zanimljiv sa stajališta eskalacije privilegija – Program Files. Neprivilegiranim korisnicima tamo je zabranjen pristup. Međutim, ponekad se dogodi da tijekom procesa instalacije instalateri neispravno postave dopuštenja za datoteke, što rezultira time da svi korisnici dobiju puni pristup izvršnim datotekama. Što iz ovoga slijedi - već ste pogodili.

Još jedno ograničenje je da običnom smrtniku nije dopušteno pisati u root diska sustava. Međutim, na primjer, na XP-u, prilikom stvaranja novog direktorija u korijenu diska, grupa BUILTIN\Users dobiva dopuštenja FILE_APPEND_DATA i FILE_WRITE_DATA (čak i ako je vlasnik mape administrator):

BUILTIN\Korisnici:(OI)(CI)R BUILTIN\Korisnici:(CI)(poseban pristup:) FILE_APPEND_DATA BUILTIN\Korisnici:(CI)(poseban pristup:) FILE_WRITE_DATA

Na "sedmici" se događa gotovo ista stvar, samo grupa AUTHENTICATED USERS dobiva dopuštenje. Kako ovo ponašanje može postati problem? Samo se neke aplikacije same instaliraju izvan zaštićenih direktorija, što olakšava zamjenu njihovih izvršnih datoteka. Primjerice, takav se incident dogodio s Metasploit Frameworkom u slučaju njegove višekorisničke instalacije. Ova je pogreška ispravljena u verziji 3.5.2, a uslužni program premješten je u Programske datoteke.


Kako tražiti takve direktorije/datoteke

Pronalaženje direktorija s netočnim dozvolama već je pola posla. Međutim, prvo ga morate pronaći. Da biste to učinili, možete koristiti sljedeća dva alata: AccessChk i Cacls/ICacls. Da biste pronašli "slabe" direktorije pomoću programa AccessChk, trebat će vam ove naredbe:

Accesschk.exe -uwdqs korisnici c:\ accesschk.exe -uwdqs “Autentificirani korisnici” c:\

Za traženje datoteka sa "slabim" dopuštenjima koristite sljedeće:

Accesschk.exe -uwqs korisnici c:\*.* accesschk.exe -uwqs “Autentificirani korisnici” c:\*.*

Isto se može učiniti pomoću Cacls/ICacls:

Cacls "c:\Programske datoteke" /T | korisnici findstr

Trikovi s uslugama

Druga opcija za napredovanje u sustavu je iskorištavanje pogrešnih konfiguracija i grešaka u servisu. Kao što pokazuje praksa, ne samo datoteke i mape, već i usluge koje se izvode u sustavu mogu imati netočne dozvole. Da biste ih otkrili, možete koristiti uslužni program AccessChk poznatog Marka Russinovicha:

Accesschk.exe –uwcqv *

Bit će vrlo ohrabrujuće vidjeti dozvolu SERVICE_ALL_ACCESS za autentificirane korisnike ili napredne korisnike. Ali i sljedeće se može smatrati velikim uspjehom:

  • SERVICE_CHANGE_CONFIG - možemo promijeniti izvršnu datoteku usluge;
  • WRITE_DAC - dopuštenja se mogu mijenjati, što rezultira dobivanjem dopuštenja SERVICE_CHANGE_CONFIG;
  • WRITE_OWNER - možete postati vlasnik i promijeniti dopuštenja;
  • GENERIC_WRITE - nasljeđuje dopuštenja SERVICE_CHANGE_CONFIG ;
  • GENERIC_ALL - nasljeđuje SERVICE_CHANGE_CONFIG dozvole.

Ako ustanovite da je jedno (ili više) od ovih dopuštenja postavljeno za neprivilegirane korisnike, vaše šanse za povećanje privilegija dramatično se povećavaju.

Kako povećati?

Recimo da ste pronašli odgovarajuću uslugu, vrijeme je da poradite na tome. Pomoćni program konzole sc pomoći će u tome. Prvo dobivamo potpunu informaciju o usluzi koja nas zanima, recimo upnphost:

Sc qc upnphost

Konfigurirajmo ga pomoću istog uslužnog programa:

Sc config vulnsrv binpath= "net user john hello /add && net localgroup Administrators john /add" type= interact sc config upnphost obj= “.\LocalSystem” password=“”

Kao što vidite, sljedeći put kada se servis pokrene, umjesto njegove izvršne datoteke, izvršit će se naredba net user john hello /add && net localgroup Administrators john /add, dodajući novom korisniku john sa lozinkom hello u sustav. Sve što preostaje je ručno ponovno pokrenuti uslugu:

Net stop upnphost net start upnphost

To je sva čarolija.

Kakav je rezultat?

Jednom davno pročitao sam članak u časopisu koji je ocrtavao osnovne tehnike za povećanje privilegija u sustavu Windows. Tada tome nisam pridavao veliku važnost, ali teorija mi je ostala u glavi i jednom mi je puno pomogla. Stoga se nadam da ćete u ovom članku pronaći nešto novo za sebe što će vam jednog dana pomoći da prevladate još jednu prepreku.

Danas ćemo govoriti o Windows eskalaciji privilegija. Naučit ćete kako napadač može eskalirati privilegije i kako se od toga zaštititi.

Sve informacije su informativnog karaktera. Niti uredništvo stranice niti autor članka ne snose odgovornost za nepropisnu upotrebu.

Povećajte privilegije uz BeRoot

Većina metoda podizanja privilegija povezana je s pogreškama u konfiguraciji instaliranog softvera, bilo da se radi o putu do izvršne datoteke servisa, koja nije okružena navodnicima i sadrži razmak (tu situaciju prilično zanimljivo rješava Windows), ili netočno postaviti prava na imenik s aplikacijom.

Čovjek je lijeno stvorenje i ne želi svaki put sve to ručno provjeravati. Stoga se prije ili kasnije morao pojaviti alat koji bi automatizirao ovu rutinu.

Sekundarna ručka za prijavu

Još jedan zanimljiv trik uključuje korištenje usluge sekundarne prijave. Ova vam usluga omogućuje pokretanje programa, Microsoftovih konzola za upravljanje i elemenata upravljačke ploče kao administrator, čak i ako trenutni korisnik pripada samo grupi Korisnici ili Napredni korisnici. Poanta je u tome što ova usluga ne briše ručke prilikom kreiranja novih procesa.

Ono što nam je važno je da su gotovo sve verzije Windowsa (x32 i x64) podložne ovoj ranjivosti: od Viste do Windows 2012 Servera. Ali postoje i ograničenja: za uspješno povećanje privilegija, sustav mora imati instaliran PowerShell 2.0 ili noviji, kao i dvije ili više CPU jezgri. Metasploit Framework ima poseban modul exploit/windows/local/ms16_032_secondary_logon_handle_privesc.

Njegova uporaba podrazumijeva da već imamo meterpreter sesiju, koju moramo navesti u parametrima: postavite SESSION 1. Pa, u slučaju uspješnog iskorištavanja, imat ćemo još jednu sesiju s povišenim privilegijama.

\ pentestlab > popis wmic qfe | pronađi "3139914"

Zaključak

Koliko god se trudio uklopiti sve moguće mogućnosti povećanja privilegija u jedan članak, teško da će ovo uspjeti ili će članak narasti do gigantskih razmjera i postati vam nezanimljiv. Dakle, vrijeme je da završimo s tim. O zaštiti ćemo govoriti u posebnom članku.