Računala Windows Internet

Tcpdump kako se zaustaviti nakon određenog vremena. Tcpdump je koristan vodič s primjerima. Prikaz zarobljenih paketa u HEX i ASCII formatu pomoću tcpdump -xx

Ako trebate analizirati ili presresti mrežne pakete u Linuxu, najbolje je za to koristiti konzolni uslužni program. tcpdump. No problem nastaje u prilično kompliciranom upravljanju. Običnom korisniku će se činiti da je nezgodno raditi s uslužnim programom, ali to je samo na prvi pogled. Članak će objasniti kako tcpdump radi, kakvu sintaksu ima, kako ga koristiti, a također će dati brojne primjere njegove uporabe.

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

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

sudo apt install tcpdump

Tijekom instalacije morate unijeti lozinku. Imajte na umu da se ne prikazuje prilikom tipkanja, također morate unijeti znak za potvrdu instalacije "D" i pritisnite Unesi.

Ako imate Red Hat, Fedora ili CentOS, tada će naredba za instalaciju izgledati ovako:

sudo yam install tcpdump

Nakon što je uslužni program instaliran, možete ga odmah koristiti. O tome i mnogim drugim stvarima bit će riječi kasnije 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 options -i filteri sučelja

Kada koristite naredbu, morate odrediti sučelje za praćenje. Filtri i opcije nisu obavezne varijable, ali omogućuju više prilagođavanja.

Mogućnosti

Iako opciju nije potrebno navesti, ipak je potrebno navesti dostupne opcije. Tablica ne prikazuje cijeli njihov popis, već samo one najpopularnije, ali su i više nego dovoljni za rješavanje većine zadataka.

Opcija Definicija
-A Omogućuje vam sortiranje paketa u ASCII formatu
-l Dodaje funkciju pomicanja
-i Nakon unosa potrebno je odrediti mrežno sučelje koje će se pratiti. Da biste počeli pratiti sva sučelja, unesite riječ "bilo koji" iza opcije
-c Završava proces praćenja nakon provjere navedenog broja paketa
-w Generira tekstualnu datoteku s izvješćem o provjeri
-e Prikazuje razinu internetske veze podatkovnog paketa
-L Prikazuje samo one protokole koje podržava navedeno mrežno sučelje
-C Stvara drugu datoteku tijekom snimanja paketa ako je njezina veličina veća od zadane
-r Otvara datoteku za čitanje koja je stvorena s opcijom -w
-j Format TimeStamp će se koristiti za pisanje paketa
-J Omogućuje vam pregled svih dostupnih formata TimeStamp
-G Služi za stvaranje datoteke s zapisnicima. Opcija također zahtijeva privremenu vrijednost, nakon čega će se kreirati novi zapisnik.
-v, -vv, -vvv Ovisno o broju znakova u opciji, izlaz naredbe će postati detaljniji (povećanje je izravno proporcionalno broju znakova)
-f Prikazuje naziv domene IP adresa u izlazu
-F Omogućuje čitanje informacija ne s mrežnog sučelja, već iz navedene datoteke
-D Prikazuje sva mrežna sučelja koja se mogu koristiti
-n Deaktivira prikaz naziva domena
-Z Određuje korisnika pod čijim će računom biti kreirane sve datoteke
-K Preskakanje analize kontrolnog zbroja
-q Kratka demonstracija informacija
-H Omogućuje otkrivanje 802.11s zaglavlja
-ja Koristi se za hvatanje paketa u načinu rada za praćenje

Nakon što smo analizirali opcije, malo niže ići ćemo izravno na njihove aplikacije. U međuvremenu će se razmotriti filtri.

Filtri

Kao što je spomenuto na samom početku članka, sintaksi tcpdump možete dodati filtere. Sada će se smatrati najpopularnijim od njih:

Svi navedeni filtri se mogu međusobno kombinirati, pa ćete u izdavanju naredbe vidjeti samo one podatke koje želite vidjeti. Da bismo detaljnije razumjeli upotrebu gornjih filtara, vrijedi dati primjere.

Primjeri korištenja

Sada će biti dana uobičajena sintaksa naredbe tcpdump. Nemoguće ih je sve nabrojati, jer može postojati beskonačan broj njihovih varijacija.

Pregled popisa sučelja

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

Kao što možete vidjeti, u primjeru postoji osam sučelja, koja se mogu vidjeti pomoću naredbe tcpdump. U članku će se dati primjeri ppp0, možete koristiti bilo koji drugi.

Normalno snimanje prometa

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

sudo tcpdump -i ppp0

Imajte na umu: prije same naredbe morate unijeti "sudo", jer zahtijeva prava superkorisnika.

Napomena: nakon što pritisnete Enter, "Terminal" će kontinuirano prikazivati ​​uhvaćene pakete. Da biste zaustavili njihov protok, trebate pritisnuti kombinaciju tipki Ctrl + C.

Ako pokrenete naredbu bez dodatnih opcija i filtara, vidjet ćete sljedeći format za prikaz praćenih paketa:

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

Gdje je istaknuto:

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

Ova sintaksa ima mogućnost prikaza u prozoru "Terminal" bez ikakvih dodatnih opcija.

Snimanje prometa s opcijom -v

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

sudo tcpdump -v -i ppp0

Ovdje možete primijetiti da se sljedeći redak pojavio u izlazu:

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

Gdje je istaknuto:

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

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

Opcija -w i -r

Tablica s opcijama spominjala je mogućnost spremanja svih izlaznih podataka u zasebnu datoteku kako bi se kasnije mogli pregledati. Ovo je opcija -w. Korištenje je prilično jednostavno, samo ga navedite u naredbi, a zatim unesite naziv buduće datoteke s ekstenzijom ".pcap". Pogledajmo primjer:

