Как да прихващате трафика. Най-добрите инструменти за тестване на писалки: снифери и манипулиране на пакети

Обществените Wi-Fi мрежи също станаха много популярни в наши дни. Срещат се в ресторанти, фитнес зали, търговски центрове, подлези, хотели, частни болници и клиники, апартаменти и етажна собственост - те могат да бъдат намерени почти навсякъде, където се събират доста хора.

Тези мрежи имат особеност - те често са отворени Wi-Fi мрежи, които не изискват парола за свързване. Има ли допълнителни правила за сигурност за работа с такива мрежи?

Да, когато използвате отворена Wi-Fi мрежа, трябва да разберете добре, че:

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

С първата точка мисля, че всичко е ясно: ако някой с компютър и Wi-Fi карта е достатъчно близо, тогава той може да улови и запази целия трафик, предаван между безжичната точка за достъп и всички нейни клиенти.

Що се отнася до втората точка, е необходимо да се изясни криптирането на предаваните данни. Например, ако отворите който и да е сайт, който използва протокола HTTPS (тоест защитен протокол), като сайт, тогава данните, предавани към и от този сайт към вас, са криптирани. Ако отворите уебсайт, използвайки HTTP протокола, тогава всички предавани данни: кои страници сте посетили, кои коментари сте оставили, кои бисквитки е получил вашият уеб браузър - тези данни се предават в некриптирана форма. Така че, ако сте свързани към Wi-Fi точка за достъп, която изисква парола, тогава предаваният трафик се криптира отново. Тоест, дори ако отворите уебсайт по протокола HTTPS, предаваният трафик се криптира два пъти (първия път при прехвърляне от уеб браузъра към уеб сървъра и в обратна посока, втория път при прехвърляне от вашето устройство към Точка за достъп, както и обратна посока). И ако отворите уебсайт по протокол HTTP, тогава предаваният трафик се криптира само веднъж (само по време на предаване от вашето устройство към точката за достъп и обратно).

Но отворените горещи точки не криптират трафика. От това следва: ако използвате отворена точка за достъп и отворите уебсайт, който работи по протокол HTTP, тогава вашите данни се предават в чист текст и всеки близо до вас може да ги заснеме и запази. Ако отворите сайт по протокола HTTPS, тогава тези данни са криптирани, но все още се вижда кои сайтове сте отворили (въпреки че не се вижда кои страници и какво сте въвели, например кои коментари сте оставили).

Така че: трябва да запомните, че отворените безжични мрежи са склонни към подслушване.

Прихващане на трафик в отворени Wi-Fi мрежи

За успешна атака ви е необходим компютър с Linux (например с Kali Linux или BlackArch), както и Wi-Fi карта от.

Нека започнем, като разгледаме имената на безжичните интерфейси:

Както можете да видите, имам няколко безжични интерфейса, които ще използвам wlp0s20f0u2.

Прехвърляме безжичния интерфейс в режим на наблюдение:

Sudo ip link set INTERFACE down sudo iw INTERFACE set monitor контрол sudo ip link set INTERFACE up

В предишните команди вместо ИНТЕРФЕЙСтрябва да въведете името, което има безжичният интерфейс във вашата система. Например, за wlp0s20f0u2 командите изглеждат така:

Sudo ip link set wlp0s20f0u2 down sudo iw wlp0s20f0u2 set monitor control sudo ip link set wlp0s20f0u2 up

Отворете заснетия файл с данни в Wireshark.

За да подчертаем различни данни, имаме нужда от филтри на Wireshark. Тук ще покажа пример за използване само на някои от филтрите, препоръчително е да разгледате голямата колекция от полезни филтри на Wireshark.

За да оцените качеството на заснемането, можете да започнете с филтри, които показват резултатите от анализа на TCP протокола.

Например:

Tcp.analysis.duplicate_ack_num == 1

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

Филтър за показване на кадри, за които предишният сегмент не е заловен:

Tcp.analysis.ack_lost_segment

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

За да покажете кадри, които се предават повторно (изпратени повторно):

Tcp.analysis.retransmission

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

Използване на филтър

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

Използване на филтър

можете да видите всички изпратени DNS заявки.

Благодарение на тези заявки можете да разберете кои сайтове са посетили потребителите (дори тези сайтове да използват HTTPS!), както и към кои онлайн услуги са направени заявките.

Например на екранната снимка можете да видите адресите на онлайн киното Netflix, Facebook, различни услуги на Google.

За да филтрирате HTTP трафик, филтърът:

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

Можете да видите посетените URL адреси с всички предадени параметри:

Файловете, изтеглени и отворени в Интернет, са видими:

Можете да запазите всеки прехвърлен файл. За да направите това, изберете пакета, който го съдържа, с мишката (1), след това в средния панел, който съдържа подробна информация, превъртете до най-долу, за да намерите полето с данни и щракнете с десния бутон върху него, за да изведете контекстното меню (2), в контекстното меню изберете Експортиране на избрани пакетни байтове(3) - Експортирайте байтове от избрания пакет:

Въведете име за файла, изберете местоположение и го запазете.

Някой актуализира Windows:

Бисквитките, зададени на потребителя или предадените му бисквитки също са видими:

Използване на филтър

Http.cookie

можете да видите HTTP заявките, в които са предадени бисквитките.

И с филтър

Http.set_cookie

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

Съседи изтеглят странни торенти:

Данните, прехвърлени по метода POST, също се виждат:

За да търсите качени изображения:

Http.content_type съдържа "image"

За да търсите определени типове изображения:

Http.content_type съдържа "gif" http.content_type съдържа "jpeg" http.content_type съдържа "png"

За да търсите файлове от определен тип:

Http.content_type съдържа "текст" http.content_type съдържа "xml" http.content_type съдържа "html" http.content_type съдържа "json" http.content_type съдържа "javascript" http.content_type съдържа "x-www-form-urlencode" http. content_type съдържа "компресиран" http.content_type съдържа "приложение"

Търси Wireshark за заявки за получаване на файлове от определен тип. Например, за да търсите прехвърлени ZIP архиви:

