46 lines
2.4 KiB
Markdown

{{#include ../../banners/hacktricks-training.md}}
# **Manipulación de TTL**
Envía algunos paquetes con un TTL suficiente para llegar al IDS/IPS pero no lo suficiente para llegar al sistema final. Y luego, envía otros paquetes con las mismas secuencias que los anteriores para que el IPS/IDS piense que son repeticiones y no los verifique, pero en realidad están llevando el contenido malicioso.
**Opción de Nmap:** `--ttlvalue <value>`
# Evitando firmas
Simplemente agrega datos basura a los paquetes para evitar la firma del IPS/IDS.
**Opción de Nmap:** `--data-length 25`
# **Paquetes fragmentados**
Simplemente fragmenta los paquetes y envíalos. Si el IDS/IPS no tiene la capacidad de reensamblarlos, llegarán al host final.
**Opción de Nmap:** `-f`
# **Checksum** _**inválido**_
Los sensores generalmente no calculan el checksum por razones de rendimiento. Así que un atacante puede enviar un paquete que será **interpretado por el sensor pero rechazado por el host final.** Ejemplo:
Envía un paquete con la bandera RST y un checksum inválido, así que el IPS/IDS puede pensar que este paquete va a cerrar la conexión, pero el host final descartará el paquete ya que el checksum es inválido.
# **Opciones IP y TCP poco comunes**
Un sensor podría ignorar paquetes con ciertas banderas y opciones establecidas dentro de los encabezados IP y TCP, mientras que el host de destino acepta el paquete al recibirlo.
# **Superposición**
Es posible que al fragmentar un paquete, exista algún tipo de superposición entre los paquetes (quizás los primeros 8 bytes del paquete 2 se superponen con los últimos 8 bytes del paquete 1, y los últimos 8 bytes del paquete 2 se superponen con los primeros 8 bytes del paquete 3). Entonces, si el IDS/IPS los reensambla de una manera diferente a la del host final, se interpretará un paquete diferente.\
O tal vez, 2 paquetes con el mismo desplazamiento llegan y el host tiene que decidir cuál toma.
- **BSD**: Tiene preferencia por paquetes con _offset_ más pequeño. Para paquetes con el mismo offset, elegirá el primero.
- **Linux**: Al igual que BSD, pero prefiere el último paquete con el mismo offset.
- **Primero** (Windows): Primer valor que llega, valor que se queda.
- **Último** (cisco): Último valor que llega, valor que se queda.
# Herramientas
- [https://github.com/vecna/sniffjoke](https://github.com/vecna/sniffjoke)
{{#include ../../banners/hacktricks-training.md}}