sudo tcpdump -i ppp0 -w datoteka.pcap

Napomena: tijekom pisanja zapisnika u datoteku, na ekranu "Terminal" se ne prikazuje tekst.

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

sudo tcpdump -r datoteka.pcap

Obje ove opcije su izvrsne kada trebate pohraniti velike količine teksta za kasniju analizu.

Filtriranje po IP-u

Iz tablice filtera to znamo dst omogućuje vam da na zaslonu konzole prikažete samo one pakete koji su primljeni na adresu koja je navedena u sintaksi naredbe. Stoga je vrlo zgodno pregledati pakete koje primi vaše računalo. Da biste to učinili, u naredbi samo trebate navesti svoju IP adresu:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

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

Također možete filtrirati odlazne pakete prema IP-u. Uzmimo 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, pokrenite sljedeću naredbu:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Kao što vidite, u sintaksi naredbe promijenili smo filter dst na src, čime se govori stroju da traži pošiljatelja po IP-u.

Filtriranje prema HOST-u

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

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

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

Kao i u slučaju filtriranja po IP-u, u sintaksi 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: glavni filtar mora doći nakon dst ili src, inače će naredba dati pogrešku. U slučaju filtriranja po IP-u, naprotiv, dst i src dolaze ispred ip filtra.

Primjena filtera i i ili

Ako trebate koristiti nekoliko filtara odjednom u jednoj naredbi, za to trebate upotrijebiti filtar i ili ili(ovisno o slučaju). Određivanjem filtara u sintaksi i odvajanjem s ovim operatorima, "tjerate" ih da rade kao jedan. Na primjer, 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 da želimo prikazati "Terminal" svi paketi koji su poslani na adresu 95.47.144.254 i paketi primljeni na istu adresu. Također možete promijeniti neke od varijabli u ovom izrazu. Na primjer, umjesto IP-a, navedite HOST ili izravno zamijenite same adrese.

Port i portrange filter

filtar luka izvrsno u slučajevima kada trebate dobiti informacije o paketima s određenim portom. Dakle, ako želite vidjeti samo DNS odgovore ili upite, morate navesti port 53:

sudo tcpdump -vv -i ppp0 port 53

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

sudo tcpdump -vv -i ppp0 port 80

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

sudo tcpdump portrange 50-80

Kao što vidite, u kombinaciji s filterom portrange nije potrebno specificirati dodatne opcije. Samo trebate postaviti raspon.

Filtriranje protokola

Također možete prikazati samo promet koji odgovara određenom protokolu. Da biste to učinili, koristite 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 s protokolom 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

neto filter

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

sudo tcpdump -i ppp0 net 192.168.1.1

Filtriranje veličine paketa

Nismo pokrili još dva zanimljiva filtera: manje i veći. Iz tablice s filterima znamo da služe za prikaz većih paketa podataka ( manje) ili manje ( veći) veličine navedene nakon unosa atributa.

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

sudo tcpdump -i ppp0 manje 50

Sada se prikažemo "Terminal" paketi veći od 50 bita:

sudo tcpdump -i ppp0 veći od 50

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

Zaključak

Na kraju članka može se zaključiti da zapovijed tcpdump je izvrstan alat s kojim možete pratiti bilo koji paket podataka koji se prenosi putem 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.

Za UNIX sustave postoji mnogo različitih njuškala i analizatora prometa s praktičnim grafičkim sučeljem i bogatim skupom funkcija. Ali nitko od njih ne može se usporediti u fleksibilnosti, svestranosti i rasprostranjenosti sa staromodnim tcpdumpom. Ovaj je uslužni program uključen u mnoge distribucije Linuxa i sve BSD sustave iz kutije i može vam pomoći kada drugi alati nisu dostupni.

Uvod

Uslužni program tcpdump je njuškalo mrežnih paketa naredbenog retka koji nema ni grafičko ni pseudo-grafičko sučelje. Za početnike može djelovati nespretno i previše staromodno, ali u vještim rukama pretvara se u pravi švicarski nož za otvaranje bilo kakvih mrežnih paketa i protokola. Iskusni sysadmini uvijek preporučuju početnicima da 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 hvatanja paketa libpcap razvijenu posebno za nju sada koristi gotovo svaki njuškalo za UNIX sustave i mnogi slični programi za Windows.

U ovom članku ćemo pokriti sve aspekte rada s tcpdumpom, od osnova rada s programom do načina korištenja uslužnog programa za otkrivanje 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 njuškalo, 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 prijevod IP adresa u DNS imena. Sada pokušajmo pratiti razmjenu samo s određenim domaćinom, na primjer, kućnim usmjerivačem:

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

Pogledajmo što nam je tcpdump iznio, koristeći dva retka prikazana na snimci zaslona "DNS upit očima tcpdump" kao primjer. Lako se može razumjeti da se radi o DNS zahtjevu (port 53) od hosta 192.168.0.101 do hosta 192.168.0.1 i naknadnom odgovoru. 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žete pretpostaviti, identificiraju korišteni protokol mrežnog sloja, nakon čega slijede adresa: port za slanje i adresa: odredišni port paketa. Sve što dolazi nakon debelog crijeva izravno ovisi o korištenom protokolu transportnog ili aplikacijskog sloja. tcpdump je upoznat s nekim protokolima i može ih dešifrirati u čovjeku čitljiv oblik, druge ostavlja onakvima kakvi jesu i jednostavno navodi sadržaj paketa. U ovom slučaju, tcpdump je dekodirao 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 prezentacije gotovo identičan zahtjevu, s jedinom razlikom što se sada iza identifikatora zahtjeva nalazi podatak o broju pronađenih zapisa (8/2/3) i same evidencije (A 213.180.204.3, A 77.88.21.3 , A 87.250.250.3...).

