Частина 6. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Аналіз пакетів із командного рядка)

19 вересня 2023 7 хвилин Автор: Cyber Witcher

Аналіз мережевих пакетів у Wireshark і tcpdump: Засади та техніки

Аналіз мережевих пакетів із командного рядка за допомогою інструментів, таких як Wireshark і tcpdump, є важливою складовою для розуміння та моніторингу мережевого трафіку. Ці інструменти надають можливість операторам мережі та системним адміністраторам глибоко розібратися в тому, що відбувається у локальній мережі, і допомагають виявляти проблеми та потенційні загрози безпеці. Wireshark, зі своїм інтуїтивним графічним інтерфейсом, дозволяє візуалізувати мережевий трафік у зручному для розуміння вигляді. Він дозволяє фільтрувати та сортувати пакети, а також надає можливість докладно аналізувати дані на різних рівнях мережевого стеку. Wireshark є корисним інструментом для виявлення аномалій у трафіку та відстеження проблем.

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

Аналіз пакетів із командного рядка

У багатьох випадках сніффінг пакетів може бути виконаний за допомогою графічного інтерфейсу, але іноді інструменти командного рядка (такі як TShark або tcpdump) необхідні і навіть бажані. Нижче наведено кілька ситуацій, у яких замість Wireshark можна використовувати інструмент командного рядка.

  • Wireshark надає багато інформації одночасно. За допомогою інструменту командного рядка можна обмежити відображувану інформацію тільки тими даними, які вам потрібні, наприклад, показати поспіль тільки 1Р-адреси.

  • Інструменти командного рядка найкраще підходять для фільтрації пакетів у файлі перехоплення і передачі результатів безпосередньо іншому інструменту по каналах Unix.

  • Робота з дуже великими файлами перехоплення в Wireshark часто непроста, оскільки весь файл повинен бути завантажений в оперативну пам’ять. Завдяки потоковій обробці файлів перехоплення засобами командного рядка є можливість швидкого вибору потрібних пакетів з файлу.

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

У цій главі продемонстровані можливості  TShark і tcpdump, найбільш поширених інструментів командного рядка для аналізу пакетів. Ознайомитися з ними корисно, хоча особисто я використовую TShark в системах Windows і tcpdump в системах Unix. Якщо ви використовуєте тільки Windows, ви можете пропустити розділи цього розділу про tcpdump.

Установка утиліти TShcrk

Утиліта TShark, яка є термінальним аналогом Wireshark, використовується для аналізу пакетів і надає в основному ту ж функціональність, що і Wireshark, але тільки у вигляді інтерфейсу командного рядка, а не графічного інтерфейсу. Якщо ви встановили Wireshark, у вас, ймовірно, також є TShark, якщо ви не виключили його зі своїх інсталяцій Wireshark. Щоб перевірити, чи інстальовано програму TShark, виконайте наведені нижче дії.

  1. Відкрийте вікно командного рядка або терміналу, ввівши команду і натиснувши відповідну кнопку (конкретні кроки залежать від використовуваної операційної системи).

  2. Перейдіть до каталогу, де встановлено програму Wireshark. Якщо ви встановили його в стандартному розташуванні, введіть C:\Program Fi1es\Wireshark у командному рядку.

  3. Запустіть TShark і відобразіть інформацію про версію утиліти, ввівши tshark -v. Якщо TShark не встановлено, з’явиться повідомлення про помилку про те, що введена команда не розпізнана. І якщо TShark встановлений у вашій системі, ви побачите наступну інформацію про його версії:

C:\Program Files\Wireshark>tshark -v 
TShark (Wireshark) 2.6.1 (v2.6.1-0-g860a78b3) 
-- фрагмент --

Якщо ви не встановили утиліту TShark, але хочете використовувати її, повторіть інсталяцію Wireshark, вибравши TShark як частину встановлених коштів, хоча це робиться за замовчуванням. А якщо ви хочете почати вивчати можливості TShark, то запустіть команду tshark -h, як показано нижче, для відображення її команд.

C:\Program Files\Wireshark>tshark -h

Як і Wireshark, утиліта TShark підійде для роботи в різних операційних системах, але оскільки вона не залежить від графічних бібліотек конкретної операційної системи, досвід її використання на різних платформах практично однаковий. Через це TShark працює дуже плавно на Windows, Linux і Mac OS X, хоча на кожній платформі є деякі відмінності. У даній книзі мова піде про роботу з TShark на Windows, так як вона є основною операційною системою, для якої призначена дана утиліта.

Установка утиліти tcpdump

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

