Muestra las diferencias entre dos versiones de la página.
sad:ubuntu:p13 [2018/01/17 18:10] José Manuel Guallar |
sad:ubuntu:p13 [2019/01/04 13:18] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== 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** | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# ifconfig -a | ||
- | </code> | ||
- | |||
- | si no tenemos conexion | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# dhclient -v | ||
- | root@ubuntu12:/# /etc/init.d/networking restart | ||
- | </code> | ||
- | |||
- | {{:sad:ubuntu:p13:01.png?500|}} | ||
- | |||
- | ====== Actualización del indice de paquetes ====== | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# apt-get update | ||
- | </code> | ||
- | |||
- | buscamos denyhosts | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# apt-cache search denyhosts | ||
- | </code> | ||
- | |||
- | Instalamos los paquetes necesarios | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# apt-get install denyhosts | ||
- | </code> | ||
- | verificamos que se está ejecutando \\ | ||
- | <code bash> | ||
- | root@ubuntu12:/# ps -eaf | grep -v grep | grep denyhosts \\ | ||
- | </code> | ||
- | **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** | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/# cd /etc | ||
- | root@ubuntu12:/etc# ls -l *hosts.* | ||
- | </code> | ||
- | |||
- | 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** | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc# ls -l /etc/init.d/denyhosts | ||
- | root@ubuntu12:/etc# find /etc/rc*.d/* -print | xargs ls -l | grep denyhosts | ||
- | </code> | ||
- | |||
- | {{: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 ====== | ||
- | |||
- | <code bash> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | No devuelve nada, el servicio está parado | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# ./denyhosts start | ||
- | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhost | ||
- | </code> | ||
- | |||
- | 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" ====== | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# service denyhosts status | ||
- | </code> | ||
- | Nos muestra el numero de proceso o PID, en mis caso es 3386. | ||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep 3386 | ||
- | </code> | ||
- | Tienes que reemplazar el PID por el tuyo | ||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# service denyhosts stop | ||
- | </code> | ||
- | Este comando parara el demonio | ||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhosts | ||
- | </code> | ||
- | No muestra nada porque el proceso está detenido | ||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# service denyhosts start | ||
- | </code> | ||
- | Iniciamos el servicio | ||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep denyhosts | ||
- | </code> | ||
- | {{:sad:ubuntu:p13:05.png?500|}} | ||
- | |||
- | Abrimos el BackTrack y miramos la conectividad con el Ubuntu por medio de ssh | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# ssh student@192.168.153.47 "uptime" | ||
- | </code> | ||
- | |||
- | {{:sad:ubuntu:p13:06.png?500|}} | ||
- | |||
- | Chequeamos el archivo auth.log de Ubuntu | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# grep "Accepted password" /var/log/auth.log | grep "192.168.153.43" | ||
- | </code> | ||
- | |||
- | {{:sad:ubuntu:p13:07.png?500|}} | ||
- | |||
- | Instalamos y ejecutamos BruteSSH.py contra el sistema UBUNTU | ||
- | |||
- | <code bash> | ||
- | root@ubuntu12:/etc/init.d# cd /pentest/passwords/ | ||
- | </code> | ||
- | |||
- | 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 bruessh-0.5.tar.bz2 y nos lo descargamos en /pentest/password | ||
- | |||
- | {{:sad:ubuntu:p13:09.png?500|}} | ||
- | |||
- | Unzip brutessh-0.5.tar.bz2 | ||
- | |||
- | <code bash> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | {{: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 | ||
- | <code bash> | ||
- | root@bt:/pentest/passwords# rm brutessh-0.5.tar | ||
- | </code> | ||
- | Ya no necesitamos el fichero | ||
- | root@bt:/pentest/passwords# cd brutessh/ | ||
- | ls -la | ||
- | root@bt:/pentest/passwords/brutessh# cat /pentest/passwords/john/password.lst | grep -v "^#" | head -50 > password.txt | ||
- | |||
- | 11 | ||
- | |||
- | Como usar BruteSSH | ||
- | |||
- | root@bt:/pentest/passwords/brutessh# python bruessh.py -help | ||
- | |||
- | 12 | ||
- | |||
- | Vamos a usar BrueSSH contra DenyHosts | ||
- | |||
- | root@bt:/pentest/passwords/brutessh# python brutessh.py -h 192.168.153.47 -u root -d password.txt | ||
- | |||
- | 13 | ||
- | |||
- | |||
- | 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 | ||
- | |||
- | ;-);-) | ||
- | 14 | ||
- | |||
- | Ahora toca analizar el Ubuntu y en particular el archivo de deny.host | ||
- | |||
- | ''**print de pantalla que ahy que entregar**'' | ||
- | <code bash> | ||
- | 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" | ||
- | </code> | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||