46 lines
2.4 KiB
Markdown

{{#include ../../banners/hacktricks-training.md}}
# **Manipulacja TTL**
Wyślij kilka pakietów z TTL wystarczającym, aby dotrzeć do IDS/IPS, ale niewystarczającym, aby dotrzeć do systemu docelowego. Następnie wyślij inne pakiety z tymi samymi sekwencjami, aby IPS/IDS pomyślał, że są to powtórzenia i ich nie sprawdzi, ale w rzeczywistości niosą one złośliwą zawartość.
**Opcja Nmap:** `--ttlvalue <value>`
# Unikanie sygnatur
Po prostu dodaj dane śmieciowe do pakietów, aby uniknąć sygnatury IPS/IDS.
**Opcja Nmap:** `--data-length 25`
# **Fragmentowane pakiety**
Po prostu fragmentuj pakiety i je wysyłaj. Jeśli IDS/IPS nie ma możliwości ich złożenia, dotrą do hosta docelowego.
**Opcja Nmap:** `-f`
# **Nieprawidłowy** _**suma kontrolna**_
Czujniki zazwyczaj nie obliczają sumy kontrolnej z powodów wydajnościowych. Dlatego atakujący może wysłać pakiet, który będzie **interpretowany przez czujnik, ale odrzucony przez hosta docelowego.** Przykład:
Wyślij pakiet z flagą RST i nieprawidłową sumą kontrolną, a wtedy IPS/IDS może pomyśleć, że ten pakiet zamknie połączenie, ale host docelowy odrzuci pakiet, ponieważ suma kontrolna jest nieprawidłowa.
# **Niecodzienne opcje IP i TCP**
Czujnik może zignorować pakiety z określonymi flagami i opcjami ustawionymi w nagłówkach IP i TCP, podczas gdy host docelowy akceptuje pakiet po jego odebraniu.
# **Nakładanie się**
Możliwe jest, że podczas fragmentacji pakietu występuje pewne nakładanie się między pakietami (może pierwsze 8 bajtów pakietu 2 nakłada się na ostatnie 8 bajtów pakietu 1, a ostatnie 8 bajtów pakietu 2 nakłada się na pierwsze 8 bajtów pakietu 3). Następnie, jeśli IDS/IPS złoży je w inny sposób niż host docelowy, zostanie zinterpretowany inny pakiet.\
Lub może, 2 pakiety z tym samym przesunięciem przychodzą i host musi zdecydować, który z nich przyjąć.
- **BSD**: Ma preferencje dla pakietów z mniejszym _przesunięciem_. Dla pakietów z tym samym przesunięciem wybierze pierwszy.
- **Linux**: Podobnie jak BSD, ale preferuje ostatni pakiet z tym samym przesunięciem.
- **Pierwszy** (Windows): Pierwsza wartość, która przychodzi, wartość, która zostaje.
- **Ostatni** (cisco): Ostatnia wartość, która przychodzi, wartość, która zostaje.
# Narzędzia
- [https://github.com/vecna/sniffjoke](https://github.com/vecna/sniffjoke)
{{#include ../../banners/hacktricks-training.md}}