Qué es denyhosts
DenyHosts es una herramienta de seguridad de prevención de intrusos basada en registros para servidores SSH escritos en Python. Está destinado a prevenir los ataques de fuerza bruta en los servidores SSH mediante la supervisión de los intentos de inicio de sesión no válidos en el registro de autenticación y el bloqueo de las direcciones IP de origen.
http://denyhosts.sourceforge.net/
Qué es brutessh.py
Brutessh es un programa que usa la biblioteca paramiko ssh, para lanzar ataques de contraseñas de fuerza bruta al servicio sshd. Las herramientas son multihilo y usa un diccionario para las contraseñas.
Requisito previo
Instalación de Ubuntu Desktop 12.04 LTS
Instalación y seguridad de openssh-server
Instalación de BackTrack 5 R1
Notas de la practica
En esta práctica veremos cómo hacer lo siguiente:
Verificamos que tenemos conexión
root@ubuntu12:/# ifconfig -a
si no tenemos conexion
root@ubuntu12:/# dhclient -v root@ubuntu12:/# /etc/init.d/networking restart
root@ubuntu12:/# apt-get update
buscamos denyhosts
root@ubuntu12:/# apt-cache search denyhosts
Instalamos los paquetes necesarios
root@ubuntu12:/# apt-get install denyhosts
verificamos que se está ejecutando
root@ubuntu12:/# ps -eaf | grep -v grep | grep denyhosts
ps -eaf, muestra todos los procesos.
grep -v grep, filtra el proceso grep.
grep denyhosts, muestra solo el proceso denyhosts.
ver los ficheros en el host
root@ubuntu12:/# cd /etc root@ubuntu12:/etc# ls -l *hosts.*
Observamos 3 ficheros
denyhosts.conf que es el fichero de configuración
hosts.allow es el fichero donde añadimos los ordenadores que no restringimos el acceso
hosts.deny si nosotros añadimos un host en este fichero denegamos el acceso
Observamos si el script de denyhosts se encuenta en init.d
root@ubuntu12:/etc# ls -l /etc/init.d/denyhosts root@ubuntu12:/etc# find /etc/rc*.d/* -print | xargs ls -l | grep denyhosts
nivel de ejecución
Identifica las secuencias de comandos de inicio y finalización para denyhosts
Identifica el nivel de ejecución actual.
0 System Halt
1 usuario individual
2 Modo multiusuario completo (predeterminado)
3-5 Igual que 2
6 Reinicio del sistema
root@ubuntu12:/etc# cd /etc/init.d root@ubuntu12:/etc/init.d# ./denyhosts stop root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhosts
No devuelve nada, el servicio está parado
root@ubuntu12:/etc/init.d# ./denyhosts start root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhost
Ahora nos devuelve 1 linea porque el servicio está ejecutandose
root@ubuntu12:/etc/init.d# service denyhosts status
Nos muestra el numero de proceso o PID, en mis caso es 3386.
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep 3386
Tienes que reemplazar el PID por el tuyo
root@ubuntu12:/etc/init.d# service denyhosts stop
Este comando parara el demonio
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhosts
No muestra nada porque el proceso está detenido
root@ubuntu12:/etc/init.d# service denyhosts start
Iniciamos el servicio
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhosts
Abrimos el BackTrack y miramos la conectividad con el Ubuntu por medio de ssh
root@ubuntu12:/etc/init.d# ssh student@192.168.153.47 "uptime"
Chequeamos el archivo auth.log de Ubuntu
root@ubuntu12:/etc/init.d# grep "Accepted password" /var/log/auth.log | grep "192.168.153.43"
Instalamos y ejecutamos BruteSSH.py contra el sistema UBUNTU
root@bt:/## cd /pentest/passwords/
En BackTrack, los programas de descifrado de contraseñas generalmente se encuentran en este directorio.
root@ubuntu12:/pentest/passwords/# ls -l root@ubuntu12:/pentest/passwords/# ls -l | grep -i brute
vamos al navegador y nos descargamos bruessh-0.5.tar.bz2y nos lo descargamos en /pentest/password
Unzip brutessh-0.5.tar.bz2
root@bt:/# cd /pentest/passwords/ root@bt:/pentest/passwords/# ls -l brutessh-0.5.tar.bz2 root@bt:/pentest/passwords/# bunzip2 brutessh-0.5.tar.bz2 root@bt:/pentest/passwords/# ls -l brutessh-0.5.tar root@bt:/pentest/passwords/# tar xovf brutessh-0.5.tar
Para preparar el fichero de fuerza bruta vamos a crear un fichero con las 50 primeras password de John the Ripper para generar suficiente trafico, es suficiente para que nos bloquee
root@bt:/pentest/passwords# rm brutessh-0.5.tar
Ya no necesitamos el fichero
root@bt:/pentest/passwords# cd brutessh/ root@bt:/pentest/passwords/brutessh/#ls -la root@bt:/pentest/passwords/brutessh# cat /pentest/passwords/john/password.lst | grep -v "^#" | head -50 > password.txt
root@bt:/pentest/passwords/brutessh# python brutessh.py -help
Vamos a usar BrueSSH contra DenyHosts
root@bt:/pentest/passwords/brutessh# python brutessh.py -h 192.168.153.47 -u root -d password.txt
Ahora vamos a testear si Ubuntu a bloqueado al BackTrack o no
root@bt:/pentest/passwords/brutessh# ssh student@192.168.153.47
Ahora intentamos telnet por el puerto 22
root@bt:/pentest/passwords/brutessh# telnet 192.168.153.47 22
Ahora toca analizar el Ubuntu y en particular el archivo de deny.host
print de pantalla que hay que entregar
root@ubuntu12:/etc/init.d# grep sshd /etc/hosts.deny root@ubuntu12:/etc/init.d# grep -i "Failed password" /var/log/auth.log | grep "192.168.153.43" root@ubuntu12:/etc/init.d# date root@ubuntu12:/etc/init.d# echo "tu nombre"