{{#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 ` # 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}}