Arsenal tcpdump ima podršku za mnoge protokole, zahvaljujući kojima može u čitljivom obliku predstaviti informacije o TCP, UDP i ICMP, SMB / CIFS, NFS, AFS, AppleTalk protokolima. Ali što ako tcpdump ne zna ništa o protokolu aplikacijskog sloja koji se koristi ili ga ne može odrediti? U normalnoj situaciji, jednostavno će ispisati informacije o paketu. Moglo bi izgledati otprilike ovako:

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

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

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

Svi ti podaci mogu biti vrlo korisni tijekom proučavanja ili otklanjanja pogreš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 korisna za raščlanjivanje protokola u kojima se podaci prenose u čistom tekstu, kao što je HTTP. Za binarne protokole i protokole s enkripcijom, to će, naravno, biti beskorisno.
Također možete koristiti oznaku -v da biste dobili 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, pomak 0, zastavice , proto UDP (17), duljina 51)

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


Napredne postavke

Već smo pokrili većinu najvažnijih značajki tcpdump, ali je njegova funkcionalnost mnogo šira. Na primjer, koristili smo naredbe host i port da navedemo adresu i port za koji želimo filtrirati izlaz, ali što ako želimo vidjeti samo pakete koji idu na navedenu adresu, ali ne i odlaze s nje? Za ovo možete koristiti src operator:

# 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 operateri se mogu kombinirati pomoću operatora i (praćenje mrežnog prometa, isključujući SSH sesije i DNS zahtjeve):

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

Također možete koristiti ili (ili) i osim (ne). Također, tcpdump razumije raspon 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 maske podmreže:

# 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 tcpdump 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 opcionalno polje koje pokazuje duljinu dotičnih podataka (zadano je 1 bajt ). Na primjer, za filtriranje samo paketa sa postavljenom zastavom SYN (TCP handshake inicijacija), 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. Drugi bit je rezerviran za SYN zastavicu. Gornji unos jednostavno provjerava je li ovaj bit postavljen. Usput, čitljiviji oblik ovog unosa bi izgledao ovako:

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

Praktična upotreba

Uslužni program tcpdump obično se koristi u dvije svrhe: za otklanjanje pogrešaka u mreži, mrežnim aplikacijama i novim protokolima te da vas nauči osnovama TCP/IP-a. Ići ćemo drugim putem i iskoristiti snagu tcpdump-a za otkrivanje skeniranja hosta i mrežnih napada.

Na sl. Slika 1 prikazuje kako izgleda klasično skeniranje TCP porta koje je izvršio Nmap u tcpdump zapisnicima. Možete jasno vidjeti kako Nmap s adrese 192.168.0.100 pokušava uspostaviti TCP vezu s različitim portovima slanjem SYN paketa (S u polju zastavice). Prvo se provjerava port 8888, kao odgovor dolazi RST paket, što znači da nijedna usluga ne sluša na portu, zatim se provjerava port 587 s istim rezultatom. Konačno, 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], slijed 2610024277, ... 43337 > 192.168.0.111.22: Zastavice [.], ack 1, ...

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

Obratite pažnju i na brojeve portova koje treba razvrstati, oni se ne generiraju nasumično, već se biraju uzimajući u obzir najveću rasprostranjenost. To znači da se izvodi brzo skeniranje, ili točnije, Nmap najvjerojatnije radi bez ikakvih zastavica.



Pogledajmo sada drugu metodu za otkrivanje otvorenih portova - SYN skeniranje (nmap -sS). Ovakav tip skeniranja obično se naziva skrivenim, jer se tijekom njega nikada ne uspostavlja puna TCP veza, što znači da podaci o činjenici veze nisu uključeni u zapisnike. Izlaz tcpdump za ovu vrstu skeniranja prikazan je na slici 1. 2. Vrlo je sličan dnevniku običnog TCP skeniranja, ali je odgovor skenera na otvorene portove sada drugačiji:

192.168.0.100.48585 > 192.168.0.111.22: Zastave[S], slijed 1679394613, ... 48585 > 192.168.0.111.22: Zastave[R], 3 slijed 1614

Vidi se da nakon primitka paketa odobrenja SYN-ACK, skener ne dovršava vezu, već je odmah prekida, izbjegavajući ulazak u logove. Na sl. 3 možete vidjeti rezultat UDP skeniranja. Ovdje je sve vrlo jednostavno, Nmap nabraja portove s mogućim UDP servisima i svakom od njih šalje paket nulte dužine. Ako je port zatvoren, OS šalje natrag ICMP nedostupnu poruku:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, duljina 0

Inače, luka se smatra otvorenom. Druga metoda skeniranja je null skeniranje slanjem paketa bez postavljenih oznaka (nmap -sN). Reakcija na takve pakete može varirati ovisno o operativnom sustavu, 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: Zastave , pobjeda 3072, duljina 0 192.168.0.111.256 > 192.168.0.100.39132 ...

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: Zastave , slijed 3998959601, pobjeda 4096, urg 0, duljina 0

Kao što vidite, reakcija na takve pakete je identična. ACK skeniranje (-sA) pojavit će se u tcpdump zapisnicima kao slanje više paketa s postavljenom ACK zastavicom i odgovor na njih slanjem RST paketa. Međutim, ako je vatrozid instaliran na sustavu, neće biti odgovora, a Nmap će moći razumjeti filtrira li se port.

Uz pomoć tcpdump, također možete pratiti razne vrste poplava. Na primjer, klasična ICMP poplava u zapisnicima će izgledati ovako:

16:43:06.008305 IP 192.168.0.100 > 192.168.0.111: ICMP tip-#68, dužina 1032 192.168.0.100 > 192.168.0.111: ICMP tip-#68, dužina 192.168.0.111

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

Interakcija s drugim programima

Jedna od najvažnijih prednosti tcpdump-a je da je format njegovih izvješća tijekom postojanja programa zapravo postao standard za sve njuškare i danas ga razumiju svi manje-više ozbiljni alati za analizu prometa. Na primjer, tcpdump se može koristiti za generiranje dump-a na udaljenom računalu, 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 koristili opciju -w - da zapišemo dump u stdout i preusmjerili ga na wireshark koji radi na lokalnom računalu. Na isti način možete analizirati promet koristeći snort:

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

Preusmjeravanjem izlaza programa na grep ulaz, možete pronaći različite probleme u mreži, na primjer, identificirati pakete s netočnim kontrolnim zbrojem, koji se može prikazati pomoću zastavice -vv:

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

Admin stvari

Mogućnost filtriranja paketa na temelju podataka zaglavlja, o čemu smo govorili na početku prvog odjeljka, vrlo je korisna za otklanjanje pogrešaka u raznim protokolima i pronalaženje mrežnih problema. Na primjer, možemo ga koristiti za hvatanje mrežnih paketa koji se prenose putem Cisco Discovery Protocola, putem kojeg Cisco usmjerivači razmjenjuju informacije o topologiji i statusu mreže:

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

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

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

Ili uhvatiti pakete poslane kao dio POP3 provjere autentičnosti:

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

mreža grep

Sniffer tcpdump dobar je zbog svoje svestranosti i raznolikosti mogućnosti, ali nije ga tako jednostavno i praktično koristiti za traženje određenih 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 koje prosljeđuju metode GET i POST unutar HTTP sesije, možete koristiti sljedeću naredbu:

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

Pronalaženje ljenčarki:

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

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

# ngrep -i "rcpt na|poštu s" tcp porta smtp

tcpdump opcije

Tablica najzanimljivijih i najkorisnijih tcpdump zastava.

  • -i [sučelje] - mrežno sučelje za slušanje, navedite bilo koje za sve.
  • -n Nemojte rješavati IP adrese u DNS imena.
  • -nn Nemojte prevoditi IP adrese i brojeve portova.
  • -X - prikazuje 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, više, sve).
  • -c [n] Prikaži samo prvih n paketa.
  • -s [n] - broj bajtova prikazanih za svaki paket (može se smanjiti radi čitljivosti ili povećati za više informacija).
  • -S - prikazuje apsolutne brojeve TCP sekvence.
  • -e - prikazati zaglavlja ethernet okvira.
  • -q - prikazati manje informacija (radi čitljivosti).
  • -E - dešifriranje IPsec prometa pomoću navedenog ključa.
  • -w - spremanje ispis programa u datoteku, argument - koristi se za određivanje standardnog izlaza.

zaključke

U rukama dobro upućenog 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 zastavica, možete ga koristiti da izađete iz mreže i istražite što vam je stvarno potrebno.

Tcpdump je iznimno praktičan mrežni analizator koji je od velike pomoći i mrežnim administratorima i osobama iz sigurnosti. Naravno, da biste dobili maksimalne informacije pri radu s tcpdumpom, jednostavno je potrebno razumjeti stog TCP / IP protokola. Radi praktičnosti, možete koristiti prikladnije i inteligentnije programe, na primjer, ali često postoje situacije kada nije moguće instalirati dodatne usluge na stroj koji se testira, a tada je tcpdump jednostavno nezamjenjiv, administrator, radi paketa analiza, ne probudi se, stavi na unix poslužitelj X- Windows, pogotovo jer na većini unix sustava, uslužni program tcpdump dolazi prema zadanim postavkama.

Razumijevanje TCP/IP protokola daje široki opseg za korištenje analizatora i rješavanje problema s mrežom raščlanjivanjem paketa. Budući da optimalno korištenje ovog uslužnog programa zahtijeva dobro razumijevanje mrežnih protokola i načina na koji oni rade, smiješna je situacija u kojoj inženjer ionako mora znati i razumjeti mehanizme mrežne komunikacije. uključujući tcpdump je koristan u svakom pogledu, od rješavanja problema do samoobrazovanja.

U nastavku je nekoliko opcija koje će vam pomoći da koristite ovaj uslužni program na najpotpuniji i najdetaljniji način, pogotovo jer se sve ove kutije i tipke prilično lako zaborave, a ovi primjeri su vrlo korisni za osvježavanje memorije.

Prvi korišteni prekidač je -n koji zabranjuje pokušaje pretvaranja adresa u nazive domena, dajući nam tako čiste IP adrese s portovima.

Drugi je -X koji svakom paketu govori da ispiše heksadecimalni (heksadecimalni) i ASCII sadržaj paketa.
I posljednja opcija je -S koja zamjenjuje izlaz relativnog TCP numeriranja apsolutnim numeriranjem. Poanta je da s relativnim numeriranjem neki problemi mogu biti skriveni od vaše pažnje.

Morate razumjeti da je glavna prednost tcpdump u odnosu na druge uslužne programe to što omogućuje detaljno i ručno raščlanjivanje paketa. Također morate imati na umu da prema zadanim postavkama tcpdump koristi samo prvih 68 bajtova paketa, uklj. ako trebate vidjeti više, onda biste trebali upotrijebiti brojčani prekidač -s, gdje je broj broj bajtova za hvatanje. Ako je broj postavljen na 0, doći će do potpunog hvatanja paketa, pa je bolje koristiti vrijednost 1514, koja će dati potpuno hvatanje standardnog Ethernet paketa.

Popis najčešće korištenih tipki:
-c: postaviti za provjeru veličine snimljene datoteke prije svakog sljedećeg snimanja snimljenog paketa, ako je veličina veća, datoteka se sprema i snimka ide u novu datoteku
-e : ispis ethernet zaglavlja (sloj veze) na svakoj liniji ispisa
-i bilo koji: slušajte na svim sučeljima, u slučaju da vam treba sav promet.
-n: Onemogućuje prijevod adresa u nazive domena ili simbola
-nn: Onemogućite prijevod adresa i portova u nazive domena ili simbola
-q: Ispis informacija ukratko, po cijenu smanjenja izlaznih podataka protokola.
-X: ispisati heksadecimalni i ASCII sadržaj paketa
-v, -vv, -vvv: Određuje dodatne informacije o zarobljenim paketima za izlaz, što omogućuje širu analizu.
Nekoliko primjera za korištenje:

# Standardni izlaz paketa
tcpdump -nS
# Prošireni standardni izlaz
tcpdump -nnvvS
# Dubinsko analiziranje paketa
tcpdump -nnvvXS
# Najdetaljnije informacije o prometu
tcpdump -nnvvXSs 1514

Izrazi vam omogućuju izvođenje ciljanijih skeniranja i definiranje vrsta prometa. Mogućnost korištenja izraza čini tcpdump vrlo produktivnim alatom u rukama administratora sustava. Postoje tri glavne vrste izraza: tip, dir i proto.
Opcije izraza tipa su host, net i port.
Za izražavanje smjera zadanog dir, dostupne su opcije src, dst, src ili dst, te src i dst.
Nekoliko standardnih izraza:

host // analizira promet na temelju IP adrese (također radi sa simboličkim imenima ako -n nije postavljeno)
tcpdump host 1.2.3.4

src, dst // analizira promet samo za određeno odredište ili odašiljač
tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6

net // hvatanje prometa koji pripada određenoj mreži
tcpdump net 1.2.3.0/24

proto // radi s tcp, udp i icmp. Mora se imati na umu da se proto ne spominje
tcpdump icmp

port // analizira promet s određene luke (dolazni ili odlazni)
tcpdump port 3389

src, dst port // filter na temelju dolaznog ili odlaznog porta
tcpdump src port 1025
tcpdump dst port 3389

Ali najmoćniji alat su operandi, koji vam omogućuju postavljanje uvjeta za izraze i opcije za detaljniju izolaciju informacija o analiziranom prometu.

I
i ili &&
ILI
ili ili ||
OSIM
ne ili!

TCP promet iz resursa 10.15.123.33 s odredišnim portom 3379:

# tcpdump -nnvvS tcp i src 10.15.123.33 i dst port 3379

Promet koji dolazi iz mreže 192.168 s odredištem na mrežama 10 ili 172.16:

# tcpdump -nvX src net 192.168.0.0/16 i dst net 10.0.0.0/8 ili 172.16.0.0/16

Ne-ICMP promet s odredištem 192.168.0.2 i iz mreže 172.16:

# tcpdump -nvvXSs 1514 dst 192.168.0.2 i src net 172.16.0.0/16, a ne icmp

Promet s hostova Eros ili Ares, ali ne ide na standardni SSH port (ovaj izraz zahtijeva razlučivanje imena):

# tcpdump -vv src eros ili ares a ne dst port 22

Kao što možete vidjeti iz gornjih primjera, možemo izgraditi bilo koji izraz, za bilo koju svrhu. Također, koristeći složenu sintaksu, možemo isključiti bilo koju vrstu prometa iz analize.

Također, imajte na umu da možemo izraditi upite koji uključuju grupe i skupove opcija danih u jednom upitu. Ali da bi uslužni program tcpdump obratio pažnju na njih, moraju se staviti u zagrade, uzimajući izraz u jednostrukim navodnicima:
Promet koji dolazi od hosta 10.0.2.4 do odredišnih portova 3379 ili 22:
# tcpdump 'src 10.0.2.4 i (dst port 3379 ili 22)'

Također je moguće filtrirati na temelju TCP zastavica, na primjer, izolirati SYN ili RST pakete:

Parsiraj sve URG pakete:
# tcpdump 'tcp & 32 != 0'

Parsiraj sve ACK pakete:
# tcpdump 'tcp & 16 != 0'

Parsiraj sve PSH pakete:
# tcpdump 'tcp & 8 != 0'

Parsiraj sve RST pakete:
# tcpdump 'tcp & 4 != 0'

Parsiraj sve SYN pakete:
# tcpdump 'tcp & 2 != 0'

Ovaj vodič će vam pokazati kako izolirati promet na različite načine - od IP-a, preko porta, do protokola, do prometa na sloju aplikacije - kako biste bili sigurni da ćete pronaći točno ono što trebate što je brže moguće.

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

Instalirajte tcpdump pomoću 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 : Zastave [.], ack 278239097, win 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 nešto HTTPS prometa, s heksadecimalnim prikazom vidljivim na desnom dijelu izlaza (nažalost, šifriran je). Samo zapamtite—kada ste u nedoumici, pokrenite gornju naredbu s portom koji vas zanima i trebali biste biti na putu.

Primjeri

PacketWizard™ zapravo nije zaštićen, ali bi trebao biti.

praktičar koji se priprema za pokretanje tcpdump

Sada kada ste u mogućnosti dobiti osnovni promet, prođimo kroz brojne primjere koji će vam vjerojatno trebati tijekom vašeg posla u umrežavanju, sigurnosti ili kao bilo koja vrsta 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 po IP-u

Jedan od najčešćih upita, koristeći host , možete vidjeti promet koji ide na ili iz 1.1.1.1.

vrste izraza:

host, mreža i port.

src i dst .

host, mreža i port.

tcp, udp, icmp i još mnogo toga.

tcpdump host 1.1.1.1

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

Ako želite vidjeti promet samo 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 u ili iz određene mreže ili podmreže, koristite opciju net.

To također možete kombinirati sa opcijama src i dst.

tcpdump net 1.2.3.0/24

Dobijte sadržaj paketa s hex izlazom

Hex izlaz je koristan kada želite vidjeti sadržaj dotičnih paketa, a često ga je najbolje koristiti kada izolirate nekoliko kandidata za detaljnije ispitivanje.

tcpdump -c 1 -X icmp

Sažetak

Ovdje su za ponijeti.

  1. tcpdump je vrijedan alat za sve koji žele ući u umrežavanje ili .
  2. Sirovi način na koji se povezuje s prometom, u kombinaciji s preciznošću koju nudi u provjeravanju paketa čine ga najboljim mogućim alatom za učenje TCP/IP-a.
  3. Analizatori protokola kao što je Wireshark su sjajni, ali ako želite uistinu svladati paket-fu, prvo morate postati jedno s tcpdumpom.

Pa, ovaj bi vas početnik trebao osnažiti, ali man stranica bi uvijek trebala biti pri ruci za najnaprednije i jednokratne scenarije upotrebe. Iskreno se nadam da vam je ovo bilo korisno i budite slobodni ako imate bilo kakvih pitanja.

bilješke

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

ZAŠTO TCPDUMP?

Tcpdump je vrhunski alat za analizu mreže za sigurnosne profesionalce. Za one koji žele potpuno razumjeti TCP/IP, imperativ je dovoljno razumjeti ovu važnu aplikaciju. Mnogi ljudi radije koriste alate više razine poput Wiresharka, ali mislim da je to pogreška.

Kada koristite alat koji prikazuje mrežni promet na prirodniji (jednostavniji) način, složenost analize pada izravno na osobu, a ne na aplikaciju. Ovaj pristup razvija razumijevanje TCP/IP paketa, zbog čega toplo preporučujem korištenje tcpdump umjesto drugih alata kad god je to moguće.

15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, pomak 0, zastavice , proto: TCP(6), duljina: 60) izvor.35970 > odredište.80: S, cksum 0x0ac1 (točno), 2264 2647022145 (0) Win 5840 0x0000: 4500 003C 4F14 4006 7417 0257 E .. 0x0010: 4815 222A 8C82 00550 5A41 0000 0000 H. "... P..ZA .... 05b4 0402 080a ................ 0x0030: 14b4 1555 0000 0000 0103 0302

OSNOVE

Ispod je nekoliko opcija koje možete koristiti prilikom konfiguriranja tcpdump. Lako ih je zaboraviti i/ili zamijeniti s drugim vrstama filtara poput Wiresharka, tako da vam ova stranica može poslužiti kao referenca. Evo glavnih koje i sama volim imati na umu, ovisno o tome što gledam.

OPCIJE

  • -i bilo koji: slušajte na svim sučeljima da vidite vidite li promet.
  • -i eth0: slušanje na sučelju eth0.
  • -D: Prikaži popis dostupnih sučelja
  • -n: Prikaži IP adrese umjesto imena hostova.
  • -nn: Prikaz IP adresa i brojeva portova umjesto imena hostova i naziva protokola.
  • -q: Prikazuje minimalnu količinu informacija o paketu.
  • -t: Ne prikazuj vremensku oznaku na svakom retku.
  • -tttt: Određuje da se vremenske oznake izlaze u zadanom formatu za svaki redak.
  • -X: Prikaži sadržaj paketa u heksadecimalnom i ASCII formatu.
  • -XX: Isto kao -X, ali također pokazuje zaglavlje Etherneta.
  • -v, -vv, -vvv: povećati količinu vraćenih informacija o paketu.
  • -c: dobiti samo x broj paketa i zatim zaustaviti.
  • -s: Odredite duljinu (veličinu) snimanja u bajtovima. Koristite -s0 da dobijete sve, osim ako namjerno ne zgrabite manje.
  • -S: Ispis apsolutnih brojeva u nizu.
  • -e: Nabavite zaglavlje Etherneta.
  • -q: Prikaži minimalne informacije o paketu.
  • -E: Dešifrirajte IPSEC promet davanjem ključa za šifriranje.
[Vrijednost snaplength, zadana vrijednost za tcpdump 4.0, promijenila se sa 68 bajtova na 96 bajtova. Iako će vam to dati više informacija o paketu, to neće biti sve informacije. Koristite -s1514 ili -s0 da biste dobili potpunu pokrivenost]

IZRAZI

U tcpdumpu izrazi vam omogućuju da skratite različite vrste prometa i pronađete točno ono što tražite. Ovladavanje izrazima i njihovo kreativno kombiniranje ono je što tcpdump čini uistinu moćnim.

Postoje tri glavne vrste izraza: tip, dir i proto.

Vrste opcija: host, mreža i port.

Imenici vam omogućuju src, dst i njihove kombinacije.

Protokol vam omogućuje da definirate: tcp, udp, icmp, ah i još mnogo toga.

PRIMJERI

Dakle, sada kada smo vidjeli koje mogućnosti imamo, pogledajmo neke primjere iz stvarnog svijeta koje ćemo vjerojatno vidjeti u našem svakodnevnom radu.

GLAVNA PORUKA

Samo pogledajte što se događa gledajući sva sučelja.

# tcpdump -i bilo koji

SPECIFIČNO SUČELJE

Osnovni pogled na ono što se događa na određenom sučelju.

# tcpdump -i eth0

PREDSTAVLJAMO SIROVI IZLAZ

Opširni izlaz bez razrješavanja imena hosta ili brojeva portova, apsolutnih brojeva sekvence i čovjeku čitljivih vremenskih oznaka.

# tcpdump -ttttnnvvS

PRONAĐITE PROMET PO IP-u

Jedan od najčešćih upita, ovo će vam pokazati promet iz 1.2.3.4, bilo da je to izvor ili odredište.

# tcpdump host 1.2.3.4

POGLEDAJTE VIŠE INFORMACIJA O HEX PAKETU

Heksadecimalni izlaz je koristan kada želite vidjeti sadržaj dotičnih paketa, a često se najbolje koristi kada izolirate više kandidata za detaljnije ispitivanje.

# tcpdump -nnvXSs 0 -c1 icmp tcpdump: slušanje na eth0, tip veze EN10MB (Ethernet), 23:11:10.370321 IP (tos 0x20, ttl 48, id 34859, pomak 0, 4, 2, 4, 4, 2, 2, 2. > 72.21.34.42: icmp 64: echo request seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..+: 0x081 . 50"..%..D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^............... 0x0030: 1415 1617 1819 1a1b 1c1d 02 .1 .1 ........!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&"()*+,-./0123 0x0050: 3435 3637 4567 1 paket primljenih paketa filtera 0 paketa po kernelu

FILTERIRANJE PREMA IZVORU I ODREDIŠTU

Izdvajanje prometa na temelju izvora ili odredišta vrlo je jednostavno pomoću src i dst.

# tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6

PRETRAŽITE PAKETE PREKO MREŽE

Za pronalaženje paketa do ili iz određene mreže, koristite opciju net. Ovo možete kombinirati s opcijama src ili dst.

# tcpdump net 1.2.3.0/24

PRIKAŽI PROMET POVEZAN S POSEBNOM LUKOM

Možete pronaći određeni prometni priključak pomoću opcije porta nakon koje slijedi broj priključka.

# tcpdump port 3389 tcpdump src port 1025

PRIKAŽI PROMET JEDNOG PROTOKOLA

Ako tražite određenu vrstu prometa, možete koristiti tcp, udp, icmp i mnoge druge.

# tcpdump icmp

PRIKAŽI SAMO IP6 PROMET

Također možete pronaći sav IP6 promet pomoću opcije protokola.

PRONAĐITE PROMET KORIŠTENJEM LUČKIH OPSEGA

Također možete koristiti raspon portova za pronalaženje prometa.

# tcpdump portrange 21-23

PRONAĐITE PROMET NA TEMELJU VELIČINE PAKETA

Ako tražite pakete određene veličine, možete koristiti ove opcije. Možete koristiti male, velike ili bilo koje simbole koje očekujete od matematike.

# tcpdump manji od 32 tcpdump veći od 64 tcpdump<= 128

PISANI ZAPISI U DATOTEKU

Često je korisno spremiti izlaz serija u datoteku za kasniju analizu. Te su datoteke poznate kao PCAP (PEE-cap) datoteke i mogu ih obraditi stotine različitih aplikacija, uključujući mrežne analizatore, sustave za otkrivanje upada i naravno sam tcpdump. Ovdje pišemo datoteku pod nazivom capture_file pomoću prekidača -w.

# tcpdump port 80 -w capture_file

ČITANJE PCAP DATOTEKA

Možete čitati PCAP datoteke s prekidačem -r. Imajte na umu da možete koristiti sve uobičajene naredbe u tcpdumpu kada čitate datoteku; ograničeni ste samo činjenicom da ne možete uhvatiti i obraditi nešto što ne postoji u datoteci.

# tcpdump -r datoteka_hvatanja

NAPREDNA

Sada kada smo vidjeli što možemo učiniti s osnovama s nekim primjerima, pogledajmo neke naprednije stvari.

SVE JE O KOMBINACIJAMA

Učiniti ove različite stvari individualnim je moćno, ali prava čarolija tcpdump proizlazi iz mogućnosti kombiniranja opcija na kreativne načine kako biste izolirali točno ono što tražite. Postoje tri načina za izradu kombinacija, a ako ste uopće studirali programiranje, bit će vam itekako poznati.

I
i ili &&

ILI
ili ili ||

OSIM
ne ili!

Evo nekoliko primjera kombiniranih naredbi.

SA ODREĐENOG IP-a I DODJELJENO NA ODREĐENU LUKU

Pronađimo sav promet od 10.5.2.3 do bilo kojeg hosta na portu 3389.

Tcpdump -nnvvS src 10.5.2.3 i dst port 3389

S JEDNE MREŽE U DRUGU

Pogledajmo sav promet koji dolazi s 192.168.x.x i kreće se prema mrežama 10.x ili 172.16.x.x i prikazat ćemo heksadecimalni izlaz bez imena hosta i jednu razinu dodatnih detalja.

Tcpdump -nvX src net 192.168.0.0/16 i dst net 10.0.0.0/8 ili 172.16.0.0/16

NE-ICMP PROMET IDE NA ODREĐENI IP

Ovo će nam pokazati sav promet koji ide na 192.168.0.2 koji nije ICMP.

tcpdump dst 192.168.0.2 i src net a ne icmp

PROMET OD HOST-a KOJI NIJE U ODREĐENOJ LUCI

Ovo će nam pokazati sav promet s hosta koji nije SSH promet (pod pretpostavkom da se koristi zadani port).

Tcpdump -vv src mars a ne dst port 22

Kao što vidite, možete kreirati upite kako biste pronašli gotovo sve što vam je potrebno. Ključno je prvo definirati točno ono što tražite, a zatim izraditi sintaksu za izolaciju specifične vrste prometa.

Složeno grupiranje i posebni znakovi

Također imajte na umu da kada kreirate složene upite, možda ćete morati grupirati svoje parametre pomoću pojedinačnih navodnika. Jednostruki navodniki se koriste da se tcpdumpu kaže da zanemari neke posebne znakove - u ovom slučaju, onaj u zagradama "()". Ista metoda može se koristiti za grupiranje pomoću drugih izraza kao što su host, port, mreža itd. Pogledajte donju naredbu.

# Promet koji je iz 10.0.2.4 I namijenjen portovima 3389 ili 22 (pogrešan) tcpdump src 10.0.2.4 i (dst port 3389 ili 22)

Ako ste nekom drugom prilikom pokušali pokrenuti ovu vrlo korisnu naredbu, dobit ćete pogrešku u zagradi. To možete popraviti izbjegavanjem zagrada (prefiksom svake s \) ili stavljanjem cijele naredbe u jednostruke navodnike:

# Promet koji je iz 10.0.2.4 I namijenjen portovima 3389 ili 22 (ispravno) # tcpdump "src 10.0.2.4 i (dst port 3389 ili 22)"

Izolirajte specifične TCP zastavice

Također možete uhvatiti promet na temelju određenih TCP zastavica.

[NAPOMENA: Filtri u nastavku pronalaze te razne pakete jer tcp primjećuje pomak 13 u TCP zaglavlju, broj predstavlja lokaciju u bajtu, eh! = 0 znači da je ova zastavica postavljena na 1, tj. uključeno je. ]

Prikaži sve HITNE (URG) pakete...

# tcpdump "tcp & 32!=0"

Prikaži sve ACKNOWLEDGE pakete (ACK)…

# tcpdump "tcp & 16!=0"

Prikaži sve PUSH pakete (PSH)…

# tcpdump "tcp & 8!=0"

Prikaži sve RESET pakete (RST)...

# tcpdump "tcp & 4!=0"

Prikaži sve SYNCHRONIZE pakete (SYN) ...

# tcpdump "tcp & 2!=0"

Prikaži sve FINISH (FIN) pakete...

# tcpdump "tcp & 1!=0"

Prikaži sve SYNCHRONIZE / ACKNOWLEDGE pakete (SYNACK)…

# tcpdump "tcp=18" [Napomena: samo PSH, RST, SYN i FIN zastavica prikazana je u izlazu polja tcpdump. URG i ACK su prikazani, ali su prikazani drugdje u izlazu osim u polju zastavice. ]

Međutim, kao i kod najmoćnijih alata, postoji mnogo načina da učinite ono što trebate. Sljedeći primjer pokazuje još jedan način za hvatanje paketa s određenim TCP skupovima zastavica.

# tcpdump "tcp == tcp-syn"

Uklonite RST zastavice s opcijom tcpflags...

# tcpdump "tcp == tcp-rst"

Ukloni FIN zastavice pomoću tcpflags...

# tcpdump "tcp == tcp-fin" [Napomena: ista metoda se može koristiti za druge zastavice; izostavljeni su u interesu uštede prostora. ]

Identificiranje prometa vrijednog pažnje

Konačno, postoji nekoliko brzih recepata koje ćete htjeti zapamtiti kako biste uhvatili specifičan i specijalizirani promet, kao što su loši/vjerojatno zlonamjerni paketi.

PAKETI S REDOVIM RST I SYN KOMPLETIMA (OVO NE BI TREBALO)

# tcpdump "tcp=6"

PRONAĐITE HTTP OBIČAN TEKST I DOBITE ZAHTJEV

# tcpdump "tcp=0x47455420"

PRONAĐITE SSH VEZE NA BILO KOJOJ LUCI (KROZ BANNER)

# tcpdump "tcp[(tcp>>2:4] = 0x5353482D"

PAKETI S TTL MANJEM OD 10 (OPĆENITO PRIKAŽUJ PROBLEM ILI KORISTITE TRACEROUTE)

# tcpdump "ip< 10"

EVIL BIT PAKETI

# tcpdump "ip & 128 != 0"

Zaključak

tcpdump je vrijedan alat za svakoga tko se želi baviti mrežnom ili informacijskom sigurnošću.
Neobičan način na koji komunicira s prometom, u kombinaciji s preciznošću koju pruža u pregledu paketa, čini ga najboljim alatom za učenje o TCP/IP-u.
Analizatori protokola kao što je Wireshark su odlični, ali ako želite stvarno svladati pakete, prvo morate svladati tcpdump.
Sve u svemu, ovaj vodič bi vam trebao pomoći da postanete jaki, ali man stranica bi uvijek trebala biti pri ruci za najnaprednije i jednokratne slučajeve. Iskreno se nadam da vam je ovo bilo od pomoći i slobodno me kontaktirajte ako imate bilo kakvih pitanja.

  • Nudimo provjereni program i tutorial od stručnjaka iz Cisco Networking Academy i Linux Professional Institute, certificiranih instruktora i osobnog tutora.
  • Pomoći ćemo pri zapošljavanju i stvaranju karijere. 100% naših diplomanata je zaposleno.
  • Kako ide trening?

    • Održavamo večernja online predavanja na našoj platformi ili studiramo s punim radnim vremenom u uredu u Kijevu.
    • Pitat ćemo vas za prikladno vrijeme za vježbanje i prilagođavanje: razumijemo da nema dovoljno vremena za učenje.
    • Ako želite individualni raspored, raspravit ćemo ga i provesti.
    • Postavit ćemo jasne rokove za samoorganizaciju. Osobni kustos će Vam biti u kontaktu da odgovori na pitanja, da Vas savjetuje i motivira da se pridržavate rokova za polaganje ispita.

    Također ćemo vam pomoći: