Филтрирайте въздуха! Одитираме мрежовия трафик с помощта на tcpdump. помощна програма tcpdump, примери за филтри за опции Tcpdump описание

Филтрирайте въздуха!  Одитираме мрежовия трафик с помощта на tcpdump.  помощна програма tcpdump, примери за филтри за опции Tcpdump описание
Филтрирайте въздуха! Одитираме мрежовия трафик с помощта на tcpdump. помощна програма tcpdump, примери за филтри за опции Tcpdump описание

За UNIX системи има много различни снифери и анализатори на трафик с удобен графичен интерфейс и богат набор от функции. Но никой от тях не може да се сравни по гъвкавост, многофункционалност и разпространение със старомодния tcpdump. Тази помощна програма е включена в много Linux дистрибуциии всички BSD системи извън кутията и ще могат да ви помогнат, когато други средства не са налични.

Въведение

Помощната програма tcpdump е снифър за мрежови пакети от командния ред, който няма нито графичен, нито псевдографичен интерфейс. Може да изглежда тромав и твърде старомоден за начинаещи, но в способни ръце се превръща в истински швейцарско ножчеза отваряне на всякакви мрежови пакети и протоколи. Опитните системни администратори винаги препоръчват на начинаещите да използват tcpdump вместо която и да е друга помощна програма поради яснотата и праволинейността на нейните отчети.

Tcpdump е роден преди почти 25 години в университета в Бъркли, все още се разработва активно и продължава да бъде стандарт сред подобни инструменти за операционна система UNIX. Библиотеката за улавяне на пакети libpcap, разработена специално за него, сега се използва от почти всеки снифър за UNIX системи и много подобни програми за Windows.

В тази статия ще разгледаме всички аспекти на работата с tcpdump, от основите на работата с програмата до това как да използвате помощната програма за откриване на мрежови атаки, аномалии и различни видове повреди.

Сам с конзолата

Нека се опитаме да разберем как работи tcpdump и от коя страна трябва да се подходи към него. Отворете терминал и стартирайте програмата като root (като всеки снифър, tcpdump трябва да има пълен достъпкъм мрежови интерфейси), като посочите името мрежов интерфейси ограничаване на броя на изходните пакети до десет:

# tcpdump -i wlan0 -c 10 -n

Ключът -n забранява преобразуването на IP адреси в DNS имена. Сега нека се опитаме да проследим обмена само с конкретен хост, например с домашен рутер:

# tcpdump -i wlan0 -c 10 -n хост 192.168.0.1 и порт 53

Нека видим какво ни извежда tcpdump, използвайки двата реда, показани на екранната снимка „DNS заявка през очите на tcpdump“ като пример. Може лесно да се разбере, че това е DNS заявка (порт 53) от хост 192.168.0.101 към хост 192.168.0.1 и последващия отговор. Но какво означават всички останали числа и знаци?


Числата 16:22:41.340105 са времето за изпращане на пакета, включително милионни от секундата (т.нар. frac). Двете букви IP, както може би се досещате, идентифицират използвания протокол на мрежовия слой, следван от адреса: изпращащия порт и адреса: целевия порт на пакета. Всичко, което идва след двоеточието, директно зависи от използвания протокол на транспортния или приложния слой. tcpdump е запознат с някои протоколи и може да ги дешифрира до четима от човека форма, оставя други такива, каквито са и просто изброява съдържанието на пакета. В този случай tcpdump декодира DNS съобщенията и връща низа 49244+ A? ya.ru. (23) , което означава: беше изпратена заявка (A?) до адреса, свързан с името ya.ru., общата дължина на пакета минус TCP / IP заглавките беше 23 байта. Първата цифра е ID на заявката.

В следващия ред виждаме отговора, чийто формат на представяне е почти същият като заявката, с единствената разлика, че сега след идентификатора на заявката има информация за броя на намерените записи (8/2/3) и самите записи (A 213.180.204.3, A 77.88.21.3 , A 87.250.250.3...).

Арсеналът на tcpdump има поддръжка за много протоколи, благодарение на които може да представи в четима форма информация за протоколите TCP, UDP и ICMP, SMB / CIFS, NFS, AFS, AppleTalk. Но какво ще стане, ако tcpdump не знае нищо за използвания протокол на приложния слой или не може да го определи? В нормална ситуация той просто ще изведе информация за пакета. Може да изглежда така:

Флагове [.], seq 3666073194:3666074622, ack 3281095139, win 2000, опции, дължина 1428

Това е TCP пакет, форматът на информацията за който е представен в tcpdump е както следва (полетата са разделени със запетаи):

  • знамена - задайте знамена. Обозначава се със символите S (SYN), F (FIN), P (PUSH) и R (RST), точка означава, че няма поставени флагове;
  • data-seqno - описва данните, съдържащи се в пакета, в следния формат: first:last, където first и last са поредният номер на първия и последния байт от предадените данни, nbytes;
  • ack - следващ пореден номер (ISN + 1);
  • прозорец - размер на прозореца;
  • опции - тук може да се посочи допълнителна информация, например (максимален размер на сегмента);
  • дължина - дължината на пакета.

Всички тези данни могат да бъдат много полезни при изучаване или отстраняване на грешки в протоколи и мрежови приложения, но те не ни казват нищо за тяхното съдържание. За да видите съдържанието на пакета в шестнадесетичен формат, използвайте флага -X:

# tcpdump -i wlan0 -c 10 -n -X хост 192.168.0.1 и порт 80

Тази функция е много полезна за анализиране на протоколи, в които данните се предават в чист текст, като HTTP. За бинарни протоколи и протоколи с криптиране, разбира се, ще бъде безполезно.
Можете също да използвате флага -v, за да получите повече информация за пакет. След това ще се появи IP в скоби подробна информацияотносно IP пакета:

(tos 0x0, ttl 64, id 8339, отместване 0, флагове, proto UDP(17), дължина 51)

Като цяло всичко тук е доста прозаично. Първо идва типът услуга (TOS), последван от времето за живот на пакета (TTL), ID на пакета, отместване от началото на първия пакет във веригата, флагове, използван протокол на транспортния слой (TCP, UDP, ICMP), и дължина.


Разширени функции