Хоча більша частина цієї книги орієнтована на роботу в середовищі Windows, вона включає розділи про tcpdump спеціально для користувачів Unix і, зокрема, Ubuntu 14.04 LTS. Якщо ви хочете використовувати tcpdump на Windows, завантажте та встановіть його аналог WinDump Windows, доступний за адресою http://www.winpcap. org/windump/. Хоча досвід використання tcpdump і WinDump не зовсім однаковий, ці сніфери пакетів функціонують аналогічним чином. Однак слід мати на увазі, що WinDump далеко не так активно підтримується, як tcpdump. В результаті ряд нових функцій можна просто усунути і при цьому з’являються уразливості в захисті. (Ця книга не охоплює WinDurnp.) Незважаючи на те, що tcpdump не входить в дистрибутив Ubuntu, встановити його зовсім не складно завдяки системі управління пакетами ART.

Щоб інсталювати tcpdump, виконайте такі дії:

  1. Відкрийте вікно терміналу та запустіть sudo apt-get update, щоб оновити магазини пакетів останніми версіями.

  2. Запустіть sudo apt-get install

  3. Вам буде запропоновано встановити ряд залежних пакетів, необхідних для роботи tcpdump. Дозвольте їх інсталяцію, ввівши Y і натиснувши клавішу <Enter> коли з’явиться відповідний запит.

  4. Коли установка буде завершена, введіть команду tcpdt-h, щоб запустити ліцензію і відобразити інформацію про її версію. Якщо ця команда пройшла успішно, можна приступати до роботи з tcpdwnp. І у вікні термінів з’явиться таке повідомлення:

sanders@ppa:-$ tcpdump -h 
tcpdump version 4.9.2 
libpcap version 1.8.1 
Usage: tcpdump [ -aAЬdDefhНIJКlLnNOpqStuUvxX#] [ -В size ] [ -с count ] 
[ -С file_size ] [ -Е algo:secret ] [ -F file ] [ -G seconds 
-i interface ] [ -j tstamptype ] [ -М secret ] [ --numЬer ] 
-Q inloutlinout ] 
-r file J [ -s snaplen J [ --time-stamp-precision precision 
--immediate-mode ] [ -Т type ] [ --version ] -v file ] 
-w file ] [ -W filecount ] [ -у datalinktype 
-z postrotate-command ] 
-Z user ] [ expression ]

Всі команди, доступні в tcpdump, можна відобразити, запустивши наступну команду. Нижче ми розглянемо деякі з цих команд:

sanders@ppa:-$ man tcpclump

Захоплення та збереження пакетів

Перш за все, слід перехоплювати пакети з мережі і виводити їх на екран. Щоб почати захоплення пакетів в TShark, все, що вам потрібно зробити, це запустити команду tshark. Ця команда починає процес захоплення пакетів з мережевого інтерфейсу і відображення їх у вікні терміналу, аналогічно прикладу нижче.

C:\Program Files\Wireshark>tshark 
1 0.000000 172.16.16.128 -> 74.125.95.104 ТСР 66 1606 80 [SYN] 
Seq=O Win=8192 Len=O MSS=1460 WS=4 SACK_PERМ=l 
2 0.030107 74.125.95.104 -> 172.16.16.128 ТСР 66 80 1606 [SYN, АСК] 
Seq=O Ack=l Win=5720 Len=O MSS=l406 SACK_PERМ=l WS=64 
3 0.030182 172.16.16.128 -> 74.125.95.104 ТСР 54 1606 80 [АСК] 
Seq=l Ack=l Win=l6872 Len=O 
4 0.030248 172.16.16.128 -> 74.125.95.104 НТТР 681 GET / НТТР/1.1 
5 0.079026 74.125.95.104 -> 172.16.16.128 ТСР 60 80 1606 [АСК] 
Seq=l Ack=628 Win=6976 Len=O

А для того, щоб почати перехоплення пакетів, досить виконати команду tcpdump . Після виконання цієї команди вікно терміналу має виглядати приблизно так:

sanders@ppa:-$ tcpdump 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening оп ethO, link-type ЕNlОМВ (Ethernet), capture size 65535 bytes 
21:18:39.618072 IP 172.16.16.128.slm-api > 74.125.95.104.http: Flags [S], 
seq 2082691767, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length О 
21:18:39.648179 IP 74.125.95.104.http > 172.16.16.128.slm-api: 
Flags [S.], seq 2775577373, ack 2082691768, win 5720, options [mss 
1406,nop,nop,sackOK,nop,wscale 6], length О 
21:18:39.648254 IP 172.16.16.128.slm-api > 74.125.95.104.http: Flags [.], ack 1, 
win 4218, length О 
21:18:39.648320 IP 172.16.16.128.slm-api > 74.125.95.104.http: Flags [Р.], 
seq 1:628, ack 1, win 4218, length 627: НТТР: GET / НТТР/1.1 
21:18:39.697098 IP 74.125.95.104.http > 172.16.16.128.slm-api: Flags [.], ack 628, 
win 109, length О

