¡Esta es una revisión vieja del documento!
Tabla de Contenidos
¿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
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
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
03
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
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
04
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
05
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
07
guardo los cambios y reinicio el servicio
root@ubuntu12:/# service portsentry stop root@ubuntu12:/# service portsentry start
08
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 09
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
10
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”
11
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
12
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
13
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
14
Para eliminar la ruta de rechaz
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
15
volvemos a iniciar el servicio y hacemos un ping desde el Backtrack
16
ya nos vuelve a aceptar
pantallazo 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"