Використання утиліти tcpdump. Параметрів та прикладів команди tcpdump Tcpdump http запити

Команда tcpdump також називається аналізатором пакетів.

Команда tcpdump буде працювати на більшості різновидів операційної системи UNIX. tcpdump дозволяє зберігати захоплені пакети, тому ми можемо використовувати захоплений пакет для подальшого аналізу. Збережений файл можна переглянути тією ж командою tcpdump. Ми також можемо використати програмне забезпеченняз відкритим вихідним кодомяк Wireshark для читання файлів tcpdump PCAP.

На цьому уроці ми розглянемо деякі практичні прикладияк використовувати команду tcpdump.

1. Захоплення пакетів від конкретного інтерфейсу локальних мереж із використанням tcpdump -i

При виконанні команди tcpdump без будь-якого варіанта він захоплюватиме всі пакети, що проходять через всі інтерфейси. Опція -iкоманди tcpdump, дозволяє фільтрувати за певним інтерфейсом Ethernet.

$ tcpdump -i eth1 12:59:41.967250 ARP, Request who-has free.msk.ispsystem.net tell gw.msk.ispsystem.net, length 46 12:59:41.967257 ARP, Request who-has reserve. tell gw.msk.ispsystem.net, length 46 12:59:41..44141 > wdc-ns1.ispsystem.net.domain: 14799+ PTR? 184.48.146.82.in-addr.arpa. (44) ...

У цьому прикладі tcpdump захопив всі пакети потоку в інтерфейсі eth1 і відображає стандартний висновок.

Примітка:

Утиліта Editcap використовується для вибору або видалення певних пакетів із файлу дампа та перекладу їх у заданому форматі.

2. Захоплення тільки N число пакетів за допомогою tcpdump -c

Під час виконання команди tcpdump дає пакети, доки ви не скасуєте команду tcpdump. Використовуючи опцію -cможна вказати кількість пакетів для захоплення.

$ tcpdump -c 2 -i eth0 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 13:01:35.165898 ARP, Request who-has 213.159.211.80 tgg. :01:35..35123 > wdc-ns1.ispsystem.net.domain: 7254+ PTR? 80.211.159.213.in-addr.arpa. (45) 2 packets captured 7 packets received by filter 0 packets dropped by kernel

Команда tcpdumpзахопили лише 2 пакети від інтерфейсу eth0.

Примітка:

Mergecap і TShark: Mergecap є інструментом об'єднання звалища пакетів, який буде об'єднувати в собі кілька пакетів в один файл дампа. Tshark є потужним інструментом для захоплення мережевих пакетів, які можна використовувати для аналізу мережного трафіку. Він поставляється з аналізатором розподілу мережі Wireshark.

3. Вид на дисплей перехоплених пакетів ASCII, використовуючи tcpdump -a

Наступний синтаксис tcpdump друкує пакет ASCII.

$ tcpdump -A -i eth0 13:03:06.516709 IP 213.132.93.178..vlsi-lm: Flags [.], ack 3120779210, win 254, length 0 E..( [email protected]].....b...%.=...O.P....... 13:03:06..35313 > wdc-ns1.ispsystem.net.domain: 13562+ PTR? 178.93.132.213.in-addr.arpa. (45) [email protected]@........x.....5.5', де proto – ім'я протокольного рівня, у якому відсік частини пакета8. Зазначимо, що збільшення кадру захоплення призведе до додаткових тимчасових
витрат на обробку пакетів і зменшення кількості пакетів, що буферизуються, що може призвести до втрати частини пакетів. Використовуйте мінімальне значення snaplen, яке дозволить
обійтися без втрати інформації про протокол, що вас цікавить. Установка snaplen = 0 спричинить захоплення повних пакетів.

-T<тип> визначає інтерпретацію пакетів, вибраних за допомогою фільтра, як пакетів зазначеного параметром типу. В даний час підтримуються типи aodv9, cnfp10, rpc11, rtp12, rtcp13,
snmp14, tftp15, vat16 та wb17.

-tвідключає виведення тимчасових міток у кожному рядку дампа.

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

-tttзадає виведення тимчасових інтервалів (у мікросекундах) між захопленням попереднього та даного пакетіву кожному рядку дампа.

-ttttзадає виведення тимчасових міток у прийнятому за замовчуванням форматі кожного рядка дампа.

-uвизначає виведення маніпуляторів (handle) 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).

