mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-21 02:23:30 +00:00
41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
# 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. Em seguida, envie outros pacotes com as mesmas sequências dos outros para que o IPS/IDS pense que são repetições e não os verifique, mas na verdade estão carregando o conteúdo malicioso.
|
|
|
|
Opção do Nmap: `--ttlvalue <valor>`
|
|
|
|
# Evitando assinaturas
|
|
|
|
Basta adicionar dados de lixo aos pacotes para evitar a assinatura do IPS/IDS.
|
|
|
|
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 reuni-los, eles chegarão ao host final.
|
|
|
|
Opção do Nmap: `-f`
|
|
|
|
# Checksum inválido
|
|
|
|
Os sensores geralmente não calculam o checksum por motivos de desempenho. Então, 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, para que o IPS/IDS pense que este pacote está prestes a 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 ignorar pacotes com determinadas 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 aos últimos 8 bytes do pacote 1, e os últimos 8 bytes do pacote 2 se sobreponham aos primeiros 8 bytes do pacote 3). Então, se o IDS/IPS os reagrupar de 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 ele pega.
|
|
|
|
* **BSD**: Tem preferência por pacotes com _offset_ 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 fica.
|
|
* **Último** (cisco): Último valor que chega, valor que fica.
|
|
|
|
# Ferramentas
|
|
|
|
* [https://github.com/vecna/sniffjoke](https://github.com/vecna/sniffjoke)
|