Wireshark

Ръководство за интерфейса на командния ред на Wireshark “tshark”

Ръководство за интерфейса на командния ред на Wireshark “tshark”
В по-ранните уроци за Wireshark сме разгледали основни до напреднали теми. В тази статия ще разберем и ще покрием интерфейса на командния ред за Wireshark, т.е.д., tshark. Терминалната версия на Wireshark поддържа подобни опции и е много полезна, когато не е наличен графичен потребителски интерфейс (GUI).

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

Най-доброто, което можете да направите, е да използвате tshark, за да настроите порт на вашия сървър, който препраща информация към вашата система, така че да можете да улавяте трафик за анализ с помощта на GUI. Засега обаче ще научим как работи, какви са неговите атрибути и как можете да го използвате по най-добрия начин.

Въведете следната команда, за да инсталирате tshark в Ubuntu / Debian с помощта на apt-get:

[имейл защитен]: ~ $ sudo apt-get install tshark -y

Сега напишете tshark -помощ за да изброим всички възможни аргументи със съответните им знамена, които можем да предадем на команда tshark.

[имейл защитен]: ~ $ tshark --help | глава -20
TShark (Wireshark) 2.6.10 (Git v2.6.10 опаковани като 2.6.10-1 ~ ubuntu18.04.0)
Изхвърлете и анализирайте мрежовия трафик.
Вижте https: // www.жична акула.org за повече информация.
Употреба: tshark [опции] ..
Интерфейс за улавяне:
-i име или idx на интерфейса (def: първо без цикъл)
филтър за пакети в синтаксис на филтъра libpcap
дължина на моментна снимка на пакета (def: подходящ максимум)
-p не заснемайте в безразборен режим
-Снимам в режим на монитор, ако е наличен
размер на буфера на ядрото (def: 2MB)
тип слой на връзката (def: първо подходящо)
--тип отпечатък от време метод на клеймо за интерфейс
-D отпечатайте списък с интерфейси и излезте
-L списък за отпечатване на типове слоеве на връзки на слоя iface и изход
--list-time-stamp-types отпечатва списък с типове времеви клейма за iface и изход
Условия за спиране на заснемането:

Можете да забележите списък с всички налични опции. В тази статия ще разгледаме по-подробно повечето аргументи и ще разберете силата на тази терминално ориентирана версия на Wireshark.

Избор на мрежов интерфейс:

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

[имейл защитен]: ~ $ tshark -D
1. enp0s3
2. всякакви
3. ето (Loopback)
4. nflog
5. nfqueue
6. usbmon1
7. ciscodump (дистанционно улавяне на Cisco)
8. randpkt (Генератор на случайни пакети)
9. sshdump (SSH дистанционно улавяне)
10. udpdump (дистанционно улавяне на UDP слушател)

Имайте предвид, че не всички изброени интерфейси ще работят. Тип ifconfig за да намерите работещи интерфейси във вашата система. В моя случай е така enp0s3.

Уловете трафика:

За да стартираме процеса на улавяне на живо, ще използваме tshark команда с „-i”Опция за стартиране на процеса на улавяне от работния интерфейс.

[имейл защитен]: ~ $ tshark -i enp0s3

Използвайте Ctrl + C за да спрете улавянето на живо. В горната команда насочих уловения трафик към командата на Linux глава за показване на първите няколко уловени пакета. Или можете да използвате „-c ”Синтаксис за улавяне на“н" брой пакети.

[имейл защитен]: ~ $ tshark -i enp0s3 -c 5

Ако въведете само tshark, по подразбиране няма да започне да улавя трафик на всички налични интерфейси, нито ще слуша вашия работен интерфейс. Вместо това той ще улавя пакети на първия изброен интерфейс.

Можете също да използвате следната команда за проверка на множество интерфейси:

[имейл защитен]: ~ $ tshark -i enp0s3 -i usbmon1 -i lo

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

[имейл защитен]: ~ $ tshark -i номер_интерфейс

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

Филтър за улавяне:

