Guía de comprensión de Nmap Firewall Scan (Parte 1)

 




Varias veces podría haber utilizado NMAP para realizar escaneos de red para enumerar servicios de puerto activos de la máquina de destino, pero en algunos casos, no es posible realizar escaneos con la ayuda del método de escaneo básico, especialmente en el caso del filtro de firewall.
Hoy vamos a demostrar el "escaneo del cortafuegos Nmap" mediante el uso de reglas Iptable e intentaremos omitir el filtro del cortafuegos para realizar el escaneo avanzado de NMAP.
¡¡Vamos a empezar!!
IP del atacante: 192.168.0.107 [kali linux]
IP del objetivo: 192.168.0.101 [Ubuntu]

Análisis TCP Scan

Abra el terminal en su Kali Linux y ejecute el siguiente comando para realizar la exploración TCP [sT] para la enumeración de puertos abiertos.
En la imagen que se muestra a continuación, puede observar que escaneamos el puerto 22 como resultado, se ha demostrado que el Puerto 22 está abierto para el servicio SSH.

Cuando usará Wireshark para capturar el envío de paquetes en el caso de TCP mientras la red se está escaneando, aquí debe notar algunas cosas como "bandera, duración total y tiempo de vida [TTL]" [en la capa 3] .
La siguiente tabla contiene detalles de Flag, Longitud de datos y TTL en diferentes métodos de escaneo:
Nombre de escaneo Bandera Longitud de datos TTL
-sT (TCP) SYN → ← SYN, ACK
ACK →
RST, ACK →
60 60 64
-sS (sigilo) SYN → ← SYN, ACK
RST
44 <64 (menos de 64)
-sF (acabado) FIN → 40 <64 (menos de 64)
-sN (nulo) NULL → 40 <64 (menos de 64)
-sX (Navidad) FIN, PSH, URG → 40 <64 (menos de 64)
La siguiente imagen de Wireshark muestra el tráfico de red generado mientras se ejecuta el escaneo TCP de nmap, aquí la primera secuencia indica el paquete SYN que contiene la siguiente información:
Longitud total: 60 [longitud de datos excluyendo 14 bytes de Ethernet]
Tiempo de vida: 64 [es el TTL máximo del sistema Linux en comunicación TCP]

Rechazar SYN Flag con IPTables

Como sabemos, existe una fuerte lucha entre el investigador de seguridad y el atacante, para aumentar la seguridad de la red, el administrador aplicará un filtro de firewall que ahora evitará la comunicación de enlace de 3 vías en la red y se resistirá al atacante para realizar un escaneo TCP al rechazar el paquete SYN en la red.
Ejecute el siguiente comando en Ubuntu para bloquear el paquete SYN:
El trabajo iptable como el firewall en el sistema operativo Linux y la regla iptable anterior rechazará el paquete SYN para evitar el escaneo TCP.

Ahora, cuando el firewall rechaza el paquete SYN en la red de destino, el atacante no podrá enumerar el puerto abierto de la red de destino, incluso si los servicios están activados.
Ahora, cuando nuevamente [el atacante] hemos ejecutado el escaneo TCP, encontramos que el puerto 22 está cerrado como se muestra en la imagen dada.

Bypass SYN Filter

Cuando el atacante no puede enumerar el puerto abierto utilizando un escaneo TCP. Luego, hay algunos métodos de escaneo avanzados que se utilizan para omitir el tipo de filtro de firewall que se detalla a continuación:

Escaneo FIN

Un paquete FIN se usa para terminar la conexión TCP entre el puerto de origen y el de destino, típicamente después de que se completa la transferencia de datos. En lugar del paquete SYN, Nma inicia un escaneo FIN enviando el paquete FIN.
Fin Scan solo funciona en una máquina Linux y no funciona en la última versión de Windows
Desde la imagen dada puede observar el resultado de que el puerto 22 está abierto.

Cuando capture el tráfico de red para el paquete FIN, puede confirmar que la "longitud de datos" es 40 y que "TTL" será menor que 64 cada vez, además, no se utiliza el paquete SYN para establecer la comunicación TCP con la máquina de destino.

Escaneo NULL

Una exploración nula es una serie de paquetes TCP que contienen un número de secuencia de "ceros" (0000000) y dado que no hay ninguna marca establecida, el destino no sabrá cómo responder la solicitud. Descartará el paquete y no se enviará ninguna respuesta, lo que indica que el puerto t está abierto.
Null Scan solo funciona en máquinas Linux y no funciona en la última versión de Windows
Para la imagen dada, puede observar el resultado de que el puerto 22 está abierto.