Http.request.uri съдържа "zip"

Вместо http.request.uriфилтрите могат да се използват за по-голяма точност http.request.uri.pathили http.request.uri.query, например, за търсене на заявки за изтегляне на JPG файлове (връзки към снимки):

Http.request.uri.path съдържа "jpg"

Филтър, който показва само данните, изпратени чрез метода POST:

Http.request.method == "POST"

Филтър, който показва само данни, изпратени по метода GET:

Http.request.method == "GET"

Търсене на заявки към конкретен сайт (хост):

Http.host == " "

Търсене на заявки към конкретен сайт по част от името:

Http.host съдържа "here.partial.name"

Заключение

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

Дори сайтове, които използват HTTPS, могат спонтанно да разкрият данни. Например:

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

Приложението за iPhone непрекъснато изтегля някои (аудио?) файлове, без да използва защитена връзка:

Популярният (в някои региони) qq.com или не използва криптиране, или използва собствен алгоритъм:

Гарантираната защита срещу такова прихващане е използването на надеждна VPN услуга. За надеждна VPN услуга може да се счита тази, която сте настроили сами, или VPN на вашата корпоративна мрежа.

Методи за прихващане на мрежов трафик

Слушането на мрежата с помощта на програми за мрежов анализатор е първият, най-лесният начин за прихващане на данни.

За защита от подслушване в мрежата се използват специални програми, например AntiSniff, които са в състояние да откриват компютри в мрежата, които са заети с подслушване на мрежовия трафик.

Антисниферните програми за решаване на проблемите си използват специален знак за присъствието на подслушващи устройства в мрежата - мрежовата карта на компютъра снифер трябва да е в специален режим на слушане. Докато са в режим на слушане, мрежовите компютри реагират по специален начин на IP дейтаграми, изпратени до адреса на тествания хост. Например, подслушващите хостове обикновено обработват целия входящ трафик, без да се ограничават до дейтаграми, изпратени до адреса на хоста. Има и други признаци на подозрително поведение на хост, които AntiSniff може да разпознае.

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

За да прихване и затвори процеса на мрежова комуникация между два хоста A и B, нападателят може да измами IP адресите на взаимодействащите хостове със собствения си IP адрес, като изпрати фалшиви ARP (Address Resolution Protocol) съобщения до хостове A и B.

Ориз. 1 измамни ARP заявки

Нека видим как хакерът може да използва ARP за прихващане на мрежова комуникация между хостове A и B.

За да прихване мрежовия трафик между хостове A и B, хакерът налага своя IP адрес на тези хостове, така че A и B да използват този фалшив IP адрес при обмен на съобщения. За да наложи своя IP адрес, хакерът извършва следните операции.

  • Нападателят определя MAC адресите на хостове A и B, например, използвайки командата nbtstat от пакета W2RK.
  • Нападателят изпраща съобщения до идентифицираните MAC адреси на хостове A и B, които са фалшиви ARP отговори на заявки за разрешаване на IP адреси на хостове в MAC адреси на компютри. Хост А е информиран, че IP адресът на хост Б съответства на MAC адреса на компютъра на нападателя; на хост B се казва, че IP адресът на хост A също съвпада с MAC адреса на нападателя.
  • Хостове A и B въвеждат получените MAC адреси в своите ARP кешове и след това ги използват за изпращане на съобщения един до друг. Тъй като IP адресите на A и B съответстват на MAC адреса на компютъра на нападателя, хостове A и B, без да подозират нищо, комуникират чрез посредник, способен да прави каквото си поиска с техните съобщения.

За да се защитят от подобни атаки, мрежовите администратори трябва да поддържат база данни с таблица за съпоставяне на MAC адреси и IP адреси на техните мрежови компютри.

В UNIX мрежи този тип фалшива ARP атака може да се реализира с помощта на системни помощни програми за наблюдение и контрол на мрежовия трафик, като arpredirect. За съжаление, в мрежите на Windows подобни стабилни помощни програми изглежда не са внедрени. Например, помощната програма GrabitAII се предлага от NTsecurity като инструмент за пренасочване на трафик между мрежови хостове. Елементарният тест на функционалността на помощната програма GrabitAII обаче показва, че все още е далеч от пълен успех в изпълнението на функциите си.

За да прихване мрежовия трафик, нападателят може да подправи истинския IP адрес на мрежов рутер със собствен IP адрес, например, като използва фалшиви ICMP съобщения за пренасочване. Хост А трябва, съгласно RFC-1122, да интерпретира полученото съобщение за пренасочване като отговор на дейтаграма, изпратена до друг хост, например B. Хост A определя своите действия върху съобщението за пренасочване въз основа на съдържанието на полученото съобщение за пренасочване, и ако пренасочването на дейтаграма е зададено в Пренасочване от А към Б по нов маршрут, това ще направи хост А.

Ориз. 2 Фалшиво маршрутизиране

За да извърши фалшиво маршрутизиране, нападателят трябва да знае някои подробности за организацията на локалната мрежа, в която се намира хост A, по-специално IP адреса на рутера, през който трафикът се изпраща от хост A към B. Знаейки това, нападателят ще генерира IP дейтаграма, в която IP - адресът на подателя е дефиниран като IP адреса на рутера, а получателят е хост A. Също така, дейтаграмата включва ICMP Redirect съобщение с полето за адрес на новия рутер, зададено като IP адрес на компютъра на нападателя. При получаване на такова съобщение, хост A ще изпрати всички съобщения до IP адреса на компютъра на нападателя.

За да се предпазите от такава атака, деактивирайте (например с помощта на защитна стена) обработката на ICMP съобщения за пренасочване на хост A. Тези помощни програми могат да намерят допълнителен маршрут, който се появи в локалната мрежа, който не беше предвиден по време на инсталацията, ако, разбира се, мрежовият администратор е бдителен.

