Analiza yota Internet folosind tcpdump. Tcpdump este un tutorial util cu exemple. Intrări scrise în dosar

Destul de des în administrarea sistemului apar situații pentru care este necesar să vedeți o „imagine” detaliată a ceea ce se întâmplă cu transferul de date prin rețea. Utilitarele de analiză de pachete vă permit să monitorizați traficul și să identificați problemele în astfel de cazuri. Unul dintre acestea (și cel mai comun) este tcpdump, un analizor standard de pachete pentru sistemele Linux.

Pe lângă tcpdump, există și alte instrumente pentru analiza traficului de rețea, de exemplu, Wireshark și Tshark, care sunt versiuni îmbunătățite ale tcpdump, dar utilitarul tcpdump rămâne standard și încă eficient. Cu ajutorul acestuia, puteți intercepta, filtra după anumite criterii și, de asemenea, puteți afișa pachete. Trebuie remarcat faptul că pentru acces complet la pachete, trebuie să rulați tcpdump ca superutilizator, deoarece pachetele în sine sunt obiecte de sistem de nivel scăzut. În plus, există anumite condiții, în funcție de echipamentul de rețea, care permit (sau nu permit) interceptarea tuturor sau numai a anumitor pachete sau furnizarea doar a anumitor informații despre acestea. Echipamentele de rețea (placă de rețea, router etc.) trebuie să suporte/permite accesul la pachete, adică să aibă (sau să ofere) un mecanism de transmitere a informațiilor despre pachete la un nivel software superior și în acest caz tcpdump, precum și alți analizoare de pachete se rotesc. a fi cel mai eficient. Apropo, interfețele hardware, dacă funcționează în modul „promiscuous”, adică în așa-numitul mod „promiscuous”, permit nucleului sistemului să „vadă” toate pachetele, adică chiar și cele care sunt adresate altor computere și dispozitive.

Cum funcționează tcpdump

După cum sa menționat deja, tcpdump este un utilitar standard pentru analiza traficului de rețea în distribuțiile Linux. Autorul utilitarului este Van Jacobson. Pe întreaga perioadă de utilizare, tcpdump s-a dovedit a fi un instrument foarte eficient și de încredere. Prin urmare, în prezent, mulți analogi folosesc formatul tcpdump - libcap ca format principal de fișier pentru citirea/scrierea rezultatelor urmăririi traficului.

Când rulează, tcpdump caută automat interfețele de rețea și o folosește pe prima găsită pentru analiză. Prin urmare, trebuie să acordați atenție rezultatelor pentru a vă asigura că interfața corectă este analizată. În caz contrar, este ușor să setați manual interfața dorită pentru a fi utilizată. Utilitarul poate funcționa într-un mod care este foarte util atunci când serviciul DNS este inoperant sau prea lent, adică atunci când există riscul ca pachetele să se piardă înainte ca tcpdump să le poată analiza.

opțiunile tcpdump

Pentru a specifica interfața de rețea dorită, utilizați opțiunea -i. Dacă trebuie să cunoașteți adresele dispozitivelor (calculatoare, echipamente), atunci trebuie să specificați opțiunea -n. Acest lucru este, de asemenea, foarte util pentru problemele DNS. Opțiunea -r vă permite să citiți informații despre pachet dintr-un fișier. Când sunt necesare informații mai detaliate despre pachete, opțiunea -v va ajuta. Există, de asemenea, o opțiune -w pentru a captura informații într-un fișier. Trebuie remarcat faptul că atunci când utilizați opțiunea -w, în fișier sunt scrise doar informațiile din antetul pachetului. Opțiunea -s cu o valoare de 1056 (deși această valoare depinde de dimensiunea pachetului MTU) permite (împreună cu -w) să scrieți informații suplimentare în fișier. Volumele de date pot fi foarte mari și complexe ca structură (în ciuda faptului că este text) și, prin urmare, în viitor se recomandă utilizarea utilităților adecvate de înaltă performanță, de exemplu, pentru a le procesa.

Formatul comenzii tcpdump este următorul:

tcpdump[-opțiuni] [filtre]

În documentația oficială (comanda man tcpdump) puteți găsi mai multe exemple de utilizare a acestui utilitar pentru diferite cazuri folosind filtre destul de diverse și complexe.

De asemenea, este important de reținut că tcpdump (și într-adevăr toți analizoarele de pachete) în timpul funcționării lor poate genera cantități uriașe de informații și poate încărca foarte mult rețeaua, până la defecțiuni în funcționarea acesteia. Prin urmare, atunci când analizați traficul, ar trebui să utilizați o abordare rațională - în funcție de situația și condițiile sarcinii (sau problemei), utilizați filtre, mai ales că aceasta este o parte foarte eficientă a funcționalității tcpdump.

Cele mai frecvent utilizate comutatoare la rularea tcpdump sunt prezentate în tabel

cheie

Descriere

Convertește adresele de rețea și de difuzare în nume de domenii.

Afișează datele din stratul de legătură (adresă MAC, protocol, lungimea pachetului). Pe lângă adresele IP, vor fi afișate adresele MAC ale computerelor.

Utilizați filtrul aflat în fișier. Dacă utilizați această opțiune, filtrul de linie de comandă va fi ignorat.

Indică ce interfață de rețea va fi utilizată pentru a captura pachete. Valoarea implicită este eth0, pentru a selecta toate interfețele - oricare. Dacă nu există o rețea locală, puteți utiliza interfața de feedback lo.

Utilizați ieșirea de streaming standard a tcpdump (stdout), de exemplu pentru a scrie într-un fișier:

shell# tcpdump -l | tee out.log //va afișa operația tcpdump și va salva rezultatul în fișierul out.log

Nu adaugă o extensie de domeniu la numele gazdei. De exemplu, tcpdump va afișa „net” în loc de „net.library.org”

Afișează adresa IP în loc de numele gazdei.

Afișează numărul portului în locul protocolului pe care îl folosește.

Nu pune interfața în modul promiscuu.

Afișează un minim de informații. De obicei, acesta este numele protocolului, de unde venea pachetul de la și către, porturile și cantitatea de date transferate.

Această opțiune permite tcpdump să citească traficul dintr-un fișier dacă acesta a fost salvat anterior cu opțiunea -w.

Vă permite să evitați procesarea numerelor de secvență absolute (numărul de ordine inițial - ISN) în numere relative.