-xзадає висновок шістнадцяткового дампа (без заголовка канального рівня) для кожного захопленого пакета. Обсяг інформації, що виводиться, визначається меншим із двох значень —
розмір пакету та значення параметра snaplen. Зазначимо, що при захопленні повних кадрів канального рівня дамп може включати також байти заповнення, якщо пакет мережевого рівня
має мінімальний розмір.

-xxзадає висновок шістнадцяткового дампа для кожного пакета з включенням заголовків канального рівня.

-Xзадає виведення дампа в шістнадцятковому та ASCII-форматі без заголовків канального рівня. Ця опція може бути дуже зручною при аналізі нових протоколів.

-XXзадає виведення дампа в шістнадцятковому та ASCII-форматі із включенням заголовків канального рівня.

-y<тип> визначає тип канального рівня, що використовується при захопленні пакетів. Значення, що підтримуються, можна переглянути за допомогою прапорця -L.

приклади.

  • Ловимо весь вихідний трафік

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

  • Ловимо весь вихідний трафік крім нашої ssh сесії для дуже великого потоку даних виходить.

tcpdump -i re0 -n -nn -ttt 'dst host 192.168.1.110 and not (src host 192.168.1.2 and dst port 22)'

  • Перегляд спілкування dns

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

  • Перегляд icmp пакетів

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

  • Трафік, що переходить з мережі 10.7.20 із призначенням на мережі 10.7.0. або 10.7.24.

tcpdump -nvX src net 10.7.20.0.0/16 та dst net 10.7.0.0/8 or 10.7.24.0/16

  • Трафік, що йде з мережі 10.7.0.0 на порти призначення 22 або 4589:

tcpdump 'src 10.7.0.0 and (dst port 22 or 4589)'

  • Переглянути трафік на інтерфейсі:
  • подивитися трафік одного хоста:

tcpdump host 192.168.1.1

  • Переглянути трафік на порту:

tcpdump src port 80

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

tcpdump ip host 192.168.1.2

  • Переглянути ARP трафік на хост:

tcpdump arp host 192.168.1.2

  • Дивимося RARP трафік на хост:

tcpdump rarp host 192.168.1.2

  • Дивимося трафік, окрім хоста pav253

tcpdump not host pav253

  • Дивимося трафік на pav253 та pav210

tcpdump host pav253 or host pav210

  • Дивимося вміст пакетів на інтерфейсі re0 на сайт

tcpdump -X -i re0 host сайт

  • icq трафік

tcpdump -X -i re0 port aol

  • Дивимося вміст пакетів на інтерфейсі tun0 на хост ya.ru, при цьому прочитати з кожного пакета по 1500 байт і не перетворювати IP на ім'я хоста

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

  • Top активних зимодій

tcpdump -tn -c 10000 -i re0 tcp or udp | awk -F «.» ‘(print $1″.»$2″.»$3″.»$4)’ | \ sort | uniq-c | sort-nr | awk ‘$1 > 100’

  • Дивимося всі TCP пакети із прапором SYN (початок сесії).

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

  • Перегляд syn і fin пакетів з поза

tcpdump ‘tcp & (tcp-syn|tcp-fin) != 0 and not src and dst net 192.168.1.0’

  • Переглянути всі ipv4 http пакети з порту 80, крім syn / fin / ack даних

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

  • Переглянути тільки syn пакети

Цей tutorial буде показувати, як ізолювати traffic в різних ways-from IP, port, to protocol, to application-layer traffic-to make sure you find exactly what you need as quickly as possible.

tcpdump is the tool everyone should learn as their base для packet analysis.

Install tcpdump with apt install tcpdump (Ubuntu), або yum install tcpdump (Redhat/Centos)

Let's start with a basic command that will get us HTTPS traffic:

tcpdump -nn S X port 443

04:45:40.573686 IP 78.149.209.110.27782 > 172.30.0.144 .443 : Flags [.], ack 278239097, win 28, options , length 0 0x 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

Ви можете отримати single packet with -c 1 , or n number with -c n .

Цей показує деякі HTTPS traffic, з hex display visible on the right portion of the output (alas, it’s encrypted). Just remember—when in doubt, run the command above with the port you’re interested in, and you should be on your way.

Examples

PacketWizard™ isn’t реально trademarked, але it should be.

a practitioner preparing to run tcpdump

Тепер, що ви можете отримати basic traffic, let's step через численні examples, що ви є потрібним для вашої роботи в мережі, безпеки або будь-якого типу PacketWizard™.

Everything on an interface

Just see what’s going on, by looking at what’s hitting your interface.

Or get all interfaces with -i any.