Горните примери за прихващания (чрез които възможностите на нападателите далеч не са ограничени) убеждават необходимостта от защита на данните, предавани по мрежата, ако данните съдържат поверителна информация. Единственият метод за защита срещу прихващане на мрежов трафик е използването на програми, които внедряват криптографски алгоритми и протоколи за криптиране и предотвратяват разкриването и подмяната на класифицирана информация. За да разреши такива проблеми, криптографията предоставя средства за криптиране, подписване и проверка на автентичността на съобщенията, предавани по защитени протоколи.

Практическото прилагане на всички криптографски методи за защита на обмена на информация се осигурява от VPN (Virtual Private Network) мрежи.

Отвличане на TCP връзка

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

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

TCP (Transmission Control Protocol) е един от основните протоколи на транспортния слой OSI, който позволява да се установят логически връзки през виртуален комуникационен канал. По този канал се предават и получават пакети с регистриране на тяхната последователност, пакетният поток се контролира, организира се повторното предаване на повредени пакети и в края на сесията комуникационният канал се прекъсва. TCP е единственият основен протокол в семейството TCP/IP, който има усъвършенствана система за идентификация на съобщения и връзка.

Преглед на софтуерните пакетни анализатори

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

Обикновено прозорецът на всеки снифер с графичен интерфейс се състои от три области. Първият показва обобщението на заловените пакети. Обикновено тази област показва минимум полета, а именно: време за улавяне на пакети; IP адресите на подателя и получателя на пакета; MAC адреси на източник и дестинация на пакети, порт адреси на източник и дестинация; тип протокол (мрежов, транспортен или приложен слой); някаква обобщена информация за прихванатите данни. Втората област показва статистическа информация за отделния избран пакет и накрая, в третата област, пакетът се представя в шестнадесетичен или ASCII символен вид.

Почти всички снифери на пакети ви позволяват да анализирате декодирани пакети (поради което сниферите на пакети се наричат ​​още анализатори на пакети или анализатори на протоколи). Сниферът разпределя заловените пакети по слой и протокол. Някои снифери на пакети са в състояние да разпознаят протокола и да покажат прихванатата информация. Този тип информация обикновено се показва във втората област на прозореца на анализатора. Например, всеки снифер е в състояние да разпознае протокола TCP, а усъвършенстваните снифери могат да определят кое приложение генерира този трафик. Повечето анализатори на протоколи разпознават над 500 различни протокола и са в състояние да ги опишат и декодират по име. Колкото повече информация сниферът е в състояние да декодира и представи на екрана, толкова по-малко ще трябва да декодира ръчно.

Един от проблемите, с които могат да се сблъскат анализаторите на пакети, е невъзможността за правилно идентифициране на протокола, използвайки порт, различен от порта по подразбиране. Например, за да се подобри сигурността, някои добре познати приложения могат да бъдат конфигурирани да използват портове, различни от тези по подразбиране. Така че вместо традиционния порт 80, запазен за уеб сървър, този сървър може да бъде принудително преконфигуриран към порт 8088 или към всеки друг. Някои анализатори на пакети в такава ситуация не са в състояние да определят правилно протокола и да покажат само информация за протокола на по-ниския слой (TCP или UDP).

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

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

Много потребители дори не осъзнават, че чрез попълване на потребителско име и парола при регистрация или оторизиране на затворен интернет ресурс и натискане на ENTER тези данни могат лесно да бъдат прихванати. Много често те се предават по мрежата в незащитена форма. Ето защо, ако сайтът, в който се опитвате да влезете, използва HTTP протокола, тогава е много лесно да уловите този трафик, да го анализирате с помощта на Wireshark и след това да използвате специални филтри и програми, за да намерите и дешифрирате паролата.

Най-доброто място за прихващане на пароли е в ядрото на мрежата, където трафикът на всички потребители отива към затворени ресурси (например поща) или пред рутера за достъп до Интернет, когато се регистрирате с външни ресурси. Поставихме огледало и сме готови да се почувстваме като хакер.

Стъпка 1. Инсталирайте и стартирайте Wireshark за улавяне на трафик

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

Улавянето на трафика е започнало.

Стъпка 2. Филтриране на уловения POST трафик

Отваряме браузър и се опитваме да влезем във всеки ресурс с потребителско име и парола. След приключване на процеса на оторизация и отваряне на сайта спираме да улавяме трафик в Wireshark. След това отворете анализатора на протоколи и вижте голям брой пакети. Именно на този етап повечето ИТ специалисти се отказват, защото не знаят какво да правят по-нататък. Но ние знаем и се интересуваме от конкретни пакети, които съдържат POST данни, които се генерират на нашата локална машина при попълване на формуляр на екрана и се изпращат до отдалечен сървър, когато щракнете върху бутона „Вход“ или „Оторизация“ в браузър.

Въведете специален филтър в прозореца за показване на заснетите пакети: httpискане.метод == “Публикувай "

И вместо хиляда пакета виждаме само един с данните, които търсим.

Стъпка 3. Намерете потребителското име и паролата

Бързо щракване с десен бутон на мишката и изберете елемента от менюто Следвайте TCP Steam


След това в нов прозорец ще се появи текст, който в кода възстановява съдържанието на страницата. Нека намерим полетата "парола" и "потребител", които отговарят на паролата и потребителското име. В някои случаи и двете полета ще бъдат лесно четими и дори не криптирани, но ако се опитваме да уловим трафик при достъп до много добре познати ресурси като Mail.ru, Facebook, Vkontakte и т.н., тогава паролата ще бъде кодирана:

HTTP / 1.1 302 намерени

Сървър: Apache / 2.2.15 (CentOS)

X-Powered-By: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: парола = ; изтича = чт, 7 ноември 2024 г. 23:52:21 GMT; път = /

Местоположение: loggedin.php

Дължина на съдържанието: 0

Връзка: затваряне

Тип на съдържанието: текст / html; набор от знаци = UTF-8

Така в нашия случай:

Потребителско име: networkguru

парола:

Стъпка 4. Определяне на типа кодиране за декриптиране на паролата

Отиваме например на сайта http://www.onlinehashcrack.com/hash-identification.php#res и въвеждаме паролата си в прозореца за идентификация. Беше ми даден списък с протоколи за кодиране по приоритет:

Стъпка 5. Дешифриране на потребителска парола

На този етап можем да използваме помощната програма hashcat:

~ # hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

На изхода получихме дешифрирана парола: simplepassword

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

  • Протоколът и филтърът POP изглеждат така: pop.request.command == "USER" || pop.request.command == "PASS"
  • IMAP и филтърът ще бъдат: imap.request съдържа "вход"
  • SMTP протокол и ще трябва да въведете следния филтър: smtp.req.command == "AUTH"

и по-сериозни помощни програми за декриптиране на протокола за кодиране.

Стъпка 6. Ами ако трафикът е криптиран и използва HTTPS?

Има няколко опции за отговор на този въпрос.

Опция 1. Свържете се, за да прекъснете връзката между потребителя и сървъра и да уловите трафик в момента на установяване на връзката (SSL Handshake). Когато връзката е установена, можете да прихванете ключа на сесията.

Опция 2. Можете да дешифрирате HTTPS трафик, като използвате регистрационния файл с ключ на сесията, записан от Firefox или Chrome. За да направите това, браузърът трябва да бъде конфигуриран да записва тези ключове за криптиране в регистрационен файл (пример, базиран на FireFox) и трябва да получите този регистрационен файл. По същество трябва да откраднете файла с ключ за сесия от твърдия диск на друг потребител (което е незаконно). Е, след това заснемете трафика и използвайте получения ключ, за да го дешифрирате.

Уточнение.Говорим за уеб браузър на човек, който се опитва да открадне парола. Ако имаме предвид декриптиране на нашия собствен HTTPS трафик и искаме да практикуваме, тогава тази стратегия ще работи. Ако се опитвате да дешифрирате HTTPS трафика на други потребители, без да имате достъп до техните компютри, това няма да работи - това е едновременно криптиране и поверителност.

След като получите ключовете за опция 1 или 2, трябва да ги регистрирате в WireShark:

  1. Отидете в менюто Редактиране - Предпочитания - Протоколи - SSL.
  2. Задайте флага „Повторно сглобяване на SSL записи, обхващащи множество TCP сегменти“.
  3. „Списък с ключове RSA“ и щракнете върху Редактиране.
  4. Във всички полета въвеждаме данни и записваме пътя във файла с ключа

WireShark може да декриптира пакети, които са криптирани с помощта на алгоритъма RSA. Ако се използват алгоритми DHE / ECDHE, FS, ECC, сниферът не е наш помощник.

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

БОНУС

ВИДЕО: Wireshark Packet Sniffing потребителски имена, пароли и уеб страници


Този урок описва мрежови хакерски технологии, базирани на улавяне на мрежови пакети. Хакерите използват такива технологии, за да подслушват мрежовия трафик, за да откраднат ценна информация, да организират прихващане на данни с цел атака "човек в средата", да прихванат TCP връзки, които позволяват, да речем, да се подправят данни и да извършват други също толкова интересни действия. За съжаление, повечето от тези атаки на практика се реализират само за Unix мрежи, за които хакерите могат да използват както специални помощни програми, така и Unix системни инструменти. Очевидно мрежите на Windows са заобиколени от хакери и ние сме принудени да се ограничим до описване на инструменти за прихващане на данни от програми за анализиране, предназначени да слушат тривиално за мрежови пакети. Въпреки това не трябва да се пренебрегва поне теоретично описание на подобни атаки, особено от антихакери, тъй като познаването на прилаганите хакерски технологии ще помогне за предотвратяване на много проблеми.

Мрежово подслушване

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

За да демонстрираме технологията на смъркане, ще използваме много популярна програма за смъркане SpyNetкоито могат да бъдат намерени на много уеб сайтове. Официален сайт на програмата SpyNetнамира се в http://members.xoom.com/layrentiu2/, където можете да изтеглите демо версията на програмата.

Програма SpyNetсе състои от два компонента - CaptureNetи PipeNet... Програма CaptureNetви позволява да прихващате пакети, предавани през Ethernet мрежа на мрежово ниво, т.е. под формата на Ethernet рамки. Програма PipeNetПозволява ви да сглобявате Ethernet рамки в пакети на приложния слой, като възстановявате, например, имейл съобщения, HTTP (комуникация с уеб сървър) съобщения и други функции.

За съжаление, в демо версия SpyNetвъзможности PipeNetса ограничени до демонстрационната версия на HTTP пакета, така че не можем да демонстрираме как работи SpyNetизцяло. Все пак ще демонстрираме възможностите на мрежовото подслушване. SpyNetна примера на нашата експериментална мрежа, прехвърляйки текстов файл от хоста Меч-2000на домакин Алекс-Зс помощта на обикновен Windows Explorer. Едновременно на компютъра A1ex-1ще стартираме програмата CaptureNet, което ще прихване предадените пакети и ще ви позволи да прочетете съдържанието на предадения файл в Ethernet кадри. На фиг. 1 показва текста на тайното съобщение във файла secret.txt; ще се опитаме да намерим този текст в заснетите Ethernet кадри.

Ориз. 1. Текстът на тайното съобщение в прозореца на Notepad

Следвайте тези стъпки, за да заснемете Ethernet кадри.

На компютъра Алекс-Зстартирайте програмата CaptureNet... В показания работен прозорец на програмата изберете командата от менюто Заснемане * Старт(Capture * Start) и стартирайте процеса на заснемане на мрежови кадри.

С помощта на Windows Explorer копирайте файла security.txt от вашия компютър Меч-2000на A1ex-3.

След като прехвърлите файла secret.txt, изберете командата от менюто Заснемане * Стоп(Capture * Stop) и спрете процеса на прихващане.

Заснетите Ethernet кадри ще се покажат в дясната част на работния прозорец на програмата. CaptureNet(фиг. 2), като всеки ред в горния списък представлява Ethernet рамка, а под списъка се показва съдържанието на избраната рамка.

Ориз. 2. Ethernet рамката съдържа текста на секретното съобщение

След като разгледахме списъка с прихванати кадри, лесно можем да намерим този, който съдържа текста Това е много голяма тайна, която сме прехвърлили (Това е много голяма тайна).

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

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

Методи за прихващане на мрежов трафик

Снифериране на мрежата с мрежови снифери като горния CaptureNet, е първият, най-лесният начин за прихващане на данни. Освен това SpyNetЗа подслушване на мрежата се използват много инструменти, първоначално разработени с цел анализиране на мрежовата активност, диагностициране на мрежи, избор на трафик според определени критерии и други задачи за администриране на мрежата. Пример за такава програма е tcpdump (http://www.tcpdump.org), което ви позволява да записвате мрежовия трафик в специален дневник за по-късен анализ.

За защита от подслушване в мрежата се използват специални програми, напр. AntiSniff (http://www.securitysoftwaretech.com/antisniff), които са в състояние да идентифицират компютри в мрежата, които са заети с прослушване на мрежовия трафик. Антисниферните програми за решаване на проблемите си използват специален знак за присъствието на подслушващи устройства в мрежата - мрежовата карта на компютъра снифер трябва да е в специален режим на слушане. Докато са в режим на слушане, мрежовите компютри реагират по специален начин на IP дейтаграми, изпратени до адреса на тествания хост. Например, подслушващите хостове обикновено обработват целия входящ трафик, без да се ограничават до дейтаграми, изпратени до адреса на хоста. Има и други признаци на подозрително поведение на хоста, които програмата може да разпознае. AntiSniff.

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

Подправяне на ARP заявки

За да прихване и затвори процеса на мрежова комуникация между два хоста A и B, нападателят може да измами IP адресите на взаимодействащите хостове със собствения си IP адрес, като изпрати фалшиви ARP (Address Resolution Protocol) съобщения до хостове A и B. Можете да научите повече за ARP в Приложение D, което описва как да разрешите (преведете) IP адрес на хост в адрес на машината (MAC адрес), свързан в NIC на хоста. Нека видим как хакерът може да използва ARP за прихващане на мрежова комуникация между хостове A и B.

За да прихване мрежовия трафик между хостове A и B, хакерът налага своя IP адрес на тези хостове, така че A и B да използват този фалшив IP адрес при обмен на съобщения. За да наложи своя IP адрес, хакерът извършва следните операции.

Нападателят определя MAC адресите на хостове A и B, например, използвайки командата nbtstatот опаковката W2RK.

Нападателят изпраща съобщения до идентифицираните MAC адреси на хостове A и B, които са фалшиви ARP отговори на заявки за разрешаване на IP адреси на хостове в MAC адреси на компютри. Хост А е информиран, че IP адресът на хост Б съответства на MAC адреса на компютъра на нападателя; на хост B се казва, че IP адресът на хост A също съвпада с MAC адреса на нападателя.

Хостове A и B въвеждат получените MAC адреси в своите ARP кешове и след това ги използват за изпращане на съобщения един до друг. Тъй като IP адресите на A и B съответстват на MAC адреса на компютъра на нападателя, хостове A и B, без да подозират нищо, комуникират чрез посредник, способен да прави каквото си поиска с техните съобщения.

За да се защитят от подобни атаки, мрежовите администратори трябва да поддържат база данни с таблица за съпоставяне на MAC адреси и IP адреси на техните мрежови компютри. Освен това с помощта на специален софтуер, например помощна програма arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz), можете периодично да изследвате мрежата и да идентифицирате несъответствия.

В UNIX мрежи този вид фалшива ARP атака може да се реализира с помощта на системни помощни програми за наблюдение и контрол на мрежовия трафик, като напр. arpredirect... За съжаление, подобни надеждни помощни програми очевидно не са внедрени в мрежите на Windows 2000 / XP. Например на уебсайта на NTsecurity ( http://www.ntsecurity.nu) можете да изтеглите помощната програма GrabitAII, представен като средство за пренасочване на трафик между мрежови хостове. Въпреки това, елементарна проверка на функционалността на помощната програма GrabitAIIпоказва, че все още е далеч от пълен успех в изпълнението на своите функции.

Фалшиво маршрутизиране

За да прихване мрежовия трафик, нападателят може да подправи истинския IP адрес на мрежов рутер със собствен IP адрес, например, като използва фалшиви ICMP съобщения за пренасочване. Хост А трябва, съгласно RFC-1122, да интерпретира полученото съобщение за пренасочване като отговор на дейтаграма, изпратена до друг хост, например B. Хост A определя своите действия върху съобщението за пренасочване въз основа на съдържанието на полученото съобщение за пренасочване, и ако пренасочването на дейтаграма е зададено в Пренасочване от А към Б по нов маршрут, това ще направи хост А.

За да извърши фалшиво маршрутизиране, нападателят трябва да знае някои подробности за организацията на локалната мрежа, в която се намира хост A, по-специално IP адреса на рутера, през който трафикът се изпраща от хост A към B. Знаейки това, нападателят ще генерира IP дейтаграма, в която IP - адресът на подателя е дефиниран като IP адреса на рутера, а получателят е хост A. Също така, дейтаграмата включва ICMP Redirect съобщение с полето за адрес на новия рутер, зададено като IP адрес на компютъра на нападателя. При получаване на такова съобщение, хост A ще изпрати всички съобщения до IP адреса на компютъра на нападателя.

За да се предпазите от такава атака, деактивирайте (например с помощта на защитна стена) на хост A обработката на ICMP съобщения за пренасочване и командата tracert(в Unix това е командата tracerout). Тези помощни програми могат да намерят допълнителен маршрут, който се появи в локалната мрежа, който не беше предвиден по време на инсталацията, ако, разбира се, мрежовият администратор е бдителен.

Горните примери за прихващания (чрез които възможностите на нападателите далеч не са ограничени) убеждават необходимостта от защита на данните, предавани по мрежата, ако данните съдържат поверителна информация. Единственият метод за защита срещу прихващане на мрежов трафик е използването на програми, които внедряват криптографски алгоритми и протоколи за криптиране и предотвратяват разкриването и подмяната на класифицирана информация. За да разреши такива проблеми, криптографията предоставя средства за криптиране, подписване и проверка на автентичността на съобщенията, предавани по защитени протоколи.

Виртуалните частни мрежи (VPN) предоставят практически реализации за всички криптографски методи за защита на комуникациите, описани в глава 4. Кратък преглед на принципите и методите за криптографска защита може да се намери в Приложение Е и в подробното описание на криптографските защити, предоставени от приложението. PGP Desktop Security (http://www.pgp.com).

Отвличане на TCP връзка

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

Разработени са няколко ефективни помощни програми за извършване на атаки за отвличане на TCP връзка, но всички те са внедрени за платформата Unix и тези помощни програми са представени само в изходния код на уеб сайтовете. Така за нас, като убедени практикуващи в благородната кауза на хакването, атаките чрез прихващане на TCP връзка са от малка полза. (Тези, които обичат да разбират програмния код на някой друг, могат да се обърнат към сайта http://www.cri.cz/~kra/index.htmlкъдето можете да изтеглите изходния код на добре познатата помощна програма за прихващане на TCP връзка ловот Павел Крауз).

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

TCP (Transmission Control Protocol) е един от основните протоколи на транспортния слой OSI, който позволява да се установят логически връзки през виртуален комуникационен канал. По този канал се предават и получават пакети с регистриране на тяхната последователност, пакетният поток се контролира, организира се повторното предаване на повредени пакети и в края на сесията комуникационният канал се прекъсва. TCP е единственият основен протокол в семейството TCP/IP, който има усъвършенствана система за идентификация на съобщения и връзка.

За идентифициране на TCP пакет има два 32-битови идентификатора в TCP заглавката, които също действат като брояч на пакети, наречен пореден номер и номер на потвърждение. Ще ни интересува и друго поле на TCP пакета, наречено контролни битове. Това 6-битово поле съдържа следните контролни битове (в ред отляво надясно):

URG - флаг за спешност;

ACK - флаг за потвърждение;

PSH - знаме за носене;

RST - флаг за повторно установяване на връзката;

SYN - флаг за синхронизация;

FIN - флаг за прекратяване на връзката.

Нека да разгледаме как да създадем TCP връзка.

1. Ако хост A трябва да установи TCP връзка с хост B, хост A изпраща на хост B следното съобщение:

A -> B: SYN, ISSa

Това означава, че съобщението, изпратено от Host A, има зададен флаг SYN (Синхронизиране на пореден номер) и полето за пореден номер е настроено на 32-битов начален пореден номер (ISSa).

2. В отговор на заявката, получена от хост A, хост B отговаря със съобщение, в което е зададен битът SYN и битът ACK. В полето на поредния номер хост B задава първоначалната си стойност на брояча - ISSb; полето за номер на потвърждение ще съдържа стойността на ISSa, получена в първия пакет от хост А, увеличена с едно. По този начин хост B отговаря със следното съобщение:

B -> A: SYN, ACK, ISSb, ACK (ISSa + 1)

3. Накрая хост А изпраща съобщение до хост Б, в което: е зададен бит ПИТАМ; редовното поле съдържа стойността ISSa + 1; полето с номер за потвърждение съдържа стойността ISSb + 1... След това TCP връзка между хостовете Аи Vсчита се за установено:

A -> B: ACK, ISSa + 1, ACK (ISSb + 1)

4. Сега домакинът Аможе да изпраща пакети с данни до хоста Vпрез новосъздадения виртуален TCP канал:

A -> B: ACK, ISSa + 1, ACK (ISSb + 1); ДАННИ

Тук ДАННИобозначава данни.

От горния алгоритъм за създаване на TCP връзка може да се види, че единствените идентификатори на TCP абонатите и TCP връзките са два 32-битови параметъра на поредния номер и номера на потвърждение - ISSaи ISSb... Следователно, ако хакер успее да разбере текущите стойности на полетата ISSaи ISSb, тогава нищо няма да му попречи да формира фалшив TCP пакет. Това означава, че е достатъчно за хакера да намери текущите стойности на параметрите. ISSaи ISSb TCP пакет за дадена TCP връзка, изпратете пакет от всеки хост в Интернет от името на клиент за дадена TCP връзка и този пакет ще бъде приет като валиден!

Опасността от подобно подправяне на TCP пакети също е важна, тъй като FTP и TELNET протоколите от високо ниво се реализират на базата на TCP протокола, а идентификацията на FTP клиенти и TELNET пакети се основава изцяло на TCP протокола.

Освен това, тъй като протоколите FTP и TELNET не проверяват IP адресите на подателите на съобщения, след получаване на фалшив пакет, FTP или TELNET сървърите ще изпратят съобщение за отговор до IP адреса на хакерския хост, посочен във фалшивия пакет . След това хакерският хост ще започне да работи с FTP или TELNET сървъра от неговия IP адрес, но с правата на законно свързания потребител, който от своя страна ще загуби връзка със сървъра поради несъответствие в броячите.

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

Затова най-голям интерес за хакера представляват междусегментните атаки, когато нападателят и неговата цел са в различни мрежови сегменти. В този случай задачата за получаване на стойности ISSaи ISSbне е тривиално. За да се реши този проблем, сега са измислени само два начина.

Математическо прогнозиране на първоначалната стойност на параметрите на TCP връзката чрез екстраполиране на предишните стойности ISSaи ISSb.

Използване на уязвимости за идентифициране на абонати на TCP връзка на Unix rsh сървъри.

Първият проблем е решен чрез задълбочени проучвания на внедряването на протокола TCP в различни операционни системи и вече има чисто теоретична стойност. Вторият проблем се решава чрез използване на уязвимостите на Unix системата за идентифициране на доверени хостове. (Доверен по отношение на дадения хост Анаречен мрежов хост Vчийто потребител може да се свърже с хоста Аняма удостоверяване с хост r-service А). Чрез манипулиране на параметрите на TCP пакетите, хакерът може да се опита да се представи за доверен хост и да прихване TCP връзката с атакувания хост.

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

Заключение

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

Антихакерът трябва да знае, че единственото спасение от прихващането на данни е криптирането, т.е. криптографски методи за защита. Когато изпращате съобщение по мрежата, трябва предварително да приемете, че кабелната система на мрежата е абсолютно уязвима и всеки хакер, който се свърже с мрежата, ще може да извлече всички предадени секретни съобщения от нея. Има две технологии за решаване на този проблем – създаване на VPN мрежа и криптиране на самите съобщения. Всички тези задачи са много лесни за решаване с помощта на софтуерния пакет. PGP Desktop Security(описанието му може да се намери например в).

Оригинал: Network sniffing
Автор: Пол Кобаут
Дата на публикуване: 12 март 2015 г
Превод: А. Панин
Дата на прехвърляне: 1 април 2015 г

Глава 23. Улавяне на мрежов трафик

Мрежовият администратор трябва да може да използва снифер като wireshark или tcpdump за диагностициране на мрежови проблеми.

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

23.1. Приложението Wireshark

23.1.1. Инсталиране на wireshark

Този пример предоставя команда за инсталиране на wireshark в дистрибуции, които използват софтуерни пакети с разширението .deb (включително Debian, Mint, Xubuntu и други дистрибуции).

[защитен с имейл]: ~ # Четене на списъци с пакети Готово Изграждане на дърво на зависимости Четене на информация за състоянието Готово ... (изходът е съкратен)

В дистрибуции, които използват софтуерни пакети .rpm като CentOS, RHEL и Fedora, yum може да се използва за инсталиране на wireshark.

# yum install wireshark Заредени плъгини: fastestmirror Зареждане на скоростите на огледалото от кеширан хост файл ... (изходът е съкратен)

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

Когато стартирате wireshark за първи път, ще трябва да изберете мрежов интерфейс. Ще видите диалогов прозорец, който изглежда подобен на този на илюстрацията по-долу.

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

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

23.1.3. Минимизиране на трафика

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

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

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

23.1.4. Прихващане на трафик, генериран от помощната програма за ping

Пуснах снифер и хванах всички пакети, предадени по мрежата в резултат на изпълнение на три ping команди (няма смисъл да изпълнявам тези команди като root):

[защитен с имейл]:~# ping -c2 ns1.paul.local PING ns1.paul.local (10.104.33.30) 56 (84) байта данни. 64 байта от 10.104.33.30: icmp_req = 1 ttl = 64 време = 0,010 ms 64 байта от 10.104.33.30: icmp_req = 2 ttl = 64 време = 0,023 ms предадени статистически данни paul.lons1 предадени 2 мс. , 2 получени, 0% загуба на пакети, време 1001ms rtt min / avg / max / mdev = 0,010 / 0,016 / 0,023 / 0,007 ms [защитен с имейл]:~# ping -c3 linux-training.be PING linux-training.be (188.93.155.87) 56 (84) байта данни. 64 байта от antares.ginsys.net (188.93.155.87): icmp_req = 1 ttl = 56 време = 15,6 ms 64 байта от antares.ginsys.net (188.93.155.87): icmp_req = 2 4 ms 6 ttl = 2 4 ms от antares.ginsys.net (188.93.155.87): icmp_req = 3 ttl = 56 време = 14,7 мс --- linux-training.be статистика за пинг --- 3 предадени пакета, 3 получени, 0% загуба на пакети, време 2003 мс rtt min / avg / max / mdev = 14,756 / 16,110 / 17,881 / 1,309 ms [защитен с имейл]:~# ping -c1 centos7.paul.local PING centos7.paul.local (10.104.33.31) 56 (84) байта данни. 64 байта от 10.104.33.31: icmp_req = 1 ttl = 64 време = 0,590 ms --- centos7.paul.local ping статистика --- 1 пакета предадени, 1 получен, 0% загуба на пакети, време 0ms rtt min / avg / mdev = 0,590 / 0,590 / 0,590 / 0,000 ms

Общо повече от 200 пакета бяха уловени от мрежата. Всичко ще стане много по-очевидно, ако въведете реда icmp в полето за филтър и щракнете върху бутона "Приложи".

23.1.5. Прихващане на трафик, генериран от ping помощна програма и dns клиент

Работейки със същата сесия за улавяне на данни, нека приложим страхотен филтър. Искаме да наблюдаваме трафика, свързан както с dns протокола, така и с протокола icmp, така че ще трябва да въведете имената на двата споменати протокола в полето за филтриране.

За улавяне на данни, свързани с въпросните два протокола, в полето за филтриране трябва да се въведе низът "dns или icmp". Ако въведете реда "dns и icmp", няма да се покаже информация за пакети, тъй като няма пакети, свързани с двата споменати протокола.

Разглеждайки горната илюстрация, можете да видите, че пакети 25 и 26 имат IP адреси на източник и местоназначение от 10.104.33.30. Това е така, защото DNS клиентът работи на същия компютър като DNS сървъра.

Подобна ситуация се наблюдава в случай на пакети 31 и 32, тъй като с помощта на помощната програма ping пакетите се изпращат до работната система, на която работи тази помощна програма.

23.1.6. Конкретен IP адрес

В този случай филтрирането на пакети, свързани с DNS протокола и съдържащи конкретен IP адрес. Низът "ip.addr == 10.104.33.30 и dns" се използва като филтър. Директивата и казва на приложението да показва информация за всеки пакет, който отговаря на две условия.

Пакет 93 съдържа DNS заявка за извличане на запис от тип A на домейна linux-training.be. Пакет 98 съдържа отговора от DNS сървъра. Какво мислите, че се е случило след изпращане на пакет 93 и преди получаване на пакет 98? Опитайте се да отговорите на този въпрос, преди да прочетете следващия раздел (когато работите с различни системи, винаги е полезно да се опитате да предвидите какво ще се случи и да проверите правилността на вашите прогнози).

23.1.7. Филтриране на базата на рамка

Правилният термин за прихванат пакет е рамка (поради факта, че улавяме пакети на слой 2 от мрежовия модел на OSI). По този начин, за да покажете информация за пакети със специфични номера, използвайте директивата frame.number в полето за филтриране.

23.1.8. Разглеждане на съдържанието на пакетите

Средният прозорец на прозореца на анализатора може да бъде разширен. Когато изберете ред в този панел, можете да видите съответните стойности на байтове в полето на долния панел.

Илюстрацията по-долу показва средния панел на прозореца на анализатора с избрания адрес на моя лаптоп.

Имайте предвид, че горната техника работи чудесно за улавяне на трафик на един мрежов интерфейс. Ако прихващате трафика, например, като използвате командата tcpdump -i any, ще срещнете метода за улавяне на пакети "Linux cooked capture".

23.1.9. Още примери за филтри

Можете да комбинирате двете описания на протокола, като използвате логическата или ("OR") директива между тях. Илюстрацията по-долу показва как да улавяте само ARP и BOOTP (или DHCP) пакети.

И следващата илюстрация показва метод за улавяне на специфични за DNS пакети, съдържащи конкретен IP адрес.

23.2. Помощна програма Tcpdump

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

Използването на командата tcpdump host $ ip ще покаже информация за целия трафик, свързан с конкретен хост (в този случай с IP адрес 192.168.1.38).

[защитен с имейл]: ~ # tcpdump хост 192.168.1.38 tcpdump: подробен изход е потиснат, използвайте -v или -vv за слушане на пълно декодиране на протокол на eth0, тип връзка EN10MB (Ethernet), размер на улавяне 96 байта

Трафикът, който е изключително свързан с ssh протокола (TCP протокол, порт 22), може да бъде прихванат с помощта на командата tcpdump tcp port $ port. Изходните редове са съкратени до 76 знака за по-добра четливост.

[защитен с имейл]: ~ # tcpdump tcp порт 22 tcpdump: подробен изход е потиснат, използвайте -v или -vv за слушане на пълно декодиране на протокол на eth1, тип връзка EN10MB (Ethernet), размер на заснемане 96 байта 14: 22: 20.71653079 IP decal. > rhel53.local.ssh: P 666050963: 66605 14: 22: 20.719936 IP rhel53.local.ssh> deb503.local.37973: P 1:49 (48) ack 48 14:02: IP deb503.local.37973: P 49: 113 (64) ack 14: 22: 20.721321 IP rhel53.local.ssh> deb503.local.37973: P 113: 161 (48) ack 14: 22: 22:12:00 IP 37973> rhel53.local.ssh:. ack 161 win 200 14: 22: 20.722492 IP rhel53.local.ssh> deb503.local.37973: P 161: 225 (64) ack 14: 22: 20.760602 IP deblocal.3079. ack 225 win 200 14: 22: 23.108106 IP deb503.local.54424> ubuntu910.local.ssh: P 467252637: 46 14: 22: 23.116804 IP: 23.116804 IP deb503.local.54424> ubuntu910.local.ssh: P 467252637: 46 14: 22: 23.116804 IP: 23.116804 IP: ubuntucal.50.40.40.40 ) ack 14: 22: 23.116844 IP deb503.local.54424> ubuntu910.local.ssh:. ack 81 win 2 ^ C 10 пакета уловени 10 пакета получени от филтъра 0 пакета изпуснати от ядрото

Същата операция, но със записване на заснетите данни във файл, може да се извърши с помощта на командата tcpdump -w $ filename.

[защитен с имейл]: ~ # tcpdump -w sshdump.tcpdump tcp порт 22 tcpdump: слушане на eth0, тип връзка EN10MB (Ethernet), размер на улавяне 96 байта ^ C 17 пакета уловени 17 пакета, получени от филтъра 0 пакета, изпуснати от ядрото

Командата tcpdump -r $ filename може да покаже съдържанието на файла, създаден в предишния пример.

[защитен с имейл]: ~ # tcpdump -r sshdump.tcpdump

Много други примери за използване на тази помощна програма могат да бъдат намерени в man страницата на tcpdump.

23.3. Практическа дейност: Прихващане на мрежов трафик

23.4. Правилна практика: Прихващане на мрежов трафик

1. Инсталирайте wireshark на вашата система (не работи във виртуална машина).

В дистрибуции на Debain/Ubuntu: aptitude инсталирайте wireshark

В дистрибуциите на Red Hat / Mandriva / Fedora: yum инсталирайте wireshark

2. Използвайте помощната програма ping, за да генерирате трафик между вашия и друг компютър.

Пинг $ ip_address

3. Започнете да улавяте мрежов трафик.

(sudo) wireshark

Изберете вашия мрежов интерфейс (вероятно eth0)

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

Въведете "icmp" (без кавички) в полето за филтър и щракнете върху бутона "Прилагане".

5. Сега предайте името на домейна (като www.linux-training.be) за ping и се опитайте да хванете DNS заявката и пакетите за отговор. Какъв DNS сървър е използван? Използван ли е протоколът TCP или UDP за предаване на заявката и отговора?

Първо стартирайте снифера.

Въведете "dns" в полето за филтър и щракнете върху бутона "Приложи".

[защитен с имейл]: ~ # ping www.linux-training.be PING www.linux-training.be (88.151.243.8) 56 (84) байта данни. 64 байта от fosfor.openminds.be (88.151.243.8): icmp_seq = 1 ttl = 58 време = 14,9 ms 64 байта от fosfor.openminds.be (88.151.243.8): icmp_seq = 2 ttl = 1^ 58 ms време = 2 ttl = 1^5. --- www.linux-training.be пинг статистика --- 2 пакета предадени, 2 получени, 0% загуба на пакети, време 1002ms rtt min / avg / max / mdev = 14,984 / 15,539 / 16,095 / 0,569 ms

Прозорецът на wireshark трябва да изглежда подобно.

Въз основа на информацията от прозореца на приложението wireshark можем да заключим, че DNS заявката е била предадена с помощта на UDP пакет, след което е лесно да се отговори на поставените въпроси.

6. Намерете затворен уебсайт, който има формуляр за искане на парола. Опитайте да влезете с потребителското име "paul" и паролата "hunter2", докато сниферът работи. Сега опитайте да намерите въведеното потребителско име и парола в данните, заснети от снифера.

Споделя това