Windows Local Privilege Escalation
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:
HackTricks Opleiding GCP Red Team Expert (GRTE)
Beste hulpmiddel om na Windows plaaslike privilege escalasie vektore te soek: WinPEAS
Begin Windows Teorie
Toegangstokens
As jy nie weet wat Windows Toegangstokens is nie, lees die volgende bladsy voordat jy voortgaan:
Access TokensACLs - DACLs/SACLs/ACEs
Kyk na die volgende bladsy vir meer inligting oor ACLs - DACLs/SACLs/ACEs:
ACLs - DACLs/SACLs/ACEsIntegriteitsvlakke
As jy nie weet wat integriteitsvlakke in Windows is nie, moet jy die volgende bladsy lees voordat jy voortgaan:
Integrity LevelsWindows Sekuriteitsbeheer
Daar is verskillende dinge in Windows wat jou kan verhoed om die stelsel te evalueer, uitvoerbare lêers te loop of selfs jou aktiwiteite te ontdek. Jy moet die volgende bladsy lees en al hierdie verdedigings meganismes evalueer voordat jy die privilege escalasie evaluering begin:
Windows Security ControlsStelselinligting
Weergawe-inligting evaluering
Kyk of die Windows weergawe enige bekende kwesbaarheid het (kyk ook na die toegepaste regstellings).
Version Exploits
This site is handy for searching out detailed information about Microsoft security vulnerabilities. This database has more than 4,700 security vulnerabilities, showing the massive attack surface that a Windows environment presents.
On the system
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
winpeas (Winpeas het watson ingebed)
Locally with system information
Github repos of exploits:
Environment
Enige geloofsbriewe/lekke inligting wat in die omgewingsveranderlikes gestoor is?
PowerShell Geskiedenis
PowerShell Transkripsie lêers
Jy kan leer hoe om dit aan te skakel in https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/
PowerShell Module Logging
Besonderhede van PowerShell-pyplyn-uitvoerings word geregistreer, insluitend uitgevoerde opdragte, opdrag-aanroepe, en dele van skripte. Dit gesê, volledige uitvoeringsbesonderhede en uitsetresultate mag nie vasgelê word nie.
Om dit te aktiveer, volg die instruksies in die "Transkripsie-lêers" afdeling van die dokumentasie, en kies "Module Logging" in plaas van "Powershell Transcription".
Om die laaste 15 gebeurtenisse van PowersShell-logs te sien, kan jy uitvoer:
PowerShell Script Block Logging
'n Volledige aktiwiteit en volle inhoud rekord van die skrip se uitvoering word vasgevang, wat verseker dat elke blok kode gedokumenteer word soos dit loop. Hierdie proses behou 'n omvattende oudit spoor van elke aktiwiteit, waardevol vir forensiese ondersoek en die analise van kwaadwillige gedrag. Deur alle aktiwiteit op die tydstip van uitvoering te dokumenteer, word gedetailleerde insigte in die proses verskaf.
Logging events for the Script Block kan gevind word binne die Windows Event Viewer by die pad: Application and Services Logs > Microsoft > Windows > PowerShell > Operational. Om die laaste 20 gebeurtenisse te sien, kan jy gebruik maak van:
Internet Instellings
Skyfies
WSUS
Jy kan die stelsel kompromitteer as die opdaterings nie met httpS versoek word nie, maar met http.
Jy begin deur te kyk of die netwerk 'n nie-SSL WSUS-opdatering gebruik deur die volgende uit te voer:
As jy 'n antwoord kry soos:
En as HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
gelyk is aan 1
.
Dan, dit is uitbuitbaar. As die laaste register gelyk is aan 0, sal die WSUS-invoer geïgnoreer word.
Om hierdie kwesbaarhede te benut, kan jy gereedskap soos: Wsuxploit, pyWSUS gebruik - Dit is MiTM gewapende uitbuitingskripte om 'valse' opdaterings in nie-SSL WSUS-verkeer in te spuit.
Lees die navorsing hier:
WSUS CVE-2020-1013
Lees die volledige verslag hier. Basies, dit is die fout wat hierdie fout uitbuit:
As ons die mag het om ons plaaslike gebruikersproxy te wysig, en Windows Updates die proxy gebruik wat in Internet Explorer se instellings geconfigureer is, het ons dus die mag om PyWSUS plaaslik te loop om ons eie verkeer te onderskep en kode as 'n verhoogde gebruiker op ons bates te loop.
Verder, aangesien die WSUS-diens die huidige gebruiker se instellings gebruik, sal dit ook sy sertifikaatwinkel gebruik. As ons 'n self-ondertekende sertifikaat vir die WSUS-hostnaam genereer en hierdie sertifikaat in die huidige gebruiker se sertifikaatwinkel voeg, sal ons in staat wees om beide HTTP en HTTPS WSUS-verkeer te onderskep. WSUS gebruik geen HSTS-agtige meganismes om 'n vertroue-op-eerste-gebruik tipe validasie op die sertifikaat te implementeer nie. As die sertifikaat wat aangebied word vertrou word deur die gebruiker en die korrekte hostnaam het, sal dit deur die diens aanvaar word.
Jy kan hierdie kwesbaarheid uitbuit met die gereedskap WSUSpicious (sodra dit bevry is).
KrbRelayUp
'n Plaaslike privilige-eskalasie kwesbaarheid bestaan in Windows domein omgewings onder spesifieke toestande. Hierdie toestande sluit omgewings in waar LDAP-handtekening nie afgedwing word nie, gebruikers selfregte het wat hulle toelaat om Hulpbron-gebaseerde Beperkte Delegasie (RBCD) te konfigureer, en die vermoë vir gebruikers om rekenaars binne die domein te skep. Dit is belangrik om te noem dat hierdie vereistes nagekom word met standaardinstellings.
Vind die uitbuiting in https://github.com/Dec0ne/KrbRelayUp
Vir meer inligting oor die vloei van die aanval, kyk 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 van enige privilige *.msi
lêers as NT AUTHORITY\SYSTEM installeer (uitvoer).
Metasploit payloads
If you have a meterpreter session you can automate this technique using the module exploit/windows/local/always_install_elevated
PowerUP
Gebruik die Write-UserAddMSI
opdrag van power-up om binne die huidige gids 'n Windows MSI-binary te skep om voorregte te verhoog. Hierdie skrip skryf 'n vooraf saamgestelde MSI-installer wat vra vir 'n gebruiker/groep toevoeging (so jy sal GIU-toegang nodig hê):
Just execute the created binary to escalate privileges.
MSI Wrapper
Lees hierdie tutoriaal om te leer hoe om 'n MSI-wrapper te skep met hierdie gereedskap. Let daarop dat jy 'n ".bat" lêer kan omhul as jy net wil uitvoer opdraglyne.
MSI WrapperCreate MSI with WIX
Create MSI with WIXCreate MSI with Visual Studio
Genereer met Cobalt Strike of Metasploit 'n nuwe Windows EXE TCP payload in
C:\privesc\beacon.exe
Open Visual Studio, kies Skep 'n nuwe projek en tik "installer" in die soekboks. Kies die Setup Wizard 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.Hou aan om Volgende te klik totdat jy by stap 3 van 4 kom (kies lêers om in te sluit). Klik Voeg by en kies die Beacon payload wat jy pas gegenereer het. Klik dan op Voltooi.
Beklemtoon die AlwaysPrivesc projek in die Oplossing Verkenner en in die Eienskappe, verander TargetPlatform van x86 na x64.
Daar is ander eienskappe wat jy kan verander, soos die Skrywer en Fabrikant wat die geïnstalleerde app meer wettig kan laat lyk.
Regsklik op die projek en kies Kyk > Aangepaste Aksies.
Regsklik op Installeer en kies Voeg Aangepaste Aksie by.
Dubbelklik op Toepassing Gids, kies jou beacon.exe lêer en klik OK. Dit sal verseker dat die beacon payload uitgevoer word sodra die installer gedraai word.
Onder die Aangepaste Aksie Eienskappe, verander Run64Bit na Waar.
Laastens, bou dit.
As die waarskuwing
File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'
vertoon word, maak seker jy stel die platform op x64.
MSI Installation
Om die installasie van die kwaadwillige .msi
lêer in agtergrond uit te voer:
Om hierdie kwesbaarheid te benut, kan jy gebruik maak van: exploit/windows/local/always_install_elevated
Antivirus en Detektore
Ouditinstellings
Hierdie instellings bepaal wat gelog word, so jy moet aandag gee
WEF
Windows Event Forwarding, is interessant om te weet waar die logs gestuur word
LAPS
LAPS is ontwerp vir die bestuur van plaaslike Administrateur wagwoorde, wat verseker dat elke wagwoord uniek, ewekansig, en gereeld opgedateer word op rekenaars wat aan 'n domein gekoppel is. Hierdie wagwoorde word veilig binne Active Directory gestoor en kan slegs deur gebruikers wat voldoende regte deur ACLs toegeken is, toegang verkry, wat hulle toelaat om plaaslike admin wagwoorde te sien indien gemagtig.
LAPSWDigest
As aktief, plank-teks wagwoorde word in LSASS (Local Security Authority Subsystem Service) gestoor. Meer inligting oor WDigest op hierdie bladsy.
LSA-beskerming
Begin met Windows 8.1, het Microsoft verbeterde beskerming vir die Plaaslike Sekuriteitsowerheid (LSA) bekendgestel 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.
Credentials Guard
Credential Guard is in Windows 10 bekendgestel. Die doel daarvan is om die geloofsbriewe wat op 'n toestel gestoor is, te beskerm teen bedreigings soos pass-the-hash-aanvalle.| Meer inligting oor Credentials Guard hier.
Gekapte Kredensiale
Domein kredensiale word geverifieer deur die Plaaslike Sekuriteitsowerheid (LSA) en gebruik deur bedryfstelselskomponente. Wanneer 'n gebruiker se aanmelddata geverifieer word deur 'n geregistreerde sekuriteitspakket, word domein kredensiale vir die gebruiker tipies gevestig. Meer inligting oor Gekapte Kredensiale hier.
Users & Groups
Enumerate Users & Groups
Jy moet kyk of enige van die groepe waartoe jy behoort interessante regte het
Privileged groups
As jy tot 'n paar bevoorregte groepe behoort, mag jy in staat wees om voorregte te verhoog. Leer meer oor bevoorregte groepe en hoe om hulle te misbruik om voorregte te verhoog hier:
Privileged GroupsToken manipulation
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:
Abusing TokensLogged users / Sessions
Tuisgidsen
Wagwoordbeleid
Kry die inhoud van die klembord
Hardloopprosesse
Lêer- en Gidspermitte
Eerstens, lys die prosesse kyk vir wagwoorde binne die opdraglyn van die proses. Kyk of jy 'n sekere binêre wat loop kan oorskryf of as jy skrywepermitte van die binêre gids het om moontlike DLL Hijacking-aanvalle te benut:
Always check for possible electron/cef/chromium debuggers wat loop, jy kan dit misbruik om privaathede te verhoog.
Kontroleer toestemmings van die prosesse se binaire
Kontroleer toestemmings van die vouers van die prosesse se binaire lêers (DLL Hijacking)
Geheue Wagwoord mynbou
Jy kan 'n geheue-dump van 'n lopende proses skep met procdump van sysinternals. Dienste soos FTP het die bewyse in duidelike teks in geheue, probeer om die geheue te dump en lees die bewese.
Onveilige GUI-apps
Toepassings wat as SYSTEM loop, mag 'n gebruiker toelaat om 'n CMD te genereer, of om gidsen te blaai.
Voorbeeld: "Windows Help and Support" (Windows + F1), soek na "opdragprompt", klik op "Klik om Opdragprompt te open"
Dienste
Kry 'n lys van dienste:
Toestemmings
Jy kan sc gebruik om inligting van 'n diens te verkry
Dit word aanbeveel om die binêre accesschk van Sysinternals te hê om die vereiste privaatheidsvlak vir elke diens te kontroleer.
Dit word aanbeveel om te kyk of "Geverifieerde gebruikers" enige diens kan wysig:
U kan accesschk.exe vir XP hier aflaai
Aktiveer diens
As u hierdie fout het (byvoorbeeld met SSDPSRV):
Sisteemfout 1058 het voorgekom. Die diens kan nie begin word nie, hetsy omdat dit gedeaktiveer is of omdat daar geen geaktiveerde toestelle aan dit gekoppel is nie.
U kan dit aktiveer deur
Neem in ag dat die diens upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)
Nog 'n omweg van hierdie probleem is om te loop:
Wysig diens binaire pad
In die scenario waar die "Geoutentiseerde gebruikers" groep SERVICE_ALL_ACCESS op 'n diens besit, is dit moontlik om die diens se uitvoerbare binaire te wysig. Om sc te wysig en uit te voer:
Herstart diens
Privileges kan deur verskeie toestemmings verhoog word:
SERVICE_CHANGE_CONFIG: Laat herkonfigurasie van die diens-binary toe.
WRITE_DAC: Maak toestemmingherkonfigurasie moontlik, wat lei tot die vermoë om dienskonfigurasies te verander.
WRITE_OWNER: Laat eienaarskap verkryging en toestemmingherkonfigurasie toe.
GENERIC_WRITE: Erf die vermoë om dienskonfigurasies te verander.
GENERIC_ALL: Erf ook die vermoë om dienskonfigurasies te verander.
Vir die opsporing en benutting van hierdie kwesbaarheid, kan die exploit/windows/local/service_permissions gebruik word.
Dienste binaries swak toestemmings
Kontroleer of jy die binary wat deur 'n diens uitgevoer word, kan wysig of of jy skryftoestemmings op die gids het waar die binary geleë is (DLL Hijacking). Jy kan elke binary wat deur 'n diens uitgevoer word, verkry met wmic (nie in system32 nie) en jou toestemmings nagaan met icacls:
U kan ook sc en icacls gebruik:
Dienste registrasie wysigingsregte
Jy moet kyk of jy enige diensregistrasie kan wysig. Jy kan jou regte oor 'n diens registrasie nagaan deur:
Dit moet nagegaan word of Authenticated Users of NT AUTHORITY\INTERACTIVE FullControl
toestemmings het. Indien wel, kan die binêre wat deur die diens uitgevoer word, verander word.
Om die Pad van die binêre wat uitgevoer word te verander:
Dienste-register AppendData/AddSubdirectory toestemmings
As jy hierdie toestemming oor 'n register het, beteken dit jy kan sub-registers van hierdie een skep. In die geval van Windows dienste is dit genoeg om willekeurige kode uit te voer:
AppendData/AddSubdirectory permission over service registryOngekwoteerde Diens Paaie
As die pad na 'n uitvoerbare lêer nie binne aanhalings 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 alle ongekwoteerde dienspaaie, met uitsluiting van dié wat aan ingeboude Windows-dienste behoort:
Jy kan hierdie kwesbaarheid opspoor en benut met metasploit: exploit/windows/local/trusted\_service\_path
Jy kan handmatig 'n diens-binary met metasploit skep:
Herstelaksies
Windows laat gebruikers toe om aksies spesifiek aan te dui wat geneem moet word as 'n diens misluk. Hierdie funksie kan geconfigureer word om na 'n binêre te verwys. As hierdie binêre vervangbaar is, mag privilige-escalasie moontlik wees. Meer besonderhede kan gevind word in die amptelike dokumentasie.
Toepassings
Gemonteerde Toepassings
Kontroleer toestemmings van die bineres (miskien kan jy een oorskryf en privilige verhoog) en van die mappes (DLL Hijacking).
Skryf Toestemmings
Kyk of jy 'n konfigurasie-lêer kan wysig om 'n spesiale lêer te lees of of 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:
Begin by opstart
Kontroleer of jy 'n bietjie register of binêre kan oorskryf wat deur 'n ander gebruiker uitgevoer gaan word. Lees die volgende bladsy om meer te leer oor interessante autostart plekke om voorregte te verhoog:
Privilege Escalation with AutorunsBestuurders
Soek na moontlike derdeparty vreemde/kwesbare bestuurders
PATH DLL Hijacking
As jy skrywe toestemmings binne 'n gids op PATH het, kan jy dalk 'n DLL wat deur 'n proses gelaai is, oorneem en privileges verhoog.
Kontroleer toestemmings van alle gidse binne PATH:
Vir meer inligting oor hoe om hierdie kontrole te misbruik:
Writable Sys Path +Dll Hijacking PrivescNetwerk
Aandele
hosts file
Kyk vir ander bekende rekenaars wat hardgecodeer is in die hosts-lêer
Netwerk Interfaces & DNS
Open Ports
Kyk vir beperkte dienste van buite
Router Tabel
ARP Tabel
Vuurmuur Reëls
Kyk na hierdie bladsy vir Vuurmuur verwante opdragte (lys reëls, skep reëls, skakel af, skakel af...)
Meer opdragte vir netwerk enumerasie hier
Windows Subsystem vir Linux (wsl)
Binêre bash.exe
kan ook gevind word in C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
As jy root gebruiker kry, kan jy op enige poort luister (die eerste keer wat jy nc.exe
gebruik om op 'n poort te luister, sal dit via GUI vra of nc
deur die firewall toegelaat moet word).
Om maklik bash as root te begin, kan jy probeer --default-user root
Jy kan die WSL
lêerstelsel verken in die gids C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Windows Kredensiale
Winlogon Kredensiale
Kredensiaalbestuurder / Windows-kluis
Van https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault Die Windows-kluis stoor gebruikerskredensiale vir bedieners, webwerwe en ander programme wat Windows kan gebruikers outomaties aanmeld. Op die eerste oogopslag mag dit lyk asof gebruikers hul Facebook-kredensiale, Twitter-kredensiale, Gmail-kredensiale ens. kan stoor, sodat hulle outomaties via blaaiers aanmeld. Maar dit is nie so nie.
Windows-kluis stoor kredensiale wat Windows kan gebruik om gebruikers outomaties aan te meld, wat beteken dat enige Windows-toepassing wat kredensiale benodig om toegang tot 'n hulpbron (bediener of 'n webwerf) hierdie Kredensiaalbestuurder & Windows-kluis kan gebruik en die verskafde kredensiale kan gebruik in plaas daarvan dat gebruikers die gebruikersnaam en wagwoord heeltyd invoer.
Tensy die toepassings met die Kredensiaalbestuurder kommunikeer, dink ek nie dit is moontlik vir hulle om die kredensiale vir 'n gegewe hulpbron te gebruik nie. So, as jou toepassing die kluis wil gebruik, moet dit op een of ander manier met die kredensiaalbestuurder kommunikeer en die kredensiale vir daardie hulpbron van die standaardopbergkluis aan vra.
Gebruik die cmdkey
om die gestoor kredensiale op die masjien te lys.
Dan kan jy runas
met die /savecred
opsies gebruik om die gestoor geloofsbriewe te gebruik. Die volgende voorbeeld roep 'n afstandlike binêre aan via 'n SMB-aandeel.
Gebruik runas
met 'n verskafde stel van 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, wat hoofsaaklik binne die Windows-bedryfstelsel gebruik word vir die simmetriese versleuteling van asimmetriese privaat sleutels. Hierdie versleuteling maak gebruik van 'n gebruiker of stelsels geheim om aansienlik by te dra tot entropie.
DPAPI stel die versleuteling van sleutels in staat deur 'n simmetriese sleutel wat afgelei is van die gebruiker se aanmeldgeheime. In scenario's wat stelsels versleuteling betrek, gebruik dit die stelsels domeinverifikasie geheime.
Versleutelde gebruiker RSA sleutels, deur gebruik te maak van DPAPI, word gestoor in die %APPDATA%\Microsoft\Protect\{SID}
gids, waar {SID}
die gebruiker se Security Identifier verteenwoordig. Die DPAPI-sleutel, wat saam met die meester sleutel wat die gebruiker se privaat sleutels in dieselfde lêer beskerm, geleë is, bestaan tipies uit 64 bytes van ewekansige data. (Dit is belangrik om te noem dat toegang tot hierdie gids beperk is, wat verhoed dat die inhoud daarvan gelys kan word via die dir
opdrag in CMD, alhoewel dit gelys kan word deur PowerShell).
U kan die mimikatz module dpapi::masterkey
met die toepaslike argumente (/pvk
of /rpc
) gebruik om dit te ontsleutel.
Die bewerkingslêers wat deur die meesterwagwoord beskerm word is gewoonlik geleë in:
U kan die mimikatz module dpapi::cred
met die toepaslike /masterkey
gebruik om te dekripteer.
U kan baie DPAPI masterkeys uit geheue onttrek met die sekurlsa::dpapi
module (as u root is).
PowerShell Kredensiale
PowerShell kredensiale word dikwels gebruik vir scripting en outomatisering take as 'n manier om versleutelde kredensiale gerieflik te stoor. Die kredensiale word beskerm met DPAPI, wat tipies beteken dat dit slegs deur dieselfde gebruiker op dieselfde rekenaar waar dit geskep is, gedekripteer kan word.
Om 'n PS kredensiaal uit die lêer wat dit bevat te dekripteer, kan u doen:
Wifi
Gesteekte RDP Verbindinge
Jy kan hulle vind op HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
en in HKCU\Software\Microsoft\Terminal Server Client\Servers\
Onlangs Geloop Opdragte
Afstandsbedieningskredietbestuurder
Gebruik die Mimikatz dpapi::rdg
module met die toepaslike /masterkey
om enige .rdg lêers te dekripteer
Jy kan baie DPAPI masterkeys uit geheue onttrek met die Mimikatz sekurlsa::dpapi
module
Sticky Notes
Mense gebruik dikwels die StickyNotes-app op Windows werkstasies om wagwoorde en ander inligting te stoor, sonder om te besef dit is 'n databasislê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 jy Administrator moet wees en onder 'n Hoë Integriteit vlak moet loop om wagwoorde van AppCmd.exe te herstel.
AppCmd.exe is geleë in die %systemroot%\system32\inetsrv\
gids.
As hierdie lêer bestaan, is dit moontlik dat sommige akkrediteer geconfigureer is en kan herstel word.
Hierdie kode is onttrek uit PowerUP:
SCClient / SCCM
Kontroleer of C:\Windows\CCM\SCClient.exe
bestaan.
Installeerders word met SYSTEM regte uitgevoer, baie is kwesbaar vir DLL Sideloading (Inligting van https://github.com/enjoiz/Privesc).
Lêers en Registrasie (Geloofsbriewe)
Putty Geloofsbriewe
Putty SSH Gashere Sleutels
SSH sleutels in die registrasie
SSH privaat sleutels kan binne die registrasiesleutel HKCU\Software\OpenSSH\Agent\Keys
gestoor word, so jy moet kyk of daar iets interessant daarin is:
As jy enige inskrywing binne daardie pad vind, sal dit waarskynlik 'n gestoor SSH-sleutel wees. Dit is versleuteld gestoor, maar kan maklik ontcijfer word met behulp van 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, voer die volgende uit:
Dit lyk of 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 via ssh na 'n masjien aan te meld. Die register HKCU\Software\OpenSSH\Agent\Keys bestaan nie en procmon het nie die gebruik van dpapi.dll
tydens die asimmetriese sleutelverifikasie geïdentifiseer nie.
Onbewaakte lêers
U kan ook na hierdie lêers soek met metasploit: post/windows/gather/enum_unattend
Voorbeeldinhoud:
SAM & SYSTEM rugsteun
Wolk Kredensiale
McAfee SiteList.xml
Soek vir 'n lêer genaamd SiteList.xml
Gekapte GPP Wagwoord
'n Kenmerk was voorheen beskikbaar wat die ontplooiing van pasgemaakte plaaslike administrateur rekeninge op 'n groep masjiene via Groep Beleid Voorkeure (GPP) toegelaat het. Hierdie metode het egter beduidende sekuriteitsfoute gehad. Eerstens, die Groep Beleid Voorwerpe (GPO's), gestoor as XML-lêers in SYSVOL, kon deur enige domein gebruiker toegang verkry word. Tweedens, die wagwoorde binne hierdie GPP's, geënkripteer met AES256 met 'n publiek gedokumenteerde standaard sleutel, kon deur enige geverifieerde gebruiker ontcijfer word. Dit het 'n ernstige risiko ingehou, aangesien dit gebruikers in staat kon stel om verhoogde bevoegdhede te verkry.
Om hierdie risiko te verminder, is 'n funksie ontwikkel om te skandeer vir plaaslik gekapte GPP-lêers wat 'n "cpassword" veld bevat wat nie leeg is nie. Wanneer so 'n lêer gevind word, ontcijfer die funksie die wagwoord en keer 'n pasgemaakte PowerShell-voorwerp terug. Hierdie voorwerp sluit besonderhede oor die GPP en die lêer se ligging in, wat help met die identifisering en herstel van hierdie sekuriteitskwesbaarheid.
Soek in C:\ProgramData\Microsoft\Group Policy\history
of in C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (voor W Vista) vir hierdie lêers:
Groups.xml
Services.xml
Scheduledtasks.xml
DataSources.xml
Printers.xml
Drives.xml
Om die cPassword te ontcijfer:
Gebruik crackmapexec om die wagwoorde te verkry:
IIS Web Config
Voorbeeld van web.config met geloofsbriewe:
OpenVPN geloofsbriewe
Logs
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 op dat om die kliënt direk vir die geloofsbriewe te vra regtig riskant is):
Mogelijke lêernamen wat akrediteerbesonderhede bevat
Bekende lêers wat 'n tyd gelede wagwoorde in duidelike teks of Base64 bevat het
Soek al die voorgestelde lêers:
Kredensiale in die Herwinningsblik
Jy moet ook die Blik nagaan om te kyk vir kredensiale daarin
Om wagwoorde wat deur verskeie programme gestoor is te herstel, kan jy gebruik maak van: http://www.nirsoft.net/password_recovery_tools.html
Binne die registrasie
Ander moontlike registrasiesleutels met kredensiale
Onttrek openssh sleutels uit die registrasie.
Blaaiers Geskiedenis
Jy moet kyk vir dbs waar wagwoorde van Chrome of Firefox gestoor word. Kyk ook na die geskiedenis, boekmerke en gunstelinge van die blaaiers sodat dalk sommige wagwoorde is daar gestoor.
Gereedskap om wagwoorde uit blaaiers te onttrek:
Mimikatz:
dpapi::chrome
COM DLL Oorskrywing
Component Object Model (COM) is 'n tegnologie wat binne die Windows-bedryfstelsel gebou is wat onderlinge kommunikasie tussen sagtewarekomponente van verskillende tale toelaat. Elke COM-komponent is geïdentifiseer deur 'n klas ID (CLSID) en elke komponent stel funksionaliteit bloot deur een of meer interfaces, geïdentifiseer deur interface ID's (IIDs).
COM klasse en interfaces word in die registrasie gedefinieer onder HKEY_CLASSES_ROOT\CLSID en HKEY_CLASSES_ROOT\Interface onderskeidelik. Hierdie registrasie word geskep deur die HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT.
Binne die CLSIDs van hierdie registrasie kan jy die kind registrasie InProcServer32 vind wat 'n standaardwaarde bevat wat na 'n DLL verwys en 'n waarde genaamd ThreadingModel wat Apartment (Enkel-Draad), Free (Meervoudige-Draad), Both (Enkel of Meervoudig) of Neutral (Draad Neutraal) kan wees.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F843477771-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC6PyZhjUxJWWaN3uLo1y%252Fuploads%252Fgit-blob-2b1d4ac66778ec1cf22fe35ba7602b784f62bc77%252Fimage%2520%28729%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=3ce667c0&sv=1)
Basies, as jy enige van die DLL's wat gaan uitgevoer word kan oorskry, kan jy privileges verhoog as daardie DLL deur 'n ander gebruiker uitgevoer gaan word.
Om te leer hoe aanvallers COM Hijacking as 'n volhardingsmeganisme gebruik, kyk:
COM HijackingGeneriese Wagwoord soektog in lêers en registrasie
Soek na lêerinhoud
Soek na 'n lêer met 'n sekere lêernaam
Soek die register vir sleutelname en wagwoorde
Gereedskap wat soek na wagwoorde
MSF-Credentials Plugin is 'n msf plugin wat ek geskep het om automaties elke metasploit POST-module wat soek na kredensiale binne die slagoffer uit te voer. Winpeas soek outomaties na al die lêers wat wagwoorde bevat wat op hierdie bladsy genoem word. Lazagne is 'n ander wonderlike hulpmiddel om wagwoorde uit 'n stelsel te onttrek.
Die hulpmiddel SessionGopher soek na sessies, gebruikersname en wagwoorde van verskeie gereedskap wat hierdie data in duidelike teks stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, en RDP)
Gelekte Handlers
Imagine that 'n proses wat as SYSTEM loop, 'n nuwe proses open (OpenProcess()
) met volledige toegang. Die dieselfde proses skep ook 'n nuwe proses (CreateProcess()
) met lae voorregte maar wat al die oop handlers van die hoofproses oorneem.
Dan, as jy volledige toegang tot die lae voorregte proses het, kan jy die oop handle na die voorregte proses wat geskep is met OpenProcess()
gryp en 'n shellcode inspuit.
Lees hierdie voorbeeld vir meer inligting oor hoe om hierdie kwesbaarheid te ontdek en te benut.
Lees hierdie ander pos vir 'n meer volledige verduideliking oor hoe om te toets en meer oop handlers van prosesse en threads met verskillende vlakke van toestemmings (nie net volledige toegang nie) te misbruik.
Genoemde Pyp Kliënt Imitasie
Gedeelde geheue segmente, bekend as pype, stel proseskommunikasie en datatransfer in staat.
Windows bied 'n funksie genaamd Genoemde Pype, wat onverwante prosesse toelaat om data te deel, selfs oor verskillende netwerke. Dit herinner aan 'n kliënt/bediener argitektuur, met rolle wat gedefinieer is as genoemde pyp bediener en genoemde pyp kliënt.
Wanneer data deur 'n pyp gestuur word deur 'n kliënt, 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. Om 'n voorregte proses te identifiseer wat via 'n pyp kommunikeer 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 waarmee jy werk, interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, kan nuttige gidse gevind word hier en hier.
Ook die volgende hulpmiddel laat jou toe om 'n genoem pyp kommunikasie met 'n hulpmiddel soos burp te onderskep: https://github.com/gabriel-sztejnworcel/pipe-intercept en hierdie hulpmiddel laat jou toe om al die pype te lys en te sien om privescs te vind https://github.com/cyberark/PipeViewer
Verskeie
Monitering van Opdraglyne vir wagwoorde
Wanneer jy 'n shell as 'n gebruiker kry, mag daar geskeduleerde take of ander prosesse wees wat uitgevoer word wat akkrediteer op die opdraglyn. Die skrip hieronder vang proses opdraglyne elke twee sekondes en vergelyk die huidige toestand met die vorige toestand, wat enige verskille uitset.
Watter wagwoorde uit prosesse steel
Van Lae Privilege Gebruiker na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass
As 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 terminal of enige ander proses soos "NT\AUTHORITY SYSTEM" van 'n nie-privilege gebruiker te laat loop.
Dit maak dit moontlik om privileges te eskaleer en UAC terselfdertyd met dieselfde kwesbaarheid te omseil. Boonop is daar geen behoefte om enigiets te installeer nie en die binêre wat tydens die proses gebruik word, is onderteken en uitgegee deur Microsoft.
Sommige van die geraakte stelsels is die volgende:
Om hierdie kwesbaarheid te benut, is dit nodig om die volgende stappe uit te voer:
You het al die nodige lêers en inligting in die volgende GitHub-repos:
https://github.com/jas502n/CVE-2019-1388
Van Administrateur Medium na Hoë Integriteitsvlak / UAC Bypass
Lees dit om meer te leer oor Integriteitsvlakke:
Integrity LevelsLees dan hierdie om meer te leer oor UAC en UAC-bypasses:
UAC - User Account ControlVan Hoë Integriteit na Stelsel
Nuwe diens
As jy reeds op 'n Hoë Integriteit proses loop, kan die oorgang na SYSTEM maklik wees deur net 'n nuwe diens te skep en uit te voer:
AlwaysInstallElevated
Van 'n Hoë Integriteit proses kan jy probeer om die AlwaysInstallElevated register inskrywings te aktiveer en 'n omgekeerde shell te installeer met 'n .msi omhulsel. Meer inligting oor die betrokke register sleutels en hoe om 'n .msi pakket hier te installeer.
High + SeImpersonate privilege to System
Jy kan die kode hier vind.
From SeDebug + SeImpersonate to Full Token privileges
As jy daardie token privileges het (waarskynlik sal jy dit in 'n reeds Hoë Integriteit proses vind), sal jy in staat wees om byna enige proses (nie beskermde prosesse nie) met die SeDebug privilege te oopmaak, die token van die proses te kopieer, en 'n arbitraire proses met daardie token te skep. Die gebruik van hierdie tegniek behels gewoonlik om enige proses wat as SYSTEM loop met al die token privileges te kies (ja, jy kan SYSTEM prosesse vind sonder al die token privileges). Jy kan 'n voorbeeld van kode wat die voorgestelde tegniek uitvoer hier vind.
Named Pipes
Hierdie tegniek word deur meterpreter gebruik om te eskaleer in getsystem
. Die tegniek bestaan uit die skep van 'n pyp en dan 'n diens te skep/te misbruik om op daardie pyp te skryf. Dan sal die bediener wat die pyp geskep het met die SeImpersonate
privilege in staat wees om die token van die pyp kliënt (die diens) te verpersoonlik en SYSTEM privileges te verkry.
As jy wil meer leer oor naam pype moet jy dit lees.
As jy 'n voorbeeld wil lees van hoe om van hoë integriteit na System te gaan met naam pype moet jy dit lees.
Dll Hijacking
As jy daarin slaag om 'n dll te hijack wat deur 'n proses wat as SYSTEM loop, sal jy in staat wees om arbitrêre kode met daardie toestemmings uit te voer. Daarom is Dll Hijacking ook nuttig vir hierdie soort privilege eskalasie, en, verder, as dit veel makliker is om te bereik vanuit 'n hoë integriteit proses aangesien dit skryftoestemmings op die vouers het wat gebruik word om dlls te laai. Jy kan meer leer oor Dll hijacking hier.
From Administrator or Network Service to System
From LOCAL SERVICE or NETWORK SERVICE to full privs
Lees: https://github.com/itm4n/FullPowers
More help
Useful tools
Beste hulpmiddel om na Windows plaaslike privilege eskalasie vektore te soek: WinPEAS
PS
PrivescCheck
PowerSploit-Privesc(PowerUP) -- Kontroleer vir misconfigurasies en sensitiewe lêers (kontroleer hier). Gekies.
JAWS -- Kontroleer vir sommige moontlike misconfigurasies en versamel inligting (kontroleer hier).
privesc -- Kontroleer vir misconfigurasies
SessionGopher -- Dit onttrek PuTTY, WinSCP, SuperPuTTY, FileZilla, en RDP gestoor sessie inligting. Gebruik -Thorough in plaaslik.
Invoke-WCMDump -- Onttrek kredensiale uit Credential Manager. Gekies.
DomainPasswordSpray -- Spuit versamelde wagwoorde oor die domein
Inveigh -- Inveigh is 'n PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer en man-in-the-middle hulpmiddel.
WindowsEnum -- Basiese privesc Windows enumerasie
Sherlock ~~~~ -- Soek na bekende privesc kwesbaarhede (DEPRECATED vir Watson)
WINspect -- Plaaslike kontroles (Benodig Admin regte)
Exe
Watson -- Soek na bekende privesc kwesbaarhede (moet saamgestel word met VisualStudio) (vooraf saamgestel)
SeatBelt -- Enumerates die gasheer op soek na misconfigurasies (meer 'n versamel inligting hulpmiddel as privesc) (moet saamgestel word) (vooraf saamgestel)
LaZagne -- Onttrek kredensiale uit baie sagteware (vooraf saamgestelde exe in github)
SharpUP -- Port van PowerUp na C#
Beroot ~~~~ -- Kontroleer vir misconfigurasie (uitvoerbare vooraf saamgestelde in github). Nie aanbeveel nie. Dit werk nie goed in Win10.
Windows-Privesc-Check -- Kontroleer vir moontlike misconfigurasies (exe van python). Nie aanbeveel nie. Dit werk nie goed in Win10.
Bat
winPEASbat -- Hulpmiddel geskep gebaseer op hierdie pos (dit het nie accesschk nodig om behoorlik te werk nie, maar dit kan dit gebruik).
Local
Windows-Exploit-Suggester -- Lees die uitvoer van systeminfo en beveel werkende exploits aan (lokale python) Windows Exploit Suggester Next Generation -- Lees die uitvoer van systeminfo en beveel werkende exploits aan (lokale python)
Meterpreter
multi/recon/local_exploit_suggestor
Jy moet die projek saamstel met die korrekte weergawe van .NET (sien dit). Om die geïnstalleerde weergawe van .NET op die slagoffer gasheer te sien kan jy doen:
Bibliografie
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated