Cómo usar TEA – El falso cliente SSH para manipular TTY
TEA es un falso (gusano) cliente SSH que ha sido desarrollado con el framework tas.
¿Cómo funciona?
Este es un falso cliente ssh que manipula la entrada/salida tty para ejecutar comandos arbitrarios e infiltrarse a través de la conexión ssh.
Para funcionar correctamente, la máquina remota necesita:
- Mostrar el mensaje “Último inicio de sesión” cuando inicias sesión.
- dd y stty
- Usuario objetivo que utilice bash como shell predeterminada.
- Capacidad para ejecutar el falso binario ssh.
- Escribir en ~/.bashrc
Infectar la máquina local:
mkdir ~/.sshworm cp ssh ~/.sshworm alias ssh='~/.sshworm/ssh'
La primera vez que ejecutes el ssh falso, no mostrará nada, el código post-install.c se ejecutará y la cadena alias ssh=”~/.sshworm/ssh” se escribirá en ~/.bashrc:
$ ssh $ ssh usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]
Difusión
Ahora solo debes conectarte a algún servidor ssh, que cumpla con las condiciones establecidas para que el programa funcione. La máquina se infectará, y las máquinas también tendrán acceso a ella, y así sucesivamente.
Manipulación de tty:
Cuando se ejecuta el falso ssh, este esperará a que la cadena “last login” inicie la manipulación de E/S (output-hooks.c). Cuando se reciba “Last login” enviará algunos comandos arbitrarios (inyectar- cmd.c) y esperará el resultado del comando (output-hooks.c). Si el archivo ~/.sshworm /ssh no existe en la máquina remota, el gusano se cargará solo (upload.c).
Debes ver output-hooks.c para más detalles.
Desinstalación:
$ rm -rf ~/.sshworm $ perl -i -pe 's;alias ssh="~/.sshworm/ssh";;g' ~/.bashrc $ unalias ssh
Compilación
Es recomendable el uso de musl-libc, o cualquier otra libc que no sea glibc. El binario compilado con glibc es 17 veces más grande que el binario compilado con musl-libc.