Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
sad:ubuntu:p13 [2018/01/11 20:47] José Manuel Guallar creado |
sad:ubuntu:p13 [2019/01/04 13:18] (actual) |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | Qué es denyhosts | + | ====== 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. | + | 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/ | + | |
+ | [[http://denyhosts.sourceforge.net/]] | ||
- | Qué es brutessh.py | + | **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@bt:/## cd /pentest/passwords/ | ||
+ | </code> | ||
+ | |||
+ | En BackTrack, los programas de descifrado de contraseñas generalmente se encuentran en este directorio. | ||
+ | <code bash> | ||
+ | root@ubuntu12:/pentest/passwords/# ls -l | ||
+ | root@ubuntu12:/pentest/passwords/# ls -l | grep -i brute | ||
+ | </code> | ||
+ | {{: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 | ||
+ | |||
+ | <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 | ||
+ | <code bash> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p13:11.png?500|}} | ||
+ | |||
+ | ======Como usar BruteSSH ====== | ||
+ | |||
+ | <code bash> | ||
+ | root@bt:/pentest/passwords/brutessh# python brutessh.py -help | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p13:12.png?500|}} | ||
+ | |||
+ | Vamos a usar BrueSSH contra DenyHosts | ||
+ | <code bash> | ||
+ | root@bt:/pentest/passwords/brutessh# python brutessh.py -h 192.168.153.47 -u root -d password.txt | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p13:13.png?500|}} | ||
+ | |||
+ | Ahora vamos a testear si Ubuntu a bloqueado al BackTrack o no :?::?::?: | ||
+ | <code bash> | ||
+ | root@bt:/pentest/passwords/brutessh# ssh student@192.168.153.47 | ||
+ | </code> | ||
+ | Ahora intentamos telnet por el puerto 22 | ||
+ | <code bash> | ||
+ | root@bt:/pentest/passwords/brutessh# telnet 192.168.153.47 22 | ||
+ | </code> | ||
+ | ;-);-) | ||
+ | |||
+ | {{: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**'' | ||
+ | <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> | ||
- | 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 | ||
- | Ubuntu: Lección 1: Instalación de Ubuntu Desktop 12.04 LTS | ||
- | Ubuntu: Lección 8: Instalación y seguridad de openssh-server (a.k.a., sshd) | ||
- | BackTrack: Lección 1: Instalación de BackTrack 5 R1 | ||
- | Notas de laboratorio | ||
- | En este laboratorio, veremos cómo hacer lo siguiente: | ||
- | Instalaremos denyhosts en Ubuntu. | ||
- | Instalaremos brutessh.py en BackTrack. | ||
- | Usaremos brutessh en BackTrack para atacar a Ubuntu. |