Вече разгледахме повечето от най-важните характеристики на tcpdump, но функционалността му е много по-широка. Например използвахме изразите за хост и порт, за да посочим адреса и порта, от които се нуждаем, за да филтрираме изхода, но какво ще стане, ако искаме да виждаме само пакети, отиващи до посочен адрес, но не излиза от него? Можете да използвате оператора src за това:

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

Съществува и неговата обратна версия dst, предназначена да указва адреса на дестинацията. Както е показано по-горе, всички оператори могат да се комбинират с помощта на оператора and (наблюдение на мрежовия трафик, с изключение на SSH сесии и DNS заявки):

# tcpdump -i wlan0 порт не 22 и порт не 53

Можете също да използвате или (или) и освен (не). Освен това tcpdump разбира диапазони на портове:

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

Възможност за филтриране на пакети по техния размер:

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

И разбира подмрежови маски:

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

Една от най-интересните характеристики на tcpdump е възможността за филтриране на пакети въз основа на съдържанието на конкретни битове или байтове в заглавките на протокола. За това се използва следният формат: proto, където proto е протоколът, expr е отместването в байтове от началото на заглавката на пакета, а size е незадължително поле, указващо дължината на въпросните данни (1 байт по подразбиране) . Например, за да филтрирате само пакети със зададен флаг SYN (иницииране на TCP ръкостискане), ще използвате следния запис:

# tcpdump "tcp==2"

Как работи? Много просто. 13-те байта на TCP хедъра съдържат точно осем флага, по един бит всеки. Вторият бит е запазен за флага SYN. Горният запис просто проверява дали този бит е зададен. Между другото, по-четима форма на този запис би изглеждала така:

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

Практическа употреба

Помощната програма tcpdump обикновено се използва за две цели: за отстраняване на грешки в мрежата, мрежовите приложения и новите протоколи и за да ви научи на основите на TCP/IP. Ние ще тръгнем по друг начин и ще използваме силата на tcpdump за откриване на сканиране на хостове и мрежови атаки.

На фиг. Фигура 1 показва как изглежда класическо сканиране на TCP портове, направено от Nmap, в регистрационните файлове на tcpdump. Можете ясно да видите как Nmap от адрес 192.168.0.100 се опитва да установи TCP връзка с различни портове, като изпраща SYN пакет (S в полето за флагове). Първо се изследва порт 8888, в отговор идва RST пакет, което означава, че никоя услуга не слуша порта, след което се изследва порт 587 със същия резултат. Накрая Nmap изпраща SYN пакет към порт 22 (SSH) и получава отговор под формата на SYN-ACK пакет:

192.168.0.100.43337 > 192.168.0.111.22: Флагове [S], seq 2610024277, ... 0024278, ... 192.168.0.100 43337 > 192.168.0.111.22: Флагове [.], акк 1, .. .

Портът е отворен и сега Nmap може успешно да затвори връзката чрез изпращане на RST пакет и да премине към следващите портове. Той обаче прави нещо по-умно: изпраща потвърждение за получаване на ACK пакета и незабавно преминава към следващите портове. Това поведение ви позволява да заобиколите някои системи за откриване на проникване, но не можете лесно да заблудите човек, въоръжен със снифър.

Обърнете внимание и на номерата на портовете, които трябва да бъдат сортирани, те не се генерират произволно, а се избират, като се вземе предвид най-голямото разпространение. Това означава, че се извършва бързо сканиране, или по-конкретно, Nmap най-вероятно работи без никакви флагове.



Сега нека да разгледаме друг метод за откриване на отворени портове - SYN сканиране (nmap -sS). Този тип сканиране обикновено се нарича скрито, тъй като по време на него никога не се установява пълна TCP връзка, което означава, че информацията за факта на връзката не се включва в регистрационните файлове. Резултатът от tcpdump за този вид сканиране е показан на фигура 1. 2. Той е много подобен на дневника на редовно TCP сканиране, но реакцията на скенера към отворени портовесега още една:

192.168.0.100.48585 > 192.168.0.111.22: Флагове [S], последователност 1679394613, ... 394614, ... 192.168.0.100 48585 > 192.168.0.111.22: Флагове [R], последователност 1679 394614, .. .

Вижда се, че след получаване на пакета за одобрение SYN-ACK, скенерът не завършва връзката, а незабавно я прекъсва, като избягва влизането в регистрационните файлове. На фиг. 3 можете да видите резултата от UDP сканирането. Тук всичко е много просто, Nmap изброява портове с възможни UDP услуги, изпращайки пакет с нулева дължина към всеки от тях. Ако портът е затворен, ОС изпраща обратно ICMP недостъпно съобщение:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, дължина 0 16:41:48.798346 IP 192.168.0.111 > 192.168.0.100: ICMP 192.16 8.0.100 udp порт 18869 недостъпен, дължина 36

В противен случай портът се счита за отворен. Друг метод за сканиране е нулево сканиране чрез изпращане на пакети без зададени флагове (nmap -sN). Реакцията на такива пакети може да варира в зависимост от операционната система, но както можете да видите от следния списък, Linux отговаря на тях, като изпраща RST пакети:

192.168.0.100.39132 > 192.168.0.111.256: Флагове, победа 3072, дължина 0 192.168.0.111.256 > 192.168.0.100.39132: Флагове, ...

Нападателят може също да използва коледно сканиране, при което пакетите имат зададени флагове FIN, URG и PUSH (пакетът изглежда свети с флагове като коледно дърво):

192.168.0.100.35331 > 192.168.0.111.5544: Флагове, seq 3998959601, победа 4096, urg 0, дължина 0 0, ack 3998959602

Както можете да видите, реакцията към такива пакети е идентична. ACK сканиране (-sA) ще се появи в регистрационните файлове на tcpdump като изпращане на множество пакети с зададен флаг ACK и отговор на тях чрез изпращане на RST пакети. Въпреки това, ако в системата е инсталирана защитна стена, няма да има съобщения за отговор и Nmap ще може да разбере дали портът се филтрира.

С помощта на tcpdump можете също да проследите различни видове наводняване. Например, класическо ICMP наводнение в регистрационните файлове ще изглежда така:

