p0wnedShell: un toolkit ofensivo "todo en uno" con un runspace en Powershell

p0wnedShell de los holandeses Cn33liz y Skons es un toolkit ofensivo de PowerShell escrito en C# que no depende de powershell.exe pero ejecuta comandos y funciones de powershell dentro de un entorno de espacio de ejecución de powershell (.NET).

Trae una gran cantidad de módulos ofensivos de PowerShell y binarios para facilitar el proceso de Post-Explotación y es que se trata de una solución "todo en uno" que se puede utilizar para eludir todas las soluciones de mitigación (o al menos algunas de ellas), y que incluye todas las herramientas relevantes.

Para compilar p0wnedShell, necesitaremos abrir el proyecto dentro de Microsoft Visual Studio y compilarlo para plataformas x64/x86. Se pueden cambiar las siguientes opciones de AutoMasq antes de compilar:   

public static bool AutoMasq = true;

public static string masqBinary = @"C:\Windows\Notepad.exe";

Con AutoMasq establecido a falso, el ejecutable se lanza normalmente. Con AutoMasq habilitado, se puede cambiar el nombre del ejecutable p0wnedShell como el proceso que va a enmascarar (masqBinary), por lo que tiene la apariencia de ese proceso (por ejemplo notepad.exe).

Usando el argumento opcional "-parent", se puede iniciar p0wnedShell usando otro ID de proceso. Al combinar la opción PEB Masq y un ID diferente de proceso (por ejemplo, svchost) se puede dar a p0wnedShell la apariencia de un servicio legítimo.

Nota: Ejecutar p0wnedShell usando otro Parent Process ID no funciona todavía desde una sesión/shell de Meterpreter.
Changing the Parent Process ID can also be used to spawn a p0wnedShell process with system privileges, 
for example using lsass as the the parent process.
For this you need to have UAC elevated administrator permissions.

C:\p0wnedShell>p0wnedShellx64.exe -parent
 
 [+] Please enter a valid Parent Process name.
 [+] For Example: C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
 
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass

Para ejecutar como binario x86 y evitar Applocker (Créditos pa Casey Smith aka subTee para este gran bypass):
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (O un directorio de una versión .NET más moderna)

InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe

Para ejecutar como binario x64 y evitar Applocker:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (O un directorio de una versión .NET más moderna)

InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe

Herramientas/funciones de PowerShell incluidas:
  • PowerSploit: Invoke-Shellcode
  • PowerSploit: Invoke-ReflectivePEInjection
  • PowerSploit: Invoke-Mimikatz
  • PowerSploit: Invoke-TokenManipulation
  • PowerSploit: PowerUp and PowerView
  • Rasta Mouse: Sherlock
  • HarmJ0y's: Invoke-Psexec and Invoke-Kerberoast
  • Rohan Vazarkar's: Invoke-BloodHound (C# Ingestor)
  • Chris Campbell's: Get-GPPPassword
  • Tim Medin's: GetUserSPNS
  • Besimorhino's: PowerCat
  • Nishang: Copy-VSS and Invoke-Encode
  • Nishang: Invoke-PortScan and Get-PassHashes
  • Kevin Robertson: Invoke-Tater, Invoke-SMBExec and Invoke-WMIExec
  • Kevin Robertson: Invoke-Inveigh and Invoke-InveighRelay
  • FuzzySecurity: Invoke-MS16-032 and Invoke-MS16-135
Las funciones Powershell dentro del Runspace se cargan en la memoria comprimidas y codificadas en Base64.

Binarios/herramientas incluidos:
  • Benjamin DELPY's Mimikatz
  • Benjamin DELPY's MS14-068 kekeo Exploit
  • Didier Stevens modification of ReactOS Command Prompt
  • MS14-058 Local SYSTEM Exploit
  • hfiref0x MS15-051 Local SYSTEM Exploit
Los binarios se cargan en memoria usando ReflectivePEInjection (los arrays de Byte se comprimen usando Gzip y se guardan dentro de p0wnedShell como cadenas codificadas en Base64).

Proyecto: https://github.com/Cn33liz/p0wnedShell

Comentarios

Publicar un comentario