Залежно від конфігурації системи, TShark або tcpdump можуть за замовчуванням не використовувати мережевий інтерфейс, з якого ви хочете захопити пакети. В цьому випадку доведеться вказувати його вручну. Список мережевих інтерфейсів, доступних для TShark, можна відобразити за допомогою команди tshark -D, як показано нижче.

C:\Program Files\Wireshark>tshark -D 
1. \Device\NPF_{1DE095C2-346D-47E6-B855-11917B74603A) (Local Area Connection 2) 
2. \Device\NPF_{lA494418-97D3-42E8-8COB-78D79AlF7545) (Ethernet 2)

Щоб використовувати певний мережевий інтерфейс, запустіть команду tshark -i з номером, присвоєним мережевому інтерфейсу у списку вище:

C:\Program Files\Wireshark>tshark -i 1

Ця команда буде перехоплювати пакети тільки з мережевого інтерфейсу Loca1 Area Connection 2, який в списку мережевих інтерфейсів пронумерований 1. Рекомендується завжди вказувати мережевий інтерфейс, з якого потрібно захоплювати пакети. Зрештою, інструменти віртуальних машин або VPN дуже часто додають мережеві інтерфейси, тому ви повинні переконатися, що пакети надходять з правильного джерела.

Якщо ви працюєте з tcpdump в системі Linux або Mac OS X, виведіть на екран список доступних мережевих інтерфейсів за допомогою команди ifconfig, як показано нижче.

sanders@ppa:-$ ifconfiq 
ethO Link encap:Ethernet HWaddr OO:Oc:29:1f:a7:55 
inet addr:172.16.16.139 Bcast:172.16.16.255 Mask: 
255.255.255.О 
inetб addr: fe80::20c:29ff:felf:a755/64 Scope:Link 
UP BROADCAST RUNNING МULTICAST MTU:l500 Metric:l 
RX packets:5119 errors:O dropped:O overruns:O frame:O 
ТХ packets:3088 errors:O dropped:O overruns:O carrier:O 
collisions:O txqueuelen:lOOO 
RX bytes:876746 (876.7 КВ} ТХ bytes:538083 (538.О КВ)

І вказати конкретний мережевий інтерфейс. Ви можете використовувати команду нижче. Ця команда буде перехоплювати пакети тільки з мережевого інтерфейсу eth0.

sanders@ppa:-$ tcpdump -i ethO

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

Щоб зберегти накопичені пакети до файлу, запустіть команду (tshark або cpdump).—) з аргументом -w в обох утилітах, розглянутих тут, а потім ім’ям файлу. Нюхання пакета триватиме, доки ви не зупините його натисканням <Ctrl+C>. Зазначений файл буде збережений в каталозі, з якого виконувалася відповідна утиліта, якщо не вказано інше. Нижче наведено приклад того, як запустити цю команду в TShark.

C:\Program Files\Wireshark>tshark -i 1 -w packets.pcap

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

sanders@ppa:-$ tcpduшp -i ethO -w packets.pcap

Щоб прочитати пакети зі збереженого файлу перехоплення, запустіть таку команду з аргументом –r, також вказавши ім’я файлу:

C:\Program Files\Wireshark>tshark -r packetв.pcap

За допомогою цієї команди всі пакети з пакетів перехоплюють файл packets. рсар зчитуються і відображаються на екрані. Аналогічна команда в tcpdump виглядає так:

sanders@ppa:-$ tcpdump -r packets.pcap

І відповідно до наступної команди, в TShark budug відображаються тільки перші 10 пакетів з файлу перехоплення:

C:\Program Files\Wireshark>tshark -r packets.pcap -clO

Аналогічна команда в tcpdunp виглядає так:

sanders@ppa:-$ tcpdump -r packets.pcap -clO

В процесі перехоплення також можна вказати аргумент -s у відповідній команді. В результаті його виконання було перехоплено і виведено для перегляду на екран всього 10 пакетів. А якщо додати аргумент -w, то перехоплені пакети можна зберегти в файл. Ось як виглядає подібна команда в TShark.

C:\Program Files\Wireshark>tshark -i 1 -w packets.pcap -clO

Аналогічна команда в tcpdump виглядає так:

sanders@ppa:-$ tcpdulllp -i ethO -w packets.pcap -clO

Маніпулювання вихідними результатами

Перевага використання інструментів сніффінга пакетів командного рядка полягає в тому, що результати більш конкретні. Як правило, графічний інтерфейс відображає все, і ви самі повинні знайти саме те, що вам потрібно. А інструменти командного рядка зазвичай відображають лише мінімум, змушуючи використовувати додаткові команди для більш глибокого аналізу пакетів. І в цьому відношенні утиліти TShark і tcpdump нічим не відрізняються. Обидва відображають один рядок на пакет, вимагаючи додаткових команд для перегляду більш детальної інформації про мережеві протоколи або окремих байтах з пакетів.

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