16:43:06.008305 IP 192.168.0.100 > 192.168.0.111: ICMP тип-#68, дължина 1032 16:43:06.008383 IP 192.168.0.100 > 192.168.0.111: ICMP тип-#34, дължина 10 32 16:43:06.008714 IP 192.168.0.100 > 192.168.0.111: ICMP тип-#183, дължина 1032 16:43:06.008831

От особено значение тук е полето, съдържащо часа на получаване на пакета. Никое нормално приложение няма да изпрати много ICMP съобщения за период от време, равен на една хилядна от секундата. Други видове наводнения (напр. SYN) се дефинират по абсолютно същия начин.

Взаимодействие с други програми

Едно от най-важните предимства на tcpdump е, че форматът на неговите отчети по време на съществуването на програмата всъщност се превърна в стандарт за всички снифери и днес се разбира от всички повече или по-малко сериозни инструменти за анализ на трафика. Например tcpdump може да се използва за генериране на дъмп на отдалечена машина, след което да го изпрати на локалната машина и да го анализира с wireshark:

$ ssh [имейл защитен] tcpdump -w - "порт !22" | wireshark -k -i -

Тук използвахме опцията -w -, за да напишем дъмпа в stdout и го пренасочихме към wireshark, работещ на локалната машина. По същия начин можете да анализирате трафика с помощта на snort:

$ ssh [имейл защитен]"tcpdump -nn -i eth1 -w -" | snort -c /etc/nort/snort.conf -r -

Чрез пренасочване на изхода на програмата към входа на grep можете да намерите различни проблеми в мрежата, например да идентифицирате пакети с неправилна контролна сума, която може да се покаже с помощта на флага -vv:

# tcpdump -nnvv -r dump.cap tcp | grep -v "tcp сума добре" | wc-l

Администраторски неща

Възможността за филтриране на пакети въз основа на данни, съдържащи се в заглавката, която обсъдихме в началото на първия раздел, е много полезна за отстраняване на грешки в различни протоколи и търсене на мрежови проблеми. Например, можем да го използваме за улавяне на мрежови пакети, предавани по Cisco Discovery Protocol, чрез който маршрутизаторите на Cisco обменят информация за топологията и състоянието на мрежата:

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

По същия начин можете да уловите всички пакети, предавани чрез DHCP протокола (ОТКРИВАНЕ, ЗАЯВКА, ИНФОРМАЦИЯ), за да идентифицирате проблеми с връзката на клиента:

# tcpdump -i eth0 -vvv -s 1500 "((порт 67 или порт 68) и (udp = 0x1))"

Или уловете пакети, изпратени като част от POP3 удостоверяване:

# tcpdump -i eth0 "tcp порт pop3 и ip = 85 и ip = 83" -s 1500 -n

мрежа grep

Снифърът tcpdump е добър със своята гъвкавост и разнообразие от възможности, но не е толкова лесно и удобно да се използва за търсене на конкретни данни в предаваните пакети. Тази задача се справя много по-добре от ngrep, който е проектиран да показва преминаващи мрежови пакети, които отговарят на дадена маска.

Например, за да намерите параметрите, предадени от методите GET и POST в рамките на HTTP сесия, можете да използвате следната команда:

# ngrep -l -q -d eth0 "^GET |^POST " tcp и порт 80

Намиране на безделници:

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

Анализираме SMTP трафика на всички мрежови интерфейси:

# ngrep -i "rcpt към|поща от" tcp порт smtp

tcpdump опции

Таблица с най-интересните и полезни tcpdump флагове.

  • -i [интерфейс] - мрежовият интерфейс за слушане, посочете всеки за всички.
  • -n Не преобразувайте IP адресите в DNS имена.
  • -nn Не превежда IP адреси и номера на портове.
  • -X - показва съдържанието на пакета в текстов и шестнадесетичен формат.
  • -XX - същото плюс съдържанието на Ethernet рамката.
  • -v, -vv, -vvv - увеличаване на количеството показана информация и пакети (повече, повече, всичко).
  • -c [n] Показване само на първите n пакета.
  • -s [n] - брой байтове, показвани за всеки пакет (може да бъде намален за четливост или увеличен за повече информация).
  • -S - показва абсолютни TCP последователни номера.
  • -e - показва заглавки на ethernet рамка.
  • -q - показва по-малко информация (за четливост).
  • -E - декриптиране на IPsec трафик с помощта на посочения ключ.
  • -w - запазва дъмпа на програмата във файл, аргумент - използва се за указване на stdout.

заключения

В ръцете на опитен потребител tcpdump се превръща в мощен инструмент не само за отстраняване на грешки, но и за изследване на аномалии. Благодарение на богат набор от оператори и флагове, можете да го използвате, за да излезете от мрежовия въздух и да изследвате това, от което наистина се нуждаете.

Затова реших да създам моя собствена измамна таблица, така че да е ... Защото без tcpdump нито един администратор не е администратор

Въведение

Много често се използват за намиране на проблеми в мрежата анализатори на мрежов трафик . tcpdumpе един от представителите на този клас програми, той ви позволява да слушате (показвате / запазвате) и анализирате мрежата на ниво предадени мрежови пакети, рамки и други единици на предаване на мрежов трафик. В зависимост от мрежовата конфигурация, tcpdump може да слушане само пакети, предназначени за даден MAC адрес, но и излъчвани пакети. Снифингът на мрежови пакети се базира на "безразборен" режимработа на мрежов адаптер.

В зависимост от използвания мрежово оборудванеза свързване на компютри към Ethernet мрежиима следните възможности за слушане на трафика:

  • Онлайн базиран концентраторицелият трафик от концентратора е достъпен за всеки мрежов хост.
  • В мрежи, базирани превключватели(комутатори), само неговият трафик е достъпен за мрежовия хост, както и целият излъчван трафик на този сегмент.
  • Някои управлявани комутатори имат функцията да копират трафика от този порт към порта за наблюдение („огледално копиране“, мониторинг на порт).
  • При използване на специални средства (съединители), включени в празнината мрежова връзкаи препращане на трафик на връзка на определен порт, е възможно да слушате на съответния порт.
  • "Номерът" с хъба - портът на комутатора, чийто трафик трябва да се слуша, се включва през хъба, като към хъба се свързва и мониторният възел (в повечето случаи производителността на мрежовата връзка намалява).

