Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
sad:ubuntu:p14 [2018/01/13 23:06] José Manuel Guallar |
sad:ubuntu:p14 [2019/01/04 13:18] (actual) |
||
---|---|---|---|
Línea 7: | Línea 7: | ||
PortSentry informará todas las violaciones a los demonios syslog locales o remotos que indiquen el nombre del sistema, la hora de ataque, la IP del host atacante y el puerto TCP o UDP en el que se realizó un intento de conexión. Una vez que se detecta un escaneo, su sistema se convertirá en un agujero negro y desaparecerá del atacante. | PortSentry informará todas las violaciones a los demonios syslog locales o remotos que indiquen el nombre del sistema, la hora de ataque, la IP del host atacante y el puerto TCP o UDP en el que se realizó un intento de conexión. Una vez que se detecta un escaneo, su sistema se convertirá en un agujero negro y desaparecerá del atacante. | ||
- | ** | + | ** Requisito previo** |
- | Requisito previo** | + | |
Instalación de Ubuntu Desktop 12.04 LTS | Instalación de Ubuntu Desktop 12.04 LTS | ||
Instalación de BackTrack 5 R1 | Instalación de BackTrack 5 R1 | ||
- | |||
**Notas de la practica** | **Notas de la practica** | ||
- | En esta practica veremos cómo hacer lo siguiente: | + | * En esta practica veremos cómo hacer lo siguiente: |
* Instalaremos PortSentry en Ubuntu. | * Instalaremos PortSentry en Ubuntu. | ||
* Probamos NMAP en un PortSentry no configurado | * Probamos NMAP en un PortSentry no configurado | ||
Línea 22: | Línea 20: | ||
* Probaremos NMAP en un PortSentry configurado | * Probaremos NMAP en un PortSentry configurado | ||
* Le mostraremos cómo desbloquear un atacante. | * Le mostraremos cómo desbloquear un atacante. | ||
+ | |||
+ | **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> | ||
+ | |||
+ | ====== Actualización del indice de paquetes ====== | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# apt-get update | ||
+ | </code> | ||
+ | |||
+ | Buscamos denyhosts | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# apt-cache search portsentry | ||
+ | </code> | ||
+ | |||
+ | Instalamos los paquetes necesarios | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# apt-get install portsentry | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p14:01.png?500|}} | ||
+ | |||
+ | Verificamos que se está ejecutando \\ | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# ps -eaf | grep -v grep | grep portsentry | ||
+ | </code> | ||
+ | |||
+ | **ps -eaf**, muestra todos los procesos.\\ | ||
+ | **grep -v grep**, filtra el proceso grep. \\ | ||
+ | **grep denyhosts**, muestra solo el proceso portsentry. \\ | ||
+ | |||
+ | **ver los ficheros de configuracion** | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# ls -l /etc/portsentry/ | ||
+ | </code> | ||
+ | |||
+ | observamos 3 ficheros | ||
+ | **portsentry.conf ** que es el fichero de configuración \\ | ||
+ | **portsentry.ignore** es el fichero donde añadimos las ips que PortSentry ignora si es escaneado \\ | ||
+ | **portsentry-ogmpre-statcc** es el script para empezar el demonio \\ | ||
+ | |||
+ | {{:sad:ubuntu:p14:02.png?500|}} | ||
+ | |||
+ | Para ver los mensajes de PortSentry en **/grep/log/syslog** | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# grep portsentry /var/log/syslog | ||
+ | </code> | ||
+ | |||
+ | Nos indica que está instalado y está monitoreando varios puertos tanto TCP como UDP | ||
+ | |||
+ | {{:sad:ubuntu:p14:03.png?500|}} | ||
+ | |||
+ | **Observamos si el script de portsentry se encuenta en init.d** | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc# ls -l /etc/init.d/portsentry | ||
+ | root@ubuntu12:/etc# find /etc/rc*.d/* -print | xargs ls -l | grep portsentry | ||
+ | </code> | ||
+ | |||
+ | **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/portsentry ====== | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc# cd /etc/init.d | ||
+ | root@ubuntu12:/etc/init.d# ./portsentry stop | ||
+ | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentry | ||
+ | </code> | ||
+ | No devuelve nada, el servicio está parado | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# ./portsentry start | ||
+ | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentry | ||
+ | </code> | ||
+ | Ahora nos devuelve 1 linea porque el servicio está ejecutandose | ||
+ | |||
+ | ====== Parar e iniciar el servico squid3 con el comando "service" ====== | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# service portsentry 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 portsentry stop | ||
+ | </code> | ||
+ | este comando parara el demonio | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentrys | ||
+ | </code> | ||
+ | No muestra nada porque el proceso está detenido | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# service portsentry start | ||
+ | </code> | ||
+ | Iniciamos el servicio | ||
+ | <code bash> | ||
+ | root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentry | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Abrimos el BackTrack y corremos un nmap con portsentry sin configurar | ||
+ | |||
+ | <code bash> | ||
+ | root@bt:~# nmap -p 1-65535 -T4 -A -v -PE -PS22,25,80 -PA21,23,80 192.168.153.47 | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p14:04.png?500|}} | ||
+ | |||
+ | hacemos un ping | ||
+ | <code bash> | ||
+ | root@bt:~# ping -c 5 192.168.153.47 | ||
+ | </code> | ||
+ | Y observamos la respuesta | ||
+ | |||
+ | Volvemos al Ubuntu y observamos que se ha registrado alguna acción | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep "attackalert" /var/log/syslog | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p14:05.png?500|}} | ||
+ | |||
+ | Ha detectado el BackTrack, ahora vamos a configurar el PortSentry en el Ubuntu | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep -n "BLOCK_UDP=" /etc/portsentry/portsentry.conf | ||
+ | </code> | ||
+ | En mi cado da la linea 135, abro con la sentencia nano | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# nano +135 /etc/portsentry/portsentry.conf | ||
+ | </code> | ||
+ | y cambio los valores de BLOCK_UDP Y BLOCK_TCP de 0 a 1 | ||
+ | |||
+ | {{:sad:ubuntu:p14:07.png?500|}} | ||
+ | |||
+ | Guardo los cambios y reinicio el servicio | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# service portsentry stop | ||
+ | root@ubuntu12:/# service portsentry start | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p14:08.png?500|}} | ||
+ | |||
+ | Vuelvo al BackTrack y ejecuto el nmap | ||
+ | <code bash> | ||
+ | root@bt:~# nmap -p 1-65535 -T4 -A -v -PE -PS22,25,80 -PA21,23,80 192.168.153.47 | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p14:09.png?500|}} | ||
+ | |||
+ | Hacemos un ping | ||
+ | <code bash> | ||
+ | root@bt:~# ping -c 5 192.168.153.47 | ||
+ | </code> | ||
+ | Hacemos un telnet ssh | ||
+ | <code bash> | ||
+ | root@bt:~# telnet 192.168.153.47 22 | ||
+ | </code> | ||
+ | Intentamos ver el puerto 80 | ||
+ | <code bash> | ||
+ | root@bt:~# telnet 192.168.153.47 80 | ||
+ | </code> | ||
+ | Todo inaccesible, nos ha bloqueado 8-) | ||
+ | |||
+ | {{:sad:ubuntu:p14:10.png?500|}} | ||
+ | |||
+ | Ahora volvemos al ubuntu y vamos a estudiar los resultados | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep -n DENY /etc/hosts.deny | ||
+ | </code> | ||
+ | Ahora vamos a ver el fichero que contien las ips bloqueadas por escaneo | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.blocked.tcp | ||
+ | </code> | ||
+ | Para ver las ips bloqueadas por puerto tcp | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.history | ||
+ | </code> | ||
+ | Para ver las ips bloqueadas por puerto tcp y udp | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.blocked.udp | ||
+ | </code> | ||
+ | Para ver las ips bloqueadas por puerto udp | ||
+ | <code bash> | ||
+ | root@ubuntu12:/# netstat -rn | grep "192.168.153.43" | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p14:11.png?500|}} | ||
+ | ** | ||
+ | Para desploquear el BackTrack** tenemos que quitarlo del fichero hosts.deny | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/# service portsentry stop | ||
+ | root@ubuntu12:/# cd /etc/ | ||
+ | root@ubuntu12:/etc# grep -v "192.168.153.43" hosts.deny > hosts.deny.new | ||
+ | root@ubuntu12:/etc# grep "192.168.153.43" hosts.deny.new | wc -l | ||
+ | root@ubuntu12:/etc# mv hosts.deny hosts.deny.old | ||
+ | root@ubuntu12:/etc# mv hosts.deny.new hosts.deny | ||
+ | </code> | ||
+ | {{:sad:ubuntu:p14:12.png?500|}} | ||
+ | |||
+ | **Para borrar el historial** | ||
+ | <code bash> | ||
+ | root@ubuntu12:/var/lib/portsentry# grep -v "192.168.153.43" portsentry.history > portsentry.history.new | ||
+ | root@ubuntu12:/var/lib/portsentry# | ||
+ | root@ubuntu12:/var/lib/portsentry# grep "192.168.153.43" portsentry.history.new | wc -l | ||
+ | root@ubuntu12:/var/lib/portsentry# mv portsentry.history.new portsentry.history | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p14:13.png?500|}} | ||
+ | |||
+ | **Para borrar el tcp** | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/var/lib/portsentry# grep -v "192.168.153.43" portsentry.blocked.tcp > portsentry.blocked.tcp.new | ||
+ | root@ubuntu12:/var/lib/portsentry# grep "192.168.153.43" portsentry.blocked.tcp.new | wc -l | ||
+ | root@ubuntu12:/var/lib/portsentry# mv portsentry.blocked.tcp.new portsentry.blocked.tcp | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p14:14.png?500|}} | ||
+ | |||
+ | **Para eliminar la ruta de rechazo** | ||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/var/lib/portsentry# netstat -rn | ||
+ | root@ubuntu12:/var/lib/portsentry# route del -host 192.168.153.43 reject | ||
+ | root@ubuntu12:/var/lib/portsentry# netstat -rn | ||
+ | </code> | ||
+ | |||
+ | {{:sad:ubuntu:p14:15.png?500|}} | ||
+ | |||
+ | Volvemos a iniciar el servicio y hacemos un ping desde el Backtrack | ||
+ | |||
+ | {{:sad:ubuntu:p14:16.png?500|}} | ||
+ | |||
+ | Ya nos vuelve a aceptar LOL | ||
+ | |||
+ | ''** Print de pantalla que hay que entregar desde el Ubuntu**'' | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | root@ubuntu12:/var/lib/portsentry# cd /var/log | ||
+ | root@ubuntu12:/var/log# grep portsentry syslog | awk '{print $6}' | sort | uniq -c | ||
+ | root@ubuntu12:/var/log# date | ||
+ | root@ubuntu12:/var/log# echo "tu nombre" | ||
+ | </code> |