====== Instalación y prueba de denyhosts y brutessh.py ======
**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:
* Instalaremos denyhosts en Ubuntu.
* Instalaremos brutessh.py en BackTrack.
* Usaremos brutessh en BackTrack para atacar a Ubuntu.
**Verificamos que tenemos conexión**
root@ubuntu12:/# ifconfig -a
si no tenemos conexion
root@ubuntu12:/# dhclient -v
root@ubuntu12:/# /etc/init.d/networking restart
{{:sad:ubuntu:p13:01.png?500|}}
====== Actualización del indice de paquetes ======
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 \\
{{:sad:ubuntu:p13:02.png?500|}}
**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
{{:sad:ubuntu:p13:03.png?500|}}
**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
====== Detenemos el servicio y volvemos a arrancarlo con /etc/init.d/denyhosts ======
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
{{:sad:ubuntu:p13:04.png?500|}}
====== Parar e iniciar el servico squid3 con el comando "service" ======
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
{{:sad:ubuntu:p13:05.png?500|}}
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"
{{:sad:ubuntu:p13:06.png?500|}}
Chequeamos el archivo auth.log de Ubuntu
root@ubuntu12:/etc/init.d# grep "Accepted password" /var/log/auth.log | grep "192.168.153.43"
{{:sad:ubuntu:p13:07.png?500|}}
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
{{:sad:ubuntu:p13:08.png?500|}}
vamos al navegador y nos descargamos [[http://217.182.207.57/~jguallar/brutessh/brutessh-0.5.tar.bz2|bruessh-0.5.tar.bz2]]y nos lo descargamos en **/pentest/password**
{{:sad:ubuntu:p13:09.png?500|}}
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
{{:sad:ubuntu:p13:10.png?500|}}
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
{{:sad:ubuntu:p13:11.png?500|}}
======Como usar BruteSSH ======
root@bt:/pentest/passwords/brutessh# python brutessh.py -help
{{:sad:ubuntu:p13:12.png?500|}}
Vamos a usar BrueSSH contra DenyHosts
root@bt:/pentest/passwords/brutessh# python brutessh.py -h 192.168.153.47 -u root -d password.txt
{{:sad:ubuntu:p13:13.png?500|}}
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
;-);-)
{{:sad:ubuntu:p13:14.png?500|}}
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"