Кожен вихід в tcpdump також являє собою один пакет, який форматується по-різному в залежності від використовуваного мережевого протоколу. А так як tcpdump не використовує ті ж інтерпретатори протоколів, що і Wireshark, дана утиліта не аналізує інформацію про мережевих протоколах сьомого рівня. І це один з головних недоліків tcpdump. Замість цього однорядкові пакети форматуються на основі протоколу мережі транспортного рівня, який вони використовують, і вони можуть бути TCP або UDP (докладніше про це в главі 8, “Протоколи транспортного рівня”).

TCP-пакети мають такий формат:

[Отметка времени] [Протокол третьего уровня] 
[IР-адрес отправителя]. [Порт отправителя] > 
[IР-адрес получателя]. [Порт получателя]: 
[Флаги протокола ТСР], [Порядковый номер в протоколе ТСР], 
[Номер подтверждения в протоколе ТСР], 
[Размеры окон в протоколе ТСР], [Длина данных]

UDP-пакети використовують наступний формат:

[Отметка времени] [Протокол третьего уровня] 
[IР-адрес отправителя]. [Порт отправителя] > 
[IР-адрес получателя]. [Порт получателя]: 
[Протокол четвертого уровня], [Длина данных]

Ці основні однорядкові резюме чудово підходять для швидкого аналізу пакетів, але в кінцевому підсумку вам доведеться виконувати більш глибокий аналіз пакетів. У додатку Wireshark просто натисніть на улюблений пакет на панелі «Список пакетів», щоб відобразити його деталі на панелях «Деталі пакета» та «Байти пакетів». Ви можете отримати доступ до тієї ж інформації з командного рядка за допомогою декількох параметрів.

Щоб отримати більше інформації про кожен пакет, найпростіше зробити вихід більш багатослівним. Для цієї мети в TShark служить параметр V, як показано нижче.

C:\Program Files\Wireshark>tshark -r packets.pcap -V

Ця команда відображає ту ж інформацію про пакети, прочитані з файлу перехоплення packets.pcap, що і на панелі Packet DetaiIs в Wireshark. Нижче наведено приклади аналізу пакета зі звичайним деталізацією (основні підсумки) і розширеним деталізацією (детальними підсумками, отриманими за допомогою аргументу -V).

По-перше, ось стандартний результат виводу:

C:\Program Files\Wireshark>tshark -r packets.pcap -cl 
1 0.000000 172.16.16.172 -> 4.2.2.1 ICMP Echo (piпg) request id=OxOOOl, 
seq=l7/4352, ttl=l28

А тепер ось деякі з найбільш детальних відомостей, отриманих за допомогою розширеної деталізації.

C:\Program Files\Wireshark>tshark -r packets.pcap -V -cl 
Frame 1: 74 bytes оп wire (592 bits), 74 bytes captured (592 bits) оп iпterface О 
Iпterface id: О (\Device\NPF_(C30671Cl-579D-4F33-9CC0-73EFFFE85A54)) 
Eпcapsulatioп type: Etherпet (1) 
Arrival Time: Dec 21, 2015 12:52:43.116551000 
Easterп Staпdard Time 
[Time shift for this packet: 0.000000000 secoпds] 
фрагмент -

Для підвищення рівня деталізації утиліта tcpdump використовує аргумент -v. Але, на відміну від TShark, утиліта tcpdump дозволяє відображати кожен пакет на декількох рівнях деталізації. А якщо у відповідній команді вказати кілька аргументів v, то можна додати таку ж кількість рівнів деталізації. У наступному прикладі показано, як розширити інформацію про пакунок до трьох рівнів деталізації.

sanders@ppa:-$ tcpdump -r packets.pcap -vvv

Нижче наведено приклад того, як відображати інформацію про один і той самий пакунок як на звичайному рівні деталізації, так і на розширенні до іншого рівня деталізації. Але навіть при повній деталізації вихідний результат не йде ні в яке порівняння з деталями, які відображаються в TShark.

sanders@ppa:-$ tcpdump -r packets.pcap -cl 
reading from file packets.pcap, link-type ENlOMB (Ethernet) 
13:26:25.265937 IP 172.16.16.139 > a.resolvers.level3.net: 
ICMP echo request, id 1759, seq 150, length 64 
sanders@ppa:-$ tcpdump -r packets.pcap -cl -v 
reading from file packets.pcap, link-type ЕNlОМВ (Ethernet) 
13:26:25.265937 IP (tos ОхО, ttl 64, id 37322, offset О, 
flags (DF], proto ICMP (1), length 84) 
172.16.16.139 > a.resolvers.level3.net: ICMP echo request, 
id 1759, seq 150, length 64

Наявність рівнів деталізації залежить від конкретного протоколу в аналізованому пакеті. Незважаючи на корисність просунутої деталізації, вона не дозволяє відобразити все, що можна побачити. Утиліти TShark і tcpduap зберігають весь вміст кожного пакета, який також можна переглянути в шістнадцятковому або ASCII-коді.

Наприклад, в TShark ви можете переглянути представлення пакетів в шістнадцятковій формі і в коді ASCII за допомогою аргументу -x, який можна об’єднати з аргументом r для читання і відображення пакета з файлу перехоплення, як показано нижче.

C:\Program Files\Wireshark>tshark -xr pacltets.pcap

Перегляд перехоплених пакетів по цій команді виходить таким же, як і в панелі Packet Bytes програми Wireshark (рис. 6.1).

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

anders@ppa: - $ tcpdump -Xr packets.pcap

Утиліта tcpdump також дозволяє аналізувати пакети більш детально, ніж потрібно. Вихідні дані аналізу також можна розглядати тільки в шістнадцятковій формі з використанням аргументу -x, або тільки в коді ASCII з використанням аргументу –X

Коли ви починаєте експериментувати з даними з перехоплених пакетів, дуже легко відчути себе приголомшеним їх обсягом. На мій погляд, найефективніше використовувати мінімальну кількість інформації при аналізі пакетів в режимі командного рядка. Почніть з перегляду пакунків у їх стандартному перегляді списку, вдаючись до додаткових рівнів деталізації виводу, коли ви хочете скоротити аналіз до декількох пакетів, що представляють особливий інтерес. Такий підхід захистить вас від депресії через надмірну кількість аналізованих даних.

Роздільна здатність імені

Як і в Wireshark, югіліти TShark і tcpdunp намагаються виконати роздільну здатність імен, щоб відображати відповідні імена замість ІР-адрес і номерів портів. Якщо ви уважно стежили за попередніми прикладами, можливо, помітили, що це відбувається за замовчуванням. Але, як вже говорилося раніше, я зазвичай вважаю за краще скасувати режим дозволу імен, щоб виключити можливість формування додаткових пакетів в мережі за рахунок аналізу існуючих пакетів.

Щоб скасувати перетворення імені в TShark, ви можете вказати аріумент -n у командному рядку. Цей аргумент, як і багато інших, можна об’єднати з іншими аргументами для поліпшення читабельності отриманих результатів, як показано нижче.

:\Program Files\Wireshark>tshark -ni 1

Деякі аспекти перетворення імені можна посилити або погіршити за допомогою аргументу –N. Якщо вказати цей аргумент в командному рядку, перетворення імені буде повністю скасовано, за винятком будь-яких його аспектів, які ви явно запускаєте з відповідними значеннями. Наприклад, наступна команда дозволить трансляцію номера порту тільки на транспортному рівні:

:\Program Files\Wireshark>tshark -i 1 -Nt

В одній команді можна об’єднати кілька значень аргументів. І наступна команда активує переклад імен як на транспортному рівні, так і на канальному рівні MAC-адрес:

C:\Program Files\Wireshark>tshark -i 1 -Ntm

Нижче наведені значення, які можна використовувати в поєднанні з аргументом -N.

В утиліті можна скасувати перетворення ІP-адрес за допомогою аргументу -n, а за допомогою аргументу -nn – перетворення номерів портів.

Цей аргумент також можна поєднувати з іншими аргументами командного рядка, як показано нижче.

sanders@ppa:-$ tcpduшp -nni. ethl

У наведених нижче прикладах показано, як записувати пакети, спочатку ввімкнувши трансляцію номера порту, а потім скасувавши переклад номера порту (аргумент -n).