Numărul de octeți de pachet pe care tcpdump îi va procesa. Dacă setați un număr mare de octeți de afișare, este posibil ca informațiile să nu încapă pe ecran și să fie dificil de studiat. În funcție de obiectivele pe care le urmăriți, ar trebui să alegeți valoarea acestui parametru. În mod implicit, tcpdump captează primii 68 de octeți (minimumul SunOS este de 96 de octeți), dar dacă doriți să vedeți conținutul întregului pachet, utilizați o valoare de 1514 de octeți (dimensiunea maximă permisă a cadrului pe o rețea Ethernet).

Nu afișează un marcaj de timp pe fiecare linie.

Interpretarea pachetelor de un anumit tip. Tipurile acceptate sunt aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb.

Afișează un marcaj temporal neformatat pe fiecare linie.

Afișează ora împreună cu data.

Afișează informații detaliate (TTL; ID; lungimea totală a antetului, precum și parametrii acestuia; verifică sumele de control ale antetelor IP și ICMP)

Ieșirea unor informații și mai complete se referă în principal la NFS și SMB.

Afișează cele mai detaliate informații.

Stochează datele tcpdump în format binar. Avantajele utilizării acestei metode în comparație cu redirecționarea convențională către un fișier sunt viteza mare de scriere și capacitatea de a citi date similare de către alte programe, cum ar fi snort, dar acest fișier nu poate fi citit de oameni. Este posibil să scoateți date binare în consolă, pentru aceasta trebuie să utilizați -w -

Realizează o imprimare a pachetului în hexazecimal, utilă pentru o analiză mai detaliată a pachetului. Cantitatea de date afișată depinde de parametrul -s

-X, dar include un antet pentru stratul de legătură

Emite pachetul în format ASCII și hex. Util atunci când analizați un incident de hacking, deoarece vă permite să vizualizați ce informații text au fost transmise în timpul conexiunii.

La fel ca și opțiunea anterioară -X, dar include un antet pentru stratul de legătură.

tcpdump va ieși după primirea numărului specificat de pachete.

Pachetele colectate vor fi adăugate imediat la un fișier, altfel acumulate în memorie până când se epuizează

filtre tcpdump

Filtrele sunt împărțite în următoarele clasificări

gazdă— adresa nodului de rețea

port– portul pe care trebuie să prindeți pachetele

portrange intervalul de porturi

net- net

Tcpdump net 192.168.0.0/24

captarea întregului trafic în care sursa sau destinația sunt adrese IP din rețea 192.168.0.0/24

Tcpdump portul 80

Tot traficul de pe portul 80 va fi captat.

Direcția circulației în raport cu obiectul de monitorizare

src- expeditor

dst- destinatar

de exemplu comanda

Src gazdă 172.31.25.200

Captarea traficului a cărui adresă IP a expeditorului este 172.31.25.200

Protocol

eter– tehnologia de bază a rețelei Ethernet, de regulă, indică faptul că filtrul folosește o adresă MAC hardware

ip– protocol IPv4

ip6- Protocolul IPv6

arp– Protocolul ARP

tcp– Protocolul TCP

udp– Protocolul UDP

Dacă protocolul nu este specificat, atunci traficul pentru toate protocoalele va fi capturat

De exemplu comanda

Portul Udp 5060

captarea traficului prin portul UDP 5060

Filtre compozite

Pentru a filtra traficul mai flexibil, puteți utiliza operațiuni logice

"Si si (&&)

„SAU” – sau (||)

„NU” – nu (!) – inversarea valorii

Prioritatea acestor operațiuni este următoarea:

operația de inversare are cea mai mare prioritate

apoi „ȘI” logic

Operația SAU are cea mai mică prioritate.

Prioritatea operațiunilor poate fi modificată folosind paranteze.

(net 172.16.0.0/24 sau gazdă 172.31.0.5) și portul tcp 80

captarea traficului protocolului TCP folosind portul 80 aparținând rețelei 172.16.0.0/24 sau gazdei 172.31.0.5, fie către orice gazdă individual, fie împreună

(net 172.16.0.0/24 || gazdă 172.31.0.5) && nu portul tcp 80

captarea oricărui trafic, cu excepția traficului protocolului TCP și folosind portul 80 aparținând rețelei 172.16.0.0/24 sau gazdei 172.31.0.5, fie către orice gazdă individual, fie împreună

exemple de tcpdump linux

Scrierea rezultatului într-un fișier

$ sudo tcpdump -w sshtrace.tcpdump tcp portul 22

Fișierul sshtrace.tcpdump va fi creat implicit în directorul principal al utilizatorului curent. Pentru a scoate informații din fișierul myrouter.tcpdump, utilizați opțiunea -r:

$ tcpdump -r sshtrace.tcpdump

Eliminați tot traficul de pe interfața eth1

$ tcpdump –i eth1

Eliminați traficul dintr-o serie de porturi de pe interfața eth1

$ tcpdump -i eth1 portrange 100-200

tot traficul merge la 172.16.0.1 care nu este ICMP.

Tcpdump este un analizor de rețea extrem de convenabil, care este foarte util atât pentru administratorii de rețea, cât și pentru profesioniștii în securitate. Desigur, pentru a obține maximum de informații atunci când lucrați cu tcpdump, trebuie pur și simplu să înțelegeți stiva de protocoale TCP/IP. Pentru comoditate, puteți utiliza programe mai convenabile și mai inteligente, de exemplu, dar adesea apar situații când nu este posibil să instalați servicii suplimentare pe mașina testată, iar apoi tcpdump este pur și simplu de neînlocuit, deoarece administratorul, de dragul analizei pachete, nu dorește să instaleze X- pe un server Unix Windows, mai ales că în majoritatea sistemelor Unix, utilitarul tcpdump este instalat implicit.

Înțelegerea protocolului TCP/IP oferă o gamă largă de utilizare a analizorului și depanare a problemelor și problemelor de rețea prin analizarea pachetelor. Deoarece utilizarea optimă a acestui utilitar necesită o bună înțelegere a protocoalelor de rețea și a funcționării acestora, aceasta creează o situație amuzantă în care inginerul, în orice caz, trebuie să cunoască și să înțeleagă mecanismele de transfer de date în rețea. incl. tcpdump este util în toate privințele: atât depanare, cât și autoeducare.

Mai jos sunt câteva opțiuni care vă vor ajuta să utilizați acest utilitar mai complet și mai detaliat, mai ales că toate aceste casete și chei sunt destul de ușor uitate, iar aceste exemple sunt foarte utile pentru a vă reîmprospăta memoria.

Prima cheie folosită este -n, care interzice încercările de a converti adrese în nume de domenii, oferindu-ne astfel adrese IP curate cu porturi.