Филтрите за улавяне значително намаляват размера на заснетия файл. Tshark използва синтаксиса на Berkeley Packet Filter ”, Който се използва и от tcpdump. Ще използваме опцията “-f”, за да заснемем само пакети от портове 80 или 53 и ще използваме “-c”, за да покажем само първите 10 пакета.

[имейл защитен]: ~ $ tshark -i enp0s3 -f "порт 80 или порт 53" -c 10

Запазване на заловения трафик във файл:

Основното нещо, което трябва да се отбележи в горната екранна снимка, е, че показаната информация не се запазва, поради което е по-малко полезна. Използваме аргумента „-w”, За да запазите уловения мрежов трафик в test_capture.pcap в / tmp папка.

[имейл защитен]: ~ $ tshark -i enp0s3 -w / tmp / test_capture.pcap

Докато, .pcap е разширението на файловия тип Wireshark. Като запазите файла, можете да прегледате и анализирате трафика в машина с графичен интерфейс Wireshark по-късно.

Добра практика е да запишете файла в /tmp тъй като тази папка не изисква никакви привилегии за изпълнение. Ако го запишете в друга папка, дори ако използвате tshark с права на root, програмата ще откаже разрешение поради съображения за сигурност.

Нека да разгледаме всички възможни начини, чрез които можете:

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

Параметър за автоматично спиране:

Можете да използвате „Параметър за включване на наличните флагове като размер на файла с продължителност и файлове. В следващата команда използваме параметъра autostop с продължителност флаг за спиране на процеса в рамките на 120 секунди.

[имейл защитен]: ~ $ tshark -i enp0s3 -а продължителност: 120 -w / tmp / test_capture.pcap

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

[имейл защитен]: ~ $ tshark -i enp0s3 -a размер на файла: 50 -w / tmp / test_capture.pcap

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

Изходен параметър за улавяне:

Заснемане на изход, известен още като аргумент на буферния буфер ““, Идва със същите флагове като autostop. Използването / изходът обаче е малко по-различно, т.е.д., знамената продължителност и размер на файла, тъй като ви позволява да превключвате или запазвате пакети в друг файл след достигане на определено времево ограничение в секунди или размер на файла.

Командата по-долу показва, че улавяме трафика чрез нашия мрежов интерфейс enp0s3, и улавяне на трафик с помощта на филтъра за улавяне “”За tcp и dns. Използваме опция “-b” на буфер за буфер с a размер на файла флаг, за да запазите всеки файл с размер 15 Kb, и също така използвайте аргумента autostop, за да посочите броя на използваните файлове файлове опция, която спира процеса на улавяне след генериране на три файла.

[имейл защитен]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер на файла: 15 -a файлове: 2 -w / tmp / test_capture.pcap

Разделих терминала си на два екрана, за да наблюдавам активно създаването на три .pcap файлове.

Отидете до вашия / tmp папка и използвайте следната команда във втория терминал, за да наблюдавате актуализациите след всяка секунда.

[имейл защитен]: ~ $ watch -n 1 "ls -lt"

Сега не е нужно да запомняте всички тези знамена. Вместо това въведете команда tshark -i enp0s3 -f “порт 53 или порт 21” -b размер на файла: 15 -a в терминала си и натиснете Раздел. Списъкът с всички налични флагове ще бъде достъпен на вашия екран.

[имейл защитен]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер на файла: 15 -a
продължителност: файлове: размер на файла:
[имейл защитен]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер на файла: 15 -a

Четене .pcap файлове:

Най-важното е, че можете да използвате „-rПараметър за четене на test_capture.pcap файлове и го прехвърлете в глава команда.

[имейл защитен]: ~ $ tshark -r / tmp / test_capture.pcap | глава

Информацията, показана в изходния файл, може да бъде малко поразителна. За да избегнем ненужни подробности и да разберем по-добре всеки конкретен IP адрес на дестинация, ние използваме -r опция за четене на заловения файл и използване на ip.адрес филтър за пренасочване на изхода към нов файл с “-w”Опция. Това ще ни позволи да прегледаме файла и да прецизираме нашия анализ, като приложим допълнителни филтри.