tcpdump -i eth0

Find Traffic by IP

Один з найбільш загальних вірувань, використовуючи host , Ви можете дізнатися, що йти до або від 1.1.1.1.

Expression Types:

host, net, and port.

src і dst .

host, net, and port.

tcp, udp, icmp, and many more.

tcpdump host 1.1.1.1

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

Якщо ви тільки хочете перевірити в одному напрямі або іншим, ви можете використовувати src і dst .

tcpdump src 1.1.1.1
tcpdump dst 1.0.0.1

Finding Packets by Network

Натисніть пакети going to or from a particular network or subnet, використовуючи net option.

Ви можете поєднувати це з src і dst options як добре.

tcpdump net 1.2.3.0/24

Get Packet Contents with Hex Output

Hex output is useful when you want to see content of the packets in question, and it's often best used when you're isolating a feed candidates for closer scrutiny.

tcpdump -c 1 -X icmp

Summary

Тут є такі шляхи.

  1. tcpdump is a valuable tool for anyone , щоб отримати в мережі або .
  2. Raw way it interfaces with traffic, combined with the precision it offers inspecting packets make it the best possible tool for learning TCP/IP.
  3. Protocol Analyzers як Wireshark є великий, але якщо ви будете вірно master packet-fu, ви повинні бути одним з TCPDump першим.

Вельми, цей перший повинен отримати вашу велику силу, але людина сторінка повинна бути краще для most advanced and one-off usage scenarios. I truly hope this has been useful to you, and feel free to if you have any questions.

Notes

  1. I'm currently (sort of) писати на book on tcpdump for No Starch Press.
  2. The leading image is from SecurityWizardry.com.
  3. Один з ізоляційних filtrів borrowed from

ЧОМУ TCPDUMP?

Tcpdump – головний інструмент мережного аналізу для фахівців з інформаційної безпеки. Для тих, хто хоче отримати повне уявлення про TCP / IP обов'язково потрібно мати достатнє розуміння цієї важливої ​​програми. Багато хто вважає за краще використовувати інструменти вищого рівня, такі як Wireshark, але я вважаю це помилкою.

Коли використовуєш інструмент, який відображає мережевий трафік більш природним (простим) способом, складність аналізу звалюється безпосередньо на людину, а не на програму. Цей підхід розвиває розуміння набору TCP / IP, тому я настійно рекомендую використовувати tcpdump замість інших інструментів, коли це можливо.

15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, offset 0, flags, proto: TCP (6), length: 60) source.35970 > dest.80: S, cksum 0x0ac1 (4) 2647022145(0) win 5840 0x0000: 4500 003c 4f14 4006 7417 0afb 0257 E.. 0x0010: 4815 222a 8c82 0050 9dc6 5a41 0000 0000 H."*...P..ZA.... 0x0020: a002 16d0 0ac1 0000 0204 05b4 0402 080a ................ 0x0030: 14b4 1555 0000 0000 0103 0302

ОСНОВИ

Нижче наведено кілька параметрів, які можна використовувати під час налаштування tcpdump. Їх легко забути та/або переплутати з іншими типами фільтрів, наприклад Wireshark, тому ця сторінка може бути для вас довідковим матеріалом. Ось основні з них, які я люблю зберігати в пам'яті, залежно від того, що я дивлюся.

ОПЦІЇ

  • -i any: прослуховувати всі інтерфейси, щоб побачити, чи бачите ви трафік.
  • -i eth0: слухати інтерфейс eth0.
  • -D: Показувати список доступних інтерфейсів
  • -n: відображати IP-адреси замість імені хостів.
  • -nn: відображати IP-адреси та номери портів замість імені хостів та назви протоколів.
  • -q: Відображає мінімальну кількість інформації про пакет.
  • -t: не відображати позначку часу в кожному рядку.
  • -tttt: задає виведення тимчасових міток у прийнятому за промовчанням форматі для кожного рядка.
  • -X: Показувати вміст пакета як у шістнадцятковому кодуванні, так і в ASCII.
  • -XX: Те саме, що і -X, але також показує ethernet header.
  • -v, -vv, -vvv: збільшити кількість інформації, що повертається про пакети.
  • -c: тільки отримати x кількість пакетів, а потім зупинити.
  • -s: Визначити довжину snaplength (розмір) захоплення в байтах. Використовуйте -s0, щоб отримати все, якщо ви навмисно не захопили менше.
  • -S: Друкувати абсолютні порядкові номери.
  • -e: Отримати Ethernet header.
  • -q: Показати мінімальну інформаціюпро пакет.
  • -E: Розшифрувати трафік IPSEC, надавши ключ шифрування.
