notes - b0ySie7e
GithubPortafolioWrite-ups
  • 👋Bienvenido a mi blog
  • Introducción a la ciberseguridad
    • 📓¿Como inicio en la ciberseguridad?
  • Teoria y Conceptos
    • 📓Redes
      • Identificación de Dispositivos
      • Local Area Network (LAN)
      • Sub redes
      • Procolo ARP
      • Protocolo DHCP
    • 📓Pentesting
      • OSSTMM
      • OWASP
      • NCSC CAF
  • Sistemas Operativos
    • Linux
      • Comandos
    • Windows
      • Comandos
  • Enumeración
    • Enumeracion de red
      • Enumeracion de Hosts
      • Enumeracion de Puertos y servicios
    • FootPrinting
      • Domain Information
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP-POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Enumeración web
      • Uso de google dorks
      • Whois
      • Dig
      • Enumeraciónde subdominios
      • Enumeración automatizada
  • Hacking Web
    • Ataques Comunes
      • Fuzzing
      • Sub dominios
      • SQL Injection
      • Cross-Site Scripting
      • Local File Inclusion
      • Remote File Inclusion
      • File Upload Attacks
      • Command Injections
    • Otras explotaciones
  • Escalada de Privilegios
    • 📕Linux
      • Enumeración automatizada - Tools
      • Kernel Exploit
      • Sudo
      • SUID
      • Capabilities
      • Cron Jobs
      • Path
      • NFS
    • 📕Windows
      • Enumeración automatizada - Tools
      • Harvesting Passwords from Usual Spots
      • Other Quick Wins
      • Abusing Service Misconfigurations
      • Abusing dangerous privileges
      • Abusing vulnerable software
  • Guias y Herramientas
    • Git
    • Buffer Over Flow
    • MetaSploit
      • Introducción
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Sessions
    • Nmap
    • Pivoting Tunneling Port Forwarning
      • Port Forwarding SSH
      • Pivoting Metasploit
      • Socat Redirection with a Reverse Shell
      • Socat Redirection with a Bind Shell
      • Others tools for pivoting
    • Transferencias de Archivos
      • Evading Detection
      • Linux File Transfer Methods
      • Miscellaneous File Transfer Methods
      • Transferring Files with Code
      • Windows File Transfer Methods
      • Otros
        • Usando ICMP
        • Usando ncat y tar
    • Shell y Payloads
      • Spawning shell interactiva
      • Conexión de RDP
    • Password Attacks
      • Cracking
      • Windows Local Password Attacks
      • Linux Local Password Attacks
      • Windows Lateral Movement
    • Fortinet
      • Configuración estática de Firewall
      • Licencia
      • Configuración de interfaces
      • Primera política
      • Rutas estaticas
  • Red Team Path - THM
    • Enumeración
      • Linux
      • Windows
    • Movimiento lateral
      • Movimiento Lateral
    • Pivoting
      • PortForwarining y pivoting
    • Host Evasion
      • Windows Internal
      • Introduccion a Windows
      • Abusing Windows Internal
      • Introducción a Antivirus
      • AV Evasion ShellCode
      • Principios de Ofuscación
      • Evasión de Firmas
      • Bypass UAC
      • Runtime Detection Evasion
      • Evading Logging and Monitoring
      • Living Off the Land
    • Networking Security Evasión
      • Network Security Solutions
      • Firewalls
      • Sandbox Evasion
    • Comprometiendo un directorio activo
      • Active Directory Basics
      • Breaching Active Directory
      • Enumerating Active Directory
      • Exploiting Active Directory
      • Persisting Active Directory
      • Credentials Harvesting
Con tecnología de GitBook
En esta página
  • Introduction
  • Objetivos de aprendizaje
  • Preguntas de calentamiento
  • Types of Firewalls
  • Evasion via Controlling the Source MAC/IP/Port
  • Decoy(s)
  • Proxy
  • Spoofed MAC Address
  • Spoofed IP Address
  • Fixed Source Port Number
  • Evasion via Forcing Fragmentation, MTU, and Data Length
  • Fragment Your Packets with 8 Bytes of Data
  • Fragment Your Packets with 16 Bytes of Data
  • Fragmente sus paquetes según una MTU establecida ( Fragment Your Packets According to a Set MTU)
  • Generate Packets with Specific Length
  • Evasion via Modifying Header Fields
  • Establecer TTL
  • Establecer opciones de IP
  • Utilice una suma de comprobación incorrecta
  • Evasion Using Port Hopping
  • Evasion Using Port Tunneling
  • Uso de túneles portuariosncat
  • Evasion Using Non-Standard Ports
  • Next-Generation Firewalls
  • Conclusion
  1. Red Team Path - THM
  2. Networking Security Evasión

Firewalls

AnteriorNetwork Security SolutionsSiguienteSandbox Evasion

Última actualización hace 10 meses

Introduction

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.

Objetivos de aprendizaje

Esta sala cubre:

  1. Los diferentes tipos de firewalls, según diferentes criterios de clasificación

  2. Varias técnicas para evadir firewalls

Esta sala requiere que el usuario tenga conocimientos básicos de:

Preguntas de calentamiento

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.

Types of Firewalls

Hay varias formas de clasificar los firewalls. Una forma de clasificar los firewalls sería si son dispositivos independientes.

  1. 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.

  2. 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:

  1. 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.

  2. 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.

Evasion via Controlling the Source MAC/IP/Port

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:

  1. Evasión mediante el control de la fuente MAC/IP/Puerto

  2. Evasión mediante fragmentación, MTU y longitud de datos

  3. Evasión mediante la modificación de campos de encabezado

Nmap le permite ocultar o falsificar la fuente, ya que puede utilizar:

  1. Señuelo(s)

  2. Apoderado

  3. Dirección MAC falsificada

  4. Dirección IP de origen falsificada

  5. 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. -Pnse 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 -Fopció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.226ha generado y enviado alrededor de 200 paquetes. La -Fopció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.

Decoy(s)

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 -Dopció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_IPtambién verá los análisis provenientes de 10.10.10.1y 10.10.10.2cuando solo una dirección IP de origen, ME, esté ejecutando el análisis. Tenga en cuenta que si omite la MEentrada 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 .

Proxy

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_IPenviará 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.

Spoofed MAC Address

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.

Spoofed IP Address

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.

Fixed Source Port Number

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.

Enfoque de evasión
Argumento de Nmap

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_NUMo--source-port PORT_NUM

Evasion via Forcing Fragmentation, MTU, and Data Length

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.

Fragment Your Packets with 8 Bytes of Data

Una forma sencilla de fragmentar sus paquetes sería utilizar la -fopció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.

Fragment Your Packets with 16 Bytes of Data

Otra opción útil es -ff, que limita los datos IP a 16 bytes. (Una manera fácil de recordar esto es que uno ftiene 8 bytes, pero dos fs 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.

Fragmente sus paquetes según una MTU establecida ( Fragment Your Packets According to a Set MTU)

Otra buena forma de fragmentar sus paquetes es configurando la MTU . En Nmap, --mtu VALUEespecifica 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 --mtude Nmap .

La ejecución de Nmap--mtu 8 será idéntica -fya 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.

Generate Packets with Specific Length

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.

Enfoque de evasión
Argumento de Nmap

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

Evasion via Modifying Header Fields

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

Establecer TTL

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 VALUEestablecer 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 .

Establecer opciones de IP

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 HHrepresenta dos dígitos hexadecimales, es decir, un byte.

Un atajo proporcionado por Nmap es utilizar las letras para realizar sus solicitudes:

  • Rpara grabar la ruta.

  • Tpara grabar la marca de tiempo.

  • Upara grabar ruta y grabar marca de tiempo.

  • Lpara enrutamiento de origen flexible y debe ir seguido de una lista de direcciones IP separadas por espacios.

  • Spara 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.

Utilice una suma de comprobación incorrecta

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 --badsuma 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.

pentester@TryHackMe# nmap -sS -Pn --badsum -F MACHINE_IP
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2022-01-28 16:07 EET
Nmap scan report for MACHINE_IP
Host is up.
All 100 scanned ports on MACHINE_IP are filtered

Nmap done: 1 IP address (1 host up) scanned in 21.31 seconds

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.

Enfoque de evasión
Argumento de Nmap

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

Evasion Using Port Hopping

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_NUMBERpara escuchar en un determinado puerto TCP .

  • -lescucha las conexiones entrantes

  • -vproporciona detalles detallados (opcional)

  • -nno resuelve nombres de host a través de DNS (opcional)

  • -pespecifica el número de puerto a utilizar

  • -lvnp PORT_NUMBERescucha en el puerto TCPPORT_NUMBER . Si el número de puerto es inferior a 1024, deberá ejecutarlo ncatcomo root.

Por ejemplo, ejecútelo ncat -lvnp 1025en AttackBox para escuchar en el puerto TCP 1025, como se muestra en el resultado del terminal a continuación.

pentester@TryHackMe$ ncat -lvnp 1025
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::1025
Ncat: Listening on 0.0.0.0:1025

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 1024para 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.

pentester@TryHackMe$ ncat -lvnp 1025
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::1025
Ncat: Listening on 0.0.0.0:1025
Ncat: Connection from 10.10.30.130.
Ncat: Connection from 10.10.30.130:51292.

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

Evasion Using Port Tunneling

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.

Uso de túneles portuariosncat

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 ncatutiliza las siguientes opciones:

  • -lvnp 443escucha en el puerto TCP 443. Debido a que el número de puerto es menor que 1024, en este caso debe ejecutarloncat como root.

  • -co --sh-execejecuta 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, ncatescuchará 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.

Evasion Using Non-Standard Ports

ncat -lvnp PORT_NUMBER -e /bin/bashcreará una puerta trasera a través del número de puerto especificado que le permitirá interactuar con el shell Bash.

  • -eo --execejecuta el comando dado

  • /bin/bashUbicación del comando que queremos ejecutar.

En AttackBox, podemos ejecutarlo ncat MACHINE_IP PORT_NUMBERpara conectarnos a la máquina de destino e interactuar con su shell.

Considerando el caso de que tengamos un firewall, no basta con usarlo ncatpara crear una puerta trasera a menos que podamos conectarnos al número del puerto de escucha. Además, a menos que lo ejecutemos ncatcomo usuario privilegiado rooto usando sudo, no podemos usar números de puerto inferiores a 1024.

Next-Generation Firewalls

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.

Conclusion

La siguiente tabla resume los argumentos de Nmap tratados en esta sala.

Enfoque de evasión
Argumento de Nmap

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_NUMo--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.

Fundamentos de red
Nmap
What the Shell?
What the Shell?
20231026165527.png
20231026165543.png
20231026165618.png
20231026165638.png
20231026165703.png
20231026165757.png
20231026165808.png
20231026165931.png
20231026170124.png
20231026170148.png
20231026170245.png
20231026170310.png
20231026170344.png
20231026170403.png
20231026170428.png
20231026170455.png