Firewall and IDS/IPS Evasion
Firewalls
Un firewall es una medida de seguridad contra intentos de conexión no autorizados desde redes externas. Cada sistema de seguridad de firewall se basa en un componente de software que monitorea el tráfico de red entre el firewall y las conexiones de datos entrantes, y decide cómo manejar la conexión según las reglas establecidas. Revisa si los paquetes de red individuales son permitidos, ignorados o bloqueados. Este mecanismo está diseñado para prevenir conexiones no deseadas que podrían ser potencialmente peligrosas.
IDS/IPS
Al igual que el firewall, el sistema de detección de intrusiones (IDS) y el sistema de prevención de intrusiones (IPS) también son componentes basados en software. El IDS escanea la red en busca de posibles ataques, los analiza y reporta cualquier ataque detectado. El IPS complementa al IDS al tomar medidas defensivas específicas si se detecta un posible ataque. El análisis de tales ataques se basa en la coincidencia de patrones y firmas. Si se detectan patrones específicos, como un escaneo de detección de servicios, el IPS puede prevenir los intentos de conexión pendientes.
Determinación de Firewalls y Sus Reglas
Sabemos que cuando un puerto se muestra como "filtrado", esto puede deberse a varias razones. En la mayoría de los casos, los firewalls tienen ciertas reglas establecidas para manejar conexiones específicas. Los paquetes pueden ser descartados o rechazados. Los paquetes descartados son ignorados, y no se devuelve ninguna respuesta desde el host.
Esto es diferente para los paquetes rechazados, que se devuelven con una bandera RST. Estos paquetes contienen diferentes tipos de códigos de error ICMP o no contienen nada en absoluto.
Algunos de estos errores pueden ser:
Net Unreachable
Net Prohibited
Host Unreachable
Host Prohibited
Port Unreachable
Proto Unreachable
El escaneo TCP ACK de Nmap (-sA
) es mucho más difícil de filtrar para firewalls y sistemas IDS/IPS que los escaneos SYN (-sS
) o Connect (-sT
) porque solo envía un paquete TCP con solo la bandera ACK. Cuando un puerto está cerrado o abierto, el host debe responder con una bandera RST. A diferencia de las conexiones salientes, todos los intentos de conexión (con la bandera SYN) desde redes externas suelen ser bloqueados por los firewalls. Sin embargo, los paquetes con la bandera ACK a menudo son permitidos por el firewall porque el firewall no puede determinar si la conexión fue establecida primero desde la red externa o desde la red interna.
SYN-Scan
Salida:
ACK-Scan
Salida:
Opciones de Escaneo
10.129.2.28
: Escanea el objetivo especificado.-p 21,22,25
: Escanea solo los puertos especificados.-sS
: Realiza un escaneo SYN en los puertos especificados.-sA
: Realiza un escaneo ACK en los puertos especificados.-Pn
: Desactiva las solicitudes de eco ICMP.-n
: Desactiva la resolución DNS.--disable-arp-ping
: Desactiva el ping ARP.--packet-trace
: Muestra todos los paquetes enviados y recibidos.
Observa los paquetes RCVD y sus banderas en los resultados del escaneo. Con el escaneo SYN (-sS
), nuestro objetivo intenta establecer la conexión TCP enviando un paquete de vuelta con las banderas SYN-ACK (SA) establecidas. Con el escaneo ACK (-sA
), obtenemos la bandera RST porque el puerto TCP 22 está abierto. Para el puerto TCP 25, no recibimos ningún paquete de vuelta, lo que indica que los paquetes son descartados.
Detección de IDS/IPS
A diferencia de los firewalls y sus reglas, la detección de sistemas IDS/IPS es mucho más difícil porque estos son sistemas de monitoreo de tráfico pasivos. Los sistemas IDS examinan todas las conexiones entre hosts. Si el IDS encuentra paquetes que contienen los contenidos o especificaciones definidas, el administrador es notificado y toma las medidas adecuadas en el peor de los casos.
Los sistemas IPS toman medidas configuradas por el administrador de forma independiente para prevenir ataques potenciales automáticamente. Es esencial saber que IDS y IPS son aplicaciones diferentes y que IPS complementa al IDS.
Durante una prueba de penetración, se recomienda usar varios servidores privados virtuales (VPS) con diferentes direcciones IP para determinar si estos sistemas están presentes en la red objetivo. Si el administrador detecta un posible ataque en la red objetivo, el primer paso suele ser bloquear la dirección IP desde la cual proviene el ataque. Como resultado, ya no podremos acceder a la red usando esa IP, y se contactará a nuestro Proveedor de Servicios de Internet (ISP) para bloquear todo acceso a Internet.
Los sistemas IDS por sí solos suelen estar ahí para ayudar a los administradores a detectar ataques potenciales en su red. Luego, pueden decidir cómo manejar tales conexiones. Podemos activar ciertas medidas de seguridad desde un administrador, por ejemplo, al escanear agresivamente un solo puerto y su servicio. Basado en si se toman medidas de seguridad específicas, podemos detectar si la red tiene algunas aplicaciones de monitoreo.
Un método para determinar si hay un sistema IPS en la red objetivo es escanear desde un solo host (VPS). Si en algún momento este host es bloqueado y no tiene acceso a la red objetivo, sabemos que el administrador ha tomado algunas medidas de seguridad. En consecuencia, podemos continuar nuestra prueba de penetración con otro VPS.
Por lo tanto, sabemos que debemos ser más discretos con nuestros escaneos y, en el mejor de los casos, disfrazar todas las interacciones con la red objetivo y sus servicios.
Decoy
En algunos casos, los administradores bloquean subredes específicas de diferentes regiones en principio, lo que previene cualquier acceso a la red objetivo. Otro ejemplo es cuando el IPS debería bloquearnos. Por esta razón, el método de escaneo Decoy (-D
) es la opción correcta. Con este método, Nmap genera varias direcciones IP aleatorias insertadas en el encabezado IP para disfrazar el origen del paquete enviado. Podemos generar aleatoriamente un número específico (por ejemplo, 5) de direcciones IP separadas por dos puntos (:). Nuestra IP real se coloca aleatoriamente entre las direcciones IP generadas. En el siguiente ejemplo, nuestra IP real está colocada en la segunda posición. Otro punto crítico es que los decoys deben estar activos. De lo contrario, el servicio en el objetivo puede ser inalcanzable debido a los mecanismos de seguridad de SYN-flooding.
Escaneo Usando Decoys
Salida:
Opciones de Escaneo
10.129.2.28
: Escanea el objetivo especificado.-p 80
: Escanea solo el puerto especificado.-sS
: Realiza un escaneo SYN en los puertos especificados.-Pn
: Desactiva las solicitudes de eco ICMP.-n
: Desactiva la resolución DNS.--disable-arp-ping
: Desactiva el ping ARP.--packet-trace
: Muestra todos los paquetes enviados y recibidos.-D RND:5
: Genera cinco direcciones IP aleatorias que indican la IP de origen desde la cual proviene la conexión.
Los paquetes falsificados a menudo son filtrados por los ISP y routers, incluso si provienen del mismo rango de red. Por lo tanto, también podemos especificar las direcciones IP de nuestros servidores VPS y usarlas en combinación con la manipulación del "ID IP" en los encabezados IP para escanear el objetivo.
Otro escenario sería que solo subredes individuales no tengan acceso a los servicios específicos del servidor. Por lo tanto, también podemos especificar manualmente la dirección IP de origen (-S
) para probar si obtenemos mejores resultados con esta. Los decoys pueden usarse para escaneos SYN, ACK, ICMP y detección de sistemas operativos. Veamos un ejemplo y determinemos cuál es el sistema operativo más probable.
Prueba de Regla de Firewall
Salida:
Escaneo Usando Diferente IP de Origen
Salida:
Opciones de Escaneo
10.129.2.28
: Escanea el objetivo especificado.-n
: Desactiva la resolución DNS.-Pn
: Desactiva las solicitudes de eco ICMP.-p 445
: Escanea solo el puerto especificado.-O
: Realiza una detección de sistema operativo.-S
: Escanea el objetivo usando una IP de origen diferente.10.129.2.200
: Especifica la dirección IP de origen.-e tun0
: Envía todas las solicitudes a través de la interfaz especificada.
Proxy DNS
Por defecto, Nmap realiza una resolución inversa de DNS a menos que se indique lo contrario, para encontrar información más relevante sobre nuestro objetivo. Estas consultas DNS suelen ser aceptadas, ya que se espera que el servidor web se encuentre y se visite. Las consultas DNS se realizan a través del puerto UDP 53. El puerto TCP 53 se utilizaba anteriormente solo para los llamados "Transferencias de zona" entre servidores DNS o para la transferencia de datos mayores a 512 bytes. Cada vez más, esto está cambiando debido a las expansiones de IPv6 y DNSSEC. Estos cambios están haciendo que muchas solicitudes DNS se realicen a través del puerto TCP 53.
Sin embargo, Nmap aún nos permite especificar nuestros propios servidores DNS usando --dns-server <ns>,<ns>
. Este método puede ser fundamental si estamos en una zona desmilitarizada (DMZ). Los servidores DNS de la empresa suelen ser más confiables que los de Internet. Por ejemplo, podríamos usarlos para interactuar con los hosts de la red interna. Como otro ejemplo, podemos usar el puerto TCP 53 como puerto de origen (--source-port
) para nuestros escaneos. Si el administrador usa el firewall para controlar este puerto y no filtra correctamente IDS/IPS, nuestros paquetes TCP serán confiables y pasarán.
Escaneo SYN de un Puerto Filtrado
Salida:
Escaneo SYN Desde el Puerto DNS
Salida:
Opciones de Escaneo:
10.129.2.28
: Escanea el objetivo especificado.-p 50000
: Escanea solo el puerto especificado.-sS
: Realiza un escaneo SYN en los puertos especificados.-Pn
: Desactiva las solicitudes de eco ICMP.-n
: Desactiva la resolución DNS.--disable-arp-ping
: Desactiva el ping ARP.--packet-trace
: Muestra todos los paquetes enviados y recibidos.--source-port 53
: Realiza los escaneos desde el puerto de origen especificado.
Ahora que hemos descubierto que el firewall acepta el puerto TCP 53, es muy probable que los filtros IDS/IPS también estén configurados de manera más débil que otros. Podemos probar esto intentando conectarnos a este puerto usando Netcat.
Conectar al Puerto Filtrado
Salida:
Last updated