[Значення snaplength за замовчуванням для tcpdump 4.0 змінилося з 68 до 96 байтів. Хоча це дасть вам побачити більше інформації про пакет, але це не вся інформація. Використовуйте -s1514 або -s0, щоб отримати повне охоплення.

ВИРАЗИ

У tcpdump вирази дозволяють вам урізати різні типитрафіку і знайти саме те, що ви шукаєте. Освоєння виразів та вміння об'єднати їх творчо - ось що робить по-справжньому потужним tcpdump.

Існує три основні типи виразів: type, dir і proto.

Типи опцій: хост, мережа та порт.

Директорії дозволяють вам виконувати src, dst та їх комбінації.

Протокол дозволяє вам визначати: tcp, udp, icmp, ah та багато інших.

ПРИКЛАДИ

Отже, тепер, коли ми побачили, які у нас є варіанти, погляньмо на деякі реальні приклади, які ми, ймовірно, побачимо в нашій повсякденній роботі.

ОСНОВНЕ ПОВІДОМЛЕННЯ

Просто подивіться, що відбувається, подивившись на всі інтерфейси.

# tcpdump -i any

КОНКРЕТНИЙ ІНТЕРФЕЙС

Основне уявлення про те, що відбувається на конкретному інтерфейсі.

# tcpdump -i eth0

НАДАННЯ НЕОБРОБЛЕНОГО ВИСНОВКУ

Докладний висновок без дозволу імен хостів або номерів портів, абсолютних порядкових номерів і тимчасових міток.

# tcpdump -ttttnnvvS

ЗНАЙДІТЬ ТРАФІК ПО IP

Один з найпоширеніших запитів, це покаже вам трафік з 1.2.3.4, чи це джерело або місце призначення.

# tcpdump host 1.2.3.4

ПОДИВИТИСЯ БІЛЬШ ІНФОРМАЦІЇ ПРО ПАКЕТ З ВИСНОВКОМ НА ШІСТНАДЦАТЕРИЧНУ СИСТЕМУ

Шістнадцятковий висновок корисний, коли ви хочете побачити вміст розглянутих пакетів, і його часто краще використовувати, коли ви ізолюєте кілька кандидатів для більш ретельного вивчення.

# tcpdump -nnvXSs 0 -c1 icmp tcpdump: listening on eth0, link-type EN10MB (Ethernet), 23:11:10.370321 IP (tos 0x20, ttl 48, id 34859, 43,4 > 72.21.34.42: icmp 64: echo request seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E.+ 0x2 000 00 "..50"..%..D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^.............. 0x0030: 1415 1617 1819 1a2 ..........!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&"()*+,-./0123 0x0050: 3435 3637 4567 1 pack packets dropped by kernel

ФІЛЬТРАЦІЯ ЗА ДЖЕРЕЛАМИ І ПРИЗНАЧЕННЯМ

Виділити трафік на основі джерела чи призначення дуже просто, використовуючи src та dst.

# tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6

ПОШУКОВІ ПАКЕТИ ПО МЕРЕЖІ

Щоб знайти пакети, що йдуть в або з певної мережі, використовуйте net. Ви можете поєднати це з опціями src або dst.

# tcpdump net 1.2.3.0/24

ПОКАЗАТИ ТРАФІК ЗВ'ЯЗАНИЙ З СПЕЦІАЛЬНИМ ПОРТОМ

Ви можете знайти певний порт трафіку, використовуючи опцію port, за якою слідує номер порту.

# tcpdump port 3389 tcpdump src port 1025

ПОКАЗАТИ ТРАФІК ОДНОГО ПРОТОКОЛУ

Якщо ви шукаєте певний тип трафіку, ви можете використовувати tcp, udp, icmp та багато інших.

# tcpdump icmp

ПОКАЗАТИ ТІЛЬКИ ТРАФІК IP6

Ви можете знайти весь трафік IP6, використовуючи опцію протоколу.

ЗНАЙДІТЬ ТРАФІК З ВИКОРИСТАННЯМ ПОРТОВИХ ДІАПАЗОНІВ

Ви також можете використовувати діапазон портів, щоб знайти трафік.

# tcpdump portrange 21-23

ЗНАЙДІТЬ ТРАФІК НА ОСНОВІ РОЗМІРУ ПАКЕТУ

Якщо ви шукаєте пакети певного розміру, можна використовувати ці параметри. Ви можете використовувати маленькі, великі або їх відповідні символи, які ви очікуєте від математики.

# tcpdump less 32 tcpdump greater 64 tcpdump<= 128

ПИСЬМОВІ ЗАПИСИ У ФАЙЛ

Часто корисно зберігати результати пакетів у файл для аналізу в майбутньому. Ці файли відомі як файли PCAP (PEE-cap), і їх можна обробляти сотнями різних програм, включаючи мережеві аналізатори, системи виявлення вторгнень і, звичайно, самим tcpdump. Тут ми пишемо файл із ім'ям capture_file, використовуючи ключ -w.

# tcpdump port 80 -w capture_file

ЧИТАННЯ ФАЙЛІВ PCAP

Ви можете прочитати файли PCAP за допомогою ключа -r. Зверніть увагу, що ви можете використовувати всі регулярні команди в tcpdump під час читання у файлі; ви обмежені лише тим фактом, що ви не можете захоплювати та обробляти те, чого не існує у файлі.

# tcpdump -r capture_file

РОЗШИРЕНИЙ

Тепер, коли ми побачили, що ми можемо зробити з основами за допомогою деяких прикладів, давайте розглянемо деякі складніші речі.

ЦЕ ВСЕ ПРО КОМБІНАЦІЇ

Робити ці різні речі індивідуальними – потужна здатність, але справжня магія tcpdump виходить із здатності поєднувати варіанти креативними способами, щоб ізолювати саме те, що ви шукаєте. Є три способи зробити комбінації, і якщо ви взагалі вивчали програмування, вони будуть дуже знайомі.

AND
and or &&

OR
or or ||

EXCEPT
not or!

Ось кілька прикладів комбінованих команд.

З СПЕЦИФІЧНОГО IP І ПРИЗНАЧАЄТЬСЯ ДЛЯ ВИЗНАЧЕНОГО ПОРТУ

Знайдемо весь трафік з 10.5.2.3 до будь-якого хосту на порту 3389.

Tcpdump -nnvvS src 10.5.2.3 та dst port 3389

ВІД ОДНІЙ МЕРЕЖІ ДО ІНШОЇ

Давайте подивимося на весь трафік, що йде від 192.168.x.x, і рухається до мереж 10.x або 172.16.x.x, і ми покажемо шістнадцятковий висновок без імені хоста і один рівень додаткової деталізації.

Tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or172.16.0.0/16

НЕ ICMP ТРАФІК, ПЕРЕХОДЯЧИЙ В СПЕЦИФІЧНИЙ IP

Це покаже нам весь трафік, що йде до 192.168.0.2 який не є ICMP.

Tcpdump dst 192.168.0.2 and src net and not icmp

ТРАФІК ВІД ХОСТА, ЯКИЙ НЕ В КОНКРЕТНОМУ ПОРТУ

Це покаже нам весь трафік від хоста, який не є трафіком SSH (якщо припустити використання порту за замовчуванням).

Tcpdump -vv src mars and not dst port 22

Як ви можете бачити, ви можете створити запити, щоб знайти практично все, що вам потрібно. Ключ повинен спочатку визначити те, що ви шукаєте, а потім побудувати синтаксис, щоб ізолювати певний тип трафіку.

Складне угруповання та спеціальні символи

Також майте на увазі, що при створенні складних запитів вам, можливо, доведеться групувати свої параметри, використовуючи одинарні лапки. Одиночні лапки використовуються для того, щоб вказати tcpdump, що потрібно ігнорувати деякі спеціальні символи – у цьому випадку те, що у дужках "()". Цей метод можна використовувати для групування з використанням інших виразів, таких як хост, порт, мережа і т.д. Подивіться на наведену нижче команду.

# Traffic that’s from 10.0.2.4 AND destined for ports 3389 or 22 (неправильно) tcpdump src 10.0.2.4 and (dst port 3389 or 22)

Якщо ви спробували виконати цю дуже корисну команду в іншому випадку, ви отримаєте помилку через дужки. Ви можете виправити це, вийшовши з дужок (поставивши перед кожною з них) або поставивши всю команду в одинарні лапки:

# Traffic that's from 10.0.2.4 AND destined for ports 3389 or 22 (correct) # tcpdump "src 10.0.2.4 and (dst port 3389 or 22)"

Ізолювання специфічних TCP-прапорів

Ви також можете захоплювати трафік на основі певних прапорів TCP.

[ПРИМІТКА: Фільтри нижче знаходять ці різні пакети, тому що tcp помічає зміщення 13 у заголовку TCP, число представляє місце розташування в байті, а! = 0 означає, що цей прапор встановлено 1, тобто. він увімкнений. ]

Показати всі URGENT (URG) пакети …

# tcpdump "tcp & 32!=0"

Показати всі ACKNOWLEDGE пакети (ACK) …

# tcpdump "tcp & 16!=0"

Показати всі PUSH пакети (PSH) …

# tcpdump "tcp & 8!=0"

Показати всі RESET пакети (RST) …

# tcpdump "tcp & 4!=0"

Показати всі SYNCHRONIZE пакети (SYN) …

# tcpdump "tcp & 2!=0"

Показати всі FINISH (FIN) пакети …

# tcpdump "tcp & 1!=0"

Показати всі SYNCHRONIZE / ACKNOWLEDGE пакети (SYNACK) …

# tcpdump "tcp=18" [Примітка: тільки прапор PSH, RST, SYN та FIN відображаються у виведенні поля tcpdump. Відображаються URG та ACK, але вони показані в іншому місці на виході, а не у полі flags. ]

Однак, як і у випадку із найпотужнішими інструментами, існує безліч способів зробити те, що потрібно. У наступному прикладі показаний інший спосіб захоплення пакетів зі специфічними наборами прапорів TCP.

# tcpdump "tcp == tcp-syn"

Зняти прапори RST за допомогою параметра tcpflags.

# tcpdump "tcp == tcp-rst"

Зняти прапори FIN за допомогою tcpflags…

# tcpdump "tcp == tcp-fin" [Примітка: той самий метод може бути використаний і для інших прапорів; вони були опущені на користь економії місця. ]

Визначення трафіку, що заслуговує на увагу

Нарешті, є кілька швидких рецептів, які ви захочете запам'ятати, щоб зловити специфічний та спеціалізований трафік, наприклад, неправильні/ймовірно-шкідливі пакети.

ПАКЕТИ ІЗ ЗВИЧАЙНИМИ КОМПЛЕКТАМИ RST І SYN (ЦЬОГО НЕ ПОВИННО БУТИ)

# tcpdump "tcp = 6"

ЗНАЙТИ ВІДКРИТИЙ ТЕКСТ HTTP І ОТРИМАТИ ЗАПИТ

# tcpdump "tcp = 0x47455420"

ЗНАЙДІТЬ SSH-З'ЄДНАННЯ НА БУДЬ-ЯКИЙ ПОРТ (ЧЕРЕЗ БАННЕР)

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

ПАКЕТИ З TTL МЕНШЕ 10 (ЯК ПРАВИЛО ПОКАЗАЄ ПРОБЛЕМУ АБО ВИКОРИСТОВУЄ TRACEROUTE)

# tcpdump "ip< 10"

ПАКЕТИ З УСТАНОВКОЮ EVIL BIT

# tcpdump "ip & 128! = 0"

Висновок

tcpdump – це цінний інструмент для всіх, хто хоче вступити в мережеву чи інформаційну безпеку.
Незвичайний спосіб взаємодії з трафіком у поєднанні з точністю, яку він надає під час перевірки пакетів, робить його найкращим інструментом вивчення TCP/IP.
Аналізатори протоколів, такі як Wireshark, чудові, але якщо ви хочете дійсно опанувати пакети, ви повинні спочатку опанувати tcpdump.
Загалом, цей підручник повинен допомогти вам стати сильним, але сторінка керівництва завжди має бути зручною для найпросунутіших та одноразових сценаріїв використання. Я щиро сподіваюся, що це було корисно вам, і не соромтеся звертатися до мене, якщо у вас є питання.

  • Пропонуємо перевірену програму та підручник експертів із Cisco Networking Academy та Linux Professional Institute, сертифікованих інструкторів та особистого куратора.
  • Допоможемо з працевлаштуванням та зробити кар'єру. 100% наших випускників працевлаштовуються.
  • Як відбувається навчання?

    • Проводимо вечірні онлайн-лекції на нашій платформі або навчайтеся на базі Київського офісу.
    • Запитаємо у вас про зручний для практик і підлаштуємося: розуміємо, що часу вчитися мало.
    • Якщо хочете індивідуальний графік – обговоримо та здійснимо.
    • Виставимо чіткі дедлайн для самоорганізації. Особистий куратор буде на зв'язку, щоб відповісти на запитання, проконсультувати та мотивувати дотримуватися термінів складання іспитів.

    А ще допоможемо Вам: