Tcpdump http zahtjevi. Tcpdump upute i primjeri. Prikaži samo ip6 promet

22.05.2023 Vijesti

Ovaj vodič pokazat će vam kako izolirati promet na različite načine—od IP-a, porta, protokola do prometa aplikacijskog sloja—kako biste bili sigurni da ćete pronaći upravo ono što vam je potrebno što je brže moguće.

tcpdump je alat koji bi svatko trebao naučiti kao svoju bazu za analizu paketa.

Instalirajte tcpdump s apt install tcpdump (Ubuntu) ili yum install tcpdump (Redhat/Centos)

Počnimo s osnovnom naredbom koja će nam omogućiti HTTPS promet:

tcpdump -nn S X port 443

04:45:40.573686 IP 78.149.209.110.27782 > 172.30.0.144 .443 : Zastavice [.], potvrda 278239097, pobjeda 28, opcije , duljina 0 0x0000: 4500 0034 0014 0000 2e06 c005 4e8e d16e E..4........N..n 0x0010: ac1e 0090 6c86 01bb 8e0a b73e 1095 9779 ....l......>...y 0x0020: 8010 001c d202 0000 0101 080a 3803 7b55 ............8.(U 0x0030: 4801 8100

Možete dobiti jedan paket s -c 1 , ili n broj s -c n .

Ovo je pokazalo neki HTTPS promet, sa heksadecimalnim prikazom vidljivim na desnom dijelu izlaza (nažalost, šifriran je). Samo zapamtite — ako ste u nedoumici, pokrenite gornju naredbu s portom koji vas zanima i trebali biste biti na putu.

Primjeri

PacketWizard™ zapravo nije zaštitni znak, ali trebao bi biti.

praktičar koji se priprema za pokretanje tcpdumpa

Sada kada možete dobiti osnovni promet, prođimo kroz brojne primjere koji će vam vjerojatno trebati tijekom vašeg posla u umrežavanju, sigurnosti ili bilo kojoj vrsti PacketWizard™.

Sve na sučelju

Samo pogledajte što se događa, gledajući što pogađa vaše sučelje.

Ili dobiti svi sučelja s -i bilo koji .

tcpdump -i eth0

Pronađite promet prema IP-u

Jedan od najčešćih upita, pomoću hosta, možete vidjeti promet koji ide prema ili od 1.1.1.1.

Vrste izraza:

host, mreža i port.

src i dst.

host, mreža i port.

tcp, udp, icmp i mnogi drugi.

tcpdump host 1.1.1.1

06:20:25.593207 IP 172.30.0.144.39270 > one.one.one.one .domena : 12790+ A? google.com. (28) 06:20:25.594510 IP one.one.one.one .domena > 172.30.0.144.39270: 12790 1/0/0 A 172.217.15.78 (44)

Ako želite vidjeti samo promet u jednom ili drugom smjeru, možete koristiti src i dst.

tcpdump src 1.1.1.1
tcpdump dst 1.0.0.1

Pronalaženje paketa po mreži

Da biste pronašli pakete koji idu prema ili iz određene mreže ili podmreže, upotrijebite opciju mreže.

Ovo također možete kombinirati s opcijama src i dst.

tcpdump net 1.2.3.0/24

Dobijte sadržaj paketa s heksadecimalnim izlazom

Hex izlaz je koristan kada želite vidjeti sadržaj dotičnih paketa, a često se najbolje koristi kada izdvajate nekoliko kandidata za detaljniju analizu.

tcpdump -c 1 -X icmp

Sažetak

Ovdje su stvari za van.

  1. tcpdump je vrijedan alat za svakoga tko želi ući u umrežavanje ili .
  2. Sirov način sučelja s prometom, u kombinaciji s preciznošću koju nudi u pregledavanju paketa, čine ga najboljim mogućim alatom za učenje TCP/IP-a.
  3. Analizatori protokola kao što je Wireshark su izvrsni, ali ako želite doista svladati packet-fu, prvo morate postati jedno s tcpdumpom.

Pa, ova bi vas početnica trebala ojačati, ali man stranica bi uvijek trebala biti pri ruci za najnaprednije i jednokratne scenarije korištenja. Iskreno se nadam da vam je ovo bilo korisno i slobodno odgovorite ako imate pitanja.

Bilješke

  1. Trenutno (nekako) pišem knjigu o tcpdumpu za No Starch Press.
  2. Vodeća slika je sa SecurityWizardry.com.
  3. Neki od izolacijskih filtara posuđeni od

Ako trebate analizirati ili presresti mrežne pakete u Linuxu, najbolji način da to učinite je korištenje uslužnog programa konzole tcpdump. Ali problem nastaje u njegovom prilično složenom upravljanju. Prosječnom će korisniku biti nezgodno raditi s uslužnim programom, ali to je samo na prvi pogled. Članak će vam reći kako tcpdump radi, koju sintaksu ima, kako ga koristiti, a također će pružiti brojne primjere njegove upotrebe.

Pročitajte također: Vodiči za postavljanje internetske veze u Ubuntu, Debian, Ubuntu Server

Većina programera operativnih sustava temeljenih na Linuxu uključuje uslužni program tcpdump na popisu unaprijed instaliranih, ali ako iz nekog razloga nedostaje u vašoj distribuciji, uvijek ga možete preuzeti i instalirati putem "Terminal". Ako je vaš OS baziran na Debianu, a ovo je Ubuntu, Linux Mint, Kali Linux i slično, morate pokrenuti ovu naredbu:

sudo apt instalirajte tcpdump

Tijekom instalacije potrebno je unijeti lozinku. Imajte na umu da se ne prikazuje prilikom upisivanja; također morate unijeti simbol za potvrdu instalacije "D" i pritisnite Unesi.

Ako imate Red Hat, Fedora ili CentOS, instalacijska naredba će izgledati ovako:

sudo yam instaliraj tcpdump

Nakon što je uslužni program instaliran, možete ga odmah koristiti. O tome i još mnogo toga bit će riječi dalje u tekstu.

Sintaksa

Kao i svaka druga naredba, tcpdump ima vlastitu sintaksu. Znajući to, možete postaviti sve potrebne parametre koji će se uzeti u obzir prilikom izvršavanja naredbe. Sintaksa je sljedeća:

tcpdump opcije -i filteri sučelja

Kada koristite naredbu, morate navesti sučelje za praćenje. Filtri i opcije nisu obavezne varijable, ali omogućuju fleksibilniju prilagodbu.

Mogućnosti

Iako opcija ne mora biti navedena, ipak morate navesti dostupne. Tablica ne prikazuje cijeli njihov popis, već samo one najpopularnije, no oni su više nego dovoljni za rješavanje većine zadataka.

Opcija Definicija
-A Omogućuje sortiranje paketa s ASCII formatom
-l Dodaje funkciju pomicanja
-i Nakon unosa potrebno je navesti mrežno sučelje koje će se nadzirati. Za početak praćenja svih sučelja unesite riječ "bilo koje" nakon opcije.
-c Završava proces praćenja nakon provjere navedenog broja paketa
-w Generira tekstualnu datoteku s izvješćem o inspekciji
-e Prikazuje razinu internetske veze paketa podataka
-L Prikazuje samo one protokole koje podržava navedeno mrežno sučelje
-C Stvara drugu datoteku dok se paket zapisuje ako je njezina veličina veća od navedene veličine
-r Otvara datoteku za čitanje koja je stvorena pomoću opcije -w
-j Format TimeStamp koristit će se za snimanje paketa
-J Omogućuje pregled svih dostupnih formata TimeStamp
-G Služi za kreiranje datoteke sa zapisnicima. Opcija također zahtijeva navođenje privremene vrijednosti, nakon čega će se stvoriti novi dnevnik
-v, -vv, -vvv Ovisno o broju znakova u opciji, izlaz naredbe postat će detaljniji (povećanje je izravno proporcionalno broju znakova)
-f Izlaz prikazuje naziv domene IP adresa
-F Omogućuje čitanje informacija ne s mrežnog sučelja, već iz navedene datoteke
-D Demonstrira sva mrežna sučelja koja se mogu koristiti
-n Deaktivira prikaz naziva domena
-Z Određuje korisnika pod čijim računom će se kreirati sve datoteke
-K Preskoči analizu kontrolne sume
-q Prikaz kratkih informacija
-H Omogućuje detekciju 802.11s zaglavlja
-ja Koristi se pri hvatanju paketa u načinu rada monitora

Nakon što smo ispitali opcije, u nastavku ćemo prijeći izravno na njihove aplikacije. U međuvremenu će se razmotriti filtri.

Filteri

Kao što je spomenuto na samom početku članka, sintaksi tcpdump možete dodati filtre. Sada ćemo razmotriti najpopularnije od njih:

Svi gore navedeni filtri mogu se međusobno kombinirati, tako da ćete u izlazu naredbe vidjeti samo one informacije koje želite vidjeti. Da bismo detaljnije razumjeli upotrebu gore navedenih filtara, vrijedi dati primjere.

Primjeri korištenja

Sada će biti opisana najčešće korištena sintaksa za naredbu tcpdump. Neće ih biti moguće sve navesti, jer može postojati beskonačno mnogo varijacija.

Pogledajte popis sučelja

Preporuča se da svaki korisnik prvo provjeri popis svih svojih mrežnih sučelja koja se mogu nadzirati. Iz gornje tablice znamo da za ovo moramo koristiti opciju -D pa u terminalu pokrenite sljedeću naredbu:

Kao što vidite, postoji osam sučelja u primjeru koja se mogu vidjeti pomoću naredbe tcpdump. Članak će dati primjere s ppp0, možete koristiti bilo koji drugi.

Redovno snimanje prometa

Ako trebate nadzirati jedno mrežno sučelje, to možete učiniti pomoću opcije -i. Nakon što ga unesete, ne zaboravite navesti naziv sučelja. Evo primjera pokretanja takve naredbe:

sudo tcpdump -i ppp0

Imajte na umu: morate unijeti "sudo" prije same naredbe, budući da zahtijeva prava superkorisnika.

Napomena: nakon pritiska na Enter, snimljeni paketi će se kontinuirano prikazivati ​​u “Terminalu”. Da biste zaustavili njihov tijek, morate pritisnuti kombinaciju tipki Ctrl+C.

Ako pokrenete naredbu bez dodatnih opcija i filtera, vidjet ćete sljedeći format za prikaz nadziranih paketa:

22:18:52.597573 IP vrrp-topf2.p.mail.ru.https > 10.0.6.67.35482 : Zastavice, seq 1:595, ack 1118, win 6494, opcije, duljina 594

Gdje je označeno bojom:

  • plava - vrijeme prijema paketa;
  • zelena - adresa pošiljatelja;
  • ljubičasta - adresa primatelja;
  • siva - dodatne informacije o tcp-u;
  • crvena - veličina paketa (prikazuje se u bajtovima).

Ova sintaksa ima mogućnost prikazivanja u prozoru "Terminal" bez korištenja dodatnih opcija.

Hvatajte promet s opcijom -v

Kao što je poznato iz tablice, opcija -v omogućuje povećanje količine informacija. Pogledajmo to na primjeru. Provjerimo isto sučelje:

sudo tcpdump -v -i ppp0

Ovdje možete primijetiti da se sljedeći red pojavljuje u izlazu:

IP (tos 0x0, ttl 58, id 30675, offset 0, oznake, proto TCP (6) , duljina 52

Gdje je označeno bojom:

  • narančasta - verzija protokola;
  • plava - vijek trajanja protokola;
  • zelena - duljina zaglavlja polja;
  • ljubičasta - verzija tcp paketa;
  • crvena - veličina paketa.

Također možete dodati opciju u sintaksu naredbe -vv ili -vvv, što će dodatno povećati količinu informacija prikazanih na ekranu.

Opcija -w i -r

Tablica s opcijama spominje mogućnost spremanja svih izlaznih podataka u zasebnu datoteku kako bi se kasnije mogli pregledavati. Za to je odgovorna opcija -w. Korištenje je vrlo jednostavno, samo ga navedite u naredbi, a zatim unesite naziv buduće datoteke s ekstenzijom ".pcap". Pogledajmo sve na primjeru:

sudo tcpdump -i ppp0 -w datoteka.pcap

Imajte na umu: dok se dnevnici zapisuju u datoteku, na zaslonu terminala se ne prikazuje tekst.

Kada želite pogledati snimljeni izlaz, morate koristiti opciju -r, nakon čega upišite naziv prethodno snimljene datoteke. Primjenjuje se bez drugih opcija i filtera:

sudo tcpdump -r file.pcap

Obje su ove mogućnosti izvrsne kada trebate spremiti velike količine teksta za kasniju analizu.

IP filtriranje

Iz tablice filtera to znamo dst omogućuje prikaz na ekranu konzole samo onih paketa koje je primila adresa navedena u sintaksi naredbe. To čini vrlo praktičnim pregledavanje paketa koje je primilo vaše računalo. Da biste to učinili, samo trebate navesti svoju IP adresu u naredbi:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Kao što vidite, pored dst, također smo naveli filter u naredbi ip. Drugim riječima, rekli smo računalu da pri odabiru paketa pazi na IP adresu, a ne na druge parametre.

Također možete filtrirati poslane pakete prema IP-u. Uzmimo opet naš IP kao primjer. Odnosno, sada ćemo pratiti koji se paketi šalju s našeg računala na druge adrese. Da biste to učinili, morate pokrenuti sljedeću naredbu:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Kao što vidite, promijenili smo filter u sintaksi naredbe dst na src, govoreći tako stroju da traži pošiljatelja prema IP-u.

Filtriranje prema HOST-u

Po analogiji s IP-om, u naredbi možemo odrediti filter domaćin za filtriranje paketa s domaćinom od interesa. To jest, u sintaksi, umjesto IP adrese pošiljatelja/primatelja, morat ćete navesti njegov host. Ovako izgleda:

sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com

Na slici možete vidjeti da je u "Terminal" Prikazuju se samo oni paketi koji su poslani s našeg IP-a na host google.com. Kao što razumijete, umjesto google hosta možete unijeti bilo koji drugi.

Kao i kod IP filtriranja, sintaksa dst može se zamijeniti sa src da vidite pakete koji se šalju na vaše računalo:

sudo tcpdump -i ppp0 src host google-public-dns-a.google.com

Imajte na umu: filtar hosta mora doći nakon dst ili src, inače će naredba izbaciti pogrešku. U slučaju IP filtriranja, naprotiv, dst i src dolaze prije IP filtera.

Primjena filtara i i ili

Ako trebate koristiti nekoliko filtara odjednom u jednoj naredbi, tada za to trebate upotrijebiti filtar i ili ili(ovisi o slučaju). Određivanjem filtara u sintaksi i njihovim odvajanjem ovim operatorima, "tjerate" ih da rade kao jedan. Na primjeru to izgleda ovako:

sudo tcpdump -i ppp0 ip dst 95.47.144.254 ili ip src 95.47.144.254

Iz sintakse naredbe jasno je što želimo prikazati "Terminal" sve pakete koji su poslani na adresu 95.47.144.254 i pakete primljene na istu adresu. Također možete promijeniti neke od varijabli u ovom izrazu. Na primjer, umjesto IP, navedite HOST ili zamijenite same adrese.

Port i portrange filter

filtar luka Savršeno za one slučajeve kada trebate dobiti informacije o paketima na određenom priključku. Dakle, ako trebate vidjeti samo DNS odgovore ili zahtjeve, trebate navesti port 53:

sudo tcpdump -vv -i ppp0 port 53

Ako želite vidjeti http pakete, morate unijeti port 80:

sudo tcpdump -vv -i ppp0 port 80

Između ostalog, moguće je pratiti niz portova odjednom. Za to se koristi filtar portretirati:

sudo tcpdump portrange 50-80

Kao što vidite, u kombinaciji s filtrom portretirati Nije potrebno navesti dodatne opcije. Samo trebate postaviti raspon.

Filtriranje po protokolu

Također možete prikazati samo promet koji odgovara određenom protokolu. Da biste to učinili, morate upotrijebiti naziv ovog protokola kao filter. Pogledajmo primjer udp:

sudo tcpdump -vvv -i ppp0 udp

Kao što možete vidjeti na slici, nakon izvršenja naredbe in "Terminal" prikazani su samo paketi protokola udp. U skladu s tim, možete filtrirati prema drugima, na primjer, arp:

sudo tcpdump -vvv -i ppp0 arp

ili tcp:

sudo tcpdump -vvv -i ppp0 tcp

Filtarska mreža

Operater neto pomaže filtrirati pakete na temelju njihove mrežne oznake. Korištenje je jednostavno kao i ostali - trebate navesti atribut u sintaksi neto, zatim unesite mrežnu adresu. Evo primjera takve naredbe:

sudo tcpdump -i ppp0 net 192.168.1.1

Filtrirajte prema veličini paketa

Nismo uzeli u obzir još dva zanimljiva filtera: manje I veća. Iz tablice s filterima znamo da služe za prikaz većih paketa podataka ( manje) ili manje ( veća) veličina određena nakon unosa atributa.

Recimo da želimo pratiti samo pakete koji ne prelaze 50-bitnu oznaku, tada će naredba izgledati ovako:

sudo tcpdump -i ppp0 manje 50

Sada prikažimo unutra "Terminal" paketi veći od 50 bita:

sudo tcpdump -i ppp0 veći od 50

Kao što vidite, koriste se na isti način, razlika je samo u nazivu filtera.

Zaključak

Na kraju članka možemo zaključiti da tim tcpdump je izvrstan alat s kojim možete pratiti bilo koji paket podataka koji se prenosi preko Interneta. Ali za to nije dovoljno samo unijeti samu naredbu "Terminal". Željeni rezultat možete postići samo ako koristite sve vrste opcija i filtara, kao i njihove kombinacije.

tcpdump je moćan analizator naredbenog retka i Libpcap, prijenosna biblioteka za snimanje mrežnog prometa. Tcpdump ispisuje opis sadržaja paketa na mrežnom sučelju koji odgovaraju booleovom izrazu. Također se može pokrenuti s prekidačem -w, koji uzrokuje spremanje batch podataka u datoteku za kasniju analizu, i/ili s oznakom -r, koja uzrokuje čitanje iz spremljene batch datoteke. Pomoću ovog uslužnog programa možete presresti i također analizirati mrežni promet koji prolazi kroz računalo na kojem je pokrenut ovaj program.

Želio bih razgovarati u ovoj temi “Instaliranje i korištenje tcpdumpa” o instaliranju tcpdumpa, kao io tome kako ga koristiti i za što je potreban.

Uz tcpdump možete:

  • Možete debugirati mrežne aplikacije.
  • Možete debugirati mrežu ili mrežnu opremu u cjelini.

Da biste instalirali tcpdump na debian/ubuntu/linux mint morate pokrenuti:

# sudo apt-get instaliraj tcpdump

Za instaliranje tcpdumpa na RedHat/CentOS/Fedora koristite:

# sudo yum instalirajte tcpdump

Za instaliranje tcpdumpa na MacOS koristite.

# brew instaliraj tcpdump

Korištenje tcpdump.

Da biste provjerili radi li nam tcpdump, možete pokrenuti naredbu:

# tcpdump -i eth0 port 80

Postoji dosta prekidača za korištenje samog uslužnog programa tcpdump, ovdje je popis uobičajenih:

Ako trebate saznati koji se paketi razmjenjuju između 21 poslužitelja (na primjer, vaš_poslužitelj_1 i vaš_poslužitelj_2), tada za to upotrijebite naredbu:

# tcpdump domaćin vaš_poslužitelj_1 i vaš_poslužitelj_2

Ako samo trebate nadzirati odlazne pakete s hosta, pokrenite:

# tcpdump src host vaš_poslužitelj

Ako samo trebate nadzirati dolazne pakete s hosta, pokrenite:

# tcpdump dst host vaš_poslužitelj

Također možete slušati odlazne ili dolazne pakete s poslužitelja i na određenom portu, da biste to učinili, jednostavno dodajte port koji želite slušati (uglavnom se koristi 80, 8080).

Pogledajte popis sučelja na kojima možete slušati tcpdumt:

# tcpdump -D

Poslušajte sučelje eth0:

# tcpdump -i eth0

Slušajte na bilo kojem dostupnom sučelju (Zahtijeva Linux kernel verziju 2.2 ili noviju):

# tcpdump -i bilo koji

Prikaz svega na ekranu (sve što program izvršava):

# tcpdump -v

Prikaži puno stvari na ekranu (sve što program izvršava):

# tcpdump -vv

Puno stvari ispisuje na ekran (sve što program izvršava):

# tcpdump -vvv

Prikaz malo informacija kada se paketi hvataju (nije kao standardni):

# tcpdump -q

Ograničite snimanje paketa na 100:

# tcpdump -c 100

Zapišite sve podatke (uhvaćene pakete) u datoteku pod nazivom capture.cap:

# tcpdump -w capture.cap

Zapišite sve podatke (uhvaćene pakete) u datoteku pod nazivom capture.cap i prikažite je na ekranu u stvarnom vremenu:

# tcpdump -v -w capture.cap

Izlaz paketa iz datoteke capture.cap:

# tcpdump -r capture.cap

Izlazne pakete iz datoteke capture.cap koristeći što više informacija:

# tcpdump -vvv -r capture.cap

Izlazni IP i portovi umjesto domena su hvatanje paketa:

# tcpdump -n

Hvatajte sve pakete čiji je odredišni host 192.138.1.1. Prikaži IP i portove na ekranu:

# tcpdump -n dst host 192.138.1.1

# tcpdump -n src host 192.138.1.1

Hvatajte sve pakete s hosta 192.138.1.1. Prikaži IP i portove na ekranu:

# tcpdump -n host 192.138.1.1

Hvatajte pakete gdje je mreža 192.138.1.0/24. Prikaži IP i portove na ekranu:

# tcpdump -n dst net 192.138.1.0/24

# tcpdump -n src net 192.138.1.0/24

Hvatanje paketa s mreže 192.138.1.0/24. Prikaži IP i portove na ekranu:

# tcpdump -n net 192.138.1.0/24

Hvatajte pakete s porta 23. Prikažite IP i portove na ekranu:

# tcpdump -n dst port 23

Hvatajte pakete od portova 1 do 1023. Prikažite IP i portove na ekranu:

# tcpdump -n dst portrange 1-1023

Hvatajte samo TCP pakete s odredištem na portovima 1 do 1023. Prikažite IP i portove na zaslonu:

# tcpdump -n tcp dst portrange 1-1023

Hvatajte samo UDP pakete s odredištem na portovima 1 do 1023. Prikažite IP i portove na zaslonu:

# tcpdump -n udp dst portrange 1-1023

Hvatajte pakete s odredišta gdje je IP 192.138.1.1, a odredišni port 23. Prikaz na zaslonu:

# tcpdump -n "dst host 192.138.1.1 i dst port 23"

Hvatajte pakete s odredišta gdje je IP 192.138.1.1 i odredište preko portova 80 ili 443. Prikaz:

# tcpdump -n "dst host 192.138.1.1 i (dst port 80 ili dst port 443)"

Snimite sve ICMP pakete:

# tcpdump -v icmp

Snimite sve ARP pakete:

# tcpdump -v arp

Snimite sve ICMP ili ARP pakete:

# tcpdump -v "icmp ili arp"

Snimite sve pakete koji su emitirani ili multicast:

# tcpdump -n "broadcast ili multicast"

Hvatajte velike pakete (500 bajtova) umjesto standardnog 68b:

# tcpdump -s 500

Hvatanje svih bajtova podataka u paketu:

# tcpdump -s 0

Pregled "teških paketa":

# tcpdump -nnvvXSs 1514

Hvatanje ICMP paketa s ping i pong:

# tcpdump -nnvXSs 0 -c2 icmp

Zaključak bez puno opcija:

# tcpdump -nS

Osnovna komunikacija (vrlo detaljan način rada), možete vidjeti dobru količinu prometa, s opširnošću:

# tcpdump -nnvvS

Detaljan pogled na promet, dodavanje -X za korisni teret:

# tcpdump -nnvvXS

Pogledajte težak paket i povećajte snaplength, uhvativši cijeli paket:

# tcpdump -nnvvXSs 1514

Također možete filtrirati na temelju određenih dijelova paketa, kao i grupirati više uvjeta. Ovo je korisno kada tražite samo SYN ili PCT, na primjer, a potonji za još napredniju izolaciju prometa.

Pokaži mi sve HITNE (URG) pakete:

# tcpdump "tcp & 32!=0"

Prikaži mi sve pakete POTVRDE (ACK):

# tcpdump "tcp & 16!=0"

Prikaži mi sve PUSH (PSH) pakete:

# tcpdump "tcp & 8!=0"

Prikaži mi sve RESET (RST) pakete:

# tcpdump "tcp & 4!=0"

Pokaži mi sve pakete SYNCHRONIZE (SYN):

# tcpdump "tcp & 2!=0"

Pokaži mi sve FINISH (FIN) pakete:

# tcpdump "tcp & 1!=0"

Pokaži mi sve pakete SINKRONIZIRAJ/POTVRDI (SYNACK):

# tcpdump "tcp=18"

Hvatanje TCP zastavica pomoću tcpflags:

# tcpdump "tcp & & tcp-syn != 0"

Paketi s RST i SYN zastavicama (provjerite):

# tcpdump "tcp = 6"

Promet od ‘Evil Bit’ (provjerite):

# tcpdump "ip & 128 != 0"

Ovdje ću dovršiti svoj članak "instalacija i korištenje tcpdumpa", nadam se da je sve jasno i razumljivo.

Za UNIX sustave postoji širok izbor njuškala i analizatora prometa s prikladnim grafičkim sučeljem i bogatim skupom funkcija. Ali nijedan od njih ne može se usporediti u fleksibilnosti, svestranosti i sveprisutnosti sa starim tcpdumpom. Ovaj uslužni program uključen je u mnoge distribucije Linuxa i sve BSD sustave odmah po isporuci i može vam pomoći kada drugi alati nisu dostupni.

Uvod

Uslužni program tcpdump je mrežni njuškač paketa sa sučeljem naredbenog retka koji nema ni grafičko ni pseudo-grafičko sučelje. Možda se početnicima čini nezgrapno i prestaromodno, ali u vještim se rukama pretvara u pravi švicarski vojni nož za otvaranje bilo kakvih mrežnih paketa i protokola. Iskusni administratori sustava uvijek preporučuju da početnici koriste tcpdump umjesto bilo kojeg drugog uslužnog programa zbog jasnoće i jednostavnosti njegovih izvješća.

Tcpdump je rođen prije gotovo 25 godina na Sveučilištu Berkeley, još uvijek se aktivno razvija i nastavlja biti standard među sličnim alatima za UNIX operativni sustav. Biblioteku za snimanje paketa libpcap, razvijenu posebno za njega, danas koristi gotovo svaki njuškalo za UNIX sustave i mnogi slični programi za Windows.

U ovom ćemo članku razmotriti sve aspekte rada s tcpdumpom, počevši od osnova rada s programom i završavajući time kako koristiti uslužni program za prepoznavanje mrežnih napada, anomalija i raznih vrsta kvarova.

Sam s konzolom

Pokušajmo shvatiti kako tcpdump radi i s koje strane mu treba pristupiti. Otvorite terminal i pokrenite program kao root (kao i svaki sniffer, tcpdump mora imati puni pristup mrežnim sučeljima), navodeći naziv mrežnog sučelja i ograničavajući broj izlaznih paketa na deset:

# tcpdump -i wlan0 -c 10 -n

Prekidač -n onemogućuje razlučivanje IP adresa u DNS nazive. Pokušajmo sada pratiti razmjenu samo s određenim hostom, na primjer s kućnim usmjerivačem:

# tcpdump -i wlan0 -c 10 -n host 192.168.0.1 i port 53

Pogledajmo što nam je tcpdump donio, koristeći primjer dva retka prikazana na snimci zaslona “DNS upit kroz oči tcpdumpa”. Lako možete shvatiti da je ovo DNS zahtjev (port 53) od hosta 192.168.0.101 do hosta 192.168.0.1 i naknadnog odgovora. Ali što znače svi ostali brojevi i znakovi?


Brojevi 16:22:41.340105 su vrijeme kada je paket poslan, uključujući milijunti dio sekunde (tzv. frac). Dva slova IP, kao što možda pretpostavljate, identificiraju korišteni protokol mrežnog sloja, nakon čega slijedi adresa: port za slanje i adresa: odredišni port paketa. Sve što dolazi nakon dvotočke izravno ovisi o korištenom protokolu prijenosnog ili aplikacijskog sloja. tcpdump je upoznat s nekim protokolima i može ih dešifrirati u oblik čitljiv ljudima, dok druge ostavlja takvima i jednostavno ispisuje sadržaj paketa. U ovom slučaju tcpdump je dekriptirao DNS poruke i vratio niz 49244+ A? ya.ru. (23), što znači: zahtjev (A?) je poslan na adresu povezanu s imenom ya.ru., ukupna duljina paketa minus TCP/IP zaglavlja bila je 23 bajta. Prva znamenka je ID zahtjeva.

U sljedećem retku vidimo odgovor čiji je format gotovo isti kao zahtjev, s jedinom razlikom što se sada nakon identifikatora zahtjeva nalazi informacija o broju pronađenih zapisa (8/2/3) i sami zapisi (A 213.180.204.3, A 77.88.21.3 , A 87.250.250.3...).

tcpdump ima podršku za mnoge protokole, zahvaljujući čemu može prikazati u čitljivom obliku informacije o TCP, UDP i ICMP, SMB/CIFS, NFS, AFS, AppleTalk protokolima. Ali što ako tcpdump ne zna ništa o protokolu sloja aplikacije koji se koristi ili ga ne može odrediti? Obično će jednostavno ispisati informacije o paketu. To bi moglo izgledati otprilike ovako:

Oznake [.], seq 3666073194:3666074622, ack 3281095139, win 2000, opcije, duljina 1428

Ovo je TCP paket, format za predstavljanje informacija o njemu u tcpdump je sljedeći (polja su odvojena zarezima):

  • zastave - postavljene zastave. Označeno simbolima S (SYN), F (FIN), P (PUSH) i R (RST), točka znači da zastavice nisu postavljene;
  • data-seqno - opisuje podatke sadržane u paketu u sljedećem formatu: first:last, gdje su first i last redni broj prvog i zadnjeg bajta poslanih podataka, nbytes;
  • ack - sljedeći redni broj (ISN + 1);
  • prozor - veličina prozora;
  • opcije - ovdje se mogu navesti dodatne informacije, na primjer (maksimalna veličina segmenta);
  • length - duljina paketa.

Svi ti podaci mogu biti vrlo korisni pri proučavanju ili otklanjanju grešaka u protokolima i mrežnim aplikacijama, ali nam ne govore ništa o njihovom sadržaju. Da biste vidjeli sadržaj paketa u heksadecimalnom formatu, koristite oznaku -X:

# tcpdump -i wlan0 -c 10 -n -X host 192.168.0.1 i port 80

Ova je funkcija vrlo praktična za analizu protokola u kojima se podaci prenose u čistom tekstu, kao što je HTTP. Za binarne i šifrirane protokole to će, naravno, biti beskorisno.
Također možete koristiti zastavicu -v da dobijete više informacija o paketu. Zatim će se nakon IP-a u zagradama pojaviti detaljne informacije o IP paketu:

(tos 0x0, ttl 64, id 8339, offset 0, oznake, proto UDP (17), duljina 51)

Općenito, ovdje je sve prilično prozaično. Prvo dolazi vrsta usluge (TOS), zatim vrijeme trajanja paketa (TTL), ID paketa, pomak od početka prvog paketa u lancu, zastavice, korištena punkcija prijenosnog sloja (TCP, UDP, ICMP) i duljina.


Napredne postavke

Već smo pokrili većinu najvažnijih značajki tcpdumpa, ali postoji mnogo više od njegove funkcionalnosti. Na primjer, upotrijebili smo operatore hosta i porta da navedemo adresu i port koji su nam bili potrebni za filtriranje izlaza, ali što ako želimo vidjeti samo pakete koji idu na navedenu adresu, ali ne i odlaze s nje? Za ovo možete koristiti operator src:

# tcpdump -i wlan0 -c 10 -n src 192.168.0.1

Postoji i njegova obrnuta verzija dst, dizajnirana za označavanje odredišne ​​adrese. Kao što je gore prikazano, svi se operatori mogu kombinirati pomoću operatora i (nadgledanje mrežnog prometa, isključujući SSH sesije i DNS upite):

# tcpdump -i wlan0 port nije 22 i port nije 53

Također možete koristiti ili (ili) i osim (ne). Dodatno, tcpdump razumije raspone portova:

# tcpdump -i wlan0 -c 10 -n portrange 21-23

Može filtrirati pakete prema njihovoj veličini:

# tcpdump -i wlan0 -c 10 -n > 32 i<= 128

I razumije subnet maske:

# tcpdump -i wlan0 c 10 -n src net 192.168.0.0/16 i dst net 10.0.0.0/8 ili 172.16.0.0/16

Jedna od najzanimljivijih značajki tcpdumpa je mogućnost filtriranja paketa na temelju sadržaja određenih bitova ili bajtova u zaglavljima protokola. Za to se koristi sljedeći format: proto, gdje je proto protokol, expr je pomak u bajtovima od početka zaglavlja paketa, a veličina je izborno polje koje označava duljinu dotičnog podatka (zadano je 1 bajt) . Na primjer, da biste filtrirali samo pakete s postavljenom zastavicom SYN (TCP rukovanje inicijacijom), upotrijebili biste sljedeći unos:

# tcpdump "tcp==2"

Kako radi? Jako jednostavno. 13 bajtova TCP zaglavlja sadrži točno osam zastavica, po jedan bit za svaku. Drugi bit je rezerviran za zastavu SYN. Sljedeći unos jednostavno provjerava je li ovaj bit postavljen. Usput, čitljiviji oblik ovog unosa izgledao bi ovako:

# tcpdump "tcp & tcp-syn != 0"

Praktična upotreba

Uslužni program tcpdump obično se koristi u dvije svrhe: za otklanjanje grešaka u mreži, mrežnim aplikacijama i novim protokolima te za podučavanje osnovama TCP/IP-a. Ići ćemo drugim putem i koristiti mogućnosti tcpdumpa za otkrivanje skeniranja hosta i provođenje mrežnih napada.

Na sl. Slika 1 prikazuje kako izgleda klasično skeniranje TCP porta koje se izvodi pomoću uslužnog programa Nmap u tcpdump zapisima. Jasno možete vidjeti kako Nmap s adrese 192.168.0.100 pokušava uspostaviti TCP vezu s različitim portovima slanjem SYN paketa (S u polju zastavica). Prvo se ispituje port 8888, RST paket je primljen kao odgovor, što znači da port ne sluša nijedan servis, zatim se port 587 ispituje s istim rezultatom. Na kraju, Nmap šalje SYN paket na port 22 (SSH) i prima odgovor u obliku SYN-ACK paketa:

192.168.0.100.43337 > 192.168.0.111.22: Zastavice [S], sekvenca 2610024277, ... 192.168.0.111.22 > 192.168.0.100.43337: Zastavice, sekvenca 3496707239, potvrda 26 1 0024278, ... 192.168.0.100 43337 > 192.168.0.111.22: Zastavice [.], ack 1, ...

Port je otvoren i Nmap sada može uspješno zatvoriti vezu slanjem RST paketa i prijeći na sljedeće portove. Međutim, radi nešto pametnije: šalje potvrdu ACK paketa i odmah prelazi na sljedeće portove. Ovo vam ponašanje omogućuje zaobilaženje nekih sustava za otkrivanje upada, ali osobu naoružanu njuškalom ne možete tako lako prevariti.

Također obratite pozornost na brojeve portova koji se pretražuju; oni se ne generiraju nasumično, već su odabrani uzimajući u obzir najveću prevalenciju. To znači da se izvodi brzo skeniranje, točnije, Nmap najvjerojatnije radi bez ikakvih zastavica.



Sada pogledajmo drugu metodu za otkrivanje otvorenih portova - SYN skeniranje (nmap -sS). Ova vrsta skeniranja obično se naziva skrivena, jer se tijekom nje nikada ne uspostavlja puna TCP veza, što znači da se informacije o činjenici veze ne pojavljuju u zapisima. Izlaz tcpdump za ovu vrstu skeniranja prikazan je na sl. 2. Vrlo je sličan zapisniku običnog TCP skeniranja, ali reakcija skenera na otvorene portove sada je drugačija:

192.168.0.100.48585 > 192.168.0.111.22: Zastavice [S], sekvenca 1679394613, ... 192.168.0.111.22 > 192.168.0.100.48585: Zastavice, sekvenca 625029896, potvrda 167 9 394614, ... 192.168.0.100 48585 > 192.168.0.111.22: Zastavice [R], seq 1679394614, ...

Vidi se da nakon primitka SYN-ACK paketa odobrenja, skener ne dovršava uspostavu veze, već je odmah prekida, izbjegavajući ulazak u zapisnike. Na sl. 3 možete vidjeti rezultat UDP skeniranja. Ovdje je sve vrlo jednostavno, Nmap nabraja portove s mogućim UDP servisima, šaljući svakom od njih paket nulte duljine. Ako je port zatvoren, OS odgovara ICMP nedostupnom porukom:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, duljina 0 16:41:48.798346 IP 192.168.0.111 > 192.168.0.100: ICMP 192.16 8.0.100 udp port 18869 nedostupan, duljina 36

U protivnom se luka smatra otvorenom. Druga metoda skeniranja: null skeniranje slanjem paketa koji ne sadrže nijednu postavljenu zastavu (nmap -sN). Odgovor na takve pakete može varirati ovisno o korištenom OS-u, ali kao što možete vidjeti iz sljedećeg popisa, Linux na njih odgovara slanjem RST paketa:

192.168.0.100.39132 > 192.168.0.111.256: Zastavice , win 3072, duljina 0 192.168.0.111.256 > 192.168.0.100.39132: Zastavice , ...

Napadač također može koristiti božićno skeniranje, u kojem paketi imaju postavljene zastavice FIN, URG i PUSH (čini se da paket svijetli zastavicama, poput božićnog drvca):

192.168.0.100.35331 > 192.168.0.111.5544: Zastavice, seq 3998959601, win 4096, urg 0, duljina 0 192.168.0.111.5544 > 192.168.0.100.35331: Zastavice, seq 0, potvrda 3998959602

Kao što vidite, reakcija na takve pakete je identična. ACK skeniranje (-sA) pojavit će se u tcpdump zapisima kao slanje više paketa s postavljenom ACK zastavom i odgovaranje na njih slanjem RST paketa. Međutim, ako sustav ima instaliran vatrozid, neće biti poslane poruke odgovora i Nmap će moći shvatiti da li se priključak filtrira.

Koristeći tcpdump također možete pratiti razne vrste poplava. Na primjer, klasični ICMP flood u zapisnicima izgledat će ovako:

16:43:06.008305 IP 192.168.0.100 > 192.168.0.111: ICMP tip-#68, duljina 1032 16:43:06.008383 IP 192.168.0.100 > 192.168.0.111: ICMP tip-#34, duljina 10 32 16:43:06.008714 IP 192.168.0.100 > 192.168.0.111: ICMP tip-#183, duljina 1032 16:43:06.008831 IP 192.168.0.100 > 192.168.0.111: ICMP tip-#192, duljina 1032

Ovdje je posebno važno polje koje sadrži vrijeme kada je paket primljen. Niti jedna normalna aplikacija neće poslati mnogo ICMP poruka u vremenskom razdoblju jednakom jednoj tisućinki sekunde. Ostale vrste poplava (na primjer, SYN) definirane su na potpuno isti način.

Interakcija s drugim programima

Jedna od najvažnijih prednosti tcpdumpa je ta što je format njegovih izvještaja tijekom postojanja programa zapravo postao standard za sve njuškale i danas ga razumiju svi više ili manje ozbiljni alati za analizu prometa. Na primjer, tcpdump se može koristiti za generiranje dumpa na udaljenom računalu, a zatim ga poslati na lokalni stroj i analizirati ga pomoću wiresharka:

$ssh [e-mail zaštićen] tcpdump -w - "port !22" | wireshark -k -i -

Ovdje smo upotrijebili -w - opciju za pisanje ispisa na standardni izlaz i preusmjerili ga na wireshark koji radi na lokalnom računalu. Na isti način možete analizirati promet koristeći snort:

$ssh [e-mail zaštićen]"tcpdump -nn -i eth1 -w -" | snort -c /etc/nort/nort.conf -r -

Preusmjeravanjem izlaza programa na ulaz grep, možete pronaći razne probleme u mreži, na primjer, identificiranje paketa s netočnim kontrolnim zbrojem, informacije o kojima se mogu prikazati pomoću zastavice -vv:

# tcpdump -nnvv -r dump.cap tcp | grep -v "tcp zbroj u redu" | wc–l

Administratorske stvari

Mogućnost filtriranja paketa na temelju podataka sadržanih u zaglavlju, o čemu smo govorili na početku prvog odjeljka, vrlo je zgodna za korištenje za otklanjanje pogrešaka raznih protokola i pronalaženje mrežnih problema. Na primjer, možemo ga koristiti za hvatanje mrežnih paketa koji se prenose putem Cisco Discovery Protocol-a, preko kojeg Cisco usmjerivači razmjenjuju informacije o topologiji i stanju mreže:

# tcpdump -nn -v -i eth0 -s 1500 -c 1 "ether == 0?2000"

Na isti način možete uhvatiti sve pakete koji se prenose putem DHCP protokola (OTKRIJ, ZAHTJEV, INFORMIRAJ) kako biste identificirali probleme s vezom klijenta:

# tcpdump -i eth0 -vvv -s 1500 "((port 67 ili port 68) i (udp = 0x1))"

Ili uhvatite pakete koji se prenose kao dio POP3 provjere autentičnosti:

# tcpdump -i eth0 "tcp port pop3 i ip = 85 i ip = 83" -s 1500 -n

Grep mreže

Njuškalo tcpdump je dobro zbog svoje svestranosti i raznolikosti mogućnosti, ali nije tako jednostavno i praktično koristiti ga za traženje specifičnih podataka unutar poslanih paketa. Ovaj zadatak puno bolje rješava ngrep, koji je dizajniran za prikaz prolaznih mrežnih paketa koji odgovaraju zadanoj maski.

Na primjer, da biste pronašli parametre proslijeđene metodama GET i POST unutar HTTP sesije, možete koristiti sljedeću naredbu:

# ngrep -l -q -d eth0 "^GET |^POST " tcp i port 80

Prepoznavanje lijenčina:

# ngrep -i "game*|p0rn|adult" -W byline -d eth0 > slackers.txt

Analiziramo SMTP promet na svim mrežnim sučeljima:

# ngrep -i "rcpt to|mail from" tcp port smtp

opcije tcpdump

Tablica najzanimljivijih i najkorisnijih tcpdump zastavica.

  • -i [sučelje] - mrežno sučelje za slušanje, bilo koji bi trebao biti specificiran za sve.
  • -n - ne razrješava IP adrese u DNS imena.
  • -nn - ne pretvara IP adrese i brojeve portova.
  • -X - prikazati sadržaj paketa u tekstualnom i heksadecimalnom formatu.
  • -XX - isto plus sadržaj Ethernet okvira.
  • -v, -vv, -vvv - povećati količinu prikazanih informacija i paketa (više, još više, sve).
  • -c [n] - prikazuje samo prvih n paketa.
  • -s [n] - broj bajtova prikazanih za svaki paket (može se smanjiti za čitljivost ili povećati za više informacija).
  • -S - prikazuje apsolutne TCP sekvencijske brojeve.
  • -e - prikazati zaglavlja Ethernet okvira.
  • -q - prikazati manje informacija (radi lakšeg čitanja).
  • -E - dešifriranje IPsec prometa korištenjem navedenog ključa.
  • -w - spremiti dump programa u datoteku, argument - koristi se za određivanje stdout-a.

zaključke

U rukama iskusnog korisnika, tcpdump se pretvara u moćan alat ne samo za otklanjanje pogrešaka, već i za istraživanje anomalija. Zahvaljujući bogatom skupu operatora i oznaka, može se koristiti za izvlačenje iz mrežnog etera i istraživanje onoga što vam stvarno treba.

tcpdump upute na ruskom i primjeri.

-A specificira izlaz svakog paketa (bez zaglavlja sloja veze) u ASCII formatu. Ovaj način je koristan za prikupljanje HTTP prometa.

-c <число пакетов>specificira da program završava nakon hvatanja određenog broja paketa.

-C<размер файла>određuje hoće li se provjeriti veličina datoteke za snimanje prije nego što se u nju zapiše svaki novi paket. Ako veličina datoteke premašuje parametar file_size, datoteka se zatvara
i stvara se nova datoteka za pisanje paketa. Za datoteke snimanja koristi se naziv naveden parametrom -w i, počevši od druge datoteke, naziv se dodaje kao
sufiks broj datoteke. Varijabla file_size navodi veličinu datoteke u milijunima bajtova (ne megabajti = 1.048.576 bajtova).

-d specificira izlaz dumpa kompajliranog koda za podudaranje paketa u formatu čitljivom za čovjeka i prekid programa.

-dd Izbacuje odgovarajući kod kao fragment C programa.

-ddd izbacuje kod podudaranja kao niz decimalnih vrijednosti, kojem prethodi niz s vrijednošću brojača.

-D prikazuje popis mrežnih sučelja na sustavu s kojih tcpdump može prikupljati pakete. Svako mrežno sučelje ima naziv i broj, nakon kojih može slijediti
tekstualni opis sučelja. Naziv i broj sučelja mogu se koristiti sa zastavom -i za određivanje skupljanja paketa s jednog sučelja.

Ova opcija može biti vrlo korisna za sustave koji ne pružaju informacije o dostupnim mrežnim sučeljima3.

Oznaka -D nije podržana ako je tcpdump kompajliran sa starijom verzijom libpcap-a koja ne podržava funkciju pcap_findalldevs().

-e ispisuje zaglavlje sloja veze na svakom retku ispisa.

-E navodi upotrebu spi@ipaddr algoritma i tajne za dešifriranje IPsec ESP paketa koji se šalju na ipaddr adresu i sadrže vrijednost i u polju Indeks sigurnosnog parametra
spi. Kombinacija spi i adrese može se ponoviti koristeći zarez ili novi red kao razdjelnik. Imajte na umu da postavljanje tajne za IPv4 ESP pakete u
trenutno podržano.

Algoritmi koji se mogu koristiti su des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc ili nijedan. Zadani algoritam je des-cbc. Mogućnost dešifriranja
paketi se pružaju samo u slučajevima kada su opcije podrške za kriptografiju bile omogućene kada je tcpdump kompajliran.

Tajni parametar sadrži ASCII tekst ESP tajnog ključa. Ako tajna počinje s 0x znakova, pročitat će se heksadecimalna vrijednost. Opcija pretpostavlja korištenje
ESP prema RFC 2406, a ne RFC 1827. Ova je opcija podržana samo u svrhu otklanjanja pogrešaka i ne bi se trebala koristiti sa stvarnim privatnim ključevima, budući da je onaj unesen u
naredbenog retka, IPsec ključ je dostupan ostalim korisnicima sustava4.

Osim eksplicitnog određivanja opcija u naredbenom retku, one se mogu specificirati u datoteci opcija koju će tcpdump pročitati kada primi prvi ESP paket.

-f postavlja izlaz stranih IPv4 adresa u numeričkom formatu. Korištenje ove opcije omogućuje vam da se riješite problema koji se javljaju na Sun NIS poslužiteljima prilikom pokušaja emitiranja
nelokalne adrese. Stranost IPv4 adrese provjerava se pomoću adrese i maske sučelja koje je primilo paket. Ako adresa sučelja i maska ​​nisu dostupni
(na primjer, kada koristite nenumerirana sučelja ili kada hvatate pakete sa svih adresa na Linuxu koristeći lažno sučelje bilo koje), ova opcija će raditi
netočno.

-F<файл> specificira korištenje filtara sadržanih u navedenoj datoteci. U tom se slučaju filtri navedeni u naredbenom retku zanemaruju.

-i<интерфейс> specificira kolekciju paketa iz navedenog sučelja. Ako sučelje nije navedeno, tcpdump traži u sustavu popis dostupnih sučelja i s njega odabire aktivni uređaj s minimalnim
broj (isključujući povratnu petlju).

Na Linux sustavima, počevši od kernela 2.2, podržano je lažno sučelje nazvano any, koje osigurava prikupljanje paketa sa svih aktivnih sučelja sustava. Imajte na umu da naknada
paketa s bilo kojeg uređaja provodi se u normalnom (ne promiskuitetnom) načinu rada.

Ako vaš sustav podržava zastavu -D, možete navesti kao argument broj sučelja koji se ispisuje kada se koristi ova zastavica.

-l postavlja međuspremnik stdout linije. Ova opcija je korisna u slučajevima kada želite vidjeti podatke dok prikupljate pakete. Na primjer, naredbe

tcpdump -l | tee dat

tcpdump -l > dat & tail -f dat

omogućiti snimanje paketa u dat datoteku i istovremeni izlaz na konzolu.

-L specificira izlaz popisa poznatih tipova slojeva veze i završetak programa.

-m<файл> učitava SMI MIB definicijski modul iz navedene datoteke. Ova se opcija može više puta koristiti za učitavanje više MIB modula.

-n onemogućuje pretvaranje adresa i brojeva portova u simbolička imena.

-N specificira korištenje samo naziva hostova, a ne potpuno kvalificiranih naziva domena. Na primjer, umjesto lhotze.bilim-systems.net, kada koristim ovu opciju, moja radna stanica će biti
označen kao lhotze.

-O onemogućuje optimizator koda za provjeru odgovaraju li paketi uvjetima filtriranja. Koristite ovu opciju ako mislite da optimizator ne radi ispravno.

-str govori programu da se sučelje ne mora staviti u način snimanja5. Opcija -p ne može se koristiti u kombinaciji s ether hostom (local-hw-addr) ili ether filtrom za emitiranje.

-q specificira izlaz minimalne količine informacija.

-R postavljanje ove zastavice pretpostavlja da ESP/AH paketi koriste staru verziju specifikacije6 i tcpdump neće ispisati polja za sprječavanje ponavljanja.
reprodukcija). Budući da ESP/AH specifikacija ne uključuje polja s brojem verzije, tcpdump ne može odrediti verziju ESP/AH protokola iz zaglavlja paketa.

-r<файл> specificira čitanje podataka iz datoteke prethodno stvorene pomoću naredbe tcpdump -w ili pomoću drugog programa koji podržava format tcpdump (na primjer, Ethereal). Ako u
Naziv datoteke postavljen je na - i koristi se tok podataka sa standardnog ulaznog uređaja (stdin).

-S postavlja izlaz apsolutnih TCP sekvenci brojeva umjesto relativnih.

-s postavlja hvatanje bajtova iz svakog snaplen paketa umjesto zadanih 68 bajtova7. Vrijednost 68 prikladna je za IP, ICMP, TCP i UDP protokole, ali može dovesti do gubitka
informacije o protokolu za neke DNS i NFS pakete. Gubitak nekih paketa zbog male veličine okvira snimke označen je u izlaznim podacima poljima obrasca
[|proto]’, gdje je proto naziv razine protokola na kojoj je dio paketa odsječen8. Imajte na umu da će povećanje okvira snimanja rezultirati dodatnim privremenim
troškovi obrade paketa i smanjenje broja međuspremnika paketa, što može dovesti do gubitka nekih paketa. Upotrijebite minimalnu vrijednost snaplena koja će dopustiti
izbjegnite gubitak informacija o protokolu koji vas zanima. Postavljanje snaplen=0 će uhvatiti kompletne pakete.

-T<тип> postavlja tumačenje paketa odabranih korištenjem filtra kao pakete tipa specificiranog parametrom. Trenutno podržani tipovi su aodv9, cnfp10, rpc11, rtp12, rtcp13,
snmp14, tftp15, vat16 i wb17.

-t onemogućuje ispis vremenskih oznaka u svakom retku ispisa.

-tt specificira izlaz neformatiranih vremenskih oznaka u svakom retku ispisa.

-ttt specificira izlaz vremenskih intervala (u mikrosekundama) između hvatanja prethodnog i ovog paketa u svakom retku ispisa.

-tttt specificira izlaz vremenskih oznaka u zadanom formatu za svaki redak ispisa.

-u postavlja izlaz NFS ručica bez dekodiranja.

-U postavlja način rada "batch-level buffering" za datoteke spremljene pomoću opcije -w. U ovom načinu rada svaki se paket zapisuje u izlaznu datoteku čim se uhvati
(bez čekanja da se ispuni izlazni međuspremnik). Oznaka -U neće biti podržana ako je tcpdump kompajliran sa starom opcijom libpcap koja ne podržava funkciju
pcap_dump_flush().

-v specificira izlaz dodatnih informacija prilikom snimanja datoteka. Ove informacije mogu uključivati ​​TTL (Time to Live) vrijednost, identifikaciju, ukupnu veličinu, IP opcije, itd. Kada
Pri korištenju ove zastavice također se provode dodatne provjere integriteta paketa pomoću kontrolnih zbrojeva (na primjer, za IP i ICMP protokole).

-vv specificira dodatno povećanje volumena izlaznih informacija (na primjer, potpuno dekodiranje SMB paketa, izlaz dodatnih NFS polja odgovora, itd.).

-vvv postavlja maksimalnu količinu prikazanih informacija (na primjer, telnet opcije SB ... SE prikazuju se u potpunosti). Kada se koristi zajedno s prekidačem -X, Telnet opcije se također prikazuju u
heksadecimalni prikaz.

-w<файл> specificira snimanje neobrađenih paketa. Paketi sakupljeni u datoteku mogu se kasnije pregledati pomoću oznake -r ili prenijeti u druge programe za analizu
(npr. Eterično). Ako je naziv datoteke -, datoteka se zapisuje na standardni izlazni uređaj (stdout).

-x specificira izlaz heksadecimalnog ispisa (bez zaglavlja sloja veze) za svaki snimljeni paket. Količina prikazanih informacija određena je manjom od dvije vrijednosti -
veličina paketa i vrijednost parametra snaplen. Imajte na umu da pri snimanju okvira punog sloja veze, ispis također može uključivati ​​bajtove za punjenje ako paket mrežnog sloja
ima malu veličinu.

-xx postavlja izlaz heksadecimalnog ispisa za svaki paket, uključujući zaglavlja sloja veze.

-X navodi ispis ispisa u heksadecimalnom i ASCII formatu bez zaglavlja sloja veze. Ova opcija može biti vrlo praktična pri analizi novih protokola.

-XX specificira ispis ispisa u heksadecimalnom i ASCII formatu, uključujući zaglavlja sloja veze.

-y<тип> specificira tip sloja veze koji se koristi prilikom hvatanja paketa. Podržane vrijednosti mogu se vidjeti pomoću oznake -L.

Primjeri.

  • Hvatamo sav odlazni promet

tcpdump -i re0 -n -nn -ttt dst host 192.168.1.2

  • Hvatamo sav odlazni promet osim naše ssh sesije jer postoji vrlo velik protok podataka.

tcpdump -i re0 -n -nn -ttt 'dst host 192.168.1.110, a ne (src host 192.168.1.2 i dst port 22)'

  • Pogledajte dns komunikaciju

tcpdump -i re0 -n -nn -ttt 'host 192.168.1.110 i port 53'

  • Pregledajte icmp pakete

tcpdump -i re0 -n -nn -ttt ‘ip proto \icmp’

  • Promet koji se kreće iz mreže 10.7.20 s odredištem na mreži 10.7.0. ili 24.7.10.:

tcpdump -nvX src net 10.7.20.0.0/16 i dst net 10.7.0.0/8 ili 10.7.24.0/16

  • Promet koji dolazi s mreže 10.7.0.0 na odredišne ​​priključke 22 ili 4589:

tcpdump 'src 10.7.0.0 i (dst port 22 ili 4589)'

  • Pogledajte promet na sučelju:
  • pogledajte promet jednog hosta:

tcpdump host 192.168.1.1

  • Pogledajte promet na luci:

tcpdump src port 80

  • Pogledajte IP promet prema hostu:

tcpdump ip host 192.168.1.2

  • Pogledajte ARP promet prema hostu:

tcpdump arp host 192.168.1.2

  • Gledamo RARP promet prema hostu:

tcpdump rarp host 192.168.1.2

  • Gledamo promet, osim hosta pav253

tcpdump nije host pav253

  • Gledamo promet na pav253 i pav210

tcpdump host pav253 ili host pav210

  • Gledamo sadržaj paketa na re0 sučelju do host stranice

tcpdump -X -i re0 host mjesto

  • icq promet

tcpdump -X -i re0 port aol

  • Gledamo sadržaj paketa na tun0 sučelju prema hostu ya.ru, dok čitamo 1500 bajtova iz svakog paketa i ne pretvaramo IP u naziv hosta

tcpdump -X -s 1500 -n -i re0 host mjesto

  • Najaktivnije interakcije

tcpdump -tn -c 10000 -i re0 tcp ili udp | awk -F "." ‘(ispiši $1″.”$2″.”$3″.”$4)’ | \sort | jedinstven -c | sortirati -nr | awk '$1 > 100'

  • Gledamo sve TCP pakete s oznakom SYN (početak sesije).

tcpdump -i eth0 -nn tcp == 2 i src net 192.168.1.0/24

  • Pregledajte syn i fin pakete izvana

tcpdump 'tcp & (tcp-syn|tcp-fin) != 0 a ne src i dst net 192.168.1.0'

  • Prikaz svih ipv4 http paketa s priključka 80, osim podataka syn/fin/ack

tcpdump 'tcp port 80 i (((ip — ((ip&0xf)<>2)) != 0)’

  • Pogledajte samo syn pakete