De manera similar, cuando capture el tráfico de red para el paquete NULL, puede confirmar que la "longitud de datos" es 40 y "TTL" será menor que 64 cada vez, aquí tampoco se utiliza el paquete SYN para establecer comunicación TCP con máquina de destino.

Escaneo de Navidad

Estos escaneos están diseñados para manipular los indicadores PSH, URG y FIN del encabezado TCP, establece los indicadores FIN, PSH y URG, iluminando el paquete como un árbol de Navidad. Cuando la fuente envió el paquete FIN, PUSH y URG a un puerto específico y si un puerto está abierto, el destino descartará los paquetes y no enviará ninguna respuesta a una fuente.
Xmas Scan solo funciona en máquinas Linux y no funciona en la última versión de Windows
De la imagen dada puede observar el resultado de que el puerto 22 está abierto.

Del mismo modo, cuando capture el tráfico de red para el escaneo de Navidad, obtendrá la combinación de los indicadores FIN, PSH y URG, aquí también puede confirmar que la "longitud de datos" es 40 y "TTL" será menor que 64 cada vez.
Conclusión: la conexión TCP se estableció mediante un protocolo de enlace de 3 vías y si el cortafuegos descarta el protocolo de enlace de 3 vías para evitar la comunicación TCP, se utilizará la exploración TCP, NULL y XMAS para la conexión TCP.

Rechazar paquete FIN utilizando la regla IPTABLES

Nuevamente, el administrador agrega un nuevo filtro de firewall para evitar la enumeración de la red desde el escaneo Fin que rechazará el paquete FIN en la red.
Ejecute el siguiente comando en Ubuntu para bloquear el paquete FIN:

Ahora, cuando el atacante intentará realizar un escaneo avanzado a través del escaneo FIN, no podrá enumerar la información de puerto abierto que puede confirmar a partir de la imagen a continuación.

Actualmente, solo Null y Xmas serán útiles para realizar la enumeración de puertos hasta que el administrador no haya bloqueado el tráfico proveniente de estos análisis. De la imagen a continuación puede confirmar que el puerto 22 está cerca cuando se realiza el escaneo Fin mientras está abierto cuando se realiza Nulo y Navidad.
Para evitar que su red también escanee NULL y Xmas, aplique la siguiente regla de iptables para Null y Xmas respectivamente:

Rechazar longitud de datos con IPTables

Como había discutido anteriormente sobre la comunicación TCP basada en 3 factores, es decir, "Bandera" que había demostrado anteriormente, "TTL" que demostraré más adelante y "Longitud de datos" que voy a demostrar.
Así que ahora, cuando el administrador quiere proteger nuevamente su red del escaneo TCP, en lugar de aplicar el filtro de firewall en las banderas TCP, también puede aplicar la regla de firewall para verificar la "longitud de datos" de un tamaño específico y luego detener el tráfico de red entrante para la conexión TCP. Ejecute el siguiente comando para aplicar la regla de firewall en la "longitud de datos"; de manera predeterminada, 60 es el uso de la longitud de datos para el escaneo TCP que puede confirmar en la tabla anterior.

Ahora, cuando el cortafuegos ha bloqueado la longitud de datos de 60 bytes en la red de destino, el atacante no podrá enumerar el puerto de destino abierto, incluso si el servicio está activado.
Ahora, cuando nuevamente [el atacante] habíamos ejecutado el escaneo TCP, se encontró que el Puerto 22 está cerrado como se muestra en la imagen dada.

Evite la restricción de longitud de datos con Stealth Scan
Cuando el atacante no puede enumerar el puerto abierto mediante el escaneo TCP [sT], entonces se utilizan algunos métodos de escaneo para omitir ese tipo de filtro de firewall como se indica a continuación:
En la imagen que se muestra a continuación, puede observar que el puerto 22 está abierto cuando se ejecuta la exploración sigilosa [sS], esto se debe a que la longitud de datos enviada por la exploración sigilosa es 44 por defecto para la conexión TCP.