sanders@ppa:-$ tcpduшp -r tcp_;юrts.pcap -cl 
reading from file tcp_ports.pcap, link-type ЕNlОМВ (Ethernet) 
14:38:34.341715 IP 172.16.16.128.2826 > 212.58.226.142. 
u http: Flags [S], seq 3691127924, win 8192, 
options [mss 1460,nop,wscale 2,nop,nop,sackOK], length О 
sanders@ppa:-$ tcpdump -nr tcp_;юrts.pcap -cl 
reading from file tcp_ports.pcap, link-type ENlOMB (Ethernet) 
14:38:34.341715 IP 172.16.16.128.2826 > 212.58.226.142. 
v 80: Flags [SJ, seq 3691127924, win 8192, 
options [mss 1460,nop,wscale 2,nop,nop,sackOKJ, length О

Для обох вищевказаних команд читається тільки перший пакет з файлу перехоплення .rsar портів tcp. Перша команда запускає трансляцію номера порту і перетворює порт 80 на ім’я http, а друга команда просто відображає номер порту v.

Застосування фільтрів

Фільтрація в утилітах TShark і tcpdump дуже зручна тим, що в них використовуються фільтри перехоплення BPF. Крім того, TShark застосовує фільтри дисплея від Wireshark. Як і в Wireshark, фільтри перехоплення можуть застосовуватися тільки в TShark під час перехоплення, а фільтри відображення можуть застосовуватися як при перехопленні, так і при відображенні пакетів, які вже були перехоплені. Отже, почнемо з застосування фільтрів в TShark.

Фільтри перехоплення можна застосувати у відповідній команді, вказавши аргумент -f і синтаксис фільтра BPF у подвійних лапках. Отже, наступна команда буде перехоплювати і зберігати тільки ті пакети, де використовується порт одержувача 80 і мережевий протокол TCP:

C:\Program Files\Wireshark>tshark -ni 1 -w packets.pcap 
~ -f "tcp port 80"

У команді можна застосувати фільтри відображення, указавши аргумент –Y та синтаксис фільтра Wireshark у подвійних лапках. Також їх можна використовувати при перехопленні наступним чином:

C:\Program Files\Wireshark>tshark -ni 1 -w packets.pcap -У "tcp.dstport = 80"

Фільтри дисплея можна застосувати до пакетів, які вже були захоплені, вказавши той самий аргумент у відповідній команді. Наприклад, наступна команда буде відображати тільки ті пакети з файлу перехоплення пакетів, які відповідають критеріям, зазначеним у фільтрі:

C:\Program Files\Wireshark>tshark -r packets.pcap -У "tcp.dstport = 80"

В утиліті tcpdump фільтри можна вказати в кінці команди, взявши їх в одинарні лапки. Отже, наступна команда також буде перехоплювати і зберігати тільки пакети з портом одержувача 80 і мережевим протоколом TCP:

sanders@ppa:-$ tcpdump -nni ethO -w packets.pcap 'tcp dst port 80'

Фільтри також можна застосовувати при читанні пакетів. Наприклад, наступна команда packets. рсар, відображає тільки ті пакети з файлу перехоплення пакетів, які відповідають критеріям, указаним у фільтрі:

sanders@ppa:-$ tcpdump -r packets.pcap 'tcp dst port 80'

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

Але що робити, якщо у вас є файл перехоплення, який містить найрізноманітніші пакети, але ви хочете лише відсіяти їх підмножину і зберегти в окремому файлі? Це можна зробити, указавши разом аргументи –w та –r, як показано в такій команді:

sanders@ppa: -$ tcpdump -r packets .рсар 'tcp dst port 80' -w http yackets .рсар

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

Крім вказівки  фільтрів безпосередньо в командному рядку, утиліта дозволяє отримати доступ до файлу BPF, який містить цілі послідовності фільтрів. Це дуже корисно, якщо ви хочете застосувати дуже великий або складний фільтр, який в іншому випадку було б дуже незручно редагувати і підтримувати в командному рядку. Файл BPF можна вказати за допомогою аргументу –F, як показано нижче.

sanders@ppa:-$ tcpdulllp -nni ethO -F dns_servers.Ьpf

Якщо файл BPF стає занадто великим, у вас може виникнути спокуса додати до нього коментарі або примітки, щоб ви знали призначення кожної його частини. Слід, однак, мати на увазі, що коментарі в файлі BPF заборонені, і якщо в ньому буде знайдено що-небудь, крім фільтруючих тверджень, це призведе до помилки. Але так як коментарі дуже корисні при розшифровці великих файлів BPF, я зазвичай зберігаю по дві копії кожного такого файлу: одну без коментарів – для використання з утилітою tcpdump, а іншу – з коментарями для довідки.

Формати відображення часу в TShcrk

Тих, хто новачок в аналізі пакетів, часто бентежить мітка часу за замовчуванням, яка використовується в TShark. Мітки часу в пакетах відображаються в цій утиліті щодо початку сніффінга пакетів. Іноді краще призначати мітки часу, але часто необхідно дізнатися час, коли пакет був перехоплений, як це робиться з мітками часу в утиліті tcpdump. Такого ж результату можна досягти в TShark, указавши аргумент –t разом зі значенням оголошення, яке представляє абсолютну дату, як показано нижче.

C:\Prograrn Files\Wireshark>tshark -r pacltets.pcap -t ad

Наступна команда порівнює ті ж пакети, що і раніше, але з відносними (за замовчуванням) і абсолютними мітками часу:

 С: \Program Files \Wireshark>tshark -r pacltets .рсар -с2 
1 0.000000 172.16.16.172 -> 4.2.2.1 ICMP Echo (ping) 
request id=OxOOOl, seq=l7/4352, ttl=l28 
2 0.024500 4.2.2.1 -> 172.16.16.172 ICMP Echo (ping) 
reply id=OxOOOl, seq=l7/4352, ttl=54 (request in 1) 
8 C:\Program Files\Wireshark>tshark -r packets.pcap -t ad -с2 
1 2015-12-21 12:52:43.116551 172.16.16.172 -> 4.2.2.1 ICMP Echo (ping) 
request id=OxOOOl, seq=l7/4352, tt1=128 
2 2015-12-21 12:52:43.141051 4.2.2.1 -> 172.16.16.172 ICMP Echo (ping) 
reply id=OxOOOl, seq=17/4352, ttl=54 (request in 1)

Аргумент –t можна використовувати для визначення будь-якого формату відображення часу, доступного у Wireshark. Перелік цих форматів наведено в табл. 6.1.

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

Зведена статистика в TShark

Ще одна зручна функція, яка відрізняє утиліту TShark від tcpdump – генерація підмножини статистики з файлу перехоплення. Процес генерації статистики дуже схожий на можливості, якими володіє Wireshark, але легко доступний з командного рядка. Для генерації статистичних даних досить вказати у відповідній команді аргумент -z разом з назвою опції виводу. Отже, повний список доступної статистики можна переглянути за допомогою наступної команди:

C:\Program Files\Wireshark>tshark -z help

Багато можливостей TShark, розглянуті вище, доступні за допомогою аргументу -z, які включають можливість відображення статистики про кінцеві точки та мережеві розмови. Наприклад, наступна команда відображає таблицю статистичних даних по 110 діалогах до мережевого протоколу ІЧ, виявлених у файлі перехоплення пакетів. РСАР (рис. 6.3).

Аргумент –z також можна використовувати для перегляду відомостей про певний мережний протокол. Як показано нижче і на рис. 6.4, для перегляду ra(:d efinition HTTP-запитів і відповідей в табличній формі, поряд з цим аргументом, досить вказати опцію виведення http, tree.

Ще однією корисною функцією TShark є можливість перегляду повторно зібраного вихідного потоку. Ми робили ці дії раніше в програмі Wireshark, коли клацнули правою кнопкою миші на пакеті і вибрали команду Follow TCP Stream з контекстного меню. Щоб отримати такий звіт, ми повинні встановити параметр f0ll0w в командному рядку і вказати тип потоку, режим виведення і який з номерів потоку ми хочемо відображати. Потоки ідентифікуються цифрами, які відображаються в лівій колонці при відображенні статистичних даних про мережеві розмови (див. рис. 6.3). Команда для отримання звіту показана нижче.

C: \ Program Files\Wireshark>tshark -r http_gooqle.pcap -z follow,tcp,ascii,O

А по наведеній нижче команді нульовий потік по протоколу ТСР буде виведений на екран у коді ASCII з файлу перехоплення http _google. рсар, тут же показаний результат, що виводиться за цією командою:

C:\Program Files\Wireshark tзhark -r http_google .pcap -z 
-- фрагмент --
Follow: tcp,ascii 
Filter: tcp.stream eq О 
Node О: 172.16 . 16 . 128:1606 
Node 1: 74.125.95.104:80 
627 
GET / НТТР/1.1 
Host: www.google.com 
User-Agent: Mozilla / 5.0 (Windows; U; Windows NT 6. 1; 
~ en-US; rv:l.9.1.7 ) 
Gecko/20091221 Firefox/3.5.7 
Accept: text/html,application/xhtml+xml,application/ xml; 
~ q=O. 9, * / *; q=O. 8 
Accept- Language: en- us, en;q=0. 5 
Accept-Encoding: gzip,deflate 
Accept-Charset: IS0-8859-l,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Cookie: PREF=ID=2579 3a938eбc2 48:U=267c896b5f3 fb0b:FF=4:LD=e 
n:NR l0:TM l26073065 :1М l265479336:GМ=l:S hlUBG nTuWU3D23L; 
NID 3l nhwMjUP63e tYМTp-3TligMSPnNSleMlkNl 
~ DUrn02zWlcPM4JE3AJec9b vG-
~ FibFXszOApfЬhBAlBOX4dКx4L8ZDdeiKwqekgP5 
~ kzELtC2mUHx7RHx3PittcuZ 
1406 
НТТР/1.1 200 ОК 
Date: Tue, 09 Feb 2010 01:18:37 GMT 
Expires: -1 
Cache-Control: private, max-age=O 
Content-Type: text/html; charset=UTF-8 
Content-Encoding: gzip 
Server: gws 
Content-Length: 4633 
X-XSS-Protection: О

Ви також можете вказати трансляцію, яку хочете переглянути, надавши детальну інформацію про адресу. Наприклад, наступна команда витягне потік UDP з файлу перехоплення пакетів .rsar для вказаних кінцевих точок і портів. Зокрема, ця команда виведе потік UDP із зазначеного файлу перехоплення для кінцевої точки з адресою 192.168.1.5 на порту 23429  та кінцевою точкою з адресою 4. 2 .2.1 в порту 53.

C:\Program Files\Wireshark>tshark -r packets.pcap -z 
~ follow,udp,ascii,192.168.1.5:23429 0,4.2.2.1:53 8

Нижче перераховані кілька найбільш поширених (в тому числі мною) варіантів відображення статистичних даних з файлу перехоплення.

Існує багато інших корисних параметрів для використання з аргументом –z, але, на жаль, недостатньо місця щоб описати їх повністю. Однак, якщо ви збираєтеся часто використовувати TShark ugilita, вам слід ознайомитися з офіційною документацією, щоб вивчити всі доступні варіанти відображення статистики про перехоплений мережевий трафік. Цю документацію можна знайти за наступною адресою: https://www.wireshark.org/docs/man-pages/tshark.htmltshark(1) (wireshark.org)

Порівняння утиліт TShcrk і tcpdump

Обидві утиліти командного рядка для аналізу пакетів, розглянуті раніше в цій главі, цілком підходять для вирішення відповідних завдань, і будь-яка з них дозволить вирішити будь-яку нагальну проблему з різним ступенем зусиль. Нижче перераховані деякі істотні відмінності утиліт TShark і  які слід мати на увазі при виборі найбільш підходящої для конкретного завдання.

  • Операційна система: утиліта tcpdump доступна тільки в операційних системах на базі Unix, тоді як утиліта TShark може функціонувати як в операційних системах, так і в Windows.

  • Підтримка протоколу. Обидві утиліти підтримують мережеві протоколи рівня III і четвертого рівня. Хоча підтримка мережевих протоколів сьомого рівня в утиліті tcpdump обмежена, вона досить повна в утиліті TShark, оскільки надає інтерпретатори мережевих протоколів в Wireshark.

  • Інструменти для нюхання пакетів. Обидві утиліти в значній мірі покладаються на здатність людини аналізувати і отримувати такі ж відчутні результати, як і в Wireshark. Це може надати велику допомогу в аналізі пакетів при відсутності графічного інтерфейсу.

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

Ми використовували матеріали з книги “PRACTICAL РАСКЕТ ANALYSIS , яку  написав Кріс Сандерс.

Інші статті по темі
КібервійнаШпаргалки для хакера
Читати далі
Частина 1. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Аналіз пакетів та основи організації мереж)
Дізнайтеся, як Wireshark і tcpdump, два потужних інструменти для аналізу мережевих пакетів, можуть бути використані для вирішення реальних проблем у локальних мережах. Відслідковуйте мережевий трафік, виявляйте аномалії та забезпечуйте безпеку вашої мережі з цими корисними інструментами.
1464
КібервійнаШпаргалки для хакера
Читати далі
Частина 2. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Підключення до мережі)
У цій частині ми досліджуємо роль Wireshark і tcpdump у забезпеченні надійності та безпеки локальних мереж, розкриваючи їхні можливості та практичні застосування для аналізу мережевого трафіку та виявлення потенційних загроз.
1213
КібервійнаШпаргалки для хакера
Читати далі
Частина 3. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Вступ у Wireshark)
У цій частині ми розглянемо важливість та застосування інструментів Wireshark і tcpdump у локальних мережах для виявлення помилок, вимірювання продуктивності, виявлення загроз безпеці та вдосконалення архітектури мережі.
1091
КібервійнаШпаргалки для хакера
Читати далі
Частина 4. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Обробка перехоплених пакетів)
Ця частина присвячена інструментам Wireshark і tcpdump, які допомагають адміністраторам мереж та інженерам в аналізі та забезпеченні безпеки локальних мереж. Ви дізнаєтеся, як ці інструменти можуть бути використані для перехоплення і аналізу мережевого трафіку, виявлення проблем і потенційних загроз, а також покращення навичок у сфері мережевого аналізу та кібербезпеки.
1080
КібервійнаШпаргалки для хакера
Читати далі
Частина 5. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Додаткові можливості Wireshark)
Дізнайтеся про розширені можливості Wireshark і tcpdump для аналізу та моніторингу мережевого трафіку у локальних мережах. Вивчайте фільтрацію, статистику, графічний аналіз пакетів та багато інших інструментів, які допоможуть вам отримати більше інформації про роботу вашої мережі та забезпечити її безпеку.
1191
КібервійнаШпаргалки для хакера
Читати далі
Частина 8. Практичний посібник із використання Wireshark і tcpdump у локальних мережах. (Протоколи транспортного рівня)
У цій статті ми описуватимемо важливість і роль протоколів транспортного рівня у мережевому стеку, а також розглянути, як інструменти Wireshark і tcpdump можуть бути використані для аналізу та моніторингу цих протоколів в реальному часі.
1121
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.