Tabla de Contenidos

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:

Verificamos que tenemos conexión

root@ubuntu12:/# ifconfig -a

si no tenemos conexion

root@ubuntu12:/# dhclient -v
root@ubuntu12:/# /etc/init.d/networking restart

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

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

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

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

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

Como usar BruteSSH

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"