El escaneo oculto es muy similar al escaneo TCP y también se conoce como escaneo "medio abierto" porque envía el paquete SYN y como respuesta recibe el paquete SYN / ACK del puerto de escucha y el resultado del volcado sin enviar un paquete ACK al puerto de escucha. Por lo tanto, si el "paquete SYN" está bloqueado por el cortafuegos, esta exploración falla, esta exploración solo es aplicable en caso de que la longitud de los datos = 60 sea bloqueada o TTL = 64 sea bloqueada por el cortafuegos.

Escaneo de fragmentos

La opción -f hace que la exploración solicitada use pequeños paquetes IP fragmentados. La idea es dividir el encabezado TCP en varios paquetes para dificultar que los filtros de paquetes, los sistemas de detección de intrusos y otras molestias detecten lo que está haciendo. Por lo tanto, un encabezado TCP de 20 bytes se dividiría en tres paquetes, dos con ocho bytes del encabezado TCP y uno con los cuatro últimos.

Cuando capture el tráfico de red, puede confirmar que la "longitud de datos" es 28, excluyendo 14 bytes de Ethernet y "TTL" será menor que 64 cada vez.
De manera similar, utiliza el escaneo Fin, Null y Xmas cuya longitud de datos es 40 para enumerar el puerto abierto de la red de destino.

Si el administrador aplicará un filtro de cortafuegos para rechazar la longitud de datos 40,44 y 60, entonces no permitirá que el atacante realice sobre todo escaneo, ya sea escaneo básico o escaneo avanzado, ejecutando las siguientes reglas de iptables.

De la imagen que se muestra a continuación puede observar ahora Fin, null, Xmas y stealth scan son algunos ejemplos que no pudieron enumerar el puerto abierto de la red de destino. Todos muestran que el puerto está cerrado, incluso si el servicio está activado.

Escaneo de longitud de datos

Cuando un atacante no puede enumerar el puerto abierto aplicando el escaneo anterior, entonces debe ir con nmap "escaneo de longitud de datos", que también omitirá el filtro de firewall anterior.
De forma predeterminada, el escaneo nmap tiene una longitud de datos fija como se explica anteriormente, este escaneo le permite agregar la longitud de datos aleatoria de su elección.
Usando el siguiente comando, el atacante está tratando de enumerar el puerto abierto definiendo la longitud de datos 12
¡¡Increíble!! De la imagen a continuación puede observar que el puerto 22 está abierto.

Por lo tanto, cuando utilizará wireshark para capturar el tráfico de red generado mientras se ejecuta este análisis, obtendrá "Longitud total" para TCP es 44.
El tamaño del paquete SSH es de 70 bytes; ahora reduce 14 bytes de su de Ethernet y luego permanece 56 bytes; ahora reduzca 12 bytes de longitud de datos que haya definido en la última longitud total, quedarán 44 bytes .
Aquí, 70 bytes -14 bytes [Ethernet] = 56 bytes
Ahora, 56 bytes -12 bytes [longitud de datos] = 44 bytes

Tamaño de longitud de rechazo de 1 a 100
Si un administrador es consciente del escaneo de longitud de datos de nmap, entonces debe bloquear un rango completo de longitud de datos para evitar el escaneo de red del atacante ejecutando la siguiente regla iptable.
Ahora el firewall analizará el tráfico que ingresa a su red y luego rechazará el paquete que contiene la longitud de datos de 1 byte a 100 bytes y negará establecer conexiones TCP con el atacante.

Ahora, si el atacante envía una longitud de datos entre 1 byte y 100 bytes, el escaneo de puertos no puede enumerar su estado abierto, que puede confirmar a partir de la imagen a continuación cuando se envían 12 bytes y 10 bytes de longitud de datos en ambos escaneos, el puerto 22 está cerrado . Tan pronto como el atacante envió una longitud de datos de 101 bytes, que es más de 100 bytes, el puerto 22 se abre.

Escaneo TTL

Rechazar el tamaño TTL con IPTables
Después de aplicar el filtro de firewall en "indicadores TCP" y "longitud de datos" para proteger la red de la enumeración, ahora agregue el filtro de firewall para "Time To Live", es decir, TTL.
Si ha notado la tabla que figura al principio del artículo, observará que solo el escaneo TCP [sT] tiene un valor TTL igual a 64; de lo contrario, el escaneo restante tiene un valor TTL menor que 64 cada vez, por lo tanto, si el administrador aplica un filtro de firewall para rechazar TTL valor 64, entonces evitará que la red escanee TCP.
El siguiente comando agregará una nueva regla de firewall para verificar el valor TTL de 64 y rechazar el paquete.

