46 lines
2.4 KiB
Markdown

{{#include ../../banners/hacktricks-training.md}}
# **Manipulação de TTL**
Envie alguns pacotes com um TTL suficiente para chegar ao IDS/IPS, mas não o suficiente para chegar ao sistema final. E então, envie outros pacotes com as mesmas sequências que os anteriores, para que o IPS/IDS pense que são repetições e não os verifique, mas na verdade eles estão carregando o conteúdo malicioso.
**Opção do Nmap:** `--ttlvalue <value>`
# Evitando assinaturas
Basta adicionar dados inúteis aos pacotes para que a assinatura do IPS/IDS seja evitada.
**Opção do Nmap:** `--data-length 25`
# **Pacotes Fragmentados**
Basta fragmentar os pacotes e enviá-los. Se o IDS/IPS não tiver a capacidade de reassemblá-los, eles chegarão ao host final.
**Opção do Nmap:** `-f`
# **Checksum** _**inválido**_
Os sensores geralmente não calculam o checksum por razões de desempenho. Assim, um atacante pode enviar um pacote que será **interpretado pelo sensor, mas rejeitado pelo host final.** Exemplo:
Envie um pacote com a flag RST e um checksum inválido, assim, o IPS/IDS pode pensar que este pacote vai fechar a conexão, mas o host final descartará o pacote, pois o checksum é inválido.
# **Opções IP e TCP incomuns**
Um sensor pode desconsiderar pacotes com certas flags e opções definidas nos cabeçalhos IP e TCP, enquanto o host de destino aceita o pacote ao recebê-lo.
# **Sobreposição**
É possível que, ao fragmentar um pacote, exista algum tipo de sobreposição entre os pacotes (talvez os primeiros 8 bytes do pacote 2 se sobreponham com os últimos 8 bytes do pacote 1, e os últimos 8 bytes do pacote 2 se sobreponham com os primeiros 8 bytes do pacote 3). Então, se o IDS/IPS reassemblá-los de uma maneira diferente do host final, um pacote diferente será interpretado.\
Ou talvez, 2 pacotes com o mesmo deslocamento cheguem e o host tenha que decidir qual deles aceitar.
- **BSD**: Tem preferência por pacotes com _deslocamento_ menor. Para pacotes com o mesmo deslocamento, escolherá o primeiro.
- **Linux**: Como o BSD, mas prefere o último pacote com o mesmo deslocamento.
- **Primeiro** (Windows): Primeiro valor que chega, valor que permanece.
- **Último** (cisco): Último valor que chega, valor que permanece.
# Ferramentas
- [https://github.com/vecna/sniffjoke](https://github.com/vecna/sniffjoke)
{{#include ../../banners/hacktricks-training.md}}