[имейл защитен]: ~ $ tshark -r / tmp / test_capture.pcap -w / tmp / пренасочен_файл.pcap ip.dst == 216.58.209.142
[имейл защитен]: ~ $ tshark -r / tmp / redirected_file.pcap | глава
1 0.000000000 10.0.2.15 → 216.58.209.142 TLSv1.2 370 Данни за кандидатстване
2 0.000168147 10.0.2.15 → 216.58.209.142 TLSv1.2 669 Данни за кандидатстване
3 0.011336222 10.0.2.15 → 216.58.209.142 TLSv1.2 5786 Данни за кандидатстване
4 0.016413181 10.0.2.15 → 216.58.209.142 TLSv1.2 1093 Данни за кандидатстване
5 0.016571741 10.0.2.15 → 216.58.209.142 TLSv1.2 403 Данни за кандидатстване
6 0.016658088 10.0.2.15 → 216.58.209.142 TCP 7354 [TCP сегмент на повторно сглобен PDU]
7 0.016738530 10.0.2.15 → 216.58.209.142 TLSv1.2 948 Данни за кандидатстване
8 0.023006863 10.0.2.15 → 216.58.209.142 TLSv1.2 233 Данни за кандидатстване
9 0.023152548 10.0.2.15 → 216.58.209.142 TLSv1.2 669 Данни за кандидатстване
10 0.023324835 10.0.2.15 → 216.58.209.142 TLSv1.2 3582 Данни за кандидатстване

Избор на полета за извеждане:

Командите по-горе извеждат обобщение на всеки пакет, който включва различни полета на заглавката. Tshark също ви позволява да преглеждате определени полета. За да посочим поле, използваме „-T поле”И извличане на полета по наш избор.

След "-T полеПревключвател, ние използваме опцията “-e”, за да отпечатаме посочените полета / филтри. Тук можем да използваме Wireshark Display Filters.

[имейл защитен]: ~ $ tshark -r / tmp / test_capture.pcap -T полета -e рамка.номер -e ip.src -e ip.dst | глава
1 10.0.2.15 216.58.209.142
2 10.0.2.15 216.58.209.142
3 216.58.209.142 10.0.2.15
4 216.58.209.142 10.0.2.15
5 10.0.2.15 216.58.209.142
6 216.58.209.142 10.0.2.15
7 216.58.209.142 10.0.2.15
8 216.58.209.142 10.0.2.15
9 216.58.209.142 10.0.2.15
10 10.0.2.15 115.186.188.3

Записване на криптирани данни за ръкостискане:

Досега се научихме да запазваме и четем изходни файлове, използвайки различни параметри и филтри. Сега ще научим как HTTPS инициализира сесията tshark. Уебсайтовете, достъпни чрез HTTPS вместо HTTP, осигуряват сигурно или криптирано предаване на данни по кабела. За сигурно предаване, шифроването на Transport Layer Security стартира процес на ръкостискане, за да започне комуникацията между клиента и сървъра.

Нека уловим и разберем ръкостискането на TLS с помощта на tshark. Разделете терминала си на два екрана и използвайте a wget команда за извличане на html файл от https: // www.жична акула.орг.

[имейл защитен]: ~ $ wget https: // www.жична акула.орг
--2021-01-09 18: 45: 14 - https: // www.жична акула.организация /
Свързване към www.жична акула.org (www.жична акула.организация) | 104.26.10.240 |: 443 ... свързани.
Изпратена HTTP заявка в очакване на отговор ... 206 Частично съдържание
Дължина: 46892 (46K), остава 33272 (32K) [text / html]
Запазване в: 'индекс.html '
индекс.html 100% [++++++++++++++ ================================ ==>] 45.79K 154KB / s за 0.2 секунди
2021-01-09 18:43:27 (154 KB / s) - 'индекс.html 'запазено [46892/46892]

На друг екран ще използваме tshark, за да уловим първите 11 пакета, като използваме „-° С”Параметър. Докато извършваме анализ, времевите марки са важни за възстановяване на събитията, поради което използваме „-т реклама”, По начин, който tshark добавя клеймо за време заедно с всеки уловен пакет. И накрая, ние използваме командата на хоста, за да улавяме пакети от споделения хост IP адрес.

Това ръкостискане е доста подобно на TCP ръкостискането. Веднага след като TCP трипосочното ръкостискане завърши в първите три пакета, четвъртият до деветият пакет следват донякъде подобен ритуал за ръкостискане и включват TLS низове, за да осигурят кодирана комуникация между двете страни.

[имейл защитен]: ~ $ tshark -i enp0s3 -c 11 -t рекламен хост 104.26.10.240
Заснемане на 'enp0s3'
1 2021-01-09 18:45:14.174524575 10.0.2.15 → 104.26.10.240 TCP 74 48512 → 443 [SYN] Seq = 0 Win = 64240 Len = 0 MSS = 1460 SACK_PERM = 1 TSval = 2488996311 TSecr = 0 WS = 128
2 2021-01-09 18:45:14.279972105 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [SYN, ACK] Seq = 0 Ack = 1 Win = 65535 Len = 0 MSS = 1460
3 2021-01-09 18:45:14.280020681 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 1 Ack = 1 Win = 64240 Len = 0
4 2021-01-09 18:45:14.280593287 10.0.2.15 → 104.26.10.240 TLSv1 373 Клиент Здравейте
5 2021-01-09 18:45:14.281007512 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 1 Ack = 320 Win = 65535 Len = 0
6 2021-01-09 18:45:14.390272461 104.26.10.240 → 10.0.2.15 TLSv1.3 1466 Сървър Здравейте, променете спецификацията на шифъра
7 2021-01-09 18:45:14.390303914 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 1413 Win = 63540 Len = 0
8 2021-01-09 18:45:14.392680614 104.26.10.240 → 10.0.2.15 TLSv1.3 1160 Данни за кандидатстване
9 2021-01-09 18:45:14.392703439 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 2519 Win = 63540 Len = 0
10 2021-01-09 18:45:14.394218934 10.0.2.15 → 104.26.10.240 TLSv1.3 134 Промяна на спецификацията на шифъра, данни за приложението
11 2021-01-09 18:45:14.394614735 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 2519 Ack = 400 Win = 65535 Len = 0
Уловени 11 пакета

Преглед на целия пакет:

Единственият недостатък на помощната програма за команден ред е, че тя няма GUI, тъй като става много удобна, когато трябва да търсите много интернет трафик, а също така предлага панел за пакети, който показва всички подробности за пакета в рамките на моментално. Все пак е възможно да проверите пакета и да изхвърлите цялата информация за пакета, показана в GUI Packet Panel.

За да проверим цял пакет, използваме команда ping с опцията “-c”, за да уловим един пакет.

[имейл защитен]: ~ $ ping -c 1 104.26.10.240
ПИНГ 104.26.10.240 (104.26.10.240) 56 (84) байта данни.
64 байта от 104.26.10.240: icmp_seq = 1 ttl = 55 време = 105 ms
--- 104.26.10.240 статистики за пинг ---
1 предадени пакети, 1 получени, 0% загуба на пакети, време 0ms
rtt min / avg / max / mdev = 105.095/105.095/105.095/0.000 ms

В друг прозорец използвайте командата tshark с допълнителен флаг, за да покажете всички подробности за пакета. Можете да забележите различни секции, показващи подробности за Frames, Ethernet II, IPV и ICMP.

[имейл защитен]: ~ $ tshark -i enp0s3 -c 1 -V хост 104.26.10.240
Кадър 1: 98 байта на проводник (784 бита), 98 байта уловени (784 бита) на интерфейс 0
Идентификационен номер на интерфейса: 0 (enp0s3)
Име на интерфейса: enp0s3
Тип капсулиране: Ethernet (1)
Час на пристигане: 9 януари 2021 г. 21:23:39.167581606 PKT
[Изместване във времето за този пакет: 0.000000000 секунди]
Време на епоха: 1610209419.167581606 секунди
[Делта във времето от предишния заснет кадър: 0.000000000 секунди]
[Часова делта от предишния показан кадър: 0.000000000 секунди]
[Време от справка или първи кадър: 0.000000000 секунди]
Номер на рамката: 1
Дължина на рамката: 98 байта (784 бита)
Дължина на улавяне: 98 байта (784 бита)
[Рамката е маркирана: Невярно]
[Рамката се пренебрегва: Невярно]
[Протоколи във фрейм: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Дестинация: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Адрес: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
... 1 ... = LG бит: Административно администриран адрес (това НЕ е фабрично по подразбиране)
… 0… = IG бит: Индивидуален адрес (едноадресен)
Източник: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Адрес: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Идентификационен номер на интерфейса: 0 (enp0s3)
Име на интерфейса: enp0s3
Тип капсулиране: Ethernet (1)
Час на пристигане: 9 януари 2021 г. 21:23:39.167581606 PKT
[Изместване във времето за този пакет: 0.000000000 секунди]
Време на епоха: 1610209419.167581606 секунди
[Делта във времето от предишен заснет кадър: 0.000000000 секунди]
[Часова делта от предишния показан кадър: 0.000000000 секунди]
[Време от справка или първи кадър: 0.000000000 секунди]
Номер на рамката: 1
Дължина на рамката: 98 байта (784 бита)
Дължина на улавяне: 98 байта (784 бита)
[Рамката е маркирана: Невярно]
[Рамката се пренебрегва: Невярно]
[Протоколи във фрейм: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Дестинация: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Адрес: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
... 1 ... = LG бит: Административно администриран адрес (това НЕ е фабрично по подразбиране)
... 0 ... = IG бит: Индивидуален адрес (едноадресен)
Източник: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Адрес: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
... 0 ... = LG бит: Глобално уникален адрес (фабрично по подразбиране)
… 0… = IG бит: Индивидуален адрес (едноадресен)
Тип: IPv4 (0x0800)
Интернет протокол версия 4, Src: 10.0.2.15, Dst: 104.26.10.240
0100… = Версия: 4
… 0101 = Дължина на заглавката: 20 байта (5)
Поле за диференцирани услуги: 0x00 (DSCP: CS0, ECN: Не-ECT)
0000 00… = Кодова точка на диференцирани услуги: По подразбиране (0)
... 00 = Изрично известие за задръствания: Не е ECN-способен транспорт (0)
Обща дължина: 84
Идентификация: 0xcc96 (52374)
Флагове: 0x4000, Не фрагментирайте
0… = Резервиран бит: Не е зададен
.1 ... = Не фрагментирай: Задайте
… 0… = Още фрагменти: Не е зададено
… 0 0000 0000 0000 = Изместване на фрагмента: 0
Време за живот: 64
Протокол: ICMP (1)
Контролна сума на заглавката: 0xeef9 [валидирането е деактивирано]
[Състояние на контролната сума на заглавката: Непотвърдено]
Източник: 10.0.2.15
Дестинация: 104.26.10.240
Протокол за съобщения в Интернет за контрол
Тип: 8 (ехо (пинг) заявка)
Код: 0
Контролна сума: 0x0cb7 [правилно]
[Състояние на контролната сума: Добро]
Идентификатор (BE): 5038 (0x13ae)
Идентификатор (LE): 44563 (0xae13)
Пореден номер (BE): 1 (0x0001)
Пореден номер (LE): 256 (0x0100)
Отпечатък от данните на icmp: 9 януари 2021 г. 21:23:39.000000000 PKT
[Клеймо за време от данни на icmp (относително): 0.167581606 секунди]
Данни (48 байта)
0000 91 8e 02 00 00 00 00 00 10 11 12 13 14 15 16 17…
0010 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27… !"# $% & '
0020 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 () *+,-./ 01234567
Данни: 918e020000000000101112131415161718191a1b1c1d1e1f…
[Дължина: 48]

Заключение:

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

Tshark е много удобна програма, която чете и записва файлове за заснемане, поддържани от Wireshark. Комбинацията от филтри за показване и заснемане допринася много, докато работите върху случаи на използване на напреднали нива. Можем да използваме tshark способността да отпечатва полета и да манипулира данни според нашите изисквания за задълбочен анализ. С други думи, той е способен да прави практически всичко, което прави Wireshark. Най-важното е, че е идеален за отдалечено подушване на пакети с помощта на ssh, което е тема за друг ден.

OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...