PEC 2
1. Introducción
Esta práctica tiene como idea que podáis ver el uso de firewalls y técnicas para evitar sus reglas.
En este caso utilizamos la herramienta de escaneo nmap y más en concreto la técnica ping
sweep.
La práctica está guiada, la idea es que la llevéis a cabo en vuestro entorno y contestéis a las
preguntas que se os hacen. Tendréis que entregar un documento a parte donde se contesten
las preguntas que se formulan en cada paso y un pantallazo de cada uno de los resultados
obtenidos en el paso.
2. Escaneo de puertos y Firewalls
Una herramienta para escaneo de puertos es nmap. La herramienta nmap permite gran
versatilidad y posibilidades de configuración. Algunas de ellas son:
• Half Scan. Consiste en realizar el procedimiento three-way handshake sin concluirlo
para evitar la creación de una conexión.
o El emisor envía un SYN para iniciar la conexión.
o Si el receptor envía un SYN+ACK significa que el puerto se encuentra abierto.
o El emisor envía un RST+ACK para finalizar la conexión en vez de un ACK que sería
lo normal para crear la conexión.
• ACK Scan. Este escaneo no tiene como objetivo ver si un puerto se encuentra abierto o
no. Su objetivo es ver si un equipo de la red escucha las peticiones a través de un firewall.
o El Emisor envía un paquete con un ACK activo.
o El receptor debe responder con un RST esté el puerto abierto o no. Si no existe
respuesta es que hay un cortafuegos en medio de la comunicación.
• Null Scan ' Este escaneo tiene una característica curiosa y es que el paquete que se envía
no contiene ningún bit activo. El emisor envía este tipo de paquetes y si el puerto se
encuentra abierto no recibirá nada, si por el contrario el puerto se encuentra cerrado se
envía un RST+ACK.
Nota: Este tipo de escaneo tiene como finalidad ver cuáles son los puertos TCP cerrados.
• Xmas Scan Este tipo de escaneo tiene en sus paquetes los bits de control activos.
Windows por defecto no responde a este tipo de paquetes, pero antiguamente la pila
TCP/IP respondía con un paquete RST+ACK cuando el puerto se encontraba cerrado, si
se encontraba abierto, no respondía.
• FIN Scan.' Este tipo de escaneo consiste en la creación de un paquete TCP con el bit FIN
activo
o El emisor enviará el paquete TCP con el bit FIN activo.
o Si el puerto se encuentra abierto, no obtendrá respuesta. Si el puerto se
encuentra cerrado entonces el emisor recibirá un RST+ACK.
Tanto Null Scan, Xmas Scan y FIN Scan son escaneos para la detección de puertos cerrados.
Los firewalls son herramientas de protección que ofrecen grandes capacidades para bloquear
peticiones que se realizan contra ciertos equipos o redes.
3. nmap idle scan
Es uno de los escaneos más complejos y su eficacia depende de la máquina zombie elegida. En
el escenario habrá al menos 3 máquinas:
1. Un atacante.
2. Una máquina intermediaria o zombie.
3. Una máquina víctima.
El proceso que sigue es el siguiente:
1) La máquina del atacante debe comprobar que el zombie utilice un algoritmo predecible
para marcar los paquetes IP. Para averiguar este detalle:
a. El atacante envía varios paquetes con SYN+ACK para iniciar una conexión. El objetivo
es obtener RST y comprobar que los IDs de las respuestas son sucesivos o
predecibles. También es importante verificar que la máquina zombie no está
teniendo tráfico ya que sino el proceso sería inviable.
2) Cuando se haya encontrado la máquina zombie entonces el atacante enviará paquetes
SYN a la máquina IP SPoofing. Los paquetes enviados son en realidad un scan normal.
a. La victima responderá o no, pero la máquina que recibirá el paquete, en caso de que
se envíe, es la máquina zombie y no la atacante. Cuando la víctima responda a la
petición SYN con un SYN+ACK el puerto se encontrará abierto. Si el puerto se
encuentra cerrado recibirá un RST+ACK.
b. Si la máquina zombie recibe un SYN+ACK enviará un RST a la máquina víctima. Si
recibe un RST+ACK entonces se declara como tráfico nulo y se descarta.
3) La máquina atacante deja esperar un periodo de tiempo y entonces preguntará por el
ID de los paquetes de la máquina zombie. Pueden ocurrir dos cosas:
a. El ID se ha incrementado en uno, entonces el puerto en la máquina víctima está
abierto.
b. El ID NO se ha incrementado, entonces el puerto en la máquina víctima está cerrado.
4. Ping Sweep
La idea de hacer ping es saber si una máquina está activa. Pero los firewalls pueden bloquearlos.
Ping sweep es una técnica implementada en nmap con el parámetro -sP. Este escaneo es
utilizado para identificar equipos vivos sin hacer uso del protocolo ARP. Realmente usa el
protocolo ARP para el descubrimiento de las máquinas en el caso de que la maquina emisora y
la receptora estén en la misma red.
NOTA: si no se quiere hacer uso de ARP dentro de una misma red se puede deshabilitar dicho
escaneo con el parámetro -disable-arp-ping.
• Un primer ping que se puede hacer un TCP SYN Ping Scan.
Nmap -sP [Dir_ip] --disable-arp-ping
Este tipo de escaneo puede ser bloqueado y por tanto no saber si la máquina objetivo
está o no viva. El bloqueo con iptables se hace de la siguiente manera:
Sudo iptables -I INPUT -p tcp --tcp-flags ALL SYN -dport 80 -j DROP
• Si no recibimos respuesta podemos probar con el protocolo UDP.
Nmap -sP -PU[Dir_ip] --disable-arp-ping
Pero el escaneo de UDP también se puede bloquear en el firewall
iptables -I INPUT -p udp -j DROP
NOTA: existen más opciones de nmap -sP que podéis consultar, por ejemplo, en
[Link]
5. PEC 2
En la PEC 1 hicisteis varias maquinas virtuales dentro de una red. Una de ellas era una Kali Linux
que tenía la IP [Link] (Aunque si tenéis otra IP no pasa nada, simplemente en los comandos
de la práctica donde veáis esa IP poneis la de vuestra máquina Kali). Esta kali la vamos a usar y
vamos a crear una maquina con Ubuntu (os aconsejo la última versión para no tener que estar
instalando iptables aunque es bastante sencillo). Por tanto, tendremos:
a. Maquina Kali IP: [Link] y máscara [Link]
b. Maquina Ubuntu IP: [Link] y máscara [Link]
Nota: están en la misma red
La idea es jugar con iptables y nmap. Para ello, vamos a seguir unos pasos que debéis llevar a
cabo en vuestro entorno, documentar (pantallazos de los resultados) y contestar a las preguntas
que os vamos haciendo. Antes de poner los pasos de la práctica os voy a poner algunos
comandos de iptables que os pueden servir:
• sudo iptables -n -L -v –line-number Para inspeccionar el firewall con número de
líneas.
• sudo iptables -F borra todas las reglas del firewall
• sudo iptables -L INPUT -n <número de línea> y sudo iptables -L OUTPUT -n <número de
línea> borra la regla que se encuentra en la línea indicada.
Podéis mirar en diferentes sitios más comandos de iptables, por ejemplo, en
[Link]
5.1 Pasos de la práctica:
Lo primero que vamos a hacer es arrancar las dos máquinas y tenerlas disponibles para escribir
en ellas diferentes comandos.
• Paso 1 (desde Kali): Hacer un ping desde la máquina Kali a la Ubuntu. Para ver que hay
conectividad entre las máquinas.
• Paso 2 (desde Ubuntu): iptables no debería tener ninguna regla todavía. Para
comprobarlo podemos ejecutar en el Ubuntu:
sudo iptables -n -L -v –line-number
Una vez comprobado que no hay reglas. Añadimos la primera regla con:
Si ahora vamos a la Kali ([Link]) ¿Qué ocurre si ahora desde la Kali hacemos un ping
a la máquina de Ubuntu ([Link])? ¿Por qué ocurre esto?
• Paso 3 (desde la Kali): Ahora en la Kali vamos a ejecutar
Indique que resultado obtiene en la Kali. Recuerde que el Ubuntu recién instalado no
tendrá ningún puerto abierto
• Paso 4 (desde el ubuntu): Establecemos una nueva regla en iptables
Si ahora vamos a la Kali ([Link]) ¿Qué ocurre si ahora desde la Kali volvemos a
ejecutar el comando del paso 3 a la máquina de Ubuntu ([Link])? ¿Por qué ocurre
esto?
• Paso 5 (desde la Kali): Continuamos en la kali y ejecutamos el comando
Indique que resultado obtiene en la Kali.
• Paso 6 (desde el Ubuntu): establecemos otra nueva regla
Si ahora vamos a la Kali ([Link]) ¿Qué ocurre si ahora desde la Kali volvemos a
ejecutar el comando del paso 5 a la máquina de Ubuntu ([Link])? ¿Por qué ocurre
esto?
• Paso 7 (desde Ubuntu): muestre las reglas que han quedado en el firewall
• Paso 8. Cambie la IP de la Kali y ejecute un ping desde la Kali al Ubuntu y cualquiera de
los comandos nmap que se han comentado en pasos anteriores ¿Qué ocurre? ¿por qué?