Така, помощна програма tcpdumpвключен в повечето дистрибуции на Unix и ви позволява да прихващате и показвате / запазвате мрежов трафик във файл. Помощната програма използва библиотека libpcap. Има и порт за Windows. За да работи помощната програма, е необходимо. Например в Debian той се инсталира с помощта на командата:

Debian:~# apt-get install tcpdump

Помощните програми са необходими за работата (тъй като настройките на мрежовия интерфейс се променят - той се прехвърля в режим "безразборен"). Общо взето tcpdump команден форматима следната форма:

Дебиан:~# tcpdump<опции> <фильтр>

опции за помощна програма tcpdump

-i интерфейс

Указва интерфейса, от който трябва да се анализира трафикът (без да се указва интерфейс – анализ „за първи път“).

Деактивира IP към имена на домейни. Ако е зададен -nn, тогава номерата на портове не се преобразуват в имена на протоколи.

Най-често използваните опции за филтър за командата tcpdump са:

dst хост

Проверява дали целевият адрес на IP пакет съответства на зададената стойност. Възможно е да зададете както IP, подмрежа във формат 10.0.0.1/24, така и име на хост.

src хост

Проверява дали адресът на източника на IP пакет съответства на указаната стойност. Възможно е да зададете както IP, подмрежа във формат 10.0.0.1/24, така и име на хост.

домакин домакин

Проверява дали адресът на изпращача или получателя съответства на зададената стойност. Възможно е да зададете както IP, подмрежа във формат 10.0.0.1/24, така и име на хост.

net network_name

Проверява дали адресът на подател/получател е в указаната мрежа. Възможно е да посочите мрежа във формат CIDR (например 10.0.0.1/22) или да посочите име на мрежа, посочено в .

ip | arp | рап | tcp | udp | icmp [хост]

Проверява дали пакетът принадлежи към един от посочените протоколи и, когато посочва адрес на хост, проверява дали адресът на изпращача/дестинацията съвпада с дадения. Възможно е да зададете както IP, подмрежа във формат 10.0.0.1/24, така и име на хост.

dst порт порт_номер

Проверка дали пакетът принадлежи TCP протокол/UDP и дали портът на местоназначение е равен на посочения. Можете да посочите номера на порта или името, посочено във файла /etc/services.

src порт порт_номер

Проверява дали пакетът принадлежи на TCP/UDP протокола и дали портът източник е равен на дадения. Можете да посочите номера на порта или името, посочено във файла /etc/services.

порт порт_номер

Проверява дали пакетът принадлежи към протокола TCP/UDP и е равен на посочения порт на местоназначение или източник. Можете да посочите номера на порта или името, посочено във файла /etc/services.

ip излъчване

Проверява дали IP пакетът е излъчен.

етер ( src | dst | хост ) MAC адрес

Проверява дали мрежовият пакет принадлежи към източника, дестинацията, източника или дестинацията с дадения MAC_адрес.

ефирно излъчване

Проверява дали ARP пакетът е излъчен.

Примери за използване на командата tcpdump

Анализ на трафика на ниво мрежа (ARP, ICMP) с tcpdump

Да предположим, че имаме 2 хоста. Хост 1 с интерфейс eth0 и следните параметри:

Host1:~# ip адрес показване dev eth0 5: eth0: mtu 1500 qdisc pfifo_fast състояние UNKNOWN qlen 1000 връзка/етер 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.56.1/24 brd 192.168.56.255 обхват глобален eth0 inet6 fe80: :800:27ff:fe00:0/64 обхват връзка valid_lft завинаги preferred_lft завинаги

Както и host2 с интерфейс eth1

Host2:~# ip addr show dev eth1 3: eth1: mtu 1500 qdisc pfifo_fast състояние НАГОРЕ qlen 1000 връзка/етер 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff inet 192.168.56.33/24 обхват глобален eth1 inet6 fe80::a00:27ff :fefd:e5aa/64 обхват връзка valid_lft завинаги preferred_lft завинаги

Да приемем, че досега не е имало мрежова комуникация между хостове и ако изпълните командата ip neigh show на хост 2, ще видите, че няма записи в ARP таблицата. Нека направим малък експеримент. Нека стартираме помощната програма tcpdump на един от виртуалните интерфейси host1:

Хост1:~# tcpdump -ne -i eth0 tcpdump: подтиснат подробен изход, използвайте -v или -vv за пълно декодиране на протокол, слушане на eth0, тип връзка EN10MB (Ethernet), размер на улавяне 65535 байта

Хост1:~# ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56(84) байта данни. 64 байта от 192.168.56.33: icmp_req=1 ttl=64 време=1.06 ms --- 192.168.56.33 ping статистика --- 1 пакета предадени, 1 получен, 0% загуба на пакети, време 0ms rtt min/avg/max/mdev = 1,067/1,067/1,067/0,000 ms

След това в ARP таблицата на системата host1 се появи запис за IP адреса на машината host2:

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

На виртуалната конзола tcpdump ни показа следната информация:

Хост1:~# tcpdump -ne -i eth0 tcpdump: подтиснат подробен изход, използвайте -v или -vv за пълно декодиране на протокол, слушане на eth0, тип връзка EN10MB (Ethernet), размер на улавяне 65535 байта 12:16:29.465780 0a:00 :27:00:00:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), дължина 42: Заявка, който има 192.168.56.33, кажете 192.168.56.1, дължина 28 12:16:29.466786 01 :00:27:77:e5:00 > 0a:00:27:00:00:00, ethertype ARP (0x0806), дължина 42: Отговорът 192.168.56.33 е в 01:00:27:77:e5:00 , дължина 28 12:16:29.466815 0a:00:27:00:00:00 > 01:00:27:77:e5:00, ethertype IPv4 (0x0800), дължина 98: 192.168.56.1 > 192.168.56.33: ICMP ехо заявка, id 5284, seq 1, дължина 64 12:16:29.467934 01:00:27:77:e5:00 > 0a:00:27:00:00:00, ethertype IPv4 (0x0800), дължина 98: 192.168 .56.33 > 192.168.56.1: ICMP ехо отговор, id 5284, seq 1, дължина 64 ^C 4 пакета уловени 4 пакета получени от филтъра 0 пакета отхвърлени от ядрото

