RedPeanut es un pequeño RAT desarrollado en .Net Core 2 y su agente en .Net 3.5 / 4.0.
__________________________________________________________________________
ooooooo________________oo_ooooooo___________________________________oo____
oo____oo___ooooo___oooooo_oo____oo__ooooo___ooooo__oo_ooo__oo____o__oo____
oo____oo__oo____o_oo___oo_oo____oo_oo____o_oo___oo_ooo___o_oo____o_oooo___
ooooooo___ooooooo_oo___oo_oooooo___ooooooo_oo___oo_oo____o_oo____o__oo____
oo____oo__oo______oo___oo_oo_______oo______oo___oo_oo____o_ooo___o__oo__o_
oo_____oo__ooooo___oooooo_oo________ooooo___oooo_o_oo____o_oo_ooo____ooo__
__________________________________________________________________________
________________________________________________RedPeanut_v0.3.0___@b4rtik
__________________________________________________________________________
Actualmente en pruebas.
Problemas conocidos de módulos:
process -> spawnasagent
process -> spawnasshellcode
RedPeanut es un pequeño RAT desarrollado en .Net Core 2 y su agente en .Net 3.5 / 4.0. La ejecución de código de RedPeanut se basa en shellcode generado con DonutCS. Por lo tanto, es un híbrido, aunque desarrollado en .Net no depende únicamente de Assembly.Load. Esto aumenta la superficie de detección, pero nos permite practicar y experimentar con diversas técnicas de evasión relacionadas con el entorno dotnet, la gestión de procesos y la inyección. Este comportamiento se puede cambiar en tiempo de ejecución con los comandos "managed" y "unmanaged". Si estás interesado en un framework C2 .Net que sea consistente y se pueda usar en un compromiso, sugiero Covenant.
RedPeanut está armado con:
El agente de RedPeanut se puede compilar en .Net 3.5 y 4.0 y tiene capacidades de pivoteo a través de NamedPipe. El agente, cuando se ejecuta en modo no administrado, realiza sus propias tareas críticas en un proceso separado para evitar que la respuesta del AV ante una detección o error durante la ejecución te haga perder todo el agente.
El flujo de ejecución es el siguiente:
El agente actualmente solo soporta el canal https.
El protocolo de checkin del agente es muy simple:
Alternativamente, se puede activar la función de canal cubierto (por ahora es solo una PoC). La idea es imitar el tráfico web realizado por un usuario real. Normalmente, una página web está compuesta por la página html y todos los objetos necesarios para su visualización como css, imágenes, etc. Al solicitar una nueva tarea, la respuesta del servidor no será directamente la tarea cifrada, sino una página html de la cual extraer el enlace a la imagen que tendrá incrustada la tarea cifrada. La solicitud http de la imagen contendrá la cabecera Referer.
La entrega de contenido se organiza en 4 canales:
RedPeanut tiene capacidad de personalización de la huella de red tanto del lado del servidor como del cliente. Las propiedades que se pueden establecer son:
Domain Fronting
Para habilitar el soporte de domain fronting es necesario valorar la cabecera "Host" en la sección del cliente, tanto post como get (ejemplificado en el perfil predeterminado 2).
El módulo PowerShellExecuter te permite ejecutar comandos oneliner o archivos en un runspace con AMSI bypass, Logging bypass y PowerView ya cargados.
A partir de la versión 0.3.0, RedPeanutAgent soporta el comando blockdlls. Con esta opción habilitada, los procesos hijos que se crean para realizar tareas en modo no administrado se crean con el atributo PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON. Este atributo evita que el proceso cargue dlls que no estén firmadas por Microsoft, lo que podría proteger nuestras tareas de técnicas de hooking de AV y EDR.
RedPeanutAgent utiliza la carga dinámica de Dlls para evitar el uso de importaciones de Dlls sospechosas. Los créditos por la carga dinámica de Dlls van para @TheRealWover, @cobbr_io y @FuzzySec por su trabajo en SharpSploit.
Algunos proveedores de AV y EDR utilizan técnicas de hooking para realizar un seguimiento de las actividades. Para evitar el uso de syscalls hookeadas, RedPeanutAgent utiliza llamada directa al sistema (direct syscall), autoinyectando el código necesario. Los créditos por la llamada directa al sistema van para @Cneelis
Para ejecutar RedPeanut necesitas tener dotnet instalado. Para instalar dotnet en Kali: