====== 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"