Всеки запис на мрежов пакет в този формат съдържа времето за улавяне на пакета, MAC адресите на източника и местоназначението, типа на протокола, дължината на пакета и информация за съдържанието на пакета. Първи записописва ARP заявка за излъчване от MAC адрес на eth0 интерфейс на host1 (" Който има адрес 192.168.56.33, пише 192.168.56.1"). Второ влизане- отговор от MAC адреса на машината host2 към MAC адреса на системата host1 (" 192.168.56.33 има MAC адрес 01:00:27:77:e5:00"). Трето и четвърто влизане (ICMP заявкаИ ICMP отговор) са резултатът от командата ping на host1. След това tcpdump беше прекъснат. Преди да излезе, tcpdump отпечатва текуща статистика: броя на пакетите, уловени, получени от филтъра и отхвърлени от ядрото

Така системата host1, за да изпрати стандартна заявка за ехо към машината host2, първо получава MAC адреса на машината host2, използвайки ARP протокола и го въвежда в своята ARP таблица със свързване към IP адреса.

Анализ на трафика на транспортния слой (TCP, UDP) с помощта на tcpdump

Да предположим, че определен WEB сървър е инсталиран на системата host2. Нека опитаме на машината host1 да отвори страница от този уеб сървър с помощта на браузъра на конзолата на lynx:

Хост1:~# lynx 192.168.56.33

На друга конзола първо стартирайте tcpdump с опции за филтриране:

Хост1:~# tcpdump -n -i eth0 хост 192.168.56.33 и порт 80 tcpdump: подробен изход е потиснат, използвайте -v или -vv за слушане на декодиране на пълен протокол на eth0, тип връзка EN10MB (Ethernet), размер на запис 65535 байта 15 :44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове [S], seq 1209026235, победа 5840, опции, дължина 0 15:44:37.838118 IP 192.168.56.33.80 > 1 92.168.56.1.41533 : Флагове, seq 370041518, ack 1209026236, победа 5792, опции, дължина 0 15:44:37.838157 5: 44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове, seq 1:222, ack 1, победа 46, опции , дължина 221 15:44:37.839921 IP 192.168.56.33.80 > 192 .168.56.1.41533 : Флагове [.], ack 222, победа 1716, опции , дължина 0 15:44:37.848118 445 15:44 :37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове [.], ack 446, победа 54, опции, дължина 0 15:44:37.849738 IP 192.168.56.33.80 > 192. 168.56.1. 41533: Fla gs, SEQ 446, ACK 222, Win 1716, Опции, Дължина 0 15: 44: 37.850366 IP 192.168.56.1.41533> 192.168.56.33.80: Флагове, SEQ 447, Win 54, Опции, leen GTH 0 15:44:37.85 1267 IP 192.168.56.33.80 > 192.168.56.1.41533: Флагове [.], ack 223, победа 1716, опции, дължина 0 …

IN този примерклиентът (192.168.56.1) от TCP порт 41533 установява връзка със сървъра (192.168.56.33), който слуша на порт 80, прави заявка, получава необходимите данни и връзката се прекъсва.

Заглавието на TCP сегмента, в допълнение към номера на портове на дестинация и изпращачсъдържа редица параметри:

  • Пореден номер(последователност). Указва реда на байтовете в потока, изпратен към мрежата (отместването на първия байт в сегмента спрямо началото на потока от данни).
  • Потвърден номер(ACK). Максималният брой байтове в получения сегмент се увеличава с 1. Потвържденията, изпратени до подателя, едновременно служат като заявка за нова част от данните.
  • Контролни знамена(SYN - S, ACK, FIN -F, RST - R, PSH - P, URG)
  • прозорец(win) - броят байтове данни, очаквани от подателя на данните, като се започне от байт номер, който е посочен в полето ack. За да оптимизира предаването, подателят не чака потвърждение за всеки изпратен сегмент, но може да изпрати група към сегмента към мрежата (но в байтове, не повече от размера на прозореца). Ако качеството на канала е лошо (много заявки за препредаване, загубени потвърждения), прозорецът се намалява, ако е добро, прозорецът се увеличава.
  • Настроики. Използва се за решаване на помощни задачи. Например се предава MSS (Maximum segment size) - максималният размер на сегмента.

Процесът на установяване на двупосочна TCP връзка е отразен в първите три записа tcpdump:

  • Клиентът изпраща TCP сегмент към сървъра със зададен флаг SYN, първоначалното "произволно" число (1209026235), от което байтовете ще бъдат номерирани в потока, който изпраща, максималния размер на прозореца - количеството, което сървърът има право да предава без потвърждение от клиента (5840): 15: 44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове [S], seq 1209026235, win 5840, опции, дължина
  • Сървърът изпраща TCP сегмент на клиента със зададени флагове SYN и ACK, първоначалното „случайно“ число (370041518), от което байтовете ще бъдат номерирани в потока, който изпраща, и максималния размер на прозореца на клиента (5792). Този сегмент също е потвърждение на заявка за връзка от клиента: 15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Флагове, seq 370041518, ack 1209026236, win 5792, опции, дължина
  • Клиентът изпраща TCP сегмент към сървъра със зададен флаг ACK, който е потвърждение за получаване на сегмента от сървъра (тогава tcpdump показва относителните стойности на seq и ask): ], ack 1, win 46, опции , дължина

След това връзката се счита за установена.

В следващата двойка записи клиентът изпраща заявка за протокол на приложния слой (221 байта) към сървъра в секцията с данни на сегмента и получава потвърждение от сървъра, че е получена:

15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове, seq 1:222, ack 1, победа 46, опции, дължина 221 15:44:37.839921 IP 192.168.56.33.80 > 192.168.56.1 .41533: Флагове [.], ack 222, победа 1716, опции, дължина 0

В този случай флагът PSH (P) се използва за уведомяване на изпращащата страна, че приемащата страна е готова да получи данни. След това сървърът изпраща данни на клиента (445 байта) и получава потвърждение за получаване от него:

15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Флагове, seq 1:446, ack 222, победа 1716, опции, дължина 445 15:44:37.848156 IP 192.168.56.1. 4 1533 > 192.168. 56.33 .80: Флагове [.], ack 446, победа 54, опции, дължина 0

След това връзката се прекъсва по инициатива на сървъра. Сървърът изпраща пакет със зададен FIN флаг:

15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Флагове, seq 446, ack 222, победа 1716, опции, дължина 0

В отговор клиентът също изпраща пакет с зададен флаг FIN, този пакет също е потвърждение за получаване на заявка за прекратяване на връзката от сървъра:

15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Флагове, seq 222, ack 447, победа 54, опции, дължина 0

Сървърът трябва само да потвърди получаването на FIN сегмента от клиента:

15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Флагове [.], ack 223, победа 1716, опции, дължина 0

реакцията на tcpdump при опит за свързване към затворен порт 23/tcp:

21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: Флагове [S], seq 2956835311, победа 5840, опции, дължина 0 21:56:14.381688 IP 192.168.56.33.2 3 > 192.168.56.1.54040 : Флагове, seq 0, ack 2956835312, победа 0, дължина 0

В този пример от система 192.168.56.1 се прави опит за свързване към несъществуваща TCP услуга на хост 192.168.56.33. Отдалечената система отговаря, като изпраща сегмент с зададен флаг RST (нулиране на връзката).

Отговорът на tcpdump за изпращане на UDP дейтаграма към затворен порт 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 порт 53 недостижим, дължина 64

В този пример е направен опит за изпращане на UDP дейтаграма към несъществуващ порт на отдалечена система. UDP обикновено отговаря, като изпраща ICMP съобщение до изходния възел за това, че портът е недостъпен.

Други примери за използване на командата tcpdump:

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

Заключение статистика на мрежатаот интерфейса ppp0 (-i ppp0) без IP към DNS резолюция (-n) на тези рамки, чийто MAC адрес на източника е 11:20:b3:d8:d8:2c.

# tcpdump -n -e -i vlan0 ether излъчване

Излъчване на трафик от интерфейса vlan0.

# tcpdump -n -i eth0 src 192.168.66.1

Мрежовите пакети се филтрират, в заглавката на които в полето източник е посочен IP адрес 192.168.66.1.

# tcpdump -n -i eth0 хост 192.168.66.1

Филтрират се пакети, в които този IP адрес е посочен като източник или дестинация на пакета.

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

Филтрират се пакети, в които като източник са посочени хостовете на мрежата 10.0.0.0/8.

# tcpdump -n -i eth0 icmp

Извежда само ICMP пакети от интерфейс eth0.

На това, може би, ще завърша настоящата статия. Когато се появят нови примери, ще допълвам статията. Надявам се, че материалът ще бъде полезен не само за мен

В статията са използвани примери и някои материали от интуитивни лекции.

С уважение, Mc.Sim!

Този урок ще ви покаже как да изолирате трафика по различни начини – от IP, през порт, през протокол, до трафик на ниво приложение – за да сте сигурни, че ще намерите точно това, от което се нуждаете, възможно най-бързо.

tcpdump е инструментът, който всеки трябва да научи като база за анализ на пакети.

Инсталирайте tcpdump с apt install tcpdump (Ubuntu) или yum install tcpdump (Redhat/Centos)

Нека започнем с основна команда, която ще ни осигури HTTPS трафик:

tcpdump -nn S X порт 443

04:45:40.573686 IP 78.149.209.110.27782 > 172.30.0.144 .443 : Флагове [.], ack 278239097, победа 28, опции, дължина 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

Можете да получите единичен пакет с -c 1 или нномер с -c n .

Това показа някакъв HTTPS трафик, с шестнадесетичен дисплей, видим в дясната част на изхода (уви, той е криптиран). Само помнете - когато се съмнявате, изпълнете командата по-горе с порта, който ви интересува, и трябва да сте на път.

Примери

PacketWizard™ всъщност не е запазена марка, но трябва да бъде.

практик, който се подготвя да стартира tcpdump

Сега, след като сте в състояние да получите основен трафик, нека преминем през многобройни примери, които вероятно ще ви трябват по време на работата ви в мрежи, сигурност или като друг тип PacketWizard™.

Всичко на интерфейс

Просто вижте какво се случва, като погледнете какво удря вашия интерфейс.

Или вземете всичкоинтерфейси с -i произволен.

tcpdump -i eth0

Намерете трафик по IP

Една от най-често срещаните заявки, използвайки хост, можете да видите трафика, който отива към или от 1.1.1.1.

типове изрази:

хост, мрежа и порт.

src и dst.

хост, мрежа и порт.

tcp, udp, icmp и много други.

tcpdump хост 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)

Ако искате да видите трафика само в едната или другата посока, можете да използвате src и dst.

tcpdump src 1.1.1.1
tcpdump dst 1.0.0.1

Намиране на пакети по мрежа

За да намерите пакети, отиващи към или от определена мрежа или подмрежа, използвайте опцията net.

Можете да комбинирате това и с опциите src и dst.

tcpdump net 1.2.3.0/24

Вземете съдържанието на пакета с шестнадесетичен изход

Шестнадесетичният изход е полезен, когато искате да видите съдържанието на въпросните пакети и често се използва най-добре, когато изолирате няколко кандидата за по-внимателно изследване.

tcpdump -c 1 -X icmp

Резюме

Ето изводите за вкъщи.

  1. tcpdump е ценен инструмент за всеки, който иска да навлезе в мрежа или .
  2. Суровият начин, по който той взаимодейства с трафика, съчетан с прецизността, която предлага при проверка на пакети, го правят най-добрият възможен инструмент за изучаване на TCP/IP.
  3. Анализаторите на протоколи като Wireshark са страхотни, но ако искате наистина да овладеете packet-fu, първо трябва да станете такъв с tcpdump.

Е, този пример трябва да ви помогне да се засилите, но страницата с ръководство трябва винаги да е удобна за най-напредналите и еднократни сценарии на използване. Наистина се надявам, че това е било полезно за вас и не се колебайте, ако имате въпроси.

бележки

  1. В момента (нещо като) пиша книга за tcpdump за No Starch Press.
  2. Водещото изображение е от SecurityWizardry.com.
  3. Някои от изолационните филтри, заимствани от

tcpdumpинструкция на руски и примери.

определя изхода на всеки пакет (без заглавките на слоя на връзката) в ASCII формат. Този режим е полезен за улавяне на HTTP трафик.

-° С <число пакетов>указва, че програмата се прекратява след улавяне на определения брой пакети.

-° С<размер файла>указва дали да се проверява размерът на файла за заснемане, преди всеки нов пакет да бъде записан в него. Ако размерът на файла надвишава стойността на параметъра file_size, файлът се затваря
и създадено нов файлда пишат пакети към него. За файлове за заснемане се използва името, посочено от опцията -w и, започвайки от втория файл, се добавя към името като
суфикс номер на файл. Променливата file_size указва размера на файла в милиони байтове (не в мегабайти = 1 048 576 байта).

указва извеждане на дъмп на компилирания код за съвпадение на пакети в четим от човека формат и излизане от програмата.

-ддизвежда дъмп на съответстващия код като фрагмент от C програма.

-дддИзхвърля кода на съвпадението като низ от десетични стойности, предшестван от низ, съдържащ стойността на брояча.

изброява мрежовите интерфейси на системата, от които tcpdump може да събира пакети. На всеки мрежов интерфейс се дава име и номер, които могат да бъдат последвани от
текстово описание на интерфейса. Името и номерът на интерфейса могат да се използват с флага -i, за да се укаже, че пакетите се събират от един интерфейс.

Тази опция може да бъде много полезна за системи, които не предоставят информация за наличните мрежови интерфейси3.

Флагът -D не се поддържа, ако tcpdump е компилиран с Стара версия libpcap, който не поддържа функцията pcap_findalldevs().

отпечатва заглавката на слоя връзка на всеки ред от дъмпа.

уточнява използването на алгоритъма и тайната [имейл защитен]за декриптиране на IPsec ESP пакети, насочени към ipaddr и съдържащи и в стойността на полето за индекс на параметъра за сигурност
spi. Комбинацията от spi и адрес може да се повтори, като се използва запетая или нов ред като разделител. Имайте предвид, че настройката на тайната за IPv4 ESP пакети в
в момента се поддържа.

Алгоритмите могат да бъдат des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc или нито един. Алгоритъмът по подразбиране е des-cbc. Възможност за дешифриране
пакетите се предоставят само ако опциите за криптографска поддръжка са били активирани, когато tcpdump е компилиран.

Тайният параметър съдържа ASCII текста на ESP секретния ключ. Ако тайната започва с 0x знаци, ще бъде прочетена шестнадесетичната стойност. Опцията включва използването
ESP е в съответствие с RFC 2406, а не с RFC 1827. Тази опция се поддържа само за отстраняване на грешки и трябва да се използва с реални секретни ключовене трябва да бъде, защото въведени в
команден ред, IPsec ключът е достъпен за други системни потребители4.

В допълнение към изричното посочване на опции в командния ред, те могат да бъдат посочени във файл с опции, който tcpdump ще прочете, когато получи първия ESP пакет.

-fуказва показването на чужди IPv4 адреси в числов формат. Използването на тази опция елиминира проблемите, които Sun NIS сървърите срещат, когато се опитват да преведат
нелокални адреси. Чуждостта на IPv4 адрес се проверява с помощта на адреса и маската на интерфейса, който е получил пакета. Ако адресът и маската на интерфейса не са налични
(напр. когато използвате неномерирани интерфейси или когато улавяте пакети от всички адреси на Linux с помощта на фиктивния произволен интерфейс), тази опция ще работи
неправилно.

-Ф<файл> указва използването на филтри, съдържащи се в посочения файл. В този случай филтрите, посочени в командния ред, се игнорират.

-и<интерфейс> указва колекция от пакети от посочения интерфейс. Ако не е указан интерфейс, tcpdump търси в системата списък с налични интерфейси и избира активното устройство с минимален
номер (с изключение на loopback).

IN Linux системи, започвайки с ядрото 2.2, се поддържа фиктивен интерфейс, наречен any, който осигурява събирането на пакети от всички активни интерфейси на системата. Имайте предвид, че колекцията
пакети от устройството се извършва в нормален (непромискуитетен) режим.

Ако флагът -D се поддържа в системата, номерът на интерфейса, показван при използване на този флаг, може да бъде даден като аргумент.

указва буфериране на stdout линии. Тази опция е полезна, когато искате да видите данни, докато събирате пакети. Например команди

tcpdump -l | тей дата

tcpdump -l > dat & tail -f dat

предоставя начин за запис на пакети в dat файл и едновременно извеждане към конзолата.

указва да се покаже списък с известни типове слой на връзката и да се излезе от програмата.

-м<файл> зарежда SMI MIB дефиниционния модул от посочения файл. Тази опция може да се използва многократно за зареждане на множество MIB модули.

забранява преобразуването на адреси и номера на портове в символни имена.

указва да се използват само имена на хостове, а не FQDN. Например, вместо lhotze.bilim-systems.net да използва тази опция, моята работна станция ще бъде
наричан lhotze.

деактивира оптимизатора на кода за проверка дали пакетите отговарят на условията за филтриране. Използвайте тази опция, ако изглежда, че оптимизаторът има грешки.

-стрказва на програмата да не поставя интерфейса в режим на заснемане5. Опцията -p не може да се използва с ether хост (local-hw-addr) или ether излъчващ филтър.

-qопределя изхода на минимално количество информация.

настройката на този флаг предполага, че ESP/AH пакетите използват Стара версия specification6 и tcpdump няма да изведат полетата за предотвратяване на повторно възпроизвеждане.
възпроизвеждане). Тъй като спецификацията на ESP/AH не включва поле за номер на версия, tcpdump не може да определи версията на протокола ESP/AH от заглавките на пакета.

-р<файл> указва да се четат данни от файл, създаден преди това с помощта на командата tcpdump -w или друга програма, която поддържа формата tcpdump (като Ethereal). Ако в
символът - се посочва като име на файл, използва се потокът от данни от стандартното входно устройство (stdin).

указва да се показват абсолютни TCP поредни номера вместо относителни.

указва да се улавят байтове от всеки snaplen пакет вместо 68 байта по подразбиране7. Стойността 68 е подходяща за IP, ICMP, TCP и UDP протоколи, но може да доведе до загуба на
информация за протокола за някои DNS и NFS пакети. Загубата на някои пакети поради малкия размер на рамката за заснемане (моментна снимка) се посочва в изхода чрез полета на формуляра
[|proto]', където proto е името на протоколния слой, на който част от пакета е съкратена8. Обърнете внимание, че увеличаването на заснетия кадър ще доведе до допълнително време
разходи за обработка на пакети и намаляване на броя на буферираните пакети, което може да доведе до загуба на някои пакети. Използвайте минималната стойност на snaplen, която ще позволи
правете, без да губите информация за протокола, който ви интересува. Задаването на snaplen=0 ще улови пълните пакети.

