Przechwytywanie pakietów to bardzo przydatny sposób analizowania wewnętrznego działania sieci. Dostępnych jest wiele różnych narzędzi opracowanych w tym celu. Jednym z nich jest tcpdump. Oto, jak najlepiej wykorzystać to wspaniałe narzędzie zarówno dla inżynierów sieci, jak i testerów penetracyjnych.
Co to jest tcpdump?
tcpdump to narzędzie do analizy pakietów sieciowych, które zostało opracowane i wydane w 1988 roku przez zespół informatyków pracujących w Lawrence Berkeley Laboratory i należącej do niego grupie Network Research Group. Służy do wyświetlania zawartości pakietów wysyłanych i odbieranych przez komputer. Narzędzie zawiera wiele opcji, dzięki którym przechwytywanie pakietów jest bardziej szczegółowe i skoncentrowane. Niektóre z tych opcji obejmują różne protokoły sieciowe i interfejsy sieciowe.
Instalacja
Wiele dystrybucji Linuksa jest dostarczanych z narzędziem zainstalowanym po wyjęciu z pudełka. Jeśli jednak Twoja preferowana dystrybucja nie, instalacja jest na szczęście szybka i prosta.
Jeśli używasz na przykład Ubuntu lub Debiana, możesz zainstalować go za pomocą apt
:
W CentOS to samo robi się za pomocą yum
:
A w Arch Linux przy użyciu pacman
:
Podstawy
Po zainstalowaniu tcpdump możesz zapoznać się z instrukcją za pomocą -h
flaga:
To pokazuje listę flag, których możesz użyć podczas korzystania z narzędzia.

Jeśli chcesz zobaczyć bardziej kompletny i szczegółowy podręcznik, możesz wyświetlić stronę podręcznika (stronę podręcznika) za pomocą man
Komenda:

Możesz uruchomić podstawowe przechwytywanie pakietów, wpisując:
Korzystając z samego polecenia i bez określania interfejsu sieciowego, narzędzie wybierze jeden z dostępnych interfejsów w twoim systemie.
Jeśli nie chcesz, aby tcpdump rozwiązywał nazwy hostów, a zamiast tego generował tylko adresy IP, możesz użyć -n
flaga:
Jeśli chcesz określić liczbę pakietów, które chcesz przechwycić, użyj -c
flaga:
tcpdump -c [number of packets]
Określanie interfejsu sieciowego
Możesz określić swój wybór interfejsu sieciowego za pomocą -i
flaga:
Dwie z najpopularniejszych nazw interfejsów sieciowych w większości systemów to eth0 i wlan0:
tcpdump -i eth0 tcpdump -i wlan0
Jeśli chcesz przechwytywać dane na wszystkich interfejsach, możesz użyć any
opcja:

Określanie portu/zakresu portów
Jeśli chcesz przechwytywać tylko dane korzystające z określonego numeru portu, użyj polecenia:
tcpdump -i [interface] port [port number]
Załóżmy, że chcesz przechwytywać ruch na eth0
interfejs i dla portu 443 (HTTPS). Wpisz następujące polecenie:
Dodatkowo tcpdump pozwala określić zakres portów:
tcpdump -i [interface] portrange [port range]
Określanie hosta lub podsieci
Zdarza się, że będziesz chciał ograniczyć przechwycone pakiety tylko do tych, które zostały wysłane/odebrane z określonego hosta lub podsieci. Na szczęście tcpdump pozwala to zrobić.
Hosta można określić w następującym formacie:
tcpdump -i [interface] host [host]
Jako przykład przechwyć ruch na interfejsie eth0 i określ hosta jako 127.0.0.1 (własny adres IP pętli zwrotnej):
tcpdump -i eth0 host 127.0.0.1

Jeśli chcesz określić podsieć sieciową za pomocą notacji CIDR, możesz użyć następującego formatu:
tcpdump -i [interface] net [subnet]
Na przykład:
tcpdump -i eth0 net 10.0.0.0/8
Możesz również bezpośrednio określić hosta źródłowego:
tcpdump -i [interface] src [host]
I host docelowy:
tcpdump -i [interface] dst [host]
Specyfikacja szczegółowości
tcpdump pozwala określić szczegółowość przechwytywania pakietów. Jest to bardzo przydatne, gdy nie chcesz być przytłoczony ilością informacji podczas przechwytywania.
Istnieją trzy przyrostowe opcje oznajmiania, flagi -v
, -vv
oraz -vvv
:
tcpdump -i [interface] -v tcpdump -i [interface] -vv tcpdump -i [interface] -vvv

Pierwsza opcja określa najmniejszą szczegółowość, a trzecia najbardziej.
Zapisz zrzut w pliku
Często przydatne jest zapisanie przechwyconych danych do pliku, aby można je było dalej analizować i interpretować.
Odbywa się to za pomocą -w
flaga:
tcpdump -i [interface] -w [filename]
Jako przykład możesz zapisać przechwycone dane w pliku o nazwie „capture.txt”:
tcpdump -i eth0 -w capture.txt
Częste pytania
1. Pojawił się błąd „Operacja niedozwolona”. Jak to rozwiązać?
Poniżej znajduje się typowy błąd, który użytkownicy mogą otrzymać podczas próby użycia tcpdump:

tcpdump wyświetla ten błąd, gdy nie masz niezbędnych uprawnień do przechwytywania pakietów. W większości scenariuszy możesz to rozwiązać za pomocą sudo
. Na przykład:
2. Skąd mam wiedzieć, jakie interfejsy sieciowe są dostępne?
tcpdump ma wbudowaną funkcjonalność, która pozwala sprawdzić dostępne interfejsy sieciowe w systemie.
Aby sprawdzić interfejsy, użyj -D
flaga:
Czy ten artykuł jest przydatny?