Ahora, si el atacante usa "escaneo TCP [sT]" para enumerar la información del puerto, siempre mostrará "el puerto está cerrado", de lo contrario, si se realiza otro escaneo, el atacante obtendrá información precisa relacionada con el estado del puerto. A partir de la imagen que se muestra a continuación, puede observar cuándo "se ejecuta el escaneo básico" para enumerar los detalles del puerto que da "el puerto 22 está abierto".

Esto sucede porque el valor TTL para el "escaneo básico" es menor que 64 y el cortafuegos de la máquina de destino rechazará solo el valor TTL igual a 64. Cuando capturamos el tráfico de red generado mientras se ejecuta este escaneo, encontramos que el valor TTL es 56 utilizados en el escaneo básico.

Ahora el administrador ha agregado un paso más de seguridad para evitar que su red escanee todo tipo al rechazar el valor TTL de 64 y menos de 64.
Ahora el firewall analizará el tráfico que ingresa a su red y bloquea el paquete que contiene TTL 64 o menos.

¡¡Bravo!! La regla del cortafuegos anterior es más poderosa que las reglas anteriores porque tiene un "escaneo básico" NMAP de bloque completo así como un "escaneo avanzado", si observa la imagen a continuación, observará que TCP [sT], Escaneo Fin [sF], Longitud de datos, Stealth [sS] El escaneo ha fallado y el puerto está cerrado.

Aún así, hay una segunda forma de enumerar el puerto para obtener un resultado preciso, estableciendo un valor TTL mayor que 64. El siguiente comando realizará un escaneo de puertos con un valor TTL definido, es decir, 65 que omitirá el filtro de firewall ya que 65 es mayor que 64.
Entonces, si el atacante tiene la suerte de adivinar el valor TTL rechazado o la regla de firewall y aplicó el TTL correcto, entonces solo la enumeración de puertos tendrá éxito como se muestra en el puerto 22 de imagen dado que está abierto.

Escaneo de puerto de origen

Filtro de puerto de origen con IPTables
Un paso más para proteger la red del escaneo es aplicar la regla de firewall para permitir el tráfico de un puerto específico solamente y rechazar el tráfico de los puertos restantes.

Ahora, nuevamente NMAP básico y avanzado no podrá enumerar el estado del puerto abierto y si el atacante hizo una suposición correcta de nuevo sobre el filtro de firewall, entonces puede ejecutar el escaneo del puerto de origen NMAP para enumerar los detalles del puerto.
La opción g se usa para definir el puerto de origen que llevará el paquete de red al puerto de destino.
El comando anterior enviará tráfico desde el puerto 80 para realizar la exploración, por lo tanto, el firewall permitirá el tráfico desde el puerto de origen 80 y, como resultado, mostrará el estado de los puertos abiertos.

Escaneo de señuelo

Establecer el registro del firewall para capturar la IP del atacante
El administrador puede establecer una regla de firewall para crear un registro de IP del que proviene el tráfico, solo creará registros del sistema para capturar la IP del atacante que realiza el escaneo.
Ahora, si el atacante realizará algún tipo de escaneo de red en el sistema de destino, el firewall generará su registro que capturará su IP.

Escapar del registro del cortafuegos
Siempre tome algún tipo de precaución para escapar mientras realiza el escaneo de red porque en Windows "honey pot" y en Linux "iptables" son firewall que harán el registro de la IP del atacante. En tal situación, se le sugiere utilizar un Escaneo de señuelo para la enumeración de puertos.
Escaneo de señuelo
La opción -D hace que parezca el truco que escanea la red de destino. No oculta su propia IP, pero convierte su IP en un torrente de otros que supuestamente escanean a la víctima al mismo tiempo. Esto no solo hace que el escaneo parezca más aterrador, sino que reduce la posibilidad de que usted sea rastreado desde su escaneo (es difícil saber qué sistema es la fuente "real").
En el comando anterior, tuvimos que usar Google IP como un torrente que se reflejará como IP del atacante en el registro del firewall.

Cuando el administrador lea el registro del sistema, tomará la IP resaltada como la IP del atacante y puede aplicar el filtro en esta IP para bloquear el tráfico entrante.
Ar-themes Logo

XENTURIANS

No hay comentarios:

Publicar un comentario