-T<тип> указва интерпретацията на пакетите, избрани с помощта на филтъра, като пакети от типа, определен от параметъра. В момента поддържаните типове са aodv9, cnfp10, rpc11, rtp12, rtcp13,
snmp14, tftp15, vat16 и wb17.

-Tзабранява извеждането на времеви клейма на всеки ред от дъмпа.

-ттуказва изход на всеки ред от неформатиран дъмп на времевия печат.

-тттуказва изходните интервали от време (в микросекунди) между заснемането на предишния и дадени пакетина всеки ред на дъмпа.

-ттттуказва извеждането на времеви клейма във формат по подразбиране за всеки дъмп ред.

-uуказва изхода на NFS манипулатори без декодиране.

-Uзадава режима на „буфериране на ниво партида“ за файлове, записани с опцията -w. В този режим всеки пакет се записва в изходния файл веднага щом бъде уловен.
(без да чака изходния буфер да се запълни). Флагът -U няма да се поддържа, ако програмата tcpdump е компилирана със старата опция libpcap, която не поддържа функцията
pcap_dump_flush().

-vопределя изхода Допълнителна информацияпри заснемане на файлове. Такава информация може да включва TTL стойност (време за живот), идентификация, общ размер, IP опции и т.н. Кога
използването на този флаг също така извършва допълнителни проверки за целостта на пакетите, използвайки контролни суми (например за IP и ICMP протоколи).

-vvуказва допълнително увеличение на количеството изходна информация (например пълно декодиране на SMB пакети, извеждане на допълнителни полета в NFS отговори и т.н.).

-vvvзадава максималното количество изходна информация (например опциите на telnet SB ... SE се показват изцяло). Когато се използва с превключвателя -X, опциите на Telnet също се показват в
шестнадесетично представяне.

-w<файл> определя запис на необработени пакети. Пакетите, компилирани във файл, могат впоследствие да бъдат прегледани с помощта на флага -r или предадени на други програми за анализ.
(напр. Ethereal). Ако символът - е посочен като име на файл, файлът се записва на стандартен изход (stdout).

указва извеждането на шестнадесетичен дъмп (без заглавката на слоя на връзката) за всеки заловен пакет. Количеството изходна информация се определя от по-малката от двете стойности −
размера на пакета и стойността на параметъра snaplen. Обърнете внимание, че при заснемане на пълни рамки на слоя на връзката, дъмпът може също да включва байтове за допълване, ако пакетът на мрежовия слой
има малък размер.

-ххуказва изход на шестнадесетичен дъмп за всеки пакет, включително заглавки на ниво връзка.

указва изход на дъмп в шестнадесетичен и ASCII формат без заглавки на слоя за връзка. Тази опция може да бъде много полезна при анализиране на нови протоколи.

-XXуказва изход на дъмп в шестнадесетичен и ASCII формат, включително заглавки на слоя за връзка.

-y<тип> указва типа слой на връзката, използван при прихващане на пакети. Поддържаните стойности могат да се видят с помощта на флага -L.

Примери.

  • Ние улавяме целия изходящ трафик

tcpdump -i re0 -n -nn -ttt dst хост 192.168.1.2

  • Ние улавяме целия изходящ трафик с изключение на нашата ssh сесия, защото се получава много голям поток от данни.

tcpdump -i re0 -n -nn -ttt 'dst хост 192.168.1.110 и не (src хост 192.168.1.2 и dst порт 22)'

  • Преглед на dns комуникация

tcpdump -i re0 -n -nn -ttt ‘хост 192.168.1.110 и порт 53’

  • Преглед на icmp пакети

tcpdump -i re0 -n -nn -ttt 'ip proto \icmp'

  • Трафик, идващ от мрежа 10.7.20 с дестинация в мрежа 10.7.0. или 24.07.10:

tcpdump -nvX src net 10.7.20.0.0/16 и dst net 10.7.0.0/8 или 10.7.24.0/16

  • Трафик, идващ от мрежа 10.7.0.0 към целеви портове 22 или 4589:

tcpdump 'src 10.7.0.0 и (dst порт 22 или 4589)'

  • Вижте трафика на интерфейса:
  • вижте трафика на един хост:

tcpdump хост 192.168.1.1

  • Вижте трафика на пристанище:

tcpdump src порт 80

  • Преглед на IP трафик на хост:

tcpdump IP хост 192.168.1.2

  • Вижте ARP трафика към хоста:

tcpdump arp хост 192.168.1.2

  • Разглеждаме RARP трафика към хоста:

tcpdump rarp хост 192.168.1.2

  • Разглеждаме трафика, с изключение на хоста pav253

tcpdump не е хост pav253

  • Гледайте трафика на pav253 и pav210

tcpdump хост pav253 или хост pav210

  • Преглеждаме съдържанието на пакетите на интерфейса re0 на хост сайта

tcpdump -X -i re0 хост сайт

  • icq трафик

tcpdump -X -i re0 порт aol

  • Разглеждаме съдържанието на пакетите на интерфейса tun0 към хоста ya.ru, като същевременно четем 1500 байта от всеки пакет и не конвертираме IP адреса в име на хост

tcpdump -X -s 1500 -n -i re0 хост сайт

  • Топ активни взаимодействия

tcpdump -tn -c 10000 -i re0 tcp или udp | awk -F "." „(отпечатайте $1″.”$2″.”$3″.”$4)’ | \ сортиране | уникален -c | sort-nr | awk ‘$1 > 100’

  • Разглеждаме всички TCP пакети с флаг SYN (начало на сесия).

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

  • Преглед на syn и fin пакети отвън

tcpdump 'tcp & (tcp-syn|tcp-fin) != 0, а не src и dst net 192.168.1.0'

  • Вижте всички ipv4 http пакети от порт 80 с изключение на данните за syn/fin/ack

tcpdump 'tcp порт 80 и (((ip - ((ip&0xf)<>2)) != 0)’

  • Преглед само на syn пакети