2014-03-30

Usando IPTABLES para Detectar Escaneos con NMAP

Intentando aprender como funciona en IPTABLES el manejo de las banderas de TCP monte un pequeño laboratorio para ir creando reglas usando el tcp-flags. Para poder ver si era efectivo usaba una maquina de atacante enviando escaneos como sF, sS y sX podía generar que el iptables me hiciera un Log y si se necesita bloquearlos.

Entonces lo primero es saber que parámetro es el que debemos usar, este se llama tcp-flags y es una de las opciones del parámetro tcp, en la siguiente imagen pueden ver el segmento del man de iptables donde se hace referencia al parámetro y sus opciones.


Como pueden ver en los datos que solicita la opción de tcp-flags se pide primero una mascara que son las banderas con las que va a comparar y el segundo dato son las banderas que usted desea verificar, así el primer campo contiene los bita que desea tener de base para comparar y la segunda opción los que le interesan.

Entonces cuando lanzamos nmap con el parámetro -sX, el escaneo envía las banderas Fin, Push y Urgent activas, por lo que si deseamos generar un registro que nos permita ver cuando nos están escaneando así pues activamos el log en IPTABLES con el siguiente comando

root@localhost:~# iptables -I INPUT -i eth0 -p tcp --tcp-flags ALL FIN,PSH,URG -j LOG --log-level 4 --log-prefix "NMAP-SX: "

Este comando me permite generar un registro de cada paquete que contenga las banderas FIN,PSH,URG activas en el archivo /var/log/syslog, además lo calificara como de nivel 4 y le pondrá un prefijo que se diga NMAP-SX:. 

Entonces lanzamos el escaneo y como pueden observar en la siguiente imagen el segmento de log nos permite ver claramente el ataque


Espero que les sirva.