Al doilea este -X care specifică pentru fiecare pachet să scoată atât conținutul hex, cât și ASCII al pachetului.
Și ultima opțiune este -S care înlocuiește ieșirea numerotării relative TCP cu una absolută. Ideea este că, cu numerotarea relativă, unele probleme pot fi ascunse atenției tale.

Trebuie să înțelegeți că principalul avantaj al tcpdump față de alte utilitare este că permite analiza detaliată și manuală a pachetelor. De asemenea, trebuie să rețineți că, în mod implicit, tcpdump utilizează numai primii 68 de octeți ai pachetului, inclusiv. dacă trebuie să vedeți mai multe, atunci ar trebui să utilizați comutatorul de număr -s, unde numărul este numărul de octeți care ar trebui capturați. Dacă este specificat numărul 0, pachetul va fi complet capturat, deci este mai bine să folosiți valoarea 1514, care va captura complet pachetul standard pentru rețelele Ethernet.

Lista tastelor cele mai frecvent utilizate:
-c: verifică dimensiunea fișierului de captură înainte de fiecare înregistrare următoare a pachetului capturat, dacă dimensiunea este mai mare, atunci fișierul este salvat și înregistrarea trece într-un fișier nou;
-e: Imprimați antetul Ethernet (stratul de legătură) în fiecare linie de descărcare
-i orice: ascultați pe toate interfețele, în cazul în care aveți nevoie de tot traficul.
-n: dezactivează rezoluția adreselor la nume de domeniu sau simbolice
-nn: dezactivează rezoluția adreselor și a porturilor la nume de domeniu sau simbolice
-q: Ieșire concisă a informațiilor prin reducerea producției de informații de protocol.
-X: Imprimați atât conținutul hex cât și ASCII al pachetului
-v, -vv, -vvv: Specifică ieșirea informațiilor suplimentare despre pachetele capturate, care permite o analiză mai largă.
Câteva exemple de folosit:

# Ieșire standard de pachete
tcpdump -nS
# Ieșire standard extinsă
tcpdump -nnvvS
# Analiza profundă a unui pachet
tcpdump -nnvvXS
# Cele mai detaliate informații despre trafic
tcpdump -nnvvXSs 1514

Expresiile vă permit să efectuați o scanare mai direcționată și să specificați tipurile de trafic. Abilitatea de a folosi expresii face din tcpdump un instrument foarte productiv în mâinile unui administrator de sistem. Există trei tipuri principale de expresii: type, dir și proto.
Opțiunile pentru expresia tip sunt gazdă, net și port.
Pentru a exprima direcția specificată de dir, opțiunile existente sunt src, dst, src sau dst și src și dst.
Câteva expresii standard:

gazdă // analizează traficul pe baza adresei IP (funcționează și cu nume simbolice dacă nu este specificat -n)
gazdă tcpdump 1.2.3.4

src, dst // analizează traficul numai pentru o anumită destinație sau transmițător
tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6

net // captează trafic aparținând unei anumite rețele
tcpdump net 1.2.3.0/24

proto // funcționează cu tcp, udp și icmp. Trebuie amintit că proto nu este menționat
tcpdump icmp

port // analizează traficul dintr-un anumit port (de intrare sau de ieșire)
portul tcpdump 3389

src, dst port // filtru pe baza portului de intrare sau de ieșire
tcpdump src portul 1025
tcpdump dst portul 3389

Dar cel mai puternic instrument sunt operanzii, care vă permit să setați condiții pentru expresii și opțiuni pentru izolarea mai detaliată a informațiilor despre traficul analizat.

ȘI
și sau &&
SAU
sau sau ||
CU EXCEPTIA
nu sau!

Trafic TCP de la resursa 10.15.123.33 cu portul de destinație 3379:

# tcpdump -nnvvS tcp și src 10.15.123.33 și portul dst 3379

Trafic care se deplasează din rețeaua 192.168 cu destinație pe rețelele 10 sau 172.16:

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

Trafic non-ICMP către destinația 192.168.0.2 și de la rețeaua 172.16:

# tcpdump -nvvXSs 1514 dst 192.168.0.2 și src net 172.16.0.0/16 și nu icmp

Trafic de la gazdele Eros sau Ares, dar nu merge la portul SSH standard (rezolvarea numelui este necesară pentru această expresie):

# tcpdump -vv src eros sau are și nu dst port 22

După cum se poate vedea din exemplele date, putem construi orice expresii pentru orice scop. De asemenea, folosind o sintaxă complexă, putem exclude orice tip de trafic din analiză.

De asemenea, ar trebui să ne amintim că putem construi interogări care includ grupuri și grupuri de opțiuni specificate într-o singură interogare. Dar pentru ca utilitarul tcpdump să le acorde atenție, acestea trebuie să fie plasate între paranteze, luând expresia între ghilimele simple:
Trafic care vine de la gazda 10.0.2.4 către porturile de destinație 3379 sau 22:
# tcpdump „src 10.0.2.4 și (dst port 3379 sau 22)”

De asemenea, este posibilă filtrarea pe baza indicatorilor TCP, de exemplu pentru a izola pachetele SYN sau RST:

Analizați toate pachetele URG:
# tcpdump ‘tcp & 32 != 0′

Analizați toate pachetele ACK:
# tcpdump ‘tcp & 16 != 0′

Analizați toate pachetele PSH:
# tcpdump ‘tcp & 8 != 0′

Analizați toate pachetele RST:
# tcpdump ‘tcp & 4 != 0′

Analizați toate pachetele SYN:
# tcpdump ‘tcp & 2 != 0′

DE CE TCPDUMP?

Tcpdump este instrumentul principal de analiză a rețelei pentru profesioniștii în securitatea informațiilor. Pentru cei care doresc să obțină o înțelegere completă a TCP/IP, este imperativ să aibă o înțelegere suficientă a acestei aplicații importante. Mulți oameni preferă să folosească instrumente de nivel superior precum Wireshark, dar cred că aceasta este o greșeală.

Când utilizați un instrument care afișează traficul de rețea într-un mod mai natural (simplu), complexitatea analizei cade direct asupra persoanei, mai degrabă decât asupra aplicației. Această abordare dezvoltă o înțelegere a suitei TCP/IP, motiv pentru care recomand cu căldură să utilizați tcpdump în locul altor instrumente ori de câte ori este posibil.

15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, offset 0, steaguri , proto: TCP (6), lungime: 60) sursă.35970 > dest.80: S, cksum 0x0ac1 (corect), 2645:2645:2 2647022145(0) câștig 5840 0x0000: 4500 003c 4f14 4006 7417 0afb 0257 E.. 0x0010: 4815 222a 8c82 0050 50.. 0050 0257 E.. .0x0020: a002 16d0 0ac1 0000 0204 05b4 0402 080a................0x0030: 14b4 1555 0000 0000 0103 0302

BAZELE

Mai jos sunt câteva opțiuni pe care le puteți utiliza atunci când configurați tcpdump. Acestea pot fi ușor uitate și/sau confundate cu alte tipuri de filtre, cum ar fi Wireshark, astfel încât această pagină vă poate servi drept referință. Iată principalele pe care îmi place să le țin cont, în funcție de ceea ce văd.

OPȚIUNI

  • -i orice: ascultați toate interfețele pentru a vedea dacă vedeți trafic.
  • -i eth0: ascultați pe interfața eth0.
  • -D: Afișează lista interfețelor disponibile
  • -n: Afișează adrese IP în loc de nume de gazdă.
  • -nn: Afișează adresele IP și numerele de porturi în loc de numele gazdei și numele protocolului.
  • -q: Afișează cantitatea minimă de informații despre pachet.
  • -t: Nu afișați marcajul de timp pe fiecare linie.
  • -tttt: Setează ieșirea marcajelor de timp în formatul implicit pentru fiecare linie.
  • -X: Afișează conținutul pachetului atât în ​​format hex, cât și în ASCII.
  • -XX: La fel ca -X, dar arată și antetul Ethernet.
  • -v, -vv, -vvv: Mărește cantitatea de informații de pachet returnate.
  • -c: obțineți doar x număr de pachete și apoi opriți.
  • -s: Definiți lungimea (dimensiunea) capturii în octeți. Folosiți -s0 pentru a obține totul, cu excepția cazului în care ați apucat intenționat mai puțin.
  • -S: Tipăriți numere de ordine absolute.
  • -e: Obțineți antetul Ethernet.
  • -q: Afișează informații minime despre pachet.
  • -E: Decriptați traficul IPSEC prin furnizarea cheii de criptare.
[Snaplength implicită pentru tcpdump 4.0 s-a schimbat de la 68 de octeți la 96 de octeți. Deși acest lucru vă va permite să vedeți mai multe informații despre pachet, nu vor fi toate informațiile. Folosiți -s1514 sau -s0 pentru a obține o acoperire completă]

EXPRESII

În tcpdump, expresiile vă permit să reduceți diferite tipuri de trafic și să găsiți exact ceea ce căutați. Stăpânirea expresiilor și posibilitatea de a le combina în mod creativ este ceea ce face ca tcpdump să fie cu adevărat puternic.

Există trei tipuri principale de expresii: type, dir și proto.

Tipuri de opțiuni: gazdă, rețea și port.

Directoarele vă permit să faceți src, dst și combinații ale acestora.

Protocolul vă permite să definiți: tcp, udp, icmp, ah și multe altele.

EXEMPLE

Deci, acum că am văzut ce opțiuni avem, să ne uităm la câteva exemple din lumea reală pe care probabil le vom vedea în munca noastră de zi cu zi.

MESAJ CHEIE

Vezi doar ce se întâmplă uitându-te la toate interfețele.

# tcpdump -i orice

INTERFATA SPECIFICA

O înțelegere de bază a ceea ce se întâmplă pe o anumită interfață.

# tcpdump -i eth0

PREZENTAREA RAW OUTPUT

Ieșire explicită fără a rezolva numele de gazdă sau numerele de porturi, numerele de secvență absolute sau marcajele temporale care pot fi citite de om.

# tcpdump -ttttnnvvS

GĂSIȚI TRAFIC PE IP

Una dintre cele mai frecvente solicitări, aceasta vă va arăta traficul din 1.2.3.4, indiferent dacă este o sursă sau o destinație.

# gazdă tcpdump 1.2.3.4

VEZI MAI MULTE INFORMAȚII DESPRE PACHETUL DE IEȘIRE HEX

Ieșirea hexazecimală este utilă atunci când doriți să vedeți conținutul pachetelor în cauză și este adesea folosită cel mai bine atunci când izolați mai mulți candidați pentru o inspecție mai atentă.

# tcpdump -nnvXSs 0 -c1 icmp tcpdump: ascultare pe eth0, tip link EN10MB (Ethernet), 23:11:10.370321 IP (to 0x20, ttl 48, id 34859, offset 0, steaguri , lungime .63.245) . > 72.21.34.42: icmp 64: echo request seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..+ 0x02810: 0x0010: 202010 0000 25ff d744 H. "..50"....%..D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^.............. 0x0030: 1415 1617 1819 1a1b 1c1f 2220 ...e ..........!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&"()*+,-./0123 0x0050: 3435 3637 4567 1 pachete primite de filtru 0 pachete capturate pachetele aruncate de kernel

FILTRAREA DUPA SURSA SI DESTINATIE

Separarea traficului în funcție de sursă sau destinație este foarte simplă folosind src și dst.

# tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6

CĂUTAȚI PACHETE PRIN REȚEA

Pentru a găsi pachete care merg către sau de la o anumită rețea, utilizați opțiunea net. Puteți combina acest lucru cu opțiunile src sau dst.

# tcpdump net 1.2.3.0/24

SPECTACUL TRAFICULUI ASOCIAT CU UN PORT SPECIAL

Puteți găsi un anumit port de trafic utilizând opțiunea port urmată de numărul portului.

# tcpdump portul 3389 tcpdump src portul 1025

AFIȘAȚI TRAFICUL UNUI PROTOCOL

Dacă sunteți în căutarea unui anumit tip de trafic, puteți utiliza tcp, udp, icmp și multe altele.

# tcpdump icmp

AFIȚI NUMAI TRAFICUL IP6

De asemenea, puteți găsi tot traficul IP6 folosind opțiunea de protocol.

GĂSIȚI TRAFIC FOLOSIND BANDIILE PORTURILOR

De asemenea, puteți utiliza un interval de porturi pentru a găsi trafic.

# tcpdump portrange 21-23

GĂSIȚI TRAFIC PE BAZĂ DE DIMENSIUNEA PACHETULUI

Dacă sunteți în căutarea unor pachete de o anumită dimensiune, puteți utiliza aceste opțiuni. Puteți folosi simbolurile mici, mari sau respectivele lor, la care v-ați aștepta de la matematică.

# tcpdump mai puțin 32 tcpdump mai mare 64 tcpdump<= 128

INTRARI DOSAR SCRIS

Este adesea util să salvați rezultatul loturilor într-un fișier pentru analize viitoare. Aceste fișiere sunt cunoscute ca fișiere PCAP (PEE-cap) și pot fi procesate de sute de aplicații diferite, inclusiv analizoare de rețea, sisteme de detectare a intruziunilor și, desigur, tcpdump în sine. Aici scriem un fișier numit capture_file folosind comutatorul -w.

# tcpdump portul 80 -w fișier_captură

CITIREA FIȘIERELOR PCAP

Puteți citi fișierele PCAP utilizând comutatorul -r. Rețineți că puteți utiliza toate comenzile obișnuite din tcpdump atunci când citiți într-un fișier; sunteți limitat doar de faptul că nu puteți captura și procesa nimic care nu există în fișier.

# tcpdump -r capture_file

AVANSAT

Acum că am văzut ce putem face cu elementele de bază cu câteva exemple, să ne uităm la câteva lucruri mai avansate.

TOTUL ESTE DESPRE COMBINARI

A face aceste lucruri diferite individuale este o abilitate puternică, dar adevărata magie a tcpdump vine din capacitatea de a combina opțiuni în moduri creative pentru a izola exact ceea ce cauți. Există trei moduri de a face combinații și, dacă ați studiat deloc programarea, acestea vă vor fi foarte familiare.

ȘI
și sau &&

SAU
sau sau ||

CU EXCEPTIA
nu sau!

Iată câteva exemple de comenzi combinate.

DE LA UN IP SPECIFIT ȘI ATRIBUIT UNUI PORT SPECIF

Să găsim tot traficul de la 10.5.2.3 către orice gazdă de pe portul 3389.

Tcpdump -nnvvS src 10.5.2.3 și portul dst 3389

DE LA O REȚEA LA ALTA

Să ne uităm la tot traficul care vine de la 192.168.x.x și care merge către rețelele 10.x sau 172.16.x.x și vom afișa rezultatul hexazecimal fără numele de gazdă și un nivel de detalii suplimentare.

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

TRAFIC NON-ICMP MERGE LA O IP SPECIFĂ

Acest lucru ne va arăta tot traficul care merge la 192.168.0.2 care nu este ICMP.

Tcpdump dst 192.168.0.2 și src net și nu icmp

TRAFIC DE LA O GAZDĂ CARE NU ESTE ÎN UN PORT SPECIFIT

Acest lucru ne va arăta tot traficul de la gazdă care nu este trafic SSH (presupunând că este utilizat portul implicit).

Tcpdump -vv src mars și nu dst port 22

După cum puteți vedea, puteți crea interogări pentru a găsi aproape orice aveți nevoie. Cheia este să identificați mai întâi exact ceea ce căutați și apoi să construiți sintaxa pentru a izola tipul specific de trafic.

Grupare complexă și caractere speciale

De asemenea, rețineți că atunci când creați interogări complexe, poate fi necesar să vă grupați parametrii folosind ghilimele simple. Ghilimele simple sunt folosite pentru a-i spune lui tcpdump să ignore anumite caractere speciale - în acest caz, cel din parantezele „()”. Aceeași metodă poate fi folosită pentru a grupa folosind alte expresii, cum ar fi gazdă, port, rețea etc. Uită-te la comanda de mai jos.

# Trafic care este de la 10.0.2.4 ȘI destinat portului 3389 sau 22 (incorect) tcpdump src 10.0.2.4 și (portul dst 3389 sau 22)

Dacă ați încercat să rulați această comandă foarte utilă într-un alt caz, veți obține o eroare din cauza parantezelor. Puteți remedia acest lucru scăpând din paranteze (punând un \ în fața fiecăreia) sau punând întreaga comandă între ghilimele simple:

# Trafic care este de la 10.0.2.4 ȘI destinat portului 3389 sau 22 (corect) # tcpdump „src 10.0.2.4 și (dst port 3389 sau 22)”

Izolarea anumitor steaguri TCP

De asemenea, puteți captura trafic pe baza anumitor semnalizatoare TCP.

[NOTĂ: Filtrele de mai jos găsesc aceste pachete diferite, deoarece notificările tcp offset 13 în antetul TCP, numărul reprezintă locația octetului, ah! = 0 înseamnă că acest steag este setat la 1, adică este pornit. ]

Afișați toate pachetele URGENTE (URG)...

# tcpdump „tcp & 32!=0”

Afișați toate pachetele ACKNOWLEDGE (ACK)...

# tcpdump „tcp & 16!=0”

Afișați toate pachetele PUSH (PSH)...

# tcpdump „tcp & 8!=0”

Afișați toate pachetele RESET (RST)...

# tcpdump „tcp & 4!=0”

Afișați toate pachetele SYNCHRONIZE (SYN)...

# tcpdump „tcp & 2!=0”

Afișați toate pachetele FINISH (FIN)...

# tcpdump „tcp & 1!=0”

Afișați toate pachetele SINCRONIZARE / CUNOAȘTERE (SYNACK)...

# tcpdump "tcp=18" [Notă: numai steagurile PSH, RST, SYN și FIN apar în câmpul de ieșire tcpdump. URG și ACK sunt afișate, dar sunt afișate într-o locație diferită în ieșire decât în ​​câmpul steagurilor. ]

Cu toate acestea, ca și în cazul celor mai puternice instrumente, există multe modalități de a face ceea ce trebuie să faceți. Următorul exemplu arată o altă modalitate de a captura pachete cu seturi specifice de steaguri TCP.

# tcpdump "tcp == tcp-syn"

Ștergeți steagurile RST utilizând parametrul tcpflags...

# tcpdump "tcp == tcp-rst"

Ștergeți steaguri FIN folosind parametrul tcpflags...

# tcpdump "tcp == tcp-fin" [Notă: aceeași metodă poate fi folosită pentru alte steaguri; au fost omise în interesul spațiului. ]

Identificarea traficului demn de remarcat

În cele din urmă, există câteva rețete rapide de care veți dori să vă amintiți pentru a capta trafic specific și specializat, cum ar fi pachetele proaste/eventual rău intenționate.

PACHETE CU KITURI RST ȘI SYN OBLIGATE (ACSTA NU TREBUIE SĂ FIE)

# tcpdump „tcp = 6”

GĂSIȚI TEXTUL HTTP ȘI PRIMIȚI CERERE

# tcpdump „tcp = 0x47455420”

GĂSIȚI CONEXIUNI SSH LA ORICE PORT (PRIN BANNER)

# tcpdump „tcp[(tcp>>2):4] = 0x5353482D”

PACHETE CU TTL MAI MAI DE 10 (AFIȚĂ, DE obicei, PROBLEMA SAU UTILIZAȚI TRACEROUTE)

# tcpdump „ip< 10"

PACHETE DE INSTALARE EVIL BIT

# tcpdump „ip & 128 != 0”

Concluzie

tcpdump este un instrument valoros pentru oricine caută să intre în securitatea rețelei sau a informațiilor.
Modul neobișnuit în care interacționează cu traficul, combinat cu acuratețea pe care o oferă atunci când inspectează pachetele, îl face cel mai bun instrument pentru a învăța TCP/IP.
Analizatoarele de protocol precum Wireshark sunt grozave, dar dacă vrei să stăpânești cu adevărat pachetele, trebuie mai întâi să stăpânești tcpdump.
În general, acest tutorial ar trebui să vă ajute să deveniți puternic, dar pagina de manual ar trebui să fie întotdeauna prietenoasă pentru cele mai avansate și unice cazuri de utilizare. Sper din tot sufletul că acest lucru v-a fost de ajutor și nu ezitați să mă contactați dacă aveți întrebări.

  • Oferim un program și un manual dovedit de la experți de la Cisco Networking Academy și Linux Professional Institute, instructori certificați și un mentor personal.
  • Vă vom ajuta să găsiți un loc de muncă și să vă construiți o carieră. 100% dintre absolvenții noștri sunt angajați.
  • Cum merge antrenamentul?

    • Ținem prelegeri online de seară pe platforma noastră sau studiem personal la biroul din Kiev.
    • Vă vom întreba despre un moment convenabil pentru exersare și adaptare: înțelegem că există puțin timp pentru a studia.
    • Dacă doriți un program individual, îl vom discuta și îl vom implementa.
    • Vom stabili termene clare pentru autoorganizare. Un supervizor personal va contacta pentru a răspunde la întrebări, pentru a vă sfătui și pentru a vă motiva să respectați termenele limită pentru examen.

    De asemenea, vă vom ajuta:

    Prin urmare, am decis să-mi creez propria foaie de cheat, astfel încât să fie... Pentru că fără tcpdump, mai mult de un administrator este non-administrator

    Introducere

    Foarte des, pentru a găsi probleme în rețea, folosesc analizoare de trafic de rețea . tcpdump este unul dintre reprezentanții acestei clase de programe, vă permite să ascultați (afișați/salvați) și să analizați funcționarea rețelei la nivel de pachete de rețea transmise, cadre și alte unități de transmisie a traficului de rețea. În funcție de configurația rețelei, tcpdump poate asculta nu numai pachete destinate unei anumite adrese MAC, ci și pachete de difuzare. Interceptarea pachetelor de rețea se bazează pe modul „promiscuu”. funcționarea adaptorului de rețea.

    În funcție de echipamentul de rețea utilizat pentru conectarea computerelor la o rețea Ethernet, există următoarele: capabilități de ascultare a traficului:

    • Bazat online concentratoare tot traficul de la hub este disponibil pentru orice gazdă de rețea.
    • În rețele bazate întrerupătoare(comutatoare) gazda rețelei are acces numai la traficul său, precum și la tot traficul de difuzare a acestui segment.
    • Unele switch-uri gestionate au funcția de a copia traficul unui anumit port în portul de monitorizare („oglindire”, monitorizare port).
    • Când utilizați instrumente speciale (tapers) care sunt incluse într-o întrerupere a conexiunii la rețea și transmit traficul conexiunii către un port separat, este posibil să ascultați portul corespunzător.
    • „Smecheria” cu un hub este că portul switch-ului al cărui trafic trebuie ascultat este pornit prin hub, conectând și un nod de monitor la hub (în acest caz, în majoritatea cazurilor, performanța conexiunii la rețea este redus).

    Asa de, utilitarul tcpdump inclus în majoritatea distribuțiilor Unix și vă permite să interceptați și să afișați/salvați traficul de rețea într-un fișier. Utilitarul folosește biblioteca libpcap. Există și un port pentru Windows. Este necesar pentru ca utilitatea să funcționeze. De exemplu, pe Debian este instalat folosind comanda:

    Debian:~# apt-get install tcpdump

    Utilitățile sunt necesare pentru funcționare (deoarece setările interfeței de rețea sunt modificate - este comutat în modul „promiscuu”). În general formatul de comandă tcpdump are următoarea formă:

    Debian:~# tcpdump<опции> <фильтр>

    opțiunile utilitarului tcpdump

    -i interfață

    Specifică interfața din care ar trebui analizat traficul (fără a specifica interfața - analiza „primului care apare”).

    Dezactivează rezoluția IP la nume de domeniu. Dacă este specificat -nn, conversia numerelor de port în nume de protocol este interzisă.

    Opțiunile de filtrare cele mai frecvent utilizate pentru comanda tcpdump sunt:

    dst gazdă

    Verifică dacă adresa de destinație a unui pachet IP se potrivește cu valoarea specificată. Este posibil să setați atât IP-ul, subrețea în format 10.0.0.1/24, cât și numele gazdei.

    gazdă src

    Verifică dacă adresa sursă a unui pachet IP se potrivește cu valoarea specificată. Este posibil să setați atât IP-ul, subrețea în format 10.0.0.1/24, cât și numele gazdei.

    gazdă gazdă

    Verifică dacă adresa expeditorului sau destinatarului se potrivește cu valoarea specificată. Este posibil să setați atât IP-ul, subrețea în format 10.0.0.1/24, cât și numele gazdei.

    net network_name

    Verifică dacă adresa expeditorului/destinatarului se află în rețeaua specificată. Este posibil să specificați rețeaua în format CIDR (de exemplu, 10.0.0.1/22) sau să specificați numele rețelei specificat în .

    ip | arp | rarp | tcp | udp | icmp [gazdă]

    Verifică dacă pachetul aparține unuia dintre protocoalele specificate și, când se specifică o adresă gazdă, verifică dacă adresa expeditorului/destinatarului se potrivește cu cea specificată. Este posibil să setați atât IP-ul, subrețea în format 10.0.0.1/24, cât și numele gazdei.

    dst port port_number

    Se verifică dacă pachetul aparține protocolului TCP/UDP și dacă portul de destinație este egal cu cel specificat. Puteți specifica numărul portului sau numele specificat în fișierul /etc/services.

    src port port_number

    Se verifică dacă pachetul aparține protocolului TCP/UDP și dacă portul sursă este egal cu cel specificat. Puteți specifica numărul portului sau numele specificat în fișierul /etc/services.

    port port_number

    Se verifică dacă pachetul aparține protocolului TCP/UDP și dacă portul de destinație sau sursă este egal cu cel specificat. Puteți specifica numărul portului sau numele specificat în fișierul /etc/services.

    difuzare ip

    Verifică dacă pachetul IP este un pachet de difuzare.

    eter ( src | dst | gazdă ) adresa_MAC

    Verifică dacă pachetul de rețea aparține sursei, destinației, sursei sau destinației având adresa MAC dată.

    eter difuzat

    Verifică dacă pachetul ARP este un pachet de difuzare.

    Exemple de utilizare a comenzii tcpdump

    Analiza traficului la nivel de rețea (ARP, ICMP) folosind tcpdump

    Să presupunem că avem 2 gazde. Gazda 1 cu interfața eth0 și următorii parametri:

    Host1:~# ip addr show dev eth0 5: eth0: mtu 1500 qdisc pfifo_fast state NECUNOSCUT qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.56.1/24 brd 192.168.56.56 inscope global fe800:56 eth. :800:27ff:fe00:0/64 scope link valid_lft forever preferred_lft forever

    Și, de asemenea, host2 cu interfața eth1

    Host2:~# ip addr show dev eth1 3: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff inet 192.168.56.33/24 scope global eth1 inet6 fe80::ff00:27:a00 :fefd:e5aa/64 scope link valid_lft forever preferred_lft forever

    Să presupunem că până acum nu a existat un schimb de date de rețea între gazde și dacă rulați comanda ip neigh show pe gazda 2, veți vedea că nu există intrări în tabelul ARP. Hai să facem un mic experiment. Să rulăm utilitarul tcpdump pe una dintre interfețele virtuale host1:

    Host1:~# tcpdump -ne -i eth0 tcpdump: ieșire verbosă suprimată, utilizați -v sau -vv pentru ascultarea completă a protocolului de decodificare pe eth0, tip link EN10MB (Ethernet), dimensiunea capturii 65535 octeți

    Gazdă1:~# ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56(84) octeți de date. 64 de octeți de la 192.168.56.33: icmp_req=1 ttl=64 time=1.06 ms --- 192.168.56.33 ping statistics --- 1 pachet transmis, 1 primit, 0% pierdere pachet, timp 0ms rtt/min/mdevg = 1,067/1,067/1,067/0,000 ms

    După aceasta, a apărut o intrare despre adresa IP a host2 în tabelul ARP al sistemului host1:

    Host1:~# ip neigh show dev eth0 192.168.56.33 lladdr 01:00:27:77:e5:00 HOST2

    Pe consola virtuală, tcpdump ne-a afișat următoarele informații:

    Host1:~# tcpdump -ne -i eth0 tcpdump: ieșire verbosă suprimată, utilizați -v sau -vv pentru ascultarea completă a protocolului de decodificare pe eth0, tip link EN10MB (Ethernet), dimensiunea capturii 65535 octeți 12:16:29.465780 0a:00 :27:00:00:00 > ff:ff:ff:ff:ff:ff, etertip ARP (0x0806), lungime 42: Solicitați cine-are 192.168.56.33 spuneți 192.168.56.1, lungime 28 12:16:29.4668 :00:27:77:e5:00 > 0a:00:27:00:00:00, etertip ARP (0x0806), lungime 42: Răspunsul 192.168.56.33 este la 01:00:27:77:e5:00 , lungime 28 12:16:29.466815 0a:00:27:00:00:00 > 01:00:27:77:e5:00, ethertype IPv4 (0x0800), lungime 98: 192.168.56.1 > 192.168.56.1 > 192.MPIC6.163. cerere echo, id 5284, seq 1, lungime 64 12:16:29.467934 01:00:27:77:e5:00 > 0a:00:27:00:00:00, ethertype IPv4 (0x0800), lungime 98:192. .56.33 > 192.168.56.1: răspuns ecou ICMP, id 5284, seq 1, lungime 64 ^C 4 pachete capturate 4 pachete primite de filtru 0 pachete eliminate de nucleu

    Fiecare înregistrare de pachet de rețea în acest format conține ora la care pachetul a fost interceptat, adresele MAC sursă și destinație, tipul de protocol, lungimea pachetului și informații despre conținutul pachetului. Prima înregistrare descrie o cerere de difuzare ARP de la adresa MAC a interfeței eth0 a gazdei de sistem1 (" Cine are adresa 192.168.56.33, scrie 192.168.56.1"). A doua intrare- răspuns de la adresa MAC a host2 la adresa MAC a host1 (" 192.168.56.33 are o adresă MAC de 01:00:27:77:e5:00"). A treia și a patra intrare (Solicitare ICMPȘi Răspunsul ICMP) sunt rezultatul comenzii ping care rulează pe host1. Apoi tcpdump a fost întrerupt. Înainte de oprire, tcpdump tipărește statistici de funcționare: numărul de pachete interceptate, primite de filtru și aruncate de kernel

    Astfel, sistemul host1, pentru a trimite o cerere de ecou standard către mașina host2, a primit mai întâi adresele MAC ale mașinii host2 folosind protocolul ARP și le-a introdus, legat de adresa IP, în tabelul său ARP.

    Analiza traficului la nivelul de transport (TCP, UDP) folosind tcpdump

    Să presupunem că un anumit server WEB este instalat pe sistemul host2. Să încercăm să deschidem o pagină de pe acest server web pe mașina host1 folosind browserul consolei lynx:

    Gazdă1:~# lynx 192.168.56.33

    Pe o altă consolă, mai întâi rulați tcpdump cu parametrii de filtrare:

    Host1:~# tcpdump -n -i eth0 gazdă 192.168.56.33 și portul 80 tcpdump: ieșire verbosă suprimată, utilizați -v sau -vv pentru ascultarea completă a protocolului de decodificare pe eth0, tip link EN10MB (Ethernet), dimensiunea capturii 65535 octeți 15 :44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], secv 1209026235, win 5840, opțiuni , lungime 0 15:44:33.18.183.18 9 2.168.56.1.41533 : Steaguri , seq 370041518, ack 1209026236, win 5792, opțiuni , lungime 0 15:44:37.838157 IP 192.168.56.1.41533 > 192.168.506, opțiuni 4, lungime 18.3. 15: 44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , seq 1:222, ack 1, win 46, options , length 221 15:44:37.83.83.921 168.56.1.41533 : Steaguri [.], ack 222, câștig 1716, opțiuni , lungime 0 15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Steaguri , secv 1:446, opțiuni 6, câștig 21, 6, lungime 445 15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446, win 54, options , length 0 15:44:37.37.849.31 > 846.92 .1 68.56.1 41533: Steaguri , secv 446, ack 222, win 1716, opțiuni , lungime 0 15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80, opțiuni 4222, seq 4, sq. lungime 0 15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716, options , length 0 ...

    În acest exemplu, clientul (192.168.56.1) de la portul TCP 41533 stabilește o conexiune la serverul (192.168.56.33) care ascultă pe portul 80, face o cerere, primește datele necesare și conexiunea se termină.

    Antetul segmentului TCP, în plus față de numerele portului destinatarului și expeditorului conține o serie de parametri:

    • Număr de secvență(secv). Determină ordinea octeților din fluxul trimis în rețea (offset-ul primului octet din segment relativ la începutul fluxului de date).
    • Numar confirmat(ACK). Numărul maxim de octeți din segmentul primit este mărit cu 1. Confirmările trimise expeditorului servesc simultan ca cerere pentru o nouă porțiune de date.
    • Steaguri de control(SYN - S, ACK, FIN -F, RST - R, PSH - P, URG)
    • Fereastră(win) - numărul de octeți de date așteptați de expeditorul datelor, începând de la octetul al cărui număr este indicat în câmpul de confirmare. Pentru a optimiza transmisia, expeditorul nu așteaptă o confirmare pentru fiecare segment trimis, ci poate trimite un grup în rețea către segment (dar în octeți nu mai mari decât dimensiunea ferestrei). Dacă calitatea canalului este slabă (multe solicitări de retransmisie, se pierd confirmări), fereastra scade dacă este bună, fereastra crește.
    • Opțiuni. Folosit pentru a rezolva probleme auxiliare. De exemplu, se transmite MSS (Dimensiunea maximă a segmentului) - dimensiunea maximă a segmentului.

    Procesul de stabilire a unei conexiuni TCP bidirecționale este reflectat în primele trei intrări tcpdump:

    • Clientul trimite serverului un segment TCP cu steag-ul SYN setat, numărul inițial „aleatoriu” (1209026235), din care vor fi numerotați octeții din fluxul pe care îl trimite, dimensiunea maximă a ferestrei este cantitatea pe care serverul îi este permis să o transmite fără confirmare de la client (5840): 15: 44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235, win 5840, optional
    • Serverul trimite clientului un segment TCP cu steagurile SYN și ACK setate, un număr de început „aleatoriu” (370041518) de la care vor fi numerotați octeții din fluxul pe care îl trimite și dimensiunea maximă a ferestrei pentru client (5792). Acest segment confirmă, de asemenea, primirea unei cereri de conectare de la client: 15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags , seq 370041518, ack 12369, options 657692, win 657
    • Clientul trimite serverului un segment TCP cu indicatorul ACK setat, care este o confirmare a primirii segmentului de la server (în continuare, tcpdump afișează valorile relative ale seq și ask): 15:44:37.838157 IP 192.168.56.1 .41533 > 192.168.56.33.80: Steaguri [ ], ack 1, câștig 46, opțiuni , lungime

    După care legătura se consideră stabilită.

    În următoarea pereche de înregistrări, clientul trimite o cerere de protocol de nivel de aplicație (221 de octeți) către server în secțiunea de date segment și primește confirmarea de la server a primirii acesteia:

    15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , seq 1:222, ack 1, win 46, options , length 221 15:44:92.38.18. 1 92.168. 56.1 .41533: Steaguri [.], ack 222, câștig 1716, opțiuni , lungime 0

    În acest caz, indicatorul PSH (P) este utilizat pentru a notifica partea care trimite că partea care primește este gata să primească date. Apoi, serverul trimite datele către client (445 de octeți) și primește confirmarea primirii de la acesta:

    15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Steaguri , seq 1:446, ack 222, win 1716, opțiuni , lungime 445 15:15.64.15:15.15:15.14:15 1 533 > 192.168. 56.33 .80: Steaguri [.], ack 446, câștig 54, opțiuni , lungime 0

    Apoi, la inițiativa serverului, conexiunea este întreruptă. Serverul trimite un pachet cu steag-ul FIN setat:

    15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags , seq 446, ack 222, win 1716, options , length 0

    Clientul răspunde, de asemenea, prin trimiterea unui pachet cu flag-ul FIN setat, acest pachet este, de asemenea, o confirmare a primirii unei cereri de terminare a conexiunii de la server:

    15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , secv 222, ack 447, win 54, options , length 0

    Serverul poate confirma doar primirea segmentului FIN de la client:

    15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716, options , length 0

    Reacția tcpdump la o încercare de conectare la un port închis 23/tcp:

    21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: Steaguri [S], secv 2956835311, win 5840, opțiuni, lungime 0 21:581.82.36.182.14 > 192.168.56.1.54040 : Steaguri, secv 0, ack 2956835312, câștig 0, lungime 0

    În acest exemplu, se încearcă din sistemul 192.168.56.1 să se conecteze la un serviciu TCP inexistent pe nodul 192.168.56.33. Sistemul de la distanță răspunde prin trimiterea unui segment cu steag-ul RST (resetare) setat.

    Răspuns tcpdump la trimiterea unei datagrame UDP la un port închis 53/udp:

    21:55:16.925906 IP 192.168.56.1.41979 > 192.168.56.33.53: 6561+ A? www.tut.by. (28) 21:55:16.926615 IP 192.168.56.33 > 192.168.56.1: ICMP 192.168.56.33 udp port 53 inaccesibil, lungime 64

    Acest exemplu încearcă să trimită o datagramă UDP la un port inexistent pe un sistem la distanță. UDP răspunde de obicei prin trimiterea unui mesaj ICMP la gazda sursă că portul este inaccesibil.

    Alte exemple de utilizare a comenzii tcpdump:

    # tcpdump -n -i ppp0 ether src 11:20:b3:d8:d8:2c

    Afișați statisticile de rețea din interfața ppp0 (-i ppp0) fără a converti IP-ul în DNS (-n) pentru acele cadre a căror adresă MAC sursă este 11:20:b3:d8:d8:2c.

    # tcpdump -n -e -i vlan0 ether broadcast

    Ieșirea traficului de difuzare din interfața vlan0.

    # tcpdump -n -i eth0 src 192.168.66.1

    Pachetele de rețea al căror antet conține adresa IP 192.168.66.1 în câmpul sursă sunt filtrate.

    # tcpdump -n -i eth0 gazdă 192.168.66.1

    Pachetele în care această adresă IP este specificată ca sursă sau destinație a pachetului sunt filtrate.

    # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0

    Pachetele a căror sursă indică nodurile de rețea 10.0.0.0/8 sunt filtrate.

    # tcpdump -n -i eth0 icmp

    Emite numai pachete ICMP din interfața eth0.

    Aici voi încheia, probabil, articolul curent. Voi actualiza articolul pe măsură ce apar noi exemple. Sper ca materialul să fie de folos nu numai mie

    Articolul a folosit exemple și câteva materiale din prelegerile intuit.

    Salutări, McSim!