Wireshark е фактическият инструмент за няколко мрежови проблема, които варират от отстраняване на неизправности в мрежата, проверка на проблемите със сигурността, проверка на мрежовия трафик на подозрително приложение, внедряване на протоколи за отстраняване на грешки, заедно с целите на обучението по мрежов протокол и т.н.
Проектът Wireshark е стартиран през 1998 г. Благодарение на доброволния принос на експерта по глобални мрежи, той продължава да прави актуализации за нови технологии и стандарти за криптиране. Следователно, това е един от най-добрите инструменти за анализ на пакети и се използва като стандартен търговски инструмент от различни държавни агенции, образователни институти и организации с нестопанска цел.
Инструментът Wireshark се състои от богат набор от функции. Някои от тях са следните:
- Мултиплатформена: налична е за системи Unix, Mac и Window.
- Той улавя пакети от различни мрежови носители, т.е.д., Безжична LAN, Ethernet, USB, Bluetooth и др.
- Той отваря пакетни файлове, заснети от други програми като Oracle snoop и atmsnoop, Nmap, tcpdump, Microsoft Network Monitor, SNORT и много други.
- Той запазва и експортира уловени пакетни данни в различни формати (CSV, XML, свободен текст и др.).
- Той осигурява поддръжка за описание на протоколи, включително SSL, WPA / WPA2, IPsec и много други.
- Включва филтри за заснемане и показване.
Wireshark обаче няма да ви предупреди за злонамерена дейност. Това само ще ви помогне да проверите и идентифицирате какво се случва във вашата мрежа. Нещо повече, той ще анализира само мрежовия протокол / дейности и няма да извършва друга дейност като изпращане / прихващане на пакети.
Тази статия предоставя задълбочен урок, който започва с основите (т.е.д., филтриране, мрежови слоеве на Wireshark и др.) и ще ви отведе в дълбочината на анализа на трафика.
Wireshark филтри
Wireshark се предлага с мощни филтърни машини, Capture Filters и Display Filters, за да премахне шума от мрежата или вече заловения трафик. Тези филтри стесняват ненужния трафик и показват само пакетите, които искате да видите. Тази функция помага на мрежовите администратори да отстраняват наличните проблеми.
Преди да влезете в подробностите за филтрите. В случай, че се чудите как да уловите мрежовия трафик без никакъв филтър, можете да натиснете Ctrl + E или да отидете до опцията Capture в интерфейса на Wireshark и да щракнете върху Start.
Сега, нека се задълбочим в наличните филтри.
Филтър за улавяне
Wireshark осигурява поддръжка за намаляване на размера на заснемане на необработен пакет, като ви позволява да използвате филтър за улавяне. Но той улавя само пакетния трафик, който съответства на филтъра, и пренебрегва останалата част от него. Тази функция ви помага да наблюдавате и анализирате трафика на конкретно приложение, използващо мрежата.
Не бъркайте този филтър с филтри за показване. Това не е филтър за показване. Този филтър се появява в главния прозорец, който е необходим за настройка преди започване на улавяне на пакети. Освен това не можете да модифицирате този филтър по време на улавянето.
Можете да отидете на Улавяне опция на интерфейса и изберете Филтри за улавяне.
Ще бъдете подканени с прозорец, както е показано на моментната снимка. Можете да изберете всеки филтър от списъка с филтри или да добавите / създадете нов филтър, като щракнете върху + бутон.
Примери за списъка с полезни филтри за улавяне:
- хост ip_address - улавя трафик, само между конкретния комуникиращ IP адрес
- 192 серия.168.0.0/24 - улавя трафик между диапазони на IP адреси / CIDR
- порт 53 - улавя DNS трафик
- tcp порт диапазон 2051-3502 - улавя TCP трафик от обхвата на порта 2051-3502
- порт не 22 и не 21 - улавяне на целия трафик с изключение на SSH и FTP
Показване на филтър
Филтрите за показване ви позволяват да скриете някои пакети от вече уловения мрежов трафик. Тези филтри могат да бъдат добавени над заснетия списък и могат да бъдат модифицирани в движение. Вече можете да контролирате и стеснявате пакетите, върху които искате да се концентрирате, докато скривате ненужните пакети.
Можете да добавите филтри в лентата с инструменти за показване на филтъра точно над първия панел, съдържащ информация за пакета. Този филтър може да се използва за показване на пакети въз основа на протокол, IP адрес на източника, IP адрес на дестинация, портове, стойност и информация за полета, сравнение между полетата и много други.
Това е вярно! Можете да изградите комбинация от филтри, използвайки логически оператори като ==.!=, ||, && и др.
Някои примери за дисплейни филтри на един протокол TCP и комбиниран филтър са показани по-долу:
Мрежови слоеве в Wireshark
Освен проверка на пакети, Wireshark представя OSI слоеве, които помагат в процеса на отстраняване на неизправности. Wireshark показва слоевете в обратен ред, като:
- Физически слой
- Слой за връзка към данни
- Мрежов слой
- Транспортен слой
- Приложен слой
Имайте предвид, че Wireshark не винаги показва физическия слой. Сега ще разровим всеки слой, за да разберем важния аспект на анализа на пакетите и какво представлява всеки слой в Wireshark.
Физически слой
Физическият слой, както е показано на следващата снимка, представя физическото резюме на кадъра, като хардуерна информация. Като мрежов администратор обикновено не извличате информация от този слой.
Слой за връзка към данни
Следващият слой за връзка с данни съдържа адреса на мрежовата карта на източника и дестинацията. Това е относително просто, тъй като доставя само кадъра от лаптопа до рутера или следващия съседен кадър във физическия носител.
Мрежов слой
Мрежовият слой представя IP адресите на източника и местоназначението, IP версията, дължината на заглавката, общата дължина на пакета и много друга информация.
Транспортен слой
В този слой Wireshark показва информация за транспортния слой, който се състои от SRC порт, DST порт, дължина на заглавката и пореден номер, който се променя за всеки пакет.
Приложен слой
В последния слой можете да видите какъв тип данни се изпращат през носителя и кое приложение се използва, като FTP, HTTP, SSH и т.н.
Анализ на трафика
Анализ на трафика на ICMP
ICMP се използва за докладване и тестване на грешки, като се определя дали данните достигат до предвиденото местоназначение навреме или не. Помощната програма Ping използва ICMP съобщения, за да тества скоростта на връзката между устройствата и да докладва колко време отнема пакета, за да достигне дестинацията си, след което да се върне.
Пингът използва съобщение ICMP_echo_request към устройството в мрежата и устройството отговаря със съобщение ICMP_echo_reply. За да уловите пакети на Wireshark, стартирайте функцията Capture на Wireshark, отворете терминала и изпълнете следната команда:
ubuntu $ ubuntu: ~ $ ping google.comИзползвайте Ctrl + C за прекратяване на процеса на улавяне на пакети в Wireshark. В моментната снимка по-долу можете да забележите ICMP пакет изпратен = ICMP пакет получен с 0% загуба на пакети.
В екрана за улавяне на Wireshark изберете първия пакет ICMP_echo_request и наблюдавайте подробностите, като отворите средния панел Wireshark.
В мрежовия слой можете да забележите източника Src като моя ip_address, докато дестинацията Dst ip_address е на сървъра на Google, докато IP слоят споменава протокола като ICMP.
Сега увеличаваме подробностите за ICMP пакета, като разширяваме Internet Control Message Protocol и декодираме маркираните полета в моментната снимка по-долу:
- Тип: 08-битовото поле, зададено на 8, означава съобщение за заявка за ехо
- Код: винаги нула за ICMP пакети
- контролна сума: 0x46c8
- Идентификационен номер (BE): 19797
- Идентификационен номер (LE): 21837
- Пореден номер (BE): 1
- Пореден номер (LE): 256
Идентификаторът и номерата на последователностите се съчетават, за да помогнат при идентифицирането на отговорите на ехо-заявките. По същия начин, преди предаване на пакети, контролната сума се изчислява и добавя към полето, което се сравнява с контролната сума в получения пакет данни.
Сега, в пакета за отговор на ICMP, забележете слоя IPv4. Адресите на източника и местоназначението са разменени.
В слоя ICMP проверете и сравнете следните важни полета:
- Тип: 08-битовото поле, зададено на 0, означава Echo съобщение за отговор
- Код: винаги 0 за ICMP пакети
- контролна сума: 0x46c8
- Идентификационен номер (BE): 19797
- Идентификационен номер (LE): 21837
- Пореден номер (BE): 1
- Пореден номер (LE): 256
Можете да забележите, че ICMP отговорът повтаря същата контролна сума на заявката, идентификатор и пореден номер.
HTTP анализ на трафика
HTTP е протокол на приложния слой на Hypertext Transfer. Той се използва от световната мрежа и определя правила, когато HTTP клиентът / сървърът предава / получава HTTP команди. Най-често използваните HTTP методи ae POST и GET:
ПОЩА: този метод се използва за безопасно изпращане на поверителна информация на сървъра, която не се показва в URL адреса.
ВЗЕМЕТЕ: този метод обикновено се използва за извличане на данни от адресната лента от уеб сървър.
Преди да разгледаме по-задълбочено анализа на HTTP пакетите, първо ще демонстрираме накратко TCP трипосочното ръкостискане в Wireshark.
TCP трипосочно ръкостискане
При трипосочно ръкостискане клиентът инициира връзка чрез изпращане на SYN пакет и получаване на SYN-ACK отговор от сървъра, който се потвърждава от клиента. Ще използваме командата за сканиране на Nmap TCP connect, за да илюстрираме TCP ръкостискане между клиент и сървър.
ubuntu $ ubuntu: ~ $ nmap -sT google.comВ екрана за улавяне на пакети Wireshark превъртете до горната част на прозореца, за да забележите различни трипосочни ръкостискания, установени въз основа на определени портове.
Използвай tcp.порт == 80 филтър, за да видите дали връзката е установена чрез порт 80. Можете да забележите пълното ръкостискане в три посоки, т.е.д., SYN, SYN-ACK, и ACK, подчертано в горната част на моментната снимка, илюстриращо надеждна връзка.
HTTP анализ на пакети
За анализ на HTTP пакети отидете в браузъра си и поставете URL адреса на документацията за Wireshark: http: // www.вафладжия.com и изтеглете ръководството за потребителя PDF. Междувременно Wireshark трябва да улавя всички пакети.
Приложете HTTP филтър и потърсете HTTP ВЗЕМЕТЕ заявка, изпратена до сървъра от клиента. За да видите HTTP пакет, изберете го и разширете слоя на приложението в средния панел. В заявката може да има много заглавки, в зависимост от уебсайта и браузъра. Ще анализираме заглавията, присъстващи в нашето искане в моментната снимка по-долу.
- Метод на заявката: методът на HTTP заявка е GET
- Водещ: идентифицира името на сървъра
- Потребителски агент: информира за типа браузър от страна на клиента
- Приемам, приемам кодиране, приемам език: информира сървъра за типа файл, прието кодиране от страна на клиента, т.е.д., gzip и др., и приетия език
- Контрол на кеша: показва как се кешира исканата информация
- Прагма: показва името на бисквитката и стойностите, които браузърът поддържа за уебсайта
- Връзка: заглавка, която контролира дали връзката остава отворена след транзакцията
В HTTP OK пакет от сървър към клиент, наблюдавайки информацията в слоя на протокола за прехвърляне на хипертекст показва „200 ОК„. Тази информация показва нормален успешен трансфер. В HTTP OK пакета можете да наблюдавате различни заглавки в сравнение с HTTP ВЗЕМЕТЕ пакет. Тези заглавки съдържат информация за исканото съдържание.
- Версия на отговора: информира за HTTP версията
- Код на състоянието, фраза за отговор: изпратени от сървъра
- Дата: времето, когато сървърът е получил HTTP GET пакета
- Сървър: подробности за сървъра (Nginx, Apache и др.)
- Тип съдържание: тип съдържание (json, txt / html и др.)
- Дължина на съдържанието: обща дължина на съдържанието; нашият файл е 39696 байта
В този раздел научихте как работи HTTP и какво се случва, когато поискаме съдържание в мрежата.
Заключение
Wireshark е най-популярният и мощен инструмент за анализ и анализ на мрежи. Той се използва широко в ежедневните задачи за анализ на пакети в различни организации и институти. В тази статия изучихме някои теми за начинаещи до средно ниво на Wireshark в Ubuntu. Научихме типа филтри, предлагани от Wireshark за анализ на пакети. Покрихме модела на мрежовия слой в Wireshark и извършихме задълбочен анализ на ICMP и HTTP пакети.
Изучаването и разбирането на различни аспекти на този инструмент обаче е дълъг труден път. Следователно има много други онлайн лекции и уроци, които ще ви помогнат да определите конкретни теми на Wireshark. Можете да следвате официалното ръководство за потребителя, достъпно на уебсайта Wireshark. Освен това, след като сте изградили основното разбиране за анализ на протокол, препоръчва се също да използвате инструмент като Varonis, който ви насочва към потенциалната заплаха и след това да използвате Wireshark за проучване за по-добро разбиране.