miércoles, junio 01, 2011

Red-Termite SSH Cracker

Llevo unos cuantos días escribiendo un script que combina Bash y Expect, se trata de una herramienta de craking ssh.
El script intentará conectarse a los servidores ssh especificados en el fichero de configuración LISTA, este debe estar en el formato: "servidor":"usuario":"password", una vez se haya logado ejecutará last -i y cat /etc/passwd, de este modo tendremos un listado de usuarios y las ips desde las que se conectaron a este servidor.
Despues se intentará acceder a estas ips por ssh empleando:
  • Ususario: "nombre_usuario" Password: "nombre_usuario"
  • Ususario: "nombre_usuario" Password: "Listado_usuarios"
  • Ususario: "Listado_usuarios" Password: "Listado_usuarios"
En las dos primeras opciones solo intentará hacer login en las ips desde donde se conectó cada usuario.

El listado de usuarios se genera a partir de los usuarios obtenidos a través de la conexión ssh y de un fichero local llamado USUARIOS_COMUNES_PREDEFINIDOS, he añadido bastantes nombres de diferentes series, peliculas....... pero se pueden añadir los diccionarios que se deseen:
cat "diccionario" >> USUARIOS_COMUNES_PREDEFINIDOS

Este script se sirve de NMap, NCrack y Dos2Unix para realizar sus operaciones, NMap y Dos2Unix se pueden instalar desde los repositorios:
apt-get install nmap tofrodos

Para instalar NCrack deberemos seguir este artículo anterior donde se explico como hacerlo.

El script consta de varios subscripts:
  • Connect.sh: Script desde el que se iniciarán el resto de scripts.
  • Expect_Nmap_SSH.exp: Script que comprueba que el puerto 22 está escuchando en el host destino.
  • Expect_SSH.exp: Script que realiza la conexión por ssh y ejecuta los comandos last -i y cat /etc/passwd.
  • Process.sh: Script que procesa la salida del script anterior.
  • Auto_Crack.sh: Script que lanza NCrack con los usuarios y passwords obtenidos a partir de las conexiones ssh.
El script solo es válido para sistemas que permitan la opción -i en el comando last por ejemplo FreeBSD no lo permite!! No se si en BSD y otros Unix hay equivalente, pero si la hay será fácil realizar las modificaciones pertinentes en el script en Expect(Expect_SSH.exp).

No hay comentarios: