Windows Local Privilege Escalation
Beste hulpmiddel om te soek na Windows plaaslike bevoorregte eskalasie vektore: WinPEAS
Aanvanklike Windows Teorie
Toegangstokens
As jy nie weet wat Windows-toegangstokens is nie, lees die volgende bladsy voordat jy voortgaan:
pageAccess TokensACL's - DACL's/SACL's/ACE's
Kyk na die volgende bladsy vir meer inligting oor ACL's - DACL's/SACL's/ACE's:
pageACLs - DACLs/SACLs/ACEsIntegriteitsvlakke
As jy nie weet wat integriteitsvlakke in Windows is nie, moet jy die volgende bladsy lees voordat jy voortgaan:
pageIntegrity LevelsWindows Sekuriteitskontroles
Daar is verskillende dinge in Windows wat jou kan verhoed om die stelsel te ontleed, uitvoerbare lêers uit te voer of selfs jou aktiwiteite op te spoor. Jy moet die volgende bladsy lees en al hierdie verdedigingsmeganismes ontleed voordat jy met die bevoorregte eskalasie-ontleding begin:
pageWindows Security ControlsStelselinligting
Weergawe-inligtingontleding
Kyk of die Windows-weergawe enige bekende kwesbaarheid het (kyk ook na die gepaste opdaterings).
Weergawe-uitbuitings
Hierdie webwerf is handig om gedetailleerde inligting oor Microsoft-sekuriteitskwesbaarhede op te soek. Hierdie databasis het meer as 4,700 sekuriteitskwesbaarhede, wat die massiewe aanvalsoppervlak wat 'n Windows-omgewing bied, aantoon.
Op die stelsel
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
winpeas (Winpeas het watson ingesluit)
Plaaslik met stelselinligting
Github-opberging van uitbuitings:
Omgewing
Enige geloofsbriewe/Sappige inligting wat in die omgewingsveranderlikes gestoor is?
PowerShell Geskiedenis
PowerShell Oorplasing lêers
Jy kan leer hoe om dit aan te skakel by https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/
PowerShell Module Logging
Besonderhede van PowerShell pyplyn uitvoerings word aangeteken, insluitende uitgevoerde bevele, bevelaanroepings, en dele van skripte. Nietemin, volledige uitvoeringsbesonderhede en uitvoerresultate mag nie vasgelê word nie.
Om dit moontlik te maak, volg die instruksies in die "Transkripsie lêers" afdeling van die dokumentasie, en kies vir "Module Logging" in plaas van "Powershell Transkripsie".
Om die laaste 15 gebeure vanaf PowersShell-logboeke te sien, kan jy uitvoer:
PowerShell Skripsbloklogging
'n Volledige aktiwiteit en volledige inhoudsrekord van die skrips se uitvoering word vasgelê, wat verseker dat elke blok kode gedokumenteer word soos dit loop. Hierdie proses behou 'n omvattende ouditstroom van elke aktiwiteit, waardevol vir forensiese ondersoek en die analise van skadelike gedrag. Deur alle aktiwiteit tydens die uitvoering te dokumenteer, word gedetailleerde insigte in die proses verskaf.
Die loggebeure vir die Skripsblok kan gevind word binne die Windows-gebeurtenisleser by die pad: Toepassing en Dienslogboeke > Microsoft > Windows > PowerShell > Operasioneel. Om die laaste 20 gebeure te sien, kan jy die volgende gebruik:
Internet Instellings
Bestuurs
WSUS
Jy kan die stelsel compromitteer as die opdaterings nie aangevra word met httpS nie, maar met http.
Jy begin deur te kyk of die netwerk 'n nie-SSL WSUS-opdatering gebruik deur die volgende uit te voer:
Indien jy 'n antwoord soos die volgende kry:
En as HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
gelyk is aan 1
.
Dan is dit vatbaar vir uitbuiting. As die laaste register gelyk is aan 0, sal die WSUS-inskrywing geïgnoreer word.
Om hierdie kwesbaarhede uit te buit, kan jy gereedskap soos gebruik: Wsuxploit, pyWSUS - Dit is MiTM-gewapende uitbuitingskripte om 'n 'vals' opdatering in te spuit in nie-SSL WSUS-verkeer.
Lees die navorsing hier:
WSUS CVE-2020-1013
Lees die volledige verslag hier. Hierdie is basies die fout wat hierdie fout uitbuit:
As ons die mag het om ons plaaslike gebruikersproksi te wysig, en Windows Updates gebruik die proksi wat in Internet Explorer se instellings gekonfigureer is, het ons dus die mag om PyWSUS plaaslik te hardloop om ons eie verkeer te onderskep en kode as 'n verhewe gebruiker op ons bate te hardloop.
Verder, aangesien die WSUS-diens die huidige gebruiker se instellings gebruik, sal dit ook sy sertifikaatstoor gebruik. As ons 'n selfondertekende sertifikaat vir die WSUS-gashuisnaam genereer en hierdie sertifikaat by die huidige gebruiker se sertifikaatstoor voeg, sal ons in staat wees om beide HTTP- en HTTPS-WSUS-verkeer te onderskep. WSUS gebruik geen HSTS-soort meganismes om 'n vertrou-op-eerste-gebruik-tipe validering op die sertifikaat te implementeer nie. As die aangebiede sertifikaat deur die gebruiker vertrou word en die korrekte gashuisnaam het, sal dit deur die diens aanvaar word.
Jy kan hierdie kwesbaarheid uitbuit met die gereedskap WSUSpicious (sodra dit vrygestel is).
KrbRelayUp
'n Plaaslike voorreg-escalatie-kwesbaarheid bestaan in Windows domein-omgewings onder spesifieke toestande. Hierdie toestande sluit omgewings in waar LDAP-ondertekening nie afgedwing word nie, gebruikers self-regte besit wat hulle in staat stel om Hulpbron-Gebaseerde Beperkte Delegasie (RBCD) te konfigureer, en die vermoë vir gebruikers om rekenaars binne die domein te skep. Dit is belangrik om daarop te let dat hierdie vereistes voldoen word met verstekinstellings.
Vind die uitbuiting in https://github.com/Dec0ne/KrbRelayUp
Vir meer inligting oor die vloei van die aanval, kyk na https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/
AlwaysInstallElevated
As hierdie 2 registers geaktiveer is (waarde is 0x1), kan gebruikers met enige voorreg *.msi
-lêers as NT AUTHORITY\SYSTEM installeer (uitvoer).
Metasploit ladingstelsels
Indien jy 'n meterpreter-sessie het, kan jy hierdie tegniek outomatiseer deur die module exploit/windows/local/always_install_elevated
te gebruik
PowerUP
Gebruik die Write-UserAddMSI
bevel van power-up om binne die huidige gids 'n Windows MSI-binêre lêer te skep om voorregte te eskaleer. Hierdie skripsie skryf 'n vooraf saamgestelde MSI-installeerder wat vra vir 'n gebruiker/groep byvoeging (dus sal jy GUI-toegang benodig):
Uitvoer die geskepte binêre lêer om voorregte te eskaleer.
MSI Omslag
Lees hierdie handleiding om te leer hoe om 'n MSI omslag te skep met behulp van hierdie gereedskap. Let daarop dat jy 'n ".bat" lêer kan omsluit as jy net wil opdragreëls uitvoer
pageMSI WrapperSkep MSI met WIX
pageCreate MSI with WIXSkep MSI met Visual Studio
Genereer met Cobalt Strike of Metasploit 'n nuwe Windows EXE TCP lading in
C:\privesc\beacon.exe
Maak Visual Studio oop, kies Skep 'n nuwe projek en tik "installer" in die soekblokkie. Kies die Opstel Tovenaar projek en klik Volgende.
Gee die projek 'n naam, soos AlwaysPrivesc, gebruik
C:\privesc
vir die ligging, kies plaas oplossing en projek in dieselfde gids, en klik Skep.Bly klik op Volgende totdat jy by stap 3 van 4 kom (kies lêers om in te sluit). Klik Voeg by en kies die Beacon lading wat jy net gegenereer het. Klik dan Voltooi.
Lig die AlwaysPrivesc projek in die Oplossingsontleder uit en in die Eienskappe, verander TargetPlatform van x86 na x64.
Daar is ander eienskappe wat jy kan verander, soos die Skrywer en Vervaardiger wat die geïnstalleerde program meer geloofwaardig kan laat lyk.
Regskliek op die projek en kies Beeld > Aangepaste Aksies.
Regskliek op Installeer en kies Voeg Aangepaste Aksie by.
Dubbelklik op Toepassingsgids, kies jou beacon.exe lêer en klik OK. Dit sal verseker dat die beacon lading uitgevoer word sodra die installeerder uitgevoer word.
Onder die Aangepaste Aksie Eienskappe, verander Run64Bit na Waar.
Laastens, bou dit.
As die waarskuwing
Lêer 'beacon-tcp.exe' wat 'x64' teiken, is nie versoenbaar met die projek se teikenplatform 'x86'
getoon word, maak seker jy stel die platform na x64.
MSI Installering
Om die installasie van die skadelike .msi
lêer in die agtergrond uit te voer:
Om hierdie kwesbaarheid uit te buuit, kan jy gebruik maak van: exploit/windows/local/always_install_elevated
Antivirus en Detectors
Ouditinstellings
Hierdie instellings besluit wat gelog word, so jy moet aandag gee
WEF
Windows Event Forwarding, is interessant om te weet waar die logboeke gestuur word
LAPS
LAPS is ontwerp vir die bestuur van plaaslike administrateur wagwoorde, wat verseker dat elke wagwoord uniek, willekeurig, en gereeld opgedateer word op rekenaars wat by 'n domein aangesluit is. Hierdie wagwoorde word veilig binne Active Directory gestoor en kan slegs deur gebruikers wat voldoende regte deur ACLs verleen is, benader word, wat hulle in staat stel om plaaslike administrateur wagwoorde te sien indien gemagtig.
pageLAPSWDigest
Indien aktief, word plain-text wagwoorde gestoor in LSASS (Local Security Authority Subsystem Service). Meer inligting oor WDigest op hierdie bladsy.
LSA-beskerming
Vanaf Windows 8.1 het Microsoft verbeterde beskerming vir die Plaaslike Sekuriteitsowerheid (LSA) ingevoer om pogings deur onbetroubare prosesse te blokkeer om sy geheue te lees of kode in te spuit, wat die stelsel verder beveilig. Meer inligting oor LSA-beskerming hier.
Geloofsbewaarder
Geloofsbewaarder is in Windows 10 ingevoer. Dit doel is om die geloofsbriewe wat op 'n toestel gestoor word teen bedreigings soos oor-die-hashing aanvalle te beskerm.| Meer inligting oor Geloofsbewaarder hier.
Gekasieerde Geldele
Domein-geldele word geauthentiseer deur die Plaaslike Sekuriteitsowerheid (LSA) en word deur bedryfstelselkomponente gebruik. Wanneer 'n gebruiker se aanmeldingsdata geauthentiseer word deur 'n geregistreerde sekuriteitspakket, word domein-geldele vir die gebruiker tipies gevestig. Meer inligting oor Gekasieerde Gelde hier.
Gebruikers & Groepe
Enumerateer Gebruikers & Groepe
Jy moet nagaan of enige van die groepe waar jy deel van uitmaak interessante regte het
Bevoorregte groepe
As jy deel is van 'n paar bevoorregte groepe, kan jy bevoorregte regte eskaleer. Leer meer oor bevoorregte groepe en hoe om hulle te misbruik om regte te eskaleer hier:
pagePrivileged GroupsToken manipulasie
Leer meer oor wat 'n token is op hierdie bladsy: Windows Tokens. Kyk na die volgende bladsy om meer te leer oor interessante tokens en hoe om hulle te misbruik:
pageAbusing TokensAangemelde gebruikers / Sessies
Tuisgids
Wagwoordbeleid
Kry die inhoud van die knipbord
Hardloopprosesse
Lêer- en Vouerregte
Eerstens, lys die prosesse om te kyk vir wagwoorde binne die opdraglyn van die proses. Kyk of jy sekere binêre lopies kan oorskryf of as jy skryfregte van die binêre vouer het om moontlike DLL Ontvoeringsaanvalle te benut:
Altyd kyk vir moontlike electron/cef/chromium debuggers wat loop, jy kan dit misbruik om voorregte te verhoog.
Kyk na die regte van die prosesse se binêre lêers
Die toestemmings van die lêers van die prosesse binêre lêers nagaan (DLL Hijacking)
Geheue wagwoordontginning
Jy kan 'n geheuedump van 'n lopende proses skep deur procdump vanaf sysinternals te gebruik. Dienste soos FTP het die geloofsbriewe in teks in die geheue, probeer om die geheue te dump en lees die geloofsbriewe.
Onveilige GUI-toepassings
Toepassings wat as SISTEEM loop, kan 'n gebruiker toelaat om 'n CMD te skep, of deurlêer na gids.
Voorbeeld: "Windows Help en Ondersteuning" (Windows + F1), soek vir "opdrag-prompt", klik op "Klik om die Opdrag-prompt oop te maak"
Dienste
Kry 'n lys van dienste:
Regte
Jy kan sc gebruik om inligting oor 'n diens te kry
Dit word aanbeveel om die binêre accesschk van Sysinternals te hê om die vereiste bevoorregtingsvlak vir elke diens te kontroleer.
Dit word aanbeveel om te kontroleer of "Authenticated Users" enige diens kan wysig:
Jy kan accesschk.exe vir XP hier aflaai
Skakel diens in
As jy hierdie fout het (byvoorbeeld met SSDPSRV):
System error 1058 has occurred. The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
Jy kan dit inskakel deur die volgende te gebruik:
Neem in ag dat die diens upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)
'n Ander omweg vir hierdie probleem is om uit te voer:
Wysig diens binêre pad
In die scenario waar die "Authenticated users" groep SERVICE_ALL_ACCESS op 'n diens besit, is dit moontlik om die uitvoerbare binêre van die diens te wysig. Om sc te wysig en uit te voer:
Herlaai diens
Priviliges kan deur verskeie toestemmings geëskaleer word:
SERVICE_CHANGE_CONFIG: Laat herkonfigurasie van die diens se binêre lêer toe.
WRITE_DAC: Stel toestemmingherkonfigurasie in, wat lei tot die vermoë om dienskonfigurasies te verander.
WRITE_OWNER: Maak eienaarskapverkryging en toestemmingherkonfigurasie moontlik.
GENERIC_WRITE: Erf die vermoë om dienskonfigurasies te verander.
GENERIC_ALL: Erf ook die vermoë om dienskonfigurasies te verander.
Vir die opsporing en uitbuiting van hierdie kwesbaarheid kan die exploit/windows/local/service_permissions gebruik word.
Diensbinêre lêers swak toestemmings
Kyk of jy die binêre lêer kan wysig wat deur 'n diens uitgevoer word of as jy skryftoestemmings op die vouer waar die binêre lêer geleë is (DLL Ontvoering). Jy kan elke binêre lêer wat deur 'n diens uitgevoer word kry deur wmic (nie in system32 nie) te gebruik en jou toestemmings te kontroleer deur icacls te gebruik:
Jy kan ook sc en icacls gebruik:
Dienste register wysigingsregte
Jy moet nagaan of jy enige diensregister kan wysig. Jy kan nagaan of jy regte oor 'n diens register het deur die volgende te doen:
Dit moet nagegaan word of Authenticated Users of NT AUTHORITY\INTERACTIVE FullControl
-toestemmings het. Indien wel, kan die binêre lêer wat deur die diens uitgevoer word, verander word.
Om die Pad van die uitgevoerde binêre lêer te verander:
Dienste-register AppendData/AddSubdirectory-toestemmings
Indien jy hierdie toestemming oor 'n register het, beteken dit dat jy sub-registers van hierdie een kan skep. In die geval van Windows-dienste is dit genoeg om arbitrêre kode uit te voer:
pageAppendData/AddSubdirectory permission over service registryOngeslote Dienspaaie
Indien die pad na 'n uitvoerbare lêer nie binne aanhalingstekens is nie, sal Windows probeer om elke einde voor 'n spasie uit te voer.
Byvoorbeeld, vir die pad C:\Program Files\Some Folder\Service.exe sal Windows probeer om uit te voer:
Lys van alle ongekwoteerde dienspaaie, uitgesluit dié wat behoort aan ingeboude Windows-diens:
Jy kan hierdie kwesbaarheid opspoor en uitbuit met metasploit: exploit/windows/local/trusted\_service\_path
Jy kan handmatig 'n diens binêre lêer skep met metasploit:
Herstelaksies
Windows laat gebruikers toe om aksies te spesifiseer wat geneem moet word as 'n diens misluk. Hierdie kenmerk kan ingestel word om te verwys na 'n binêre lêer. As hierdie binêre lêer vervangbaar is, kan voorreg-escalasie moontlik wees. Meer besonderhede kan gevind word in die amp;offisiële dokumentasie.
Toepassings
Geïnstalleerde Toepassings
Kontroleer die regte van die binêre lêers (miskien kan jy een oorskryf en voorregte eskaleer) en van die lêers (DLL Ontvoering).
Skryf Toestemmings
Kyk of jy 'n konfigurasie lêer kan wysig om 'n spesiale lêer te lees of as jy 'n binêre lêer kan wysig wat deur 'n Administrateur-rekening uitgevoer gaan word (schedtasks).
'n Manier om swak vouer/lêer toestemmings in die stelsel te vind, is om te doen:
Hardloop by aanvang
Kyk of jy enige register of binêre lêer kan oorskryf wat deur 'n ander gebruiker uitgevoer gaan word. Lees die volgende bladsy om meer te leer oor interessante autorun-plekke om voorregte te eskaleer:
pagePrivilege Escalation with AutorunsBestuurders
Soek na moontlike derde party vreemde/ kwesbare bestuurders
PAD DLL Ontvoering
Indien jy skryfregte binne 'n gids op die PAD het, kan jy 'n DLL wat deur 'n proses gelaai word, ontvoer en sodoende voorregte eskaleer.
Kontroleer die regte van alle gidse binne die PAD:
Vir meer inligting oor hoe om hierdie kontrole te misbruik:
pageWritable Sys Path +Dll Hijacking PrivescNetwerk
Aandele
gasheer-lêer
Kyk vir ander bekende rekenaars wat hardgekoppel is op die gasheer-lêer
Netwerkinterfaces & DNS
Oop Poorte
Kyk vir beperkte dienste van buite af
Roetetabel
ARP-tabel
Firewall Reëls
Kyk na hierdie bladsy vir Firewall-verwante opdragte (lys reëls, skep reëls, skakel af, skakel af...)
Meer opdragte vir netwerkopsomming hier
Windows Subsisteem vir Linux (wsl)
Binêre bash.exe
kan ook gevind word in C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
As jy rootgebruiker kry, kan jy na enige poort luister (die eerste keer wat jy nc.exe
gebruik om na 'n poort te luister, sal dit via GUI vra of nc
deur die firewall toegelaat moet word).
Om maklik bash as 'n beheerder te begin, kan jy --default-user root
probeer
Jy kan die WSL
-lêersisteem verken in die vouer C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Windows-referenties
Winlogon-referenties
Geloofsbewaarder / Windows-kluis
Van https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault Die Windows-kluis stoor gebruikersgelde vir bedieners, webwerwe en ander programme wat Windows kan die gebruikers outomaties aanmeld. Op die eerste oogopslag mag dit lyk asof gebruikers hul Facebook-gelde, Twitter-gelde, Gmail-gelde ens. kan stoor, sodat hulle outomaties kan aanmeld via webblaaie. Maar dit is nie so nie.
Windows-kluis stoor gelde wat Windows die gebruikers outomaties kan aanmeld, wat beteken dat enige Windows-toepassing wat gelde benodig om toegang tot 'n hulpbron (bediener of 'n webwerf) te verkry, kan gebruik maak van hierdie Geldebestuurder & Windows-kluis en die verskafte gelde kan gebruik in plaas daarvan dat gebruikers die gebruikersnaam en wagwoord die hele tyd invoer.
Tensy die toepassings met die Geldebestuurder interaksie het, dink ek nie dat dit moontlik is vir hulle om die gelde vir 'n gegewe hulpbron te gebruik nie. Dus, as jou toepassing die kluis wil gebruik, moet dit op een of ander manier met die geldebestuurder kommunikeer en die gelde vir daardie hulpbron aanvra vanuit die verstek bergkluis.
Gebruik die cmdkey
om die gestoorde gelde op die masjien te lys.
Dan kan jy runas
gebruik met die /savecred
-opsies om die gestoorde geloofsbriewe te gebruik. Die volgende voorbeeld roep 'n afgeleë binêre lêer aan via 'n SMB-aandeel.
Gebruik runas
met 'n voorsiene stel geloofsbriewe.
Let wel dat mimikatz, lazagne, credentialfileview, VaultPasswordView, of van Empire Powershells module.
DPAPI
Die Data Protection API (DPAPI) bied 'n metode vir simmetriese versleuteling van data, hoofsaaklik gebruik binne die Windows-bedryfstelsel vir die simmetriese versleuteling van asimmetriese privaatsleutels. Hierdie versleuteling maak gebruik van 'n gebruiker- of stelselgeheim om beduidende entropie by te dra.
DPAPI maak die versleuteling van sleutels moontlik deur 'n simmetriese sleutel wat afgelei is van die gebruiker se aanmeldingsgeheime. In scenario's wat stelselversleuteling behels, maak dit gebruik van die stelsel se domeinoutentiseringsgeheime.
Versleutelde gebruiker RSA-sleutels, deur DPAPI te gebruik, word gestoor in die %APPDATA%\Microsoft\Protect\{SID}
-gids, waar {SID}
die gebruiker se Security Identifier verteenwoordig. Die DPAPI-sleutel, saam met die meestersleutel wat die gebruiker se privaatsleutels beskerm in dieselfde lêer, bestaan tipies uit 64 byte van ewekansige data. (Dit is belangrik om daarop te let dat toegang tot hierdie gids beperk is, wat voorkom dat die inhoud daarvan gelys word deur die dir
-opdrag in CMD, alhoewel dit deur PowerShell gelys kan word).
Jy kan die mimikatz module dpapi::masterkey
met die toepaslike argumente (/pvk
of /rpc
) gebruik om dit te dekripteer.
Die geloofsbriewe lêers wat deur die meester wagwoord beskerm word is gewoonlik geleë in:
Jy kan die mimikatz module dpapi::cred
met die toepaslike /masterkey
gebruik om te dekripteer.
Jy kan baie DPAPI masterkeys uit geheue onttrek met die sekurlsa::dpapi
module (as jy root is).
PowerShell Geldeenhede
PowerShell geldeenhede word dikwels gebruik vir skripsie en outomatiseringstake as 'n manier om versleutelde geldeenhede gerieflik te stoor. Die geldeenhede word beskerm deur DPAPI, wat tipies beteken dat hulle slegs deur dieselfde gebruiker op dieselfde rekenaar waarop hulle geskep is, gedekripteer kan word.
Om 'n PS-geldeenheid van die lêer wat dit bevat te dekripteer, kan jy die volgende doen:
Wifi
Gestoorde RDP-verbindings
Jy kan hulle vind op HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
en in HKCU\Software\Microsoft\Terminal Server Client\Servers\
Onlangs Uitgevoerde Opdragte
Afstandbeheer-geloofsbriewe-bestuurder
Gebruik die Mimikatz dpapi::rdg
module met die toepaslike /masterkey
om enige .rdg lêers te dekodeer
Jy kan baie DPAPI meester sleutels uit die geheue onttrek met die Mimikatz sekurlsa::dpapi
module
Plakkerige Notas
Mense gebruik dikwels die Plakkerige Notas-toep op Windows-werkstasies om wagwoorde en ander inligting te stoor, sonder om te besef dit is 'n databasis lêer. Hierdie lêer is geleë by C:\Users\<user>\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite
en is altyd die moeite werd om te soek en te ondersoek.
AppCmd.exe
Let daarop dat om wagwoorde van AppCmd.exe te herstel, moet jy 'n Administrateur wees en onder 'n Hoë Integriteitsvlak loop.
AppCmd.exe is geleë in die %systemroot%\system32\inetsrv\
gids.
As hierdie lêer bestaan, is dit moontlik dat sommige gelde ingestel is en herstel kan word.
Hierdie kode is onttrek uit PowerUP:
SCClient / SCCM
Kyk of C:\Windows\CCM\SCClient.exe
bestaan.
Installeerders word met STELSELvoorregte uitgevoer, baie is vatbaar vir DLL Sideloading (Inligting van https://github.com/enjoiz/Privesc).
Lêers en Registre (Legitieme Inligting)
Putty-inligting
Putty SSH Gasheer Sleutels
SSH-sleutels in register
SSH privaatsleutels kan binne die register sleutel HKCU\Software\OpenSSH\Agent\Keys
gestoor word, so jy moet nagaan of daar iets interessants daarin is:
Indien jy enige inskrywing binne daardie pad vind, sal dit waarskynlik 'n gestoorde SSH-sleutel wees. Dit is versleutel maar kan maklik ontsluit word deur https://github.com/ropnop/windows_sshagent_extract. Meer inligting oor hierdie tegniek hier: https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/
As die ssh-agent
-diens nie loop nie en jy wil hê dit moet outomaties begin by opstart, hardloop:
Dit lyk asof hierdie tegniek nie meer geldig is nie. Ek het probeer om 'n paar ssh-sleutels te skep, hulle by te voeg met ssh-add
en in te teken via ssh na 'n masjien. Die register HKCU\Software\OpenSSH\Agent\Keys bestaan nie en procmon het nie die gebruik van dpapi.dll
geïdentifiseer tydens die asimmetriese sleutelverifikasie nie.
Onaangemerkte lêers
Jy kan ook vir hierdie lêers soek met metasploit: post/windows/gather/enum_unattend
Voorbeeld inhoud:
SAM & SYSTEM rugsteun
Wolkmagwetbewys
McAfee SiteList.xml
Soek na 'n lêer genaamd SiteList.xml
Gekasheerde GPP-wagwoord
'n Funksie was vroeër beskikbaar wat die implementering van aangepaste plaaslike administrateur-rekeninge op 'n groep masjiene moontlik gemaak het deur middel van Groepbeleidsvoorkeure (GPP). Hierdie metode het egter aansienlike sekuriteitsfoute gehad. Eerstens kon die Groepbeleidsobjekte (GPO's), gestoor as XML-lêers in SYSVOL, deur enige domeingebruiker geopen word. Tweedens kon die wagwoorde binne hierdie GPP's, versleutel met AES256 met 'n publiek gedokumenteerde verstekleutel, deur enige geauthentiseerde gebruiker ontsluit word. Dit het 'n ernstige risiko ingehou, aangesien dit gebruikers kon toelaat om verhoogde voorregte te verkry.
Om hierdie risiko te verminder, is 'n funksie ontwikkel om plaaslik gekasheerde GPP-lêers te soek wat 'n "cpassword"-veld bevat wat nie leeg is nie. Nadat so 'n lêer gevind is, ontsluit die funksie die wagwoord en gee 'n aangepaste PowerShell-voorwerp terug. Hierdie voorwerp sluit besonderhede in oor die GPP en die lêer se ligging, wat help om hierdie sekuriteitskwesbaarheid te identifiseer en te herstel.
Soek in C:\ProgramData\Microsoft\Group Policy\history
of in C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (vorige aan W Vista) vir hierdie lêers:
Groups.xml
Services.xml
Scheduledtasks.xml
DataSources.xml
Printers.xml
Drives.xml
Om die cPassword te ontsluit:
Gebruik crackmapexec om die wagwoorde te kry:
IIS Web Config
IIS Web Config
Voorbeeld van web.config met geloofsbriewe:
OpenVPN geloofsbriewe
Logboeke
Vra vir geloofsbriewe
Jy kan altyd die gebruiker vra om sy geloofsbriewe in te voer of selfs die geloofsbriewe van 'n ander gebruiker as jy dink hy kan dit weet (let daarop dat om die klient direk vir die geloofsbriewe te vra werklik riskant is):
Moontlike lêernaam wat geloofsbriewe bevat
Bekende lêers wat 'n tyd gelede wagwoorde in teksvorm of Base64 bevat het
Soek deur al die voorgestelde lêers:
Geldeenhede in die Stortbak
Jy moet ook die Stortbak ondersoek vir geldeenhede daarin
Om wagwoorde te herstel wat deur verskeie programme gestoor is, kan jy gebruik: http://www.nirsoft.net/password_recovery_tools.html
Binne die register
Ander moontlike register sleutels met geldeenhede
Onttrek openssh-sleutels uit die register.
Blaaiersgeskiedenis
Jy moet kyk vir databasisse waar wagwoorde van Chrome of Firefox gestoor word. Kyk ook na die geskiedenis, bladmerke en gunstelinge van die blaaiers sodat dalk sommige wagwoorde daar gestoor is.
Gereedskap om wagwoorde uit blaaiers te onttrek:
Mimikatz:
dpapi::chrome
COM DLL-overskrywing
Component Object Model (COM) is 'n tegnologie wat binne die Windows-bedryfstelsel gebou is en dit maak onderlinge kommunikasie moontlik tussen sagtewarekomponente van verskillende tale. Elke COM-komponent word geïdentifiseer deur 'n klass-ID (CLSID) en elke komponent stel funksionaliteit bloot via een of meer koppelvlakke, geïdentifiseer deur koppelvlak-ID's (IIDs).
COM-klasse en koppelvlakke word in die register onder HKEY_CLASSES_ROOT\CLSID en HKEY_CLASSES_ROOT\Interface onderskeidelik gedefinieer. Hierdie register word geskep deur die HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT saam te voeg.
Binne die CLSIDs van hierdie register kan jy die kindregister InProcServer32 vind wat 'n verstekwaarde bevat wat na 'n DLL verwys en 'n waarde genaamd ThreadingModel wat Apartment (Enkel-draad), Free (Multi-draad), Both (Enkel of Multi) of Neutral (Draadneutraal) kan wees.
Basies, as jy enige van die DLL's kan overskryf wat uitgevoer gaan word, kan jy voorregte eskaleer as daardie DLL deur 'n ander gebruiker uitgevoer gaan word.
Om te leer hoe aanvallers COM Hijacking as 'n volhoubaarheidsmeganisme gebruik, kyk na:
pageCOM HijackingGeneriese Wagwoordsoektog in lêers en register
Soek na lêerinhoud
Soek na 'n lêer met 'n spesifieke lêernaam
Soek in die register vir sleutelname en wagwoorde
Gereedskap wat soek na wagwoorde
MSF-Credentials Plugin is 'n msf-inprop wat ek geskep het om hierdie inprop outomaties elke metasploit POST-module uit te voer wat soek na geloofsbriewe binne die slagoffer. Winpeas soek outomaties vir al die lêers wat wagwoorde bevat wat op hierdie bladsy genoem word. Lazagne is nog 'n puik gereedskap om wagwoorde uit 'n stelsel te onttrek.
Die gereedskap SessionGopher soek na sessies, gebruikersname en wagwoorde van verskeie gereedskappe wat hierdie data in die teks stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, en RDP)
Uitgelek Handlers
Stel jou voor dat 'n proses wat as SISTEEM loop 'n nuwe proses oopmaak (OpenProcess()
) met volle toegang. Dieselfde proses skep ook 'n nuwe proses (CreateProcess()
) met lae voorregte maar wat al die oop handlers van die hoofproses erf.
Dan, as jy volle toegang tot die lae bevoorregte proses het, kan jy die oop handler na die bevoorregte proses wat geskep is met OpenProcess()
gryp en 'n shellcode inspuit.
Lees hierdie voorbeeld vir meer inligting oor hoe om hierdie kwesbaarheid op te spoor en te misbruik.
Lees hierdie ander pos vir 'n meer volledige verduideliking oor hoe om meer oop handlers van prosesse en drade wat geërf is met verskillende vlakke van toestemmings (nie net volle toegang nie) te toets en te misbruik.
Naam Pyp Kliënt Impersonation
Gedeelde geheue segmente, bekend as pype, maak proses kommunikasie en data-oordrag moontlik.
Windows bied 'n funksie genaamd Naam Pype, wat onverwante prosesse in staat stel om data te deel, selfs oor verskillende netwerke. Dit lyk na 'n kliënt/bediener argitektuur, met rolle wat gedefinieer is as naam pype bediener en naam pype kliënt.
Wanneer data deur 'n kliënt deur 'n pyp gestuur word, het die bediener wat die pyp opgestel het die vermoë om die identiteit van die kliënt aan te neem, mits dit die nodige SeImpersonate regte het. Die identifisering van 'n bevoorregte proses wat kommunikeer via 'n pyp wat jy kan naboots, bied 'n geleentheid om hoër voorregte te verkry deur die identiteit van daardie proses aan te neem sodra dit met die pyp wat jy opgestel het, interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, kan nuttige gidse gevind word hier en hier.
Ook laat die volgende instrument toe om 'n naam pyp kommunikasie te onderskep met 'n instrument soos burp: https://github.com/gabriel-sztejnworcel/pipe-intercept en hierdie instrument laat toe om al die pype te lys en te sien om privescs te vind https://github.com/cyberark/PipeViewer
Misc
Monitering van Bevellyne vir wagwoorde
Wanneer jy 'n skaal as 'n gebruiker kry, kan daar geskeduleerde take of ander prosesse wees wat uitgevoer word wat geloofsbriewe op die bevellyn deurgee. Die skripsie hieronder vang proses bevellyne elke twee sekondes op en vergelyk die huidige toestand met die vorige toestand, waar enige verskille uitgevoer word.
Steel wagwoorde van prosesse
Van Lae Priv Gebruiker na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Omgang
Indien jy toegang het tot die grafiese koppelvlak (via konsole of RDP) en UAC is geaktiveer, is dit in sommige weergawes van Microsoft Windows moontlik om 'n terminaal of enige ander proses soos "NT\AUTHORITY SYSTEM" vanaf 'n onbevoorregte gebruiker te hardloop.
Dit maak dit moontlik om voorregte te eskaleer en terselfdertyd UAC te omseil met dieselfde kwesbaarheid. Daarbenewens is daar geen nodigheid om enigiets te installeer nie en die binêre wat tydens die proses gebruik word, is deur Microsoft onderteken en uitgereik.
Sommige van die geraakte stelsels is die volgende:
Om hierdie kwesbaarheid uit te buuit, is dit nodig om die volgende stappe uit te voer:
Jy het al die nodige lêers en inligting in die volgende GitHub-opberging:
https://github.com/jas502n/CVE-2019-1388
Van Administrateur Medium na Hoë Integriteitsvlak / UAC-Omweg
Lees hierdie om meer te leer oor Integriteitsvlakke:
pageIntegrity LevelsLees dan hierdie om meer te leer oor UAC en UAC-omweë:
pageUAC - User Account ControlVan Hoë Integriteit na Stelsel
Nuwe diens
As jy reeds op 'n Hoë Integriteitsproses loop, kan die oorgang na SISTEEM maklik wees deur net 'n nuwe diens te skep en uit te voer:
AlwaysInstallElevated
Vanaf 'n Hoë Integriteitsproses kan jy probeer om die AlwaysInstallElevated-registrisieë te aktiveer en 'n omgekeerde skaal te installeer deur 'n .msi omhulsel te gebruik. Meer inligting oor die betrokke registrisiesleutels en hoe om 'n .msi pakket te installeer hier.
Hoë + SeImpersonate-voorreg na Stelsel
Jy kan die kode hier vind.
Vanaf SeDebug + SeImpersonate na Volle Token-voorregte
As jy daardie token-voorregte het (waarskynlik sal jy dit vind in 'n reeds Hoë Integriteitsproses), sal jy in staat wees om bykans enige proses oop te maak (nie beskermde prosesse nie) met die SeDebug-voorreg, die token te kopieer van die proses, en 'n willekeurige proses met daardie token te skep. Deur hierdie tegniek te gebruik, word gewoonlik enige proses wat as STELSEL hardloop met al die token-voorregte gekies (ja, jy kan STELSELprosesse vind sonder al die token-voorregte). Jy kan 'n voorbeeld van kode wat die voorgestelde tegniek uitvoer hier vind.
Genoemde Pype
Hierdie tegniek word deur meterpreter gebruik om te eskaleer in getsystem
. Die tegniek behels die skep van 'n pyp en dan die skep/misbruik van 'n diens om op daardie pyp te skryf. Dan sal die bediener wat die pyp geskep het met die SeImpersonate
-voorreg in staat wees om die token van die pyp-kliënt (die diens) te impersonate en sodoende STELSEL-voorregte te verkry.
As jy meer wil leer oor genoemde pype, moet jy hierdie lees.
As jy 'n voorbeeld wil lees van hoe om van hoë integriteit na Stelsel te gaan deur genoemde pype, moet jy hierdie lees.
Dll Ontvoering
As jy daarin slaag om 'n dll te ontvoer wat gelaai word deur 'n proses wat as STELSEL hardloop, sal jy in staat wees om willekeurige kode uit te voer met daardie toestemmings. Daarom is Dll Ontvoering ook nuttig vir hierdie soort voorregeskaling, en, bovendien, is dit baie makliker om te bereik vanaf 'n hoë integriteitsproses aangesien dit skryfregte sal hê op die vouers wat gebruik word om dll's te laai. Jy kan meer leer oor Dll-ontvoering hier](dll-hijacking/).
Van Administrateur of Netwerkdienste na Stelsel
Van PLAASLIKE DIENS of NETWERKDIENS na volle voorregte
Lees: https://github.com/itm4n/FullPowers
Meer hulp
Nuttige gereedskap
Die beste gereedskap om te soek na Windows plaaslike voorregeskaling vektore: WinPEAS
PS
PrivescCheck
PowerSploit-Privesc(PowerUP) -- Soek na verkeerde konfigurasies en sensitiewe lêers (kyk hier). Opgespoor.
JAWS -- Soek na moontlike verkeerde konfigurasies en versamel inligting (kyk hier).
privesc -- Soek na verkeerde konfigurasies
SessionGopher -- Dit onttrek PuTTY, WinSCP, SuperPuTTY, FileZilla, en RDP gestoorde sessie-inligting. Gebruik -Deeglik lokaal.
Invoke-WCMDump -- Onttrek geloofsbriewe van Credential Manager. Opgespoor.
DomainPasswordSpray -- Spuit versamelde wagwoorde oor die domein
Inveigh -- Inveigh is 'n PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer en man-in-die-middel-gereedskap.
WindowsEnum -- Basiese privesc Windows-opname
Sherlock ~~~~ -- Soek na bekende privesc kwesbaarhede (VEROUDERD vir Watson)
WINspect -- Plaaslike kontroles (Benodig Admin-regte)
Exe
Watson -- Soek na bekende privesc kwesbaarhede (moet saamgestel word met behulp van VisualStudio) (voorgekompilde)
SeatBelt -- Enumereer die gasheer op soek na verkeerde konfigurasies (meer 'n gereedskap vir inligting insameling as privesc) (moet saamgestel word) (voorgekompilde)
LaZagne -- Onttrek geloofsbriewe van baie sagteware (voorgekompilde exe in github)
SharpUP -- Omskakeling van PowerUp na C#
Beroot ~~~~ -- Soek na verkeerde konfigurasie (uitvoerbare voorgekompilde in github). Nie aanbeveel nie. Dit werk nie goed in Win10 nie.
Windows-Privesc-Check -- Soek na moontlike verkeerde konfigurasies (exe vanaf python). Nie aanbeveel nie. Dit werk nie goed in Win10 nie.
Bat
winPEASbat -- Gereedskap geskep gebaseer op hierdie pos (dit benodig nie toegangchk om behoorlik te werk nie, maar dit kan dit gebruik).
Lokaal
Windows-Exploit-Suggester -- Lees die uitset van systeminfo en beveel werkende exploits aan (plaaslike python) Windows Exploit Suggester Next Generation -- Lees die uitset van systeminfo en beveel werkende exploits aan (plaaslike python)
Meterpreter
multi/recon/local_exploit_suggestor
Jy moet die projek saamstel met die korrekte weergawe van .NET (sien hierdie). Om die geïnstalleerde weergawe van .NET op die slagoffer-gasheer te sien, kan jy dit doen:
Bibliografie
Last updated