Windows Local Privilege Escalation
Najbolji alat za traženje vektora za Windows lokalno eskaliranje privilegija: WinPEAS
Početna teorija o Windows-u
Pristupni tokeni
Ako ne znate šta su Windows pristupni tokeni, pročitajte sledeću stranicu pre nego što nastavite:
pageAccess TokensACL-ovi - DACL-ovi/SACL-ovi/ACE-ovi
Proverite sledeću stranicu za više informacija o ACL-ovima - DACL-ovima/SACL-ovima/ACE-ovima:
pageACLs - DACLs/SACLs/ACEsNivoi integriteta
Ako ne znate šta su nivoi integriteta u Windows-u, trebalo bi da pročitate sledeću stranicu pre nego što nastavite:
pageIntegrity LevelsWindows kontrolne tačke bezbednosti
Postoje različite stvari u Windows-u koje bi mogle da vas spreče da enumerišete sistem, pokrenete izvršne datoteke ili čak detektujete vaše aktivnosti. Trebalo bi da pročitate sledeću stranicu i enumerišete sve ove odbrambene mehanizme pre nego što počnete sa enumeracijom eskalacije privilegija:
pageWindows Security ControlsInformacije o sistemu
Enumeracija informacija o verziji
Proverite da li Windows verzija ima poznatu ranjivost (proverite takođe primenjene zakrpe).
Verzija Eksploatacije
Ovaj sajt je koristan za pretragu detaljnih informacija o Microsoft bezbednosnim ranjivostima. Ova baza podataka ima više od 4.700 bezbednosnih ranjivosti, pokazujući masivnu površinu napada koju Windows okruženje predstavlja.
Na sistemu
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
winpeas (Winpeas ima ugrađen watson)
Lokalno sa informacijama o sistemu
Github repozitorijumi eksploatacija:
Okruženje
Da li su bilo kakve akreditacije/sočne informacije sačuvane u env promenljivama?
Istorija PowerShell-a
PowerShell zapisnici transkripta
Možete naučiti kako da to uključite na https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/
PowerShell Moduliranje Logovanje
Detalji izvršenja PowerShell cevovoda se beleže, obuhvatajući izvršene komande, pozive komandi i delove skripti. Međutim, potpuni detalji izvršenja i rezultati izlaza možda neće biti zabeleženi.
Da biste omogućili ovo, pratite uputstva u odeljku "Transkript fajlova" dokumentacije, birajući "Moduliranje logovanja" umesto "PowerShell transkripcije".
Da biste videli poslednjih 15 događaja iz PowersShell logova, možete izvršiti:
PowerShell Script Block Logging
Zabeležen je potpuni zapis aktivnosti i punog sadržaja izvršenja skripte, osiguravajući da je svaki blok koda dokumentovan dok se izvršava. Ovaj proces čuva sveobuhvatnu evidenciju svake aktivnosti, korisnu za forenziku i analizu zlonamernog ponašanja. Dokumentovanjem svih aktivnosti u trenutku izvršenja, pružaju se detaljni uvidi u proces.
Logovi događaja za blok skripti mogu se pronaći u Windows Event Viewer-u na putanji: Application and Services Logs > Microsoft > Windows > PowerShell > Operational. Za pregled poslednjih 20 događaja možete koristiti:
Internet postavke
Diskovi
WSUS
Sistem možete ugroziti ako se ažuriranja ne zahtevaju korišćenjem httpS već http.
Počinjete proverom da li mreža koristi ne-SSL WSUS ažuriranje pokretanjem sledećeg:
Ako dobijete odgovor kao što je:
I ako je HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
jednako 1
.
Tada, to je iskorišćivo. Ako je poslednji registar jednak 0, tada će unos WSUS biti ignorisan.
Da biste iskoristili ove ranjivosti, možete koristiti alate poput: Wsuxploit, pyWSUS - Ovo su skripte za eksploataciju oružja za napade usredstvenog čoveka (MiTM) za ubacivanje 'lažnih' ažuriranja u ne-SSL WSUS saobraćaj.
Pročitajte istraživanje ovde:
WSUS CVE-2020-1013
Pročitajte kompletan izveštaj ovde. Osnovno, ovo je propust koji ovaj bag iskorišćava:
Ako imamo moć da menjamo naš lokalni korisnički proxy, i Windows ažuriranja koriste proxy konfigurisan u postavkama Internet Explorer-a, stoga imamo moć da pokrenemo PyWSUS lokalno da presretnemo sopstveni saobraćaj i pokrenemo kod kao privilegovani korisnik na našem resursu.
Nadalje, pošto WSUS servis koristi postavke trenutnog korisnika, takođe će koristiti njegovu bazu sertifikata. Ako generišemo samopotpisani sertifikat za WSUS ime hosta i dodamo ovaj sertifikat u bazu sertifikata trenutnog korisnika, bićemo u mogućnosti da presretnemo i HTTP i HTTPS WSUS saobraćaj. WSUS ne koristi mehanizme poput HSTS-a za implementaciju validacije tipa poverenja-na-prvo-korišćenje na sertifikatu. Ako sertifikat koji se predstavlja je poveren od strane korisnika i ima ispravno ime hosta, biće prihvaćen od strane servisa.
Možete iskoristiti ovu ranjivost koristeći alat WSUSpicious (kada bude oslobođen).
KrbRelayUp
Postoji ranjivost lokalnog eskaliranja privilegija u Windows domenskim okruženjima pod određenim uslovima. Ovi uslovi uključuju okruženja gde potpisivanje LDAP-a nije obavezno, korisnici imaju samoprava koja im omogućava konfigurisanje delegacije ograničene resursima zasnovane na resursima (RBCD), i mogućnost korisnika da kreiraju računare unutar domena. Važno je napomenuti da se ovi uslovi ispunjavaju korišćenjem podrazumevanih postavki.
Pronađite eksploataciju u https://github.com/Dec0ne/KrbRelayUp
Za više informacija o toku napada proverite https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/
AlwaysInstallElevated
Ako su ova 2 registra omogućena (vrednost je 0x1), tada korisnici sa bilo kojim privilegijama mogu instalirati (izvršiti) *.msi
fajlove kao NT AUTHORITY\SYSTEM.
Metasploit payloadi
Ako imate meterpreter sesiju, možete automatizovati ovu tehniku koristeći modul exploit/windows/local/always_install_elevated
PowerUP
Koristite komandu Write-UserAddMSI
iz PowerUP-a da biste kreirali Windows MSI binarni fajl unutar trenutnog direktorijuma radi eskalacije privilegija. Ovaj skript kreira prekompajlirani MSI instalater koji traži dodavanje korisnika/grupe (tako da će vam biti potreban pristup GUI-u):
Izvršite kreirani binarni fajl da biste eskalirali privilegije.
MSI Omotač
Pročitajte ovaj tutorijal da biste naučili kako da napravite MSI omotač koristeći ovaj alat. Imajte na umu da možete omotati ".bat" fajl ako samo želite da izvršite komandne linije
pageMSI WrapperKreirajte MSI sa WIX-om
pageCreate MSI with WIXKreirajte MSI sa Visual Studio-om
Generišite pomoću Cobalt Strike-a ili Metasploit-a novi Windows EXE TCP payload u
C:\privesc\beacon.exe
Otvorite Visual Studio, izaberite Napravi novi projekat i ukucajte "installer" u polje za pretragu. Izaberite projekat Setup Wizard i kliknite na Sledeće.
Dajte projektu ime, kao što je AlwaysPrivesc, koristite
C:\privesc
za lokaciju, izaberite stavi rešenje i projekat u isti direktorijum, i kliknite na Kreiraj.Nastavite da klikćete na Sledeće dok ne dođete do koraka 3 od 4 (izaberite fajlove za uključivanje). Kliknite na Dodaj i izaberite Beacon payload koji ste upravo generisali. Zatim kliknite na Završi.
Istaknite projekat AlwaysPrivesc u Solution Explorer-u i u Properties, promenite TargetPlatform sa x86 na x64.
Postoje i druge osobine koje možete promeniti, kao što su Author i Manufacturer koje mogu učiniti da instalirana aplikacija izgleda legitimnije.
Desnim klikom na projekat izaberite View > Custom Actions.
Desnim klikom na Install izaberite Add Custom Action.
Dvaput kliknite na Application Folder, izaberite vaš fajl beacon.exe i kliknite na OK. Ovo će osigurati da beacon payload bude izvršen čim se pokrene instalater.
Pod Custom Action Properties, promenite Run64Bit u True.
Na kraju, izgradite to.
Ako se prikaže upozorenje
File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'
, proverite da li ste postavili platformu na x64.
Instalacija MSI
Da biste izvršili instalaciju zlonamernog .msi
fajla u pozadini:
Korišćenje ranjivosti
Da biste iskoristili ovu ranjivost, možete koristiti: exploit/windows/local/always_install_elevated
Antivirus i Detektori
Postavke revizije
Ove postavke određuju šta se loguje, stoga treba da obratite pažnju
WEF
Windows Event Forwarding, je interesantno znati gde se šalju logovi
LAPS
LAPS je dizajniran za upravljanje lokalnim administratorskim lozinkama, osiguravajući da svaka lozinka bude jedinstvena, nasumična i redovno ažurirana na računarima pridruženim domenu. Ove lozinke se sigurno čuvaju unutar Active Directory-ja i mogu im pristupiti samo korisnici kojima su dodeljene dovoljne dozvole putem ACL-ova, omogućavajući im da vide lokalne administratorske lozinke ako su ovlašćeni.
pageLAPSWDigest
Ako je aktivan, lozinke u obliku teksta se čuvaju u LSASS-u (Local Security Authority Subsystem Service). Više informacija o WDigest-u na ovoj stranici.
Zaštita LSA
Počevši od Windows 8.1, Microsoft je uveo unapređenu zaštitu za Lokalni bezbednosni autoritet (LSA) kako bi blokirao pokušaje nepoverenih procesa da čitaju njegovu memoriju ili ubacuju kod, dodatno osiguravajući sistem. Više informacija o zaštiti LSA ovde.
Čuvar pristupnih podataka
Čuvar pristupnih podataka je uveden u Windows 10. Svrha mu je da zaštiti pristupne podatke sačuvane na uređaju od pretnji poput napada prenošenjem heša.| Više informacija o Čuvaru pristupnih podataka ovde.
Keširane akreditacije
Kredencijali domena se autentikuju od strane Lokalne bezbednosne autorizacije (LSA) i koriste od strane komponenti operativnog sistema. Kada se korisnički podaci za prijavljivanje autentikuju od strane registrovanog sigurnosnog paketa, obično se uspostavljaju kredencijali domena za korisnika. Više informacija o keširanim akreditacijama ovde.
Korisnici i Grupe
Nabrojavanje Korisnika i Grupa
Treba da proverite da li neka od grupa kojima pripadate ima zanimljiva ovlašćenja
Privilegovane grupe
Ako pripadate nekoj privilegovanoj grupi, možda ćete moći da eskalirate privilegije. Saznajte više o privilegovanim grupama i kako ih zloupotrebiti radi eskalacije privilegija ovde:
pagePrivileged GroupsManipulacija tokenima
Saznajte više o tome šta je token na ovoj stranici: Windows Tokens. Pogledajte sledeću stranicu da biste saznali više o zanimljivim tokenima i kako ih zloupotrebiti:
pageAbusing TokensPrijavljeni korisnici / Sesije
Matični folderi
Politika lozinke
Dobijanje sadržaja iz clipboard-a
Pokrenuti procesi
Dozvole datoteka i fascikli
Prvo, listanje procesa proverava lozinke unutar komandne linije procesa. Proverite da li možete prepisati neki pokrenuti binarni fajl ili imate dozvole za pisanje u fasciklu binarnog fajla kako biste iskoristili moguće DLL Hijacking napade:
Uvek proverite da li su pokrenuti mogući electron/cef/chromium debugeri, možete ih zloupotrebiti za eskalaciju privilegija.
Provera dozvola binarnih fajlova procesa
Provera dozvola foldera binarnih fajlova procesa (DLL Hijacking)
Rudarenje lozinki iz memorije
Možete kreirati memorijski zapis pokrenutog procesa koristeći procdump iz sysinternals-a. Servisi poput FTP-a imaju kredencijale u čistom tekstu u memoriji, pokušajte da izvršite dump memorije i pročitate kredencijale.
Nesigurne GUI aplikacije
Aplikacije koje se izvršavaju kao SISTEM mogu dozvoliti korisniku da pokrene CMD ili pregleda direktorijume.
Primer: "Windows Help and Support" (Windows + F1), pretražite "command prompt", kliknite na "Click to open Command Prompt"
Servisi
Dobijanje liste servisa:
Dozvole
Možete koristiti sc da biste dobili informacije o usluzi
Preporučuje se da imate binarni accesschk iz Sysinternals da biste proverili potrebni nivo privilegija za svaku uslugu.
Preporučuje se proveriti da li "Authenticated Users" mogu da menjaju bilo koji servis:
Možete preuzeti accesschk.exe za XP ovde
Omogući servis
Ako imate ovu grešku (na primer sa SSDPSRV):
1058 sistemsku grešku. Servis ne može biti pokrenut, ili zato što je onemogućen ili zato što nema omogućenih uređaja povezanih sa njim.
Možete ga omogućiti korišćenjem
Imajte u vidu da usluga upnphost zavisi od SSDPSRV da bi radila (za XP SP1)
Još jedan način za rešavanje ovog problema je pokretanje:
Izmena putanje binarne datoteke servisa
U scenariju u kojem grupa "Autentifikovani korisnici" poseduje SERVICE_ALL_ACCESS na servisu, moguća je izmena izvršne binarne datoteke servisa. Za izmenu i izvršavanje sc:
Ponovno pokretanje servisa
Privilegije se mogu eskalirati kroz različite dozvole:
SERVICE_CHANGE_CONFIG: Omogućava rekonfiguraciju binarne usluge.
WRITE_DAC: Omogućava rekonfiguraciju dozvola, što dovodi do mogućnosti promene konfiguracija usluga.
WRITE_OWNER: Dozvoljava sticanje vlasništva i rekonfiguraciju dozvola.
GENERIC_WRITE: Nasleđuje sposobnost promene konfiguracija usluga.
GENERIC_ALL: Takođe nasleđuje sposobnost promene konfiguracija usluga.
Za otkrivanje i iskorišćavanje ove ranjivosti, može se koristiti exploit/windows/local/service_permissions.
Slabe dozvole binarnih usluga
Proverite da li možete izmeniti binarni fajl koji izvršava uslugu ili da li imate dozvole za pisanje u fascikli gde se nalazi binarni fajl (DLL Hijacking). Možete dobiti svaki binarni fajl koji izvršava uslugu koristeći wmic (ne u system32) i proveriti vaše dozvole koristeći icacls:
Možete koristiti sc i icacls:
Dozvole za izmenu registra usluga
Treba da proverite da li možete da izmenite bilo koji registar usluga. Možete proveriti svoje dozvole nad registrom usluga tako što ćete:
Potrebno je proveriti da li Authenticated Users ili NT AUTHORITY\INTERACTIVE poseduju dozvole FullControl
. Ukoliko je to slučaj, binarni fajl koji izvršava servis može biti promenjen.
Da biste promenili putanju izvršenja binarnog fajla:
Dozvole za dodavanje podataka/dodavanje poddirektorijuma u registru usluga
Ako imate ovu dozvolu nad registrom, to znači da možete kreirati poddirektorijume iz ovog. U slučaju Windows usluga, ovo je dovoljno da izvršite proizvoljan kod:
pageAppendData/AddSubdirectory permission over service registryPutanje usluga bez navođenja u navodnicima
Ako putanja do izvršne datoteke nije unutar navodnika, Windows će pokušati izvršiti svaki završetak pre razmaka.
Na primer, za putanju C:\Program Files\Some Folder\Service.exe Windows će pokušati izvršiti:
Nabroj sve putanje usluga bez navodnika, isključujući one koje pripadaju ugrađenim Windows uslugama:
Možete otkriti i iskoristiti ovu ranjivost pomoću metasploita: exploit/windows/local/trusted\_service\_path
Možete ručno kreirati servisni binarni fajl pomoću metasploita:
Akcije oporavka
Windows korisnicima omogućava da specificiraju akcije koje će biti preduzete ukoliko servis ne uspe. Ova funkcionalnost može biti konfigurisana da pokazuje ka binarnom fajlu. Ukoliko je ovaj binarni fajl zamenjiv, moguće je eskalirati privilegije. Više detalja možete pronaći u zvaničnoj dokumentaciji.
Aplikacije
Instalirane aplikacije
Proverite dozvole binarnih fajlova (možda možete prepisati jedan i eskalirati privilegije) i foldera (DLL preusmeravanje).
Dozvole za pisanje
Proverite da li možete da izmenite neku konfiguracionu datoteku kako biste pročitali neku posebnu datoteku ili da izmenite neki binarni fajl koji će biti izvršen od strane naloga Administratora (schedtasks).
Način da pronađete slabe dozvole foldera/datoteka u sistemu je:
Pokretanje pri pokretanju sistema
Proverite da li možete da prepišete neki registar ili binarni fajl koji će biti izvršen od strane drugog korisnika. Pročitajte sledeću stranicu da biste saznali više o zanimljivim lokacijama autorun-a za eskalaciju privilegija:
pagePrivilege Escalation with AutorunsDrajveri
Potražite moguće treće strane čudne/vulnerabilne drajvere
PATH DLL Hijacking
Ako imate dozvole za pisanje unutar foldera koji se nalazi na PUTANJI, možda ćete moći da preuzmete kontrolu nad DLL fajlom koji učitava proces i povećate privilegije.
Proverite dozvole svih foldera unutar PUTANJE:
Za više informacija o tome kako zloupotrebiti ovu proveru:
pageWritable Sys Path +Dll Hijacking PrivescMreža
Deljenja
hosts fajl
Proverite da li postoje drugi poznati računari čvrsto upisani u hosts fajl
Mrežni interfejsi i DNS
Otvoreni portovi
Proverite ograničene usluge spolja
Tabela rutiranja
ARP Tabela
Pravila Firewall-a
Proverite ovu stranicu za komande povezane sa Firewall-om (lista pravila, kreiranje pravila, isključivanje, isključivanje...)
Više komandi za enumeraciju mreže ovde
Windows Subsystem for Linux (wsl)
Binarni bash.exe
takođe se može pronaći u C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
Ako dobijete root korisnika, možete osluškivati na bilo kojem portu (prvi put kada koristite nc.exe
za osluškivanje na portu, zatražiće putem GUI-a da li je nc
dozvoljen od strane firewall-a).
Da biste lako pokrenuli bash kao root, možete probati --default-user root
Možete istražiti WSL
fajl sistem u folderu C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Windows Kredencijali
Winlogon Kredencijali
Menadžer akreditacija / Windows trezor
Sa https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault Windows trezor čuva korisničke akreditacije za servere, veb sajtove i druge programe koje Windows može automatski prijaviti korisnike. Na prvi pogled, ovo može izgledati kao da korisnici mogu čuvati svoje Facebook akreditacije, Twitter akreditacije, Gmail akreditacije itd., tako da se automatski prijavljuju putem pretraživača. Ali nije tako.
Windows trezor čuva akreditacije koje Windows može automatski prijaviti korisnike, što znači da bilo koja Windows aplikacija koja zahteva akreditacije za pristup resursu (serveru ili veb sajtu) može koristiti ovaj Menadžer akreditacija & Windows trezor i koristiti dostavljene akreditacije umesto toga što korisnici unose korisničko ime i lozinku svaki put.
Ako aplikacije ne interaguju sa Menadžerom akreditacija, ne mislim da je moguće da koriste akreditacije za određeni resurs. Dakle, ako vaša aplikacija želi da koristi trezor, trebalo bi na neki način komunicirati sa menadžerom akreditacija i zatražiti akreditacije za taj resurs iz podrazumevanog trezora za čuvanje.
Koristite cmdkey
da biste prikazali sačuvane akreditacije na mašini.
Zatim možete koristiti runas
sa opcijama /savecred
kako biste koristili sačuvane akreditive. Sledeći primer poziva udaljeni binarni fajl putem SMB deljenja.
Korišćenje runas
sa zadatim setom akreditacija.
Imajte na umu da mimikatz, lazagne, credentialfileview, VaultPasswordView, ili iz Empire Powershells modula.
DPAPI
Data Protection API (DPAPI) pruža metod simetrične enkripcije podataka, uglavnom korišćen unutar Windows operativnog sistema za simetričnu enkripciju asimetričnih privatnih ključeva. Ova enkripcija koristi korisničku ili sistemsku tajnu kako bi značajno doprinela entropiji.
DPAPI omogućava enkripciju ključeva kroz simetrični ključ koji se izvodi iz korisničkih prijava. U scenarijima koji uključuju enkripciju sistema, koristi sistemsku tajnu za autentifikaciju domena.
Enkriptovani korisnički RSA ključevi, korišćenjem DPAPI-ja, čuvaju se u direktorijumu %APPDATA%\Microsoft\Protect\{SID}
, gde {SID}
predstavlja Security Identifier korisnika. DPAPI ključ, smešten zajedno sa glavnim ključem koji štiti korisničke privatne ključeve u istom fajlu, obično se sastoji od 64 bajta slučajnih podataka. (Važno je napomenuti da je pristup ovom direktorijumu ograničen, sprečavajući listanje njegovog sadržaja putem dir
komande u CMD-u, mada se može listati putem PowerShell-a).
Možete koristiti mimikatz modul dpapi::masterkey
sa odgovarajućim argumentima (/pvk
ili /rpc
) da biste je dešifrovali.
Datoteke sa kredencijalima zaštićene glavnom lozinkom obično se nalaze u:
Možete koristiti mimikatz modul dpapi::cred
sa odgovarajućim /masterkey
za dešifrovanje.
Možete izvući mnogo DPAPI masterključeva iz memorije pomoću modula sekurlsa::dpapi
(ako ste root).
PowerShell Kredencijali
PowerShell kredencijali se često koriste za skriptovanje i automatizaciju zadataka kao način čuvanja šifrovanih kredencijala na praktičan način. Kredencijali su zaštićeni pomoću DPAPI, što obično znači da ih može dešifrovati samo isti korisnik na istom računaru na kojem su kreirani.
Za dešifrovanje PS kredencijala iz datoteke koja ih sadrži, možete uraditi:
Wifi
Sačuvane RDP veze
Možete ih pronaći na HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
i u HKCU\Software\Microsoft\Terminal Server Client\Servers\
Nedavno izvršene komande
Upravljač lozinki za udaljenu radnu površinu
Koristite Mimikatz dpapi::rdg
modul sa odgovarajućim /masterkey
da biste dekriptovali bilo koje .rdg fajlove.
Možete izvući mnogo DPAPI masterključeva iz memorije pomoću Mimikatz sekurlsa::dpapi
modula
Ljepljive beleške
Ljudi često koriste StickyNotes aplikaciju na Windows radnim stanicama da bi sačuvali lozinke i druge informacije, ne shvatajući da je to fajl baze podataka. Ovaj fajl se nalazi na putanji C:\Users\<korisnik>\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite
i uvek je vredno pretražiti ga i pregledati.
AppCmd.exe
Imajte na umu da da biste povratili lozinke iz AppCmd.exe morate biti Administrator i pokrenuti se pod visokim nivoom integriteta.
AppCmd.exe se nalazi u direktorijumu %systemroot%\system32\inetsrv\
.
Ako ovaj fajl postoji, moguće je da su neki kredencijali konfigurisani i mogu biti povraćeni.
Ovaj kod je izvučen iz PowerUP:
SCClient / SCCM
Proverite da li postoji C:\Windows\CCM\SCClient.exe
.
Instalateri se pokreću sa PRIVILEGIJAMA SISTEMA, mnogi su ranjivi na DLL Sideloading (Informacije sa https://github.com/enjoiz/Privesc).
Fajlovi i Registar (Poverljivi podaci)
Putty podaci
Putty SSH Host Ključevi
SSH ključevi u registru
SSH privatni ključevi mogu biti smešteni unutar registarskog ključa HKCU\Software\OpenSSH\Agent\Keys
, stoga treba da proverite da li ima nečega zanimljivog unutra:
Ako pronađete bilo koji unos unutar te putanje, verovatno će biti sačuvan SSH ključ. Čuva se šifrovan, ali se lako može dešifrovati koristeći https://github.com/ropnop/windows_sshagent_extract. Više informacija o ovoj tehnici možete pronaći ovde: https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/
Ako ssh-agent
servis nije pokrenut i želite da se automatski pokrene prilikom pokretanja računara, pokrenite:
Izgleda da ova tehnika više nije validna. Pokušao sam da kreiram neke ssh ključeve, dodam ih sa ssh-add
i prijavim se putem ssh na mašinu. Registry HKCU\Software\OpenSSH\Agent\Keys ne postoji i procmon nije identifikovao korišćenje dpapi.dll
tokom autentikacije asimetričnim ključem.
Neprisutne datoteke
Možete takođe pretražiti ove datoteke koristeći metasploit: post/windows/gather/enum_unattend
Primer sadržaja:
SAM & SYSTEM rezervne kopije
Cloud Credentials
McAfee SiteList.xml
Pretražite datoteku nazvanu SiteList.xml
Keširana GPP lozinka
Ranije je postojala funkcija koja je omogućavala implementaciju prilagođenih lokalnih administratorskih naloga na grupi mašina putem grupne politike preferencija (GPP). Međutim, ovaj metod je imao značajne sigurnosne propuste. Prvo, objekti grupne politike (GPO), smešteni kao XML datoteke u SYSVOL-u, mogli su biti pristupljeni od strane bilo kog korisnika domena. Drugo, lozinke unutar ovih GPP-ova, enkriptovane sa AES256 korišćenjem javno dokumentovanog podrazumevanog ključa, mogle su biti dešifrovane od strane bilo kog autentifikovanog korisnika. Ovo je predstavljalo ozbiljan rizik, jer je moglo omogućiti korisnicima sticanje povišenih privilegija.
Kako bi se umanjio ovaj rizik, razvijena je funkcija za skeniranje lokalno keširanih GPP datoteka koje sadrže polje "cpassword" koje nije prazno. Nakon pronalaska takve datoteke, funkcija dešifruje lozinku i vraća prilagođeni PowerShell objekat. Ovaj objekat uključuje detalje o GPP-u i lokaciju datoteke, pomažući u identifikaciji i otklanjanju ove sigurnosne ranjivosti.
Pretražite C:\ProgramData\Microsoft\Group Policy\history
ili C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (pre Windows Viste) za ove datoteke:
Groups.xml
Services.xml
Scheduledtasks.xml
DataSources.xml
Printers.xml
Drives.xml
Za dešifrovanje cPassword-a:
Korišćenje crackmapexec alata za dobijanje lozinki:
IIS Web Konfiguracija
Primer web.config sa kredencijalima:
OpenVPN kredencijali
Zapisi
Zatražite pristupne podatke
Uvek možete zatražiti od korisnika da unese svoje pristupne podatke ili čak pristupne podatke drugog korisnika ako smatrate da ih može znati (primetite da je direktno traženje pristupnih podataka od klijenta zaista rizično):
Moguća imena datoteka koja sadrže akreditive
Poznate datoteke koje su nekada sadržavale šifre u čistom tekstu ili Base64
Pretražite sve predložene datoteke:
Kredencijali u RecycleBin-u
Trebalo bi takođe proveriti Bin da biste pronašli kredencijale unutra
Za oporavak lozinki sačuvanih od strane nekoliko programa možete koristiti: http://www.nirsoft.net/password_recovery_tools.html
Unutar registra
Drugi mogući registarski ključevi sa kredencijalima
Izdvajanje openssh ključeva iz registra.
Istorija pregledača
Treba da proverite baze podataka gde su sačuvane lozinke iz Chrome-a ili Firefox-a. Takođe proverite istoriju, obeleživače i favorite pregledača jer se možda neke lozinke čuvaju tamo.
Alati za izdvajanje lozinki iz pregledača:
Mimikatz:
dpapi::chrome
Prepisivanje COM DLL fajlova
Component Object Model (COM) je tehnologija ugrađena u Windows operativni sistem koja omogućava međusobnu komunikaciju između softverskih komponenti različitih jezika. Svaka COM komponenta je identifikovana putem ID klase (CLSID), a svaka komponenta izlaže funkcionalnosti putem jednog ili više interfejsa, identifikovanih putem ID-ova interfejsa (IIDs).
COM klase i interfejsi su definisani u registru pod HKEY_CLASSES_ROOT\CLSID i HKEY_CLASSES_ROOT\Interface. Ovaj registar se kreira spajanjem HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT.
Unutar CLSID-ova ovog registra možete pronaći podregistrar InProcServer32 koji sadrži podrazumevanu vrednost koja pokazuje na DLL i vrednost nazvanu ThreadingModel koja može biti Apartment (Jednonitno), Free (Višenitno), Both (Jedno ili Više) ili Neutral (Nitno Neutralno).
U osnovi, ako možete prepisati bilo koji od DLL fajlova koji će biti izvršeni, možete doseći privilegije ako taj DLL bude izvršen od strane drugog korisnika.
Da biste saznali kako napadači koriste COM preusmeravanje kao mehanizam upornosti, proverite:
pageCOM HijackingOpšta pretraga lozinki u fajlovima i registru
Pretraga sadržaja fajlova
Pretražite datoteku sa određenim imenom datoteke
Pretražite registar za imena ključeva i lozinke
Alati koji traže lozinke
MSF-Credentials Plugin je msf dodatak koji sam kreirao kako bi automatski izvršavao svaki metasploit POST modul koji traži akreditive unutar žrtve. Winpeas automatski traži sve datoteke koje sadrže lozinke navedene na ovoj stranici. Lazagne je još jedan odličan alat za izvlačenje lozinki sa sistema.
Alat SessionGopher traži sesije, korisnička imena i lozinke nekoliko alata koji čuvaju ove podatke u čistom tekstu (PuTTY, WinSCP, FileZilla, SuperPuTTY i RDP).
Procureni Čuvari
Zamislite da proces koji se izvršava kao SISTEM otvori novi proces (OpenProcess()
) sa puno pristupa. Isti proces takođe kreira novi proces (CreateProcess()
) sa niskim privilegijama ali nasleđujući sve otvorene čuvare glavnog procesa.
Zatim, ako imate puni pristup niskoprivilegovanom procesu, možete dohvatiti otvoren čuvar privilegovanog procesa kreiranog sa OpenProcess()
i ubaciti shell kod.
Pročitajte ovaj primer za više informacija o kako otkriti i iskoristiti ovu ranjivost.
Pročitajte ovaj drugi post za detaljnije objašnjenje o tome kako testirati i zloupotrebiti više otvorenih čuvara procesa i niti nasleđenih sa različitim nivoima dozvola (ne samo puni pristup).
Impersonacija Klijenta Imenovane Cevi
Deljeni segmenti memorije, nazvani cevi, omogućavaju komunikaciju procesa i prenos podataka.
Windows pruža mogućnost nazvanu Imenovane Cevi, omogućavajući nepovezanim procesima da dele podatke, čak i preko različitih mreža. Ovo podseća na arhitekturu klijent/server, sa ulogama definisanim kao imenovani cev server i imenovani cev klijent.
Kada se podaci šalju kroz cev od strane klijenta, server koji je postavio cev ima mogućnost da preuzme identitet klijenta, pod uslovom da ima neophodna SeImpersonate prava. Identifikacija privilegovanog procesa koji komunicira putem cevi koju možete imitirati pruža priliku da dobijete više privilegija preuzimanjem identiteta tog procesa kada interaguje sa cevi koju ste uspostavili. Uputstva za izvođenje takvog napada mogu se pronaći ovde i ovde.
Takođe, sledeći alat omogućava interceptovanje komunikacije imenovane cevi sa alatom poput burp-a: https://github.com/gabriel-sztejnworcel/pipe-intercept a ovaj alat omogućava listanje i pregled svih cevi radi pronalaženja priveska https://github.com/cyberark/PipeViewer
Razno
Pratite Komandne Linije za lozinke
Kada dobijete shell kao korisnik, može se desiti da se izvršavaju zakazani zadaci ili drugi procesi koji prosleđuju akreditive putem komandne linije. Skripta ispod beleži komandne linije procesa svake dve sekunde i upoređuje trenutno stanje sa prethodnim stanjem, prikazujući sve razlike.
Krađa lozinki iz procesa
Od korisnika sa niskim privilegijama do NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass
Ako imate pristup grafičkom interfejsu (putem konzole ili RDP-a) i UAC je omogućen, u nekim verzijama Microsoft Windows-a moguće je pokrenuti terminal ili bilo koji drugi proces kao "NT\AUTHORITY SYSTEM" sa neprivilegovanog korisnika.
Ovo omogućava eskalaciju privilegija i zaobilaženje UAC-a istovremeno sa istom ranjivošću. Dodatno, nije potrebno instalirati ništa, a binarni fajl korišćen tokom procesa je potpisan i izdat od strane Microsoft-a.
Neki od pogođenih sistema su sledeći:
Da biste iskoristili ovu ranjivost, potrebno je izvršiti sledeće korake:
Imate sve potrebne datoteke i informacije u sledećem GitHub repozitorijumu:
https://github.com/jas502n/CVE-2019-1388
Od Administrator Medium do High Integrity Level / UAC Bypass
Pročitajte ovo da saznate više o Integrity Levels:
pageIntegrity LevelsZatim pročitajte ovo da saznate više o UAC i UAC prevarama:
pageUAC - User Account ControlOd High Integrity do Systema
Novi servis
Ako već radite u High Integrity procesu, prelazak na SYSTEM može biti jednostavan samo kreiranjem i izvršavanjem novog servisa:
UvekInstalirajPovećano
Iz procesa visoke integriteta možete pokušati omogućiti unose registra AlwaysInstallElevated i instalirati reverzni shell koristeći .msi omotač. Više informacija o uključenim ključevima registra i kako instalirati .msi paket ovde.
Visoko + SeImpersonate privilegija do Sistema
Možete pronaći kod ovde.
Od SeDebug + SeImpersonate do punih Token privilegija
Ako imate te token privilegije (verovatno ćete ih pronaći u već postojećem procesu visoke integriteta), bićete u mogućnosti da otvorite skoro svaki proces (osim zaštićenih procesa) sa privilegijom SeDebug, kopirate token procesa, i kreirate proizvoljan proces sa tim tokenom. Korišćenjem ove tehnike obično je izabran bilo koji proces koji se izvršava kao SISTEM sa svim token privilegijama (da, možete pronaći SISTEM procese bez svih token privilegija). Možete pronaći primer koda koji izvršava predloženu tehniku ovde.
Imenovane Cevi
Ova tehnika se koristi od strane meterpretera za eskalaciju u getsystem
. Tehnika se sastoji od kreiranja cevi i zatim kreiranja/zloupotrebe servisa za pisanje na tu cev. Zatim, server koji je kreirao cev koristeći privilegiju SeImpersonate
će biti u mogućnosti da impersonira token klijenta cevi (servis) i dobije SISTEM privilegije.
Ako želite da saznate više o imenovanim cevima trebalo bi da pročitate ovo.
Ako želite da pročitate primer kako preći sa visoke integriteta na Sistem koristeći imenovane cevi trebalo bi da pročitate ovo.
Dll Preusmeravanje
Ako uspete da preusmerite dll koju učitava proces koji se izvršava kao SISTEM bićete u mogućnosti da izvršite proizvoljan kod sa tim dozvolama. Stoga je Dll Preusmeravanje takođe korisno za ovu vrstu eskalacije privilegija, i, štaviše, mnogo je jednostavnije postići iz procesa visoke integriteta jer će imati dozvole za pisanje u fasciklama koje se koriste za učitavanje dll-ova. Možete saznati više o Dll preusmeravanju ovde.
Od Administratora ili Mrežne usluge do Sistema
Od LOKALNE USLUGE ili MREŽNE USLUGE do punih privilegija
Pročitajte: https://github.com/itm4n/FullPowers
Više pomoći
Statični impacket binarni fajlovi
Korisni alati
Najbolji alat za traženje vektora eskalacije privilegija na Windows-u: WinPEAS
PS
PrivescCheck
PowerSploit-Privesc(PowerUP) -- Proverite konfiguracije i osetljive fajlove (proverite ovde). Detektovano.
JAWS -- Proverite neke moguće konfiguracije i prikupite informacije (proverite ovde).
privesc -- Proverite konfiguracije
SessionGopher -- Izvlači informacije o sesijama sa PuTTY, WinSCP, SuperPuTTY, FileZilla, i RDP. Koristite -Temeljno lokalno.
Invoke-WCMDump -- Izvlači akreditive iz Menadžera akreditiva. Detektovano.
DomainPasswordSpray -- Raspršuje sakupljene lozinke po domenu
Inveigh -- Inveigh je PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer i alat za man-in-the-middle.
WindowsEnum -- Osnovna provera Windows enumeracije privilegija
Sherlock ~~~~ -- Pretražite poznate ranjivosti eskalacije privilegija (ZASTARELO za Watson)
WINspect -- Lokalne provere (Potrebna su administratorska prava)
Exe
Watson -- Pretražite poznate ranjivosti eskalacije privilegija (potrebno je kompajlirati korišćenjem VisualStudio) (prekompajlirano)
SeatBelt -- Enumeracija hosta tražeći konfiguracije (više je alat za prikupljanje informacija nego za eskalaciju privilegija) (potrebno je kompajlirati) (prekompajlirano)
LaZagne -- Izvlači akreditive iz mnogih softvera (prekompajlirani exe na github-u)
SharpUP -- Portovanje PowerUp-a u C#
Beroot ~~~~ -- Proverite konfiguracije (izvršni fajl prekompajliran na github-u). Nije preporučljivo. Ne radi dobro na Win10.
Windows-Privesc-Check -- Proverite moguće konfiguracije (exe iz python-a). Nije preporučljivo. Ne radi dobro na Win10.
Bat
winPEASbat -- Alat kreiran na osnovu ovog posta (ne zahteva accesschk da bi pravilno radio ali može ga koristiti).
Lokalno
Windows-Exploit-Suggester -- Čita izlaz systeminfo i preporučuje funkcionalne eksploate (lokalni python) Windows Exploit Suggester Next Generation -- Čita izlaz systeminfo i preporučuje funkcionalne eksploate (lokalni python)
Meterpreter
multi/recon/local_exploit_suggestor
Morate kompajlirati projekat koristeći odgovarajuću verziju .NET-a (vidi ovo). Da biste videli instaliranu verziju .NET-a na ciljnom računaru možete uraditi:
Bibliografija
Last updated