**¿Qué es PortSentry?**
PortSentry es parte del conjunto de herramientas de seguridad del Proyecto Abacus. Es un programa diseñado para detectar y responder escaneos de puertos contra un host objetivo en tiempo real.
PortSentry detectará escaneos ocultos de SYN / half-open, FIN, NULL, X-MAS...
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**
Instalación de Ubuntu Desktop 12.04 LTS
Instalación de BackTrack 5 R1
**Notas de la practica**
* En esta practica veremos cómo hacer lo siguiente:
* Instalaremos PortSentry en Ubuntu.
* Probamos NMAP en un PortSentry no configurado
* Configuraremos PortSentry.
* Probaremos NMAP en un PortSentry configurado
* Le mostraremos cómo desbloquear un atacante.
**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 portsentry
Instalamos los paquetes necesarios
root@ubuntu12:/# apt-get install portsentry
{{:sad:ubuntu:p14:01.png?500|}}
Verificamos que se está ejecutando \\
root@ubuntu12:/# ps -eaf | grep -v grep | grep portsentry
**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**
root@ubuntu12:/etc/init.d# ls -l /etc/portsentry/
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**
root@ubuntu12:/etc/init.d# grep portsentry /var/log/syslog
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**
root@ubuntu12:/etc# ls -l /etc/init.d/portsentry
root@ubuntu12:/etc# find /etc/rc*.d/* -print | xargs ls -l | grep portsentry
**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 ======
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
No devuelve nada, el servicio está parado
root@ubuntu12:/etc/init.d# ./portsentry start
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentry
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 portsentry 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 portsentry stop
este comando parara el demonio
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentrys
No muestra nada porque el proceso está detenido
root@ubuntu12:/etc/init.d# service portsentry start
Iniciamos el servicio
root@ubuntu12:/etc/init.d# ps -eaf | grep -v grep | grep portsentry
Abrimos el BackTrack y corremos un nmap con portsentry sin configurar
root@bt:~# nmap -p 1-65535 -T4 -A -v -PE -PS22,25,80 -PA21,23,80 192.168.153.47
{{:sad:ubuntu:p14:04.png?500|}}
hacemos un ping
root@bt:~# ping -c 5 192.168.153.47
Y observamos la respuesta
Volvemos al Ubuntu y observamos que se ha registrado alguna acción
root@ubuntu12:/# grep "attackalert" /var/log/syslog
{{:sad:ubuntu:p14:05.png?500|}}
Ha detectado el BackTrack, ahora vamos a configurar el PortSentry en el Ubuntu
root@ubuntu12:/# grep -n "BLOCK_UDP=" /etc/portsentry/portsentry.conf
En mi cado da la linea 135, abro con la sentencia nano
root@ubuntu12:/# nano +135 /etc/portsentry/portsentry.conf
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
root@ubuntu12:/# service portsentry stop
root@ubuntu12:/# service portsentry start
{{:sad:ubuntu:p14:08.png?500|}}
Vuelvo al BackTrack y ejecuto el nmap
root@bt:~# nmap -p 1-65535 -T4 -A -v -PE -PS22,25,80 -PA21,23,80 192.168.153.47
{{:sad:ubuntu:p14:09.png?500|}}
Hacemos un ping
root@bt:~# ping -c 5 192.168.153.47
Hacemos un telnet ssh
root@bt:~# telnet 192.168.153.47 22
Intentamos ver el puerto 80
root@bt:~# telnet 192.168.153.47 80
Todo inaccesible, nos ha bloqueado 8-)
{{:sad:ubuntu:p14:10.png?500|}}
Ahora volvemos al ubuntu y vamos a estudiar los resultados
root@ubuntu12:/# grep -n DENY /etc/hosts.deny
Ahora vamos a ver el fichero que contien las ips bloqueadas por escaneo
root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.blocked.tcp
Para ver las ips bloqueadas por puerto tcp
root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.history
Para ver las ips bloqueadas por puerto tcp y udp
root@ubuntu12:/# grep -n Blocked /var/lib/portsentry/portsentry.blocked.udp
Para ver las ips bloqueadas por puerto udp
root@ubuntu12:/# netstat -rn | grep "192.168.153.43"
{{:sad:ubuntu:p14:11.png?500|}}
**
Para desploquear el BackTrack** tenemos que quitarlo del fichero hosts.deny
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
{{:sad:ubuntu:p14:12.png?500|}}
**Para borrar el historial**
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
{{:sad:ubuntu:p14:13.png?500|}}
**Para borrar el tcp**
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
{{:sad:ubuntu:p14:14.png?500|}}
**Para eliminar la ruta de rechazo**
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
{{: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**''
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"