1/55
hping3 - generowanie pakietów i testowanie sieci

Prezentacja poświęcona jest narzędziu hping3, zaawansowanemu generatorowi pakietów sieciowych dającemu pełną kontrolę nad nagłówkami TCP, UDP, ICMP i IP. Omówiono tworzenie pakietów z dowolnymi flagami TCP, skanowanie portów, spoofing adresu źródłowego oraz pomiar RTT i traceroute. Przedstawiono także techniki flood, badanie firewall i IDS/IPS oraz pomiar jittera z wykorzystaniem skryptów.

Grafika tytułowa: pakiet sieciowy, młotek (hping), konsola, zapora ogniowa

hping3 to jeden z najpotężniejszych generatorów pakietów w systemie Linux. Niniejsza prezentacja obejmuje zarówno podstawowe, jak i zaawansowane funkcje do diagnostyki sieci LAN i WAN, umożliwiające studentom samodzielne konfigurowanie i uruchamianie testów w środowisku laboratoryjnym.

Narzędzie to daje pełną kontrolę nad każdym bitem nagłówków TCP, UDP, ICMP i IP, co czyni je niezastąpionym w sytuacjach, gdy standardowe narzędzia, takie jak ping, zawodzą z powodu blokowania ICMP przez zaporę sieciową.

2/55
Plan części 7

Plan części 7

  • Czym jest hping3?
  • Instalacja i podstawowa składnia
  • Liczba pakietów, interwał, verbose
  • Spoofing adresu źródłowego
  • Tryby protokołów: IP, ICMP, UDP, TCP
  • Porty źródłowe i docelowe
  • Flagi TCP: SYN, ACK, FIN, RST, PSH, URG, Xmas
  • Skanowanie portów
  • Rozmiar pakietu, payload, dane z pliku
  • Pomiar RTT i traceroute
  • TTL i fragmentacja
  • Tryby ICMP i UDP
  • Flood i spoofing
  • Badanie firewall, IDS/IPS, QoS
  • Pomiar jittera, skrypty, porównania
  • Etyka, zabezpieczenia, studia przypadków
  • Podsumowanie, pytania kontrolne, zadanie
Mapa myśli przedstawiająca plan

Prezentacja obejmuje szesnaście głównych obszarów, od wprowadzenia przez poszczególne opcje aż po studia przypadków i kwestie etyczne związane z używaniem narzędzia hping3.

Główny nacisk położono na praktyczne aspekty skanowania portów, testowania zapór sieciowych, pomiarów wydajności oraz automatyzacji za pomocą skryptów w języku bash i Python.

3/55
Następca hping – wszechstronne narzędzie

Czym jest hping3?

hping3 to zaawansowane narzędzie sieciowe do generowania i analizy pakietów TCP/IP. Jest następcą hping (hping2).

Służy do:

  • Generowania niestandardowych pakietów TCP, UDP, ICMP, IP
  • Skanowania portów i testowania zapór sieciowych
  • Pomiaru czasu odpowiedzi (RTT) i badania MTU
  • Testowania fragmentacji i flag TCP
  • Spoofingu adresów źródłowych

Autor: Salvatore Sanfilippo (antirez) – znany też z Redis.

hping3 to nie tylko narzędzie do ataków – to przede wszystkim wszechstronny generator pakietów do diagnostyki sieci.
Logo hping3, konsola z przykładowym wywołaniem, ikona pakietu

W przeciwieństwie do standardowego ping, hping3 umożliwia pełną kontrolę nad każdym bitem nagłówków TCP, UDP, ICMP i IP, co pozwala na precyzyjne testowanie zachowania sieci.

Jest niezastąpiony, gdy standardowe narzędzia zawodzą, na przykład gdy ICMP jest blokowane przez zaporę sieciową, a diagnostyka musi zostać przeprowadzona z wykorzystaniem innych protokołów.

4/55
Jak zainstalować hping3?

Instalacja hping3

Linux (Debian/Ubuntu):

sudo apt update
sudo apt install hping3

Linux (RHEL/CentOS/Fedora):

sudo dnf install hping3

Windows:

  • Brak natywnej wersji – wymaga Cygwin lub WSL
  • Alternatywnie: użyj nping (część Nmap) lub Colasoft Packet Builder
Na Windows zalecamy WSL (Windows Subsystem for Linux) – hping3 działa w pełni w środowisku Linux pod Windows.
Zrzut ekranu terminala z instalacją hping3

Instalacja na Debianie i Ubuntu jest trywialna i sprowadza się do jednej komendy w menedżerze pakietów apt. Na systemach RHEL i Fedora instalację przeprowadza się za pomocą menedżera dnf.

Dla systemu Windows najwygodniejszym rozwiązaniem jest wykorzystanie podsystemu WSL, a alternatywą dla hping3 na Windows jest narzędzie nping wchodzące w skład pakietu Nmap.

5/55
hping3 [opcje] [cel]

Podstawowa składnia

Ogólna składnia wywołania:

hping3 [opcje] <adres_celu>

Przykład podstawowego pinga TCP:

hping3 -p 80 192.168.1.1

Wysyła pakiet TCP SYN na port 80 do 192.168.1.1 i czeka na odpowiedź.

Opcje dzielą się na kategorie:

  • Sterowanie pakietami: -c, -i, -n, -V
  • Protokół: -0, -1, -2, -8
  • Flagi TCP: -S, -A, -F, -R, -P, -U, -X, -Y
  • Adresacja: -a, -p, -s, -k
Schemat składni hping3 z podziałem na sekcje opcji

Składnia hping3 wzorowana jest na klasycznych narzędziach Unix, a domyślnym trybem pracy jest TCP, co oznacza, że nawet bez podania protokołu narzędzie wysyła pakiety TCP.

Opcje można dowolnie ze sobą łączyć, co daje niemal nieograniczone możliwości konfiguracji wysyłanych pakietów i pozwala na precyzyjne dostosowanie testów do konkretnego scenariusza.

6/55
Ograniczenie liczby pakietów

-c – liczba pakietów

Opcja -c (count) określa liczbę pakietów do wysłania.

# Wyślij 5 pakietów TCP SYN na port 80
hping3 -c 5 -p 80 192.168.1.1

Bez -c hping3 wysyła pakiety w nieskończoność (aż do Ctrl+C).

Przydatne do:

  • Testów z ograniczoną liczbą próbek
  • Skryptów automatyzujących – wiemy, kiedy narzędzie zakończy pracę
  • Szybkich testów bez ryzyka zalania sieci
Zawsze używaj -c w testach – unikniesz niekontrolowanego wysyłania pakietów.
Zrzut terminala: hping3 -c 5, widać 5 pakietów wysłanych i odpowiedzi

Opcja -c zapobiega niekontrolowanemu generowaniu pakietów i powinna być zawsze używana w skryptach automatyzujących testy sieciowe.

Jest niezbędna do zapewnienia skończonego czasu wykonania testu oraz do precyzyjnych pomiarów RTT i jittera, gdzie wymagana jest ściśle określona liczba próbek.

7/55
Sterowanie tempem wysyłania

-i – interwał między pakietami

Opcja -i (interval) ustawia odstęp między kolejnymi pakietami.

# Co 1 ms (1000 mikrosekund)
hping3 -i u1000 -c 10 -p 80 192.168.1.1
# Co 1 sekunda
hping3 -i 1 -c 10 -p 80 192.168.1.1

Jednostki:

  • uN – mikrosekundy (u1000 = 1 ms)
  • liczba bez prefiksu – sekundy (1 = 1 s)
Wykres paskowy pokazujący pakiety wysyłane w odstępach czasowych

Kontrola interwału między pakietami jest kluczowa podczas testów wydajnościowych sieci, ponieważ pozwala symulować różne scenariusze obciążenia.

Bardzo małe interwały symulują ataki typu flood, ale zbyt mały odstęp między pakietami może przeciążyć własny interfejs sieciowy oraz procesor komputera testującego.

8/55
Szybciej, bez DNS

-n – bez rozwiązywania nazw

Opcja -n (numeric) wyłącza rozwiązywanie adresów IP na nazwy hostów (odwrotne zapytania DNS).

# Bez -n: hping3 próbuje rozwiązać 192.168.1.1 -> hostname
# Z -n: tylko adres IP w output
hping3 -n -c 3 -p 80 192.168.1.1

Korzyści:

  • Przyspieszenie testów (brak opóźnienia DNS)
  • Czystszy output – tylko adresy IP
  • Przydatne w skryptach przetwarzających wyniki
Porównanie outputu z -n i bez -n (widoczna różnica w formatowaniu)

Opcja -n przyspiesza testy poprzez pominięcie odwrotnych zapytań DNS, które mogą znacząco wydłużyć czas skanowania w dużych sieciach.

Jest szczególnie przydatna podczas skanowania całych podsieci, a także zapewnia czystszy wynik łatwiejszy do parsowania przez skrypty automatyzujące analizę.

9/55
Więcej informacji

-V – verbose

Opcja -V (verbose) włącza szczegółowy tryb wyświetlania.

hping3 -V -c 2 -p 80 192.168.1.1

Pokazuje dodatkowe informacje:

  • Rozmiar wysłanego pakietu
  • Szczegóły nagłówków IP i TCP
  • Czas życia TTL, sumy kontrolne
  • Kody odpowiedzi ICMP (jeśli występują)

Przydatne podczas debugowania i analizy problemów sieciowych.

Zrzut terminala z verbose mode – widać szczegółowe pola nagłówków

Tryb szczegółowy verbose powinien być standardem podczas rozwiązywania problemów sieciowych, ponieważ dostarcza pełnych informacji o każdym pakiecie.

Wyświetla między innymi wartości TTL pozwalające oszacować liczbę hopów oraz sumy kontrolne IP i TCP pomagające wykryć uszkodzenia transmisji na poziomie łącza.

10/55
Wybór interfejsu sieciowego

-I – wybór interfejsu

Opcja -I (interface) wskazuje interfejs sieciowy do wysyłania pakietów.

# Użyj interfejsu eth0
hping3 -I eth0 -p 80 192.168.1.1

Przydatne gdy:

  • Masz wiele interfejsów sieciowych (LAN, WLAN, VPN)
  • Chcesz wysyłać pakiety przez konkretną kartę
  • Testujesz routing i polityki sieciowe

W systemach z wieloma interfejsami hping3 domyślnie wybiera pierwszy dostępny.

Schemat laptopa z dwoma interfejsami – eth0 (LAN) i wlan0 (Wi-Fi) – zaznaczony wybór

Opcja -I jest niezbędna w systemach z wieloma interfejsami sieciowymi, gdzie domyślny wybór interfejsu może nie być odpowiedni dla planowanego testu.

Umożliwia testowanie konkretnych interfejsów, szczególnie tuneli VPN takich jak tun0 czy tap0, oraz pomaga w diagnozowaniu problemów z routingiem na maszynach wieloadresowych.

11/55
Fałszowanie adresu źródłowego

-a – spoofing adresu źródłowego

Opcja -a (spoof) ustawia dowolny adres IP źródła w pakiecie.

# Wyślij pakiet z adresem źródłowym 10.0.0.1
hping3 -a 10.0.0.1 -p 80 192.168.1.1

Zastosowania:

  • Testowanie zapór sieciowych – czy przepuszczają ruch z zaufanych adresów?
  • Symulacja ataków spoofingowych w środowisku laboratoryjnym
  • Badanie mechanizmów antyspoofingowych (uRPF, ACL)

Uwaga: Odpowiedzi trafią na sfałszowany adres, nie do ciebie!

Schemat: oryginalny host (192.168.1.100) wysyła pakiet z IP 10.0.0.1 do celu

Spoofing zastępuje pole adresu źródłowego w pakiecie za pomocą surowych gniazd systemowych, co pozwala symulować ruch pochodzący z dowolnego adresu IP.

Nowoczesne routery stosują mechanizmy anty-spoofingowe takie jak uRPF i ACL, dlatego spoofing jest skuteczny głównie w sieciach lokalnych bez odpowiedniego zabezpieczenia.

12/55
Wybierz protokół warstwy 3/4

Tryby protokołów

hping3 obsługuje kilka trybów protokołów:

  • -0 – surowy IP (raw IP) – wysyła pakiety IP z własnym nagłówkiem
  • -1 – tryb ICMP – odpowiednik pinga, ale z większą kontrolą
  • -2 – tryb UDP – wysyła pakiety UDP
  • -8 – SCAN mode – skanowanie zakresu portów TCP
# ICMP echo request
hping3 -1 8.8.8.8
# UDP na port 53 (DNS)
hping3 -2 -p 53 8.8.8.8
Tabela z czterema trybami, opisem i przykładem użycia

Tryb surowego IP z opcją -0 jest najbardziej elastyczny, ale wymaga dogłębnej znajomości nagłówków IP i ręcznego konstruowania pakietów.

Tryb ICMP z opcją -1 przydaje się, gdy standardowy ping jest blokowany przez zaporę, a tryb UDP z opcją -2 umożliwia testowanie serwerów DNS, DHCP i NTP.

13/55
Cel – port docelowy

-p – port docelowy

Opcja -p (destination port) ustawia port docelowy TCP lub UDP.

# SYN na port 80 (HTTP)
hping3 -S -p 80 192.168.1.1
# SYN na port 443 (HTTPS)
hping3 -S -p 443 192.168.1.1
# SYN na port 22 (SSH)
hping3 -S -p 22 192.168.1.1

Bez -p hping3 używa portu 0 (lub losowego w zależności od trybu).

Port docelowy jest kluczowy przy testowaniu reguł firewalla – różne porty = różne reguły.

Ramka TCP z zaznaczonym polem Destination Port

Port docelowy to szesnastobitowe pole w nagłówku TCP lub UDP identyfikujące usługę na hoście docelowym, a standardowe porty są przypisane przez organizację IANA.

Testowanie różnych portów pozwala odkryć reguły zapory sieciowej i dostępne usługi, co jest kluczowe podczas audytów bezpieczeństwa.

14/55
Port źródłowy pod kontrolą

-s – port źródłowy, -k – keep

Opcja -s (source port) ustawia port źródłowy TCP/UDP.

Opcja -k (keep) zachowuje port źródłowy dla wszystkich pakietów (domyślnie hping3 go zmienia).

# Port źródłowy 1024, docelowy 80
hping3 -s 1024 -p 80 192.168.1.1
# Zachowaj port źródłowy dla wszystkich pakietów
hping3 -s 1024 -p 80 -k 192.168.1.1

Przydatne przy testowaniu reguł firewalla opartych na portach źródłowych.

Schemat: pakiet z portem źródłowym 1024 → port docelowy 80

Domyślnie hping3 zmienia port źródłowy dla każdego pakietu, ale opcja -k wymusza użycie tego samego portu we wszystkich pakietach.

Opcja -s ustawia konkretny port źródłowy, co jest przydatne podczas testowania reguł zapory opartych na porcie źródłowym i symulowania ruchu z konkretnych aplikacji.

15/55
Flagi TCP – sterowanie pakietem

Flagi TCP – przegląd

hping3 pozwala ustawić dowolną kombinację flag TCP:

FlagaOpcjaZnaczenie
SYN-SSynchronizacja (rozpoczęcie połączenia)
ACK-APotwierdzenie
FIN-FZakończenie połączenia
RST-RReset połączenia
PSH-PPush (natychmiastowe przekazanie danych)
URG-UPilne dane
X flag-XNiestandardowa flaga X (bit 6, 0x40)
Y flag-YNiestandardowa flaga Y (bit 7, 0x80)
# SYN flood
hping3 -S -p 80 --flood 192.168.1.1
Nagłówek TCP z zaznaczonym polem Flags (9 bitów)

Sześć bitów flag w czternastym bajcie nagłówka TCP kontroluje stan połączenia: SYN, ACK, FIN, RST, PSH i URG.

hping3 umożliwia dowolną kombinację tych flag, a nietypowe kombinacje jak Xmas tree FIN+PSH+URG czy Null scan bez flag powinny wywoływać alarmy w systemach IDS i IPS.

16/55
SYN scan – najpopularniejszy

SYN scan -S

Wysyła pakiet z flagą SYN – tak jakby chciał nawiązać połączenie.

# SYN scan na port 80
hping3 -S -p 80 192.168.1.1

Odpowiedzi:

  • SYN+ACK – port otwarty (nasłuchuje)
  • RST – port zamknięty
  • Brak odpowiedzi – port filtrowany (firewall)

SYN scan jest szybki i relatywnie cichy – nie nawiązuje pełnego połączenia.

Trzy scenariusze: SYN→SYN+ACK (open), SYN→RST (closed), SYN→brak (filtered)

Skanowanie SYN jest najpopularniejszą metodą skanowania portów ze względu na szybkość i brak konieczności pełnego uzgadniania połączenia trójstronnego.

Brak odpowiedzi może oznaczać port filtrowany przez zaporę lub stratę pakietów, dlatego zaleca się wykonanie kilku prób w celu potwierdzenia rezultatu.

17/55
FIN scan – stealth

FIN scan -F

Wysyła pakiet z flagą FIN – zgodnie ze specyfikacją TCP, zamknięty port powinien odpowiedzieć RST.

# FIN scan na port 80
hping3 -F -p 80 192.168.1.1

Odpowiedzi:

  • RST – port zamknięty
  • Brak odpowiedzi – port otwarty (lub filtrowany)

Nie działa na systemach Windows (Windows zawsze odpowiada RST na FIN, niezależnie od stanu portu).

FIN scan jest trudniejszy do wykrycia przez IDS niż SYN scan.

Schemat: FIN→RST (closed) vs FIN→brak (open)

Skanowanie FIN wykorzystuje asymetrię specyfikacji RFC 793, zgodnie z którą zamknięty port odpowiada pakietem RST, a otwarty nie wysyła żadnej odpowiedzi.

Systemy Windows zawsze odpowiadają RST niezależnie od stanu portu, a nowoczesne zapory sieciowe i systemy IDS potrafią wykrywać i blokować skanowanie FIN.

18/55
SYN+ACK – badanie firewalla stanowego

SYN+ACK scan

Wysyła pakiet z flagami SYN i ACK jednocześnie.

# SYN+ACK scan (flagi S+A)
hping3 -S -A -p 80 192.168.1.1

Zachowanie:

  • Firewall stateful – odrzuci pakiet (nie ma pasującego wpisu w tablicy połączeń)
  • Firewall stateless – może przepuścić pakiet, jeśli reguła na to pozwala
  • Otwarty port – odpowiada RST (nieoczekiwane SYN+ACK)

Przydatne do odróżnienia firewalla stateful od stateless.

Schemat: SYN+ACK → stateful firewall (drop) vs stateless (może przepuścić)

Pakiet SYN+ACK jest nietypowy w normalnym ruchu sieciowym, ponieważ występuje dopiero w drugiej fazie uzgadniania połączenia, a nie jako pierwszy pakiet.

Zapory stanowe odrzucają go z powodu braku wpisu w tablicy połączeń, podczas gdy zapory bezstanowe mogą go przepuścić, co pozwala odróżnić te dwa typy zapór.

19/55
Co mówi odpowiedź?

Interpretacja odpowiedzi

WysłaneOdpowiedźInterpretacja
SYNSYN+ACKPort otwarty
SYNRSTPort zamknięty
SYNbrak / ICMP UnreachPort filtrowany
FINRSTPort zamknięty
FINbrakPort otwarty (UNIX) lub filtrowany
ACKRSTHost żyje, port nie ma połączenia

hping3 wyświetla odpowiedź w formacie: len=46 ip=… flags=SA …

Flagi w odpowiedzi: S=SYN, A=ACK, F=FIN, R=RST, P=PSH, U=URG.

Output hping3 z zaznaczonymi flagami odpowiedzi

Format odpowiedzi hping3 zawiera długość pakietu len, adres IP, flagi odpowiedzi oraz czas RTT, co umożliwia szczegółową analizę zachowania celu.

Ważne jest odróżnienie filtrowania przez zaporę od zwykłej straty pakietów, dlatego zaleca się wykonanie co najmniej trzech prób na każdy testowany port.

20/55
Ustawianie numeru potwierdzenia TCP

-L – numer potwierdzenia TCP

Opcja -L (tcpack) ustawia numer potwierdzenia TCP (ACK number) w nagłówku.

# Ustaw numer potwierdzenia TCP na 1000
hping3 -L 1000 -p 80 192.168.1.1

To pole 32-bitowe określa, jaki kolejny bajt danych spodziewa się otrzymać nadawca.

Przydatne do:

  • Ręcznego konstruowania pakietów TCP
  • Testowania stosu TCP/IP nietypowymi wartościami ACK
  • Zaawansowanych testów protokołu

Uwaga: do ustawienia rozmiaru pakietu służy opcja -d (data size), a nie -L.

Nagłówek TCP z zaznaczonym polem Acknowledgment Number

Opcja -L (--tcpack) ustawia 32-bitowe pole potwierdzenia w nagłówku TCP, które określa następny oczekiwany bajt danych.

Nie mylić z opcją -d, która kontroluje rozmiar danych (payload) pakietu. Rozmiar całkowity pakietu to suma nagłówków i danych ustawionych przez -d.

21/55
Dodawanie treści do pakietu

-d – dane (payload)

Opcja -d (data) ustawia rozmiar danych (payload) w bajtach.

# 1000 bajtów danych + nagłówki
hping3 -d 1000 -p 80 192.168.1.1

Różnica między -L a -d:

  • -L – całkowity rozmiar pakietu (headers + data)
  • -d – tylko rozmiar danych (payload)

Generowanie dużych pakietów przydaje się do:

  • Testowania MTU i fragmentacji
  • Badania przepustowości
  • Symulacji transferu danych
Nagłówek IP + TCP + payload danych – zaznaczona część data

Opcja -d dodaje dane użytkownika do pakietu, domyślnie wypełnione losowymi bajtami, co pozwala symulować rzeczywisty transfer danych.

Niestandardową zawartość można załadować z pliku za pomocą opcji -E lub ze standardowego wejścia przez opcję -e, co jest niezbędne podczas testowania ścieżki MTU.

22/55
Wczytywanie danych z pliku

-E – dane z pliku

Opcja -E (file) wczytuje dane (payload) z pliku.

# Wyślij zawartość pliku dane.txt jako payload
hping3 -E dane.txt -p 80 192.168.1.1

Zastosowania:

  • Testowanie firewall – wysyłanie specyficznych danych (np. sygnatur)
  • Wstrzykiwanie treści do strumienia TCP
  • Testy IDS/IPS – czy wykrywają określone wzorce

Plik jest odczytywany i wysyłany jako payload pakietu TCP/UDP.

Ikona pliku → hping3 → sieć – dane z pliku w payload

Opcja -E ładuje dane z pliku i wysyła je jako payload pakietu, co jest przydatne do testowania systemów IDS i IPS ze znanymi sygnaturami ataków.

Analitycy bezpieczeństwa mogą dzięki temu testować skuteczność wykrywania bez konieczności używania pełnych narzędzi atakujących, co jest bezpieczniejsze i bardziej kontrolowane.

23/55
Dane z stdin – piping

-e – dane ze standardowego wejścia

Opcja -e (stdin) odczytuje dane ze standardowego wejścia.

# Wyślij dane z stdin jako payload
echo "test payload" | hping3 -e -p 80 192.168.1.1

Przydatne do:

  • Skryptów – dynamiczne generowanie payloadu
  • Pipingu z innymi narzędziami (dd, head, base64)
  • Automatyzacji testów
Schemat piping: komenda → stdin → hping3 → sieć

Opcja -e umożliwia dynamiczne generowanie danych poprzez potoki z innymi programami systemowymi, co pozwala na tworzenie złożonych łańcuchów przetwarzania.

Współpracuje z narzędziami takimi jak dd, base64 i head, co wpisuje się w filozofię Uniksa polegającą na łączeniu małych wyspecjalizowanych narzędzi w większe całości.

24/55
RTT – Round Trip Time

Pomiar czasu odpowiedzi (RTT)

hping3 automatycznie mierzy czas między wysłaniem pakietu a otrzymaniem odpowiedzi.

hping3 -c 5 -p 80 192.168.1.1

W outputcie:

len=46 ip=192.168.1.1 flags=SA seq=0 ttl=64 id=0 rtt=3.2 ms

Pole rtt=3.2 ms – czas w milisekundach.

Dokładność zazwyczaj do 0.1 ms – zależna od systemu i obciążenia.

Pomiar RTT jest kluczowy przy:

  • Diagnostyce opóźnień sieciowych
  • Testowaniu łączy WAN/VPN
  • Badaniu jittera (zmienności opóźnienia)
Schemat: czas wysłania SYN → czas otrzymania SYN+ACK = RTT

RTT Round Trip Time obejmuje czas propagacji sygnału, czas przetwarzania na routerach oraz opóźnienie w kolejkach buforów pośrednich.

Dokładność pomiaru zależy od rozdzielczości zegara systemowego, a jądra Linuksa skonfigurowane z małymi opóźnieniami osiągają precyzję pomiaru rzędu mikrosekund.

25/55
Śledzenie trasy z hping3

--traceroute

hping3 może śledzić trasę do celu, wysyłając pakiety z rosnącym TTL.

# Traceroute do 8.8.8.8 na porcie 80
hping3 --traceroute -p 80 8.8.8.8

Działa to podobnie do traceroute/tracert, ale używa TCP SYN zamiast ICMP lub UDP.

Zalety:

  • Może przejść przez firewalle, które blokują ICMP
  • Widzi trasę dla konkretnego portu TCP
  • Bardziej elastyczny niż klasyczny traceroute
Mapa sieci z zaznaczonymi pośrednimi routerami i czasami RTT

Funkcja traceroute w hping3 działa poprzez stopniowe zwiększanie wartości TTL w kolejno wysyłanych pakietach, aż do osiągnięcia hosta docelowego.

Każdy router, przy którym TTL spadnie do zera, odsyła komunikat ICMP Time Exceeded, a traceroute TCP może ominąć zapory blokujące ICMP, ale przepuszczające TCP na portach 80 i 443.

26/55
Ustawianie TTL

--ttl – Time To Live

Opcja --ttl ustawia czas życia (Time To Live) pakietu IP.

# Pakiet z TTL=5 – max 5 hopów
hping3 --ttl 5 -p 80 192.168.1.1

Domyślny TTL zależy od systemu (zwykle 64 lub 128).

Zastosowania:

  • Testowanie, na którym hopu pakiet wygaśnie
  • Symulacja pakietów z dalekich sieci (mały TTL)
  • Badanie zachowania routerów przy TTL=1 (czy odpowiadają ICMP Time Exceeded)

Gdy TTL osiągnie 0, router odrzuca pakiet i wysyła ICMP Time Exceeded.

Schemat: pakiet z TTL=5 przechodzi przez routery, TTL maleje; przy TTL=0 router odrzuca

TTL Time To Live zapobiega zapętleniu pakietów w sieci, a każdy router na trasie dekrementuje jego wartość o jeden, aż do osiągnięcia zera.

Domyślny TTL w systemie Linux wynosi 64, a w Windows 128, natomiast niestandardowa wartość TTL jest przydatna podczas testów routingu i diagnostyki ścieżek sieciowych.

27/55
Fragmentacja pakietów IP

Fragmentacja -f i MTU -m

Opcja -f (fragment) włącza fragmentację – hping3 dzieli pakiet na mniejsze części.

Opcja -m (mtu) ustawia maksymalny rozmiar fragmentu (MTU).

# Fragmentacja z MTU 500 bajtów
hping3 -f -m 500 -d 1500 -p 80 192.168.1.1

Większy pakiet (1500 B payload) zostanie podzielony na 3 fragmenty (500+500+500).

Przydatne do:

  • Testowania obsługi fragmentacji przez firewall i routery
  • Badania PMTUD (Path MTU Discovery)
  • Sprawdzania, czy firewall poprawnie składa fragmenty
Pakiet 1500 B podzielony na 3 fragmenty – każdy z własnym nagłówkiem IP

Fragmentacja IP dzieli pakiety przekraczające MTU na mniejsze części, z których każda otrzymuje własny nagłówek IP z odpowiednimi znacznikami przesunięcia.

Niektóre zapory sieciowe i systemy IDS mają problemy ze składaniem fragmentów, co umożliwia techniki omijania zabezpieczeń polegające na celowej fragmentacji pakietów.

28/55
Znajdź MTU ścieżki

-g – badanie MTU (PMTUD)

Opcja -g włącza tryb badania MTU (PMTUD).

# Badanie MTU do celu (wysyła pakiety z flagą DF)
hping3 -c 5 -g -p 80 192.168.1.1

hping3 wysyła pakiety z flagą Don't Fragment (DF). Jeśli pakiet jest za duży, router odpowiada ICMP Fragmentation Needed.

Na podstawie odpowiedzi ICMP hping3 określa maksymalny rozmiar pakietu dla danej ścieżki.

To samo co PMTUD, ale z poziomu narzędzia CLI.

Wykres: rozmiar pakietu → odpowiedź ICMP (Frag Needed) → nowy, mniejszy pakiet

PMTUD Path MTU Discovery działa poprzez wysyłanie pakietów z flagą Don't Fragment DF i stopniowe zmniejszanie ich rozmiaru aż do braku błędu ICMP Fragmentation Needed.

Enkapsulacja VPN dodaje dodatkowe nagłówki, które zmniejszają dostępne MTU, dlatego standardowe MTU 1500 bajtów dla Ethernetu spada do 1400–1460 bajtów przy użyciu OpenVPN lub IPsec.

29/55
hping3 jako ping – tryb ICMP

Tryb ICMP -1

Tryb ICMP (-1) wysyła pakiety ICMP Echo Request (typ 8) – odpowiednik pinga.

# ICMP ping do 8.8.8.8
hping3 -1 8.8.8.8
# 5 pakietów ICMP
hping3 -1 -c 5 8.8.8.8

Różnice w stosunku do standardowego ping:

  • Można ustawić dowolny rozmiar pakietu (-d)
  • Można spoofować adres źródłowy (-a)
  • Bardziej szczegółowy output (RTT, TTL, ID)
Schemat: host → ICMP Echo → 8.8.8.8 → ICMP Echo Reply

Tryb ICMP oferuje znacznie więcej niż standardowy ping, dając pełną kontrolę nad rozmiarem pakietu, adresem źródłowym oraz typem komunikatu ICMP.

Jest przydatny do testowania reakcji zapory sieciowej i systemów IDS na nietypowe pakiety ICMP, które w normalnym ruchu występują rzadko.

30/55
ICMP Timestamp Request

ICMP timestamp

Oprócz Echo Request, hping3 może wysyłać inne typy ICMP.

# ICMP Timestamp Request (typ 13)
hping3 -1 --icmptype 13 8.8.8.8

ICMP Timestamp Request prosi host docelowy o podanie aktualnego czasu.

Przydatne do:

  • Pomiaru opóźnienia jednostronnego (one-way delay)
  • Synchronizacji czasu (choć NTP jest lepszy)
  • Badania, czy firewall przepuszcza nietypowe typy ICMP

Inne typy ICMP: --icmptype 8 (Echo), --icmptype 0 (Echo Reply), --icmptype 3 (Destination Unreachable).

Nagłówek ICMP z zaznaczonym polem Type (13) i opcjonalnym polem Timestamp

ICMP Timestamp Request typu 13 pyta host docelowy o aktualny czas od północy UTC i może służyć do szacowania opóźnienia jednostronnego one-way delay.

Wymaga jednak synchronizacji zegarów po obu stronach połączenia, a protokoły NTP i PTP są znacznie dokładniejsze w pomiarze i synchronizacji czasu.

31/55
UDP – bezpołączeniowy test

Tryb UDP -2

Tryb UDP (-2) wysyła pakiety UDP do celu.

# UDP na port 53 (DNS)
hping3 -2 -p 53 8.8.8.8
# UDP z payloadem 100 bajtów
hping3 -2 -d 100 -p 1234 192.168.1.1

Odpowiedzi:

  • Brak odpowiedzi – port otwarty (UDP nie wymaga potwierdzenia)
  • ICMP Port Unreachable – port zamknięty
  • ICMP Destination Unreachable – host nieosiągalny

Przydatne do testowania serwerów DNS, DHCP, NTP.

Schemat: UDP packet → serwer DNS (53) – brak odpowiedzi (normalne) lub ICMP Unreach

UDP jest protokołem bezpołączeniowym i nie wysyła żadnego potwierdzenia dla otwartego portu, co utrudnia odróżnienie portu otwartego od filtrowanego.

Aby skutecznie przetestować port UDP, należy wysłać specyficzny dla danej usługi pakiet, na przykład zapytanie DNS do serwera DNS lub pakiet NTP do serwera czasu.

32/55
UDP flood – testowanie wydajności

UDP flood

Połączenie trybu UDP z opcją --flood wysyła lawinę pakietów UDP.

# UDP flood na port 53 (UWAGA – obciążenie sieci!)
hping3 --flood -2 -p 53 192.168.1.1

--flood wysyła pakiety tak szybko, jak to możliwe – bez czekania na odpowiedź.

Zastosowania:

  • Testowanie odporności serwerów DNS na ataki DDoS
  • Sprawdzanie limitów przepustowości
  • Badanie zachowania firewall przy dużym obciążeniu
Użycie --flood w sieci produkcyjnej bez zgody = atak DDoS. Tylko laboratorium!
Wykres: liczba pakietów/sekundę w czasie – gwałtowny skok

Test zalewania pakietami UDP sprawdza odporność serwera, zapory sieciowej i całej infrastruktury sieciowej pod dużym obciążeniem generowanym w krótkim czasie.

Może przeciążyć nie tylko cel ataku, ale również routery pośrednie i własny interfejs sieciowy, dlatego jego użycie jest dozwolone wyłącznie w izolowanym środowisku laboratoryjnym.

33/55
Flood – maksymalna prędkość

--flood – tryb zalewania

Opcja --flood wysyła pakiety tak szybko, jak to możliwe – nie czeka na odpowiedź.

# SYN flood – zalewanie pakietami SYN
hping3 -S -p 80 --flood 192.168.1.1
# ICMP flood
hping3 -1 --flood 192.168.1.1

Efekty:

  • Wysyła tysiące pakietów na sekundę (zależne od sprzętu)
  • Może przeciążyć cel, routery, a nawet własny interfejs
  • Brak wyświetlania odpowiedzi (tylko kropki)

hping3 sam reguluje prędkość – używa surowych gniazd (raw sockets).

Nigdy nie używaj --flood na celach, których nie masz prawa testować!
Konsola z flood – widać szybko migające kropki (.)

Tryb flood wykorzystuje surowe gniazda raw sockets do osiągnięcia maksymalnej prędkości wysyłania, omijając standardowe kolejkowanie stosu TCP/IP systemu operacyjnego.

Zamiast szczegółowego wyniku wyświetlane są kropki oznaczające wysłane pakiety, a typowy komputer biurowy osiąga od 50 do 300 tysięcy pakietów na sekundę w tym trybie.

34/55
Jak firewall reaguje na spoofing?

Spoofing IP -a – testowanie firewalla

Spoofing (-a) pozwala testować reguły firewalla:

# Wyślij pakiet z wewnętrznym adresem źródłowym
hping3 -a 10.0.0.1 -S -p 80 192.168.1.1
# Wyślij pakiet z zaufanym adresem partnera
hping3 -a 203.0.113.5 -S -p 443 192.168.1.1

Firewall powinien odrzucić pakiety z wewnętrznym adresem źródłowym przychodzące z zewnątrz (anti-spoofing).

Jeśli przepuści – reguły są źle skonfigurowane.

Schemat: atakujący spoofuje IP 10.0.0.1 → firewall (sprawdza uRPF) → przepuszcza/blokuje

Wysyłanie pakietów z wewnętrznym adresem IP z zewnętrznego interfejsu sieciowego pozwala testować mechanizmy anty-spoofingowe takie jak uRPF Reverse Path Forwarding.

Zapory sieciowe bez odpowiedniego zabezpieczenia przed spoofingiem są podatne na ataki, dlatego testy te powinny być regularnie przeprowadzane w ramach audytów bezpieczeństwa.

35/55
Testowanie reguł flag TCP

Badanie firewall – różne flagi TCP

Firewalle mogą mieć reguły oparte na flagach TCP.

# Test: czy firewall przepuszcza same ACK?
hping3 -A -p 80 192.168.1.1
# Test: czy firewall przepuszcza same FIN?
hping3 -F -p 80 192.168.1.1
# Test: Xmas tree (FIN+PSH+URG)
hping3 -X -p 80 192.168.1.1
# Test: Null scan (brak flag)
hping3 -p 80 192.168.1.1

Firewelle nowej generacji powinny blokować nietypowe kombinacje flag.

Tabela: flaga → spodziewana odpowiedź firewalla (allow/drop)

Nietypowe kombinacje flag TCP pozwalają testować skuteczność zapór nowej generacji NGFW w wykrywaniu niestandardowego ruchu sieciowego.

Starsze zapory bezstanowe mogą przepuszczać pakiety ACK bez wcześniejszego uzgodnienia SYN, a wyniki testów pokazują, czy inspekcja stanowa jest poprawnie skonfigurowana.

36/55
Jak odróżnić stateful od stateless?

Stateful vs Stateless firewall

Test: wyślij pakiet ACK (bez SYN) na port, który nie ma aktywnego połączenia.

# Same ACK, bez SYN (odpowiedź z RST oznacza, że pakiet doszedł)
hping3 -A -p 80 192.168.1.1

Interpretacja:

  • Odpowiedź RST – firewall stateless (przepuścił pakiet do celu)
  • Brak odpowiedzi – firewall stateful (odrzucił, bo nie ma połączenia)

Większość nowoczesnych firewalli jest stateful.

Schemat: ACK → stateful firewall (drop) vs stateless (przepuszcza → RST z serwera)

Zapory stanowe utrzymują tablicę połączeń i odrzucają pakiety ACK bez wcześniejszego uzgodnienia trójstronnego SYN-SYN+ACK-ACK.

Zapory bezstanowe sprawdzają każdy pakiet niezależnie, bez pamiętania poprzednich połączeń, a nowoczesne zapory oparte na iptables z modułem conntrack są w pełni stanowe.

37/55
Czy IDS wykrywa nietypowe pakiety?

Badanie IDS/IPS

hping3 może generować pakiety, które powinny wzbudzić alarm IDS/IPS:

# Xmas scan – nietypowa kombinacja flag
hping3 -X -p 80 192.168.1.1
# SYN flood – wiele SYN w krótkim czasie
hping3 -S -p 80 --flood 192.168.1.1
# Fragmentacja – omijanie IDS
hping3 -f -m 100 -d 500 -p 80 192.168.1.1

Sprawdź:

  • Czy IDS generuje alarm?
  • Czy IPS blokuje ruch?
  • Jaki jest próg wykrycia (ile pakietów/sekundę)?
Konsola IDS z alarmami (Snort/Suricata) – wykryte skanowanie hping3

hping3 generuje charakterystyczny ruch sieciowy, który powinien wywoływać alarmy w systemach wykrywania i zapobiegania włamaniom takich jak Snort czy Suricata.

Regularne testowanie z użyciem hping3 pomaga zoptymalizować konfigurację systemów IDS i IPS oraz precyzyjnie ustawić progi czułości dla poszczególnych sygnatur.

38/55
Pomiar opóźnień i priorytetyzacji

Badanie QoS i kolejek

hping3 może mierzyć opóźnienia dla różnych typów pakietów – przydatne do testowania QoS.

# Zmierz RTT do celu (10 próbek)
hping3 -c 10 -p 80 192.168.1.1

Porównaj RTT dla:

  • Różnych portów (np. 80 – HTTP, 22 – SSH, 53 – DNS)
  • Różnych protokołów (TCP vs UDP vs ICMP)
  • Różnych rozmiarów pakietów

Jeśli QoS priorytetyzuje określony ruch, RTT dla niego będzie niższe.

Wykres pudełkowy (box plot) RTT dla różnych portów/protokołów

QoS Quality of Service priorytetyzuje określone typy ruchu sieciowego, a hping3 umożliwia weryfikację poprawności działania polityk QoS poprzez porównanie RTT dla różnych wartości DSCP.

Jest to szczególnie przydatne podczas wdrażania nowych polityk QoS w sieciach korporacyjnych, gdzie kluczowe jest zapewnienie odpowiedniej jakości usług dla ruchu krytycznego.

39/55
Jitter – zmienność opóźnienia

Pomiar jittera

Jitter to odchylenie standardowe opóźnienia (RTT) – miara stabilności łącza.

# Zbierz 20 próbek RTT
hping3 -c 20 -p 80 192.168.1.1 | grep rtt

Przykład obliczenia jittera (manualnie lub skryptem):

# Uśredniony jitter = średnia różnic między kolejnymi RTT

Wysoki jitter (> 20–30 ms) oznacza niestabilne łącze – problemy z VoIP, streamingiem, gamingiem.

hping3 nie ma wbudowanej opcji jittera – trzeba wyciągnąć RTT i policzyć.

Wykres liniowy: RTT w czasie – im bardziej zmienna linia, tym wyższy jitter

Jitter, czyli zmienność opóźnienia delay variation, jest parametrem krytycznym dla działania usług czasu rzeczywistego takich jak VoIP, wideokonferencje i gry online.

Oblicza się go z 20 do 100 próbek RTT według wzoru zdefiniowanego w RFC 3550, a wysoki jitter powyżej 20–30 ms powoduje, że usługi czasu rzeczywistego stają się praktycznie bezużyteczne.

40/55
Automatyzacja testów z hping3

hping3 + skrypty

hping3 świetnie nadaje się do skryptów bash/Python.

# Prosty skrypt bash: skanuj porty od 1 do 100
for port in $(seq 1 100); do
    hping3 -S -p $port -c 1 192.168.1.1 2>/dev/null | grep -q "flags=SA" && echo "Port $port: OPEN"
done

W Python – użyj subprocess do wywołania hping3 i parsuj output.

Zastosowania:

  • Skanowanie zakresu portów
  • Ciągły monitoring RTT (zapis do pliku CSV)
  • Automatyczne testy regresji firewalla
Fragment kodu w edytorze + konsola z wynikami skryptu

Skrypty bash automatyzują skanowanie portów i monitorowanie sieci, umożliwiając szybkie sprawdzenie całych zakresów adresów i portów.

Python z modułem subprocess umożliwia zaawansowane parsowanie wyników, a ciągły monitoring można zrealizować z wykorzystaniem bazy danych InfluxDB i wizualizacji w systemie Grafana.

41/55
Które narzędzie kiedy?

Porównanie: hping3 vs ping vs nping

Cechapinghping3nping (Nmap)
ProtokołyICMP onlyTCP/UDP/ICMP/IPTCP/UDP/ICMP/ARP
Flagi TCPNieTak (dowolne)Tak
SpoofingNieTakTak
FragmentacjaNieTakOgraniczona
TracerouteTak (ICMP)Tak (TCP)Tak (TCP/UDP/ICMP)
FloodNieTakTak
SkryptowanieNieTak (stdin, pipe)Tak (NSE)

hping3 wygrywa elastycznością – jest jak „szwajcarski scyzoryk" generowania pakietów.

Trzy loga (ping, hping3, nping) obok siebie z listą zalet każdego

Standardowy ping jest najlepszym narzędziem do szybkiego sprawdzenia dostępności hosta i podstawowej diagnostyki łączności sieciowej.

hping3 to uniwersalny generator pakietów do złożonych testów, a nping integruje się z ekosystemem Nmap, oferując jednak mniejszą elastyczność niż hping3.

42/55
Nie testuj bez zgody!

hping3 a etyka

  • hping3 może być używane do ataków (SYN flood, spoofing, skanowanie)
  • Testowanie bez zgody właściciela sieci jest nielegalne
  • Nawet zwykłe skanowanie portów może być uznane za atak (CVE, incydent)
  • W Polsce: art. 267 KK – nieuprawniony dostęp do informacji
  • Używaj hping3 tylko we własnej sieci lub za pisemną zgodą

Dobre praktyki:

  • Laboratorium: własne maszyny wirtualne
  • Testy: środowisko izolowane (VLAN, fizycznie odcięte)
  • Zawsze dokumentuj cel i zakres testów
Nawet w celach edukacyjnych – nie testuj na przypadkowych serwerach w internecie!
Znak ostrzegawczy, kłódka, paragraf prawa

Skanowanie portów i testowanie sieci bez zgody właściciela jest nielegalne zgodnie z polskim kodeksem karnym, w szczególności z artykułem 267 dotyczącym nieuprawnionego dostępu do informacji.

Należy używać własnych maszyn wirtualnych lub legalnych platform szkoleniowych takich jak Hack The Box i TryHackMe, a przed każdym testem udokumentować zakres i uzyskać pisemną zgodę.

43/55
Jak bronić się przed SYN flood?

Zabezpieczenie przed hping3

Mechanizmy obrony przed atakami generowanymi przez hping3:

  • SYN cookies: Linux domyślnie włącza SYN cookies – nie przydziela zasobów przed potwierdzeniem
  • Rate limiting: iptables/nftables: -m limit --limit 10/s
  • Firewall stateful: odrzuca pakiety spoza stanu (np. same ACK)
  • IDS/IPS: wykrywanie skanowania (Snort, Suricata)
  • uRPF (Reverse Path Forwarding): blokuje pakiety ze spoofowanym adresem
# iptables – limit SYN na sekundę
iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
Schemat: atak SYN flood → firewall z SYN cookies → chroniony serwer

SYN cookies kodują informacje o połączeniu w numerze sekwencyjnym bez przydzielania zasobów systemowych, co chroni przed atakami SYN flood.

Ograniczenie prędkości za pomocą iptables limituje liczbę pakietów SYN na sekundę, a mechanizm uRPF na routerach brzegowych blokuje pakiety ze sfałszowanym adresem źródłowym.

44/55
Scenariusz: audyt firewalla

Studium przypadku: testowanie firewalla firmowego

Cel: sprawdzenie, czy firewall firmowy poprawnie blokuje nieautoryzowany dostęp.

Plan testów:

  1. SYN scan na porty 22, 80, 443, 3389 – które są otwarte?
  2. FIN scan – czy firewall przepuszcza nietypowe flagi?
  3. Spoofing adresu wewnętrznego (10.0.0.0/8) – czy anty-spoofing działa?
  4. Fragmentacja – czy omija reguły firewalla?
# Test 1: SYN scan na porty
hping3 -S -p 22 192.168.1.1 -c 1
hping3 -S -p 3389 192.168.1.1 -c 1

Wynik: otwarty port 3389 (RDP) = poważny problem bezpieczeństwa!

Schemat sieci firmowej: internet → firewall → LAN – zaznaczone punkty testów

Typowy audyt zapory sieciowej z użyciem hping3 obejmuje skanowanie SYN, skanowanie FIN, testy spoofingu oraz testy z wykorzystaniem fragmentacji pakietów.

Otwarty port 3389 dla protokołu RDP Remote Desktop Protocol stanowi poważne zagrożenie bezpieczeństwa i wymaga natychmiastowej remediacji poprzez zamknięcie lub ograniczenie dostępu.

45/55
Scenariusz: VPN i problemy z MTU

Studium przypadku: badanie MTU w sieci z VPN

Symptom: połączenie VPN działa, ale strony ładują się wolno, czasem wiszą.

Przyczyna: MTU ścieżki (PMTU) mniejsze niż 1500 B – enkapsulacja VPN dodaje nagłówki.

Test z hping3:

# Wyślij pakiet 1500 B z flagą DF
hping3 -c 5 -d 1472 -g -p 80 10.0.0.1

Jeśli dostajesz ICMP Fragmentation Needed – zmniejszaj rozmiar aż do braku błędu.

Rozwiązanie: ustaw MTU na kliencie VPN na 1400 B (lub mniej).

Schemat VPN: klient → tunel VPN (dodatkowe nagłówki) → serwer – MTU zmniejszone

Enkapsulacja VPN dodaje od 40 do 80 bajtów narzutu w postaci dodatkowych nagłówków, co zmniejsza efektywne MTU dostępne dla danych użytkownika.

Objawami problemów z MTU są wolne ładowanie stron internetowych i zawieszanie się połączeń SSH, a rozwiązaniem jest ustawienie MTU dla interfejsu VPN na 1400 bajtów oraz pomiar optymalnego MTU za pomocą hping3 z opcją -g.

46/55
Scenariusz: znajdź nieudokumentowany serwer

Studium przypadku: wykrywanie ukrytych serwerów

Administrator podejrzewa, że w sieci działa nieautoryzowany serwer WWW.

# Skanuj zakres IP na port 80
for ip in $(seq 1 254); do
    hping3 -S -p 80 -c 1 192.168.1.$ip | grep -q "flags=SA" && echo "192.168.1.$ip: port 80 OPEN"
done

Zaawansowane: użyj różnych portów (8080, 8443, 9000) – ukryte serwery często działają na niestandardowych portach.

hping3 pozwala też na badanie odpowiedzi na różne flagi – może wykryć serwer za firewallem.

Mapa sieci z wykrytymi serwerami (zaznaczony nieznany)

Nieautoryzowane serwery w sieci firmowej stanowią poważne zagrożenie bezpieczeństwa i powinny być regularnie wykrywane poprzez skanowanie standardowych oraz alternatywnych portów.

Należy sprawdzać nie tylko typowe porty jak 80 i 443, ale również alternatywne jak 8080, 8443, 3000 i 5000, a nietypowe odpowiedzi na flagi TCP mogą ujawnić serwery ukryte za zaporą sieciową.

47/55
Pełna dokumentacja w zasięgu ręki

--help i zaawansowane opcje

# Podstawowa pomoc
hping3 --help
# Pełna dokumentacja (man)
man hping3

Zaawansowane opcje warte poznania:

  • --baseport – początkowy port źródłowy
  • --destport – alternatywnie do -p
  • --tcp-seq – ustawienie numeru sekwencji TCP
  • --tcp-ack – ustawienie numeru potwierdzenia
  • --data – dane szesnastkowe (hex)
  • --rand-source – losowy adres źródłowy
  • --fast – alias dla -i u10000 (10 pakietów/s)
  • --faster – alias dla -i u1 (maksymalna prędkość)
Zrzut ekranu man hping3 z listą opcji

Opcje --help i strony man podręcznika systemowego dokumentują wszystkie parametry i tryby pracy hping3, stanowiąc nieocenione źródło wiedzy podczas codziennej pracy.

Zaawansowane tryby obejmują między innymi opcje baseport, tcp-seq, tcp-ack, data hex, rand-source oraz aliasy fast i faster dla najczęściej używanych interwałów.

48/55
Generuj i przechwytuj

hping3 + tcpdump

Połączenie hping3 i tcpdump – generuj pakiety i jednocześnie przechwytuj odpowiedzi.

# Terminal 1: tcpdump nasłuchuje na eth0
sudo tcpdump -i eth0 -w odpowiedzi.pcap port 80
# Terminal 2: hping3 wysyła pakiety
hping3 -S -p 80 -c 10 192.168.1.1

Następnie otwórz odpowiedzi.pcap w Wireshark i przeanalizuj:

  • Struktura pakietów wygenerowanych przez hping3
  • Odpowiedzi serwera (SYN+ACK, RST, ICMP)
  • Fragmentacja, flagi, opcje TCP
Dwa terminale obok siebie – lewy tcpdump, prawy hping3 + późniejszy Wireshark

Połączenie hping3 do generowania pakietów z tcpdump do ich przechwytywania umożliwia kompleksową analizę ruchu sieciowego w czasie rzeczywistym.

Zapisany plik w formacie pcap można otworzyć w programie Wireshark w celu szczegółowego zbadania struktury pakietów, odpowiedzi serwera, fragmentacji i wszystkich pól nagłówków.

49/55
Co już wiemy?

Podsumowanie 1 – kluczowe opcje

  • hping3 – zaawansowany generator pakietów TCP/UDP/ICMP/IP
  • -c, -i, -n, -V – kontrola wysyłania (liczba, interwał, verbose)
  • -a – spoofing adresu źródłowego
  • -p, -s, -k – porty docelowe i źródłowe
  • -S, -A, -F, -R, -P, -U, -X, -Y – dowolna kombinacja flag TCP
  • -0, -1, -2, -8 – tryby protokołów
Mapa myśli podsumowująca materiał – kluczowe opcje

hping3 to zaawansowany generator pakietów TCP, UDP, ICMP i IP, który pozwala na precyzyjne testowanie i diagnostykę sieci komputerowych.

Kluczowe opcje to -c, -i, -n, -V dla kontroli wysyłania, -a do spoofingu, -p, -s, -k dla portów, -S, -A, -F, -R, -P, -U, -X, -Y dla flag TCP oraz -0, -1, -2, -8 dla trybów protokołów.

50/55
Warto zapamiętać

Podsumowanie 2 – dobre praktyki

  • hping3 mierzy RTT – kluczowe do diagnostyki opóźnień
  • --traceroute – TCP traceroute z pomiarem RTT
  • -f, -m, -g – fragmentacja i badanie MTU
  • --flood – tylko w laboratorium!
  • Interpretacja: SYN+ACK=open, RST=closed, brak=filtered
  • Firewall stateful vs stateless – test z samym ACK
  • Połączenie z tcpdump/Wireshark – pełna analiza
Lista ikon kluczowych wniosków

hping3 umożliwia pomiar RTT niezbędny do diagnostyki opóźnień sieciowych oraz oceny jakości łączy WAN i VPN.

Funkcja --traceroute umożliwia śledzenie trasy pakietów TCP, opcje -f, -m, -g dotyczą fragmentacji i badania MTU, a --flood jest przeznaczony wyłącznie do użytku laboratoryjnego z zachowaniem szczególnej ostrożności.

51/55
Sprawdź swoją wiedzę

Pytania kontrolne 1

  1. Pytanie: Jaka opcja hping3 służy do zmiany adresu źródłowego?

Odpowiedź: -a (spoof).

  1. Pytanie: Jaka odpowiedź oznacza port otwarty w SYN scanie?

Odpowiedź: SYN+ACK (flagi SA).

Ikona znaku zapytania

Pytania kontrolne pomagają utrwalić zdobytą wiedzę i sprawdzić zrozumienie kluczowych koncepcji związanych z działaniem hping3.

Opcja -a służy do zmiany adresu źródłowego poprzez spoofing, a odpowiedź SYN+ACK oznaczająca flagi SA wskazuje na port otwarty w skanowaniu SYN.

52/55
Sprawdź swoją wiedzę – ciąg dalszy

Pytania kontrolne 2

  1. Pytanie: Jak sprawdzić MTU ścieżki za pomocą hping3?

Odpowiedź: Użyć opcji -g (PMTUD) lub kombinacji -f -m z flagą DF.

  1. Pytanie: Czym różni się FIN scan od SYN scan?

Odpowiedź: FIN scan wysyła pakiet z flagą FIN – zamknięty port odpowiada RST, otwarty (UNIX) nie odpowiada. SYN scan wysyła SYN – otwarty port odpowiada SYN+ACK.

Ikona znaku zapytania

MTU ścieżki sieciowej sprawdza się za pomocą opcji -g realizującej mechanizm PMTUD Path MTU Discovery z flagą Don't Fragment.

Skanowanie FIN wysyła pakiet z flagą FIN, gdzie zamknięty port odpowiada pakietem RST, a otwarty w systemach UNIX nie odpowiada, podczas gdy skanowanie SYN wysyła pakiet SYN, a otwarty port odpowiada SYN+ACK.

53/55
Sprawdź swoją wiedzę – ciąg dalszy

Pytania kontrolne 3

  1. Pytanie: Do czego służy opcja --flood w hping3?

Odpowiedź: Do wysyłania pakietów tak szybko, jak to możliwe – bez czekania na odpowiedź. Używana do testów wydajnościowych i symulacji ataków DDoS.

  1. Pytanie: Jak odróżnić firewall stateful od stateless za pomocą hping3?

Odpowiedź: Wysłać pakiet z flagą ACK (bez SYN) na zamknięty port. Stateful odrzuci (brak odpowiedzi), stateless przepuści (odpowie RST).

Ikona znaku zapytania

Opcja --flood wysyła pakiety z maksymalną prędkością bez oczekiwania na jakąkolwiek odpowiedź, co pozwala symulować ataki typu DoS w warunkach laboratoryjnych.

Aby odróżnić zaporę stanową od bezstanowej, należy wysłać pakiet ACK bez wcześniejszego uzgodnienia SYN – zapora stanowa odrzuci go milcząco, a bezstanowa przepuści, co skutkuje odpowiedzią RST z serwera.

54/55
Wykonaj samodzielnie

Zadanie praktyczne

  1. Zainstaluj hping3 (lub użyj WSL na Windows).
  2. Wykonaj SYN scan na localhost (127.0.0.1) na porty 22, 80, 443, 8080 – które są otwarte?
  3. Wyślij 10 pakietów ICMP do 8.8.8.8 i zapisz RTT każdego.
  4. Użyj --traceroute do 8.8.8.8 na porcie 80 – ile hopów?
  5. Wyślij pakiet z TTL=3 do 8.8.8.8 – czy dostaniesz ICMP Time Exceeded?
  6. Sporządź krótki raport z wyników.
Ikony zadań do wykonania

Zadanie praktyczne polega na zainstalowaniu hping3 i wykonaniu skanowania SYN lokalnego hosta 127.0.0.1 na portach 22, 80, 443 i 8080 w celu identyfikacji otwartych usług.

Następnie należy wysłać dziesięć pakietów ICMP do adresu 8.8.8.8 z zapisem wartości RTT, użyć opcji --traceroute, wysłać pakiet z TTL równym 3 oraz sporządzić krótki raport podsumowujący wyniki wszystkich testów.

55/55
Koniec części 7

Zakończenie części 07

Dziękujemy za uwagę. W następnej części poznamy narzędzia do statystyk sieciowych i zaawansowanej analizy ruchu.

Praca własna:

  • Powtórz składnię hping3 – napisz na kartce 5 różnych komend
  • Spróbuj napisać skrypt bash skanujący zakres portów
  • Przeczytaj man hping3 – poznaj opcje, których nie omawialiśmy
Zapowiedź następnej części – ikona netcat

hping3 to wszechstronne i niezwykle przydatne narzędzie do diagnostyki sieci komputerowych i testowania bezpieczeństwa infrastruktury IT.

Następna część cyklu poświęcona będzie narzędziu netcat nc, a w ramach pracy własnej warto ćwiczyć pisanie komend hping3 z pamięci oraz regularnie czytać stronę podręcznika man.