Packet Sniffing – Представљање, увод у технологију и пример снифовања

Packet analyzing технологија која се често популарно назива и Packet sniffing, једноставно речено омогућује пресретање и увид у саобраћај који се одвија међу рачунарима на мрежном сегменту. Технологија се може користити за најразличитије сврхе, од дијагностике сигурносних проблема на мрежи све до креирања истих, а мрежни администратори је најчешће користе управо за мониторинг и проверу сигурносних поставки.

Наменског софтвера који би се користио за ову активност, у овом тренутку има сасвим довољно, али и поред тога Packet sniffing је активност којом се скоро искључиво баве професионалци. Разлог је пре свега, у великом броју препрека са којима се ентузијасти-почетници сусрећу када крену у авантуру ове врсте. На располагању је пуно документације и литературе коју треба филтрирати и издвојити оно што је применљиво на конкретну/специфичну ситуацију, а затим треба направити и избор између различитих комбинација софтвера које се могу користити.

Пре него што се позабавимо комбинацијом софтвера и самом процедуром, било би добро да нешто јасније дефинишемо, шта је то заправо, Packet sniffing и како функционише.

SNIFFING

У свакодневним раду и функционисању, сваки пут када рачунар или неки други уређај спојимо на локалну Ethernet мрежу, он врши слање и пријем TCP/UDP пакета (датаграма) и комуницира са локалним рутером. Рутер пакете прослеђује даље, ка њиховој крајњој дестинацији, према другим мрежним јединицама, серверима на интернету и где год је то потребно.

Sniffing (снигинг, снифовање) је процес пресретања, логовања и анализе ових пакета.

Уколико на локалној мрежи нису употребљени искључиво HUB-ови, тј. уређаји који представљају превазиђене претече свичева (стога вероватно и нису), између нападача и „жртве“ sniffing-а ће се појавити препреке. Препреке се појављују у виду свичева који су задужени да праве сегментацију на физичком, односно првом и другом нивоу OSI модела. За разлику од примене HUB-ова, када сви пакети стижу свима (broadcast), код мреже са свичевима пакети намењени уређају X стижу искључиво до уређаја X (unicats и multicast).

shp

Са позиције уређаја који жели да врши снифовање, пресретне пакете и логује их, ова чињеница представља проблем. Наиме, потребно је да пакети стигну и до уређаја-пресретача, а не само до своје регуларне дестинације. Овај проблем се, наравно може превазићи и то на више начина:

  • Мониторинг порт на свичу
  • Sniffing на самом рутеру
  • ARP spoofing

Мониторинг порт је посебан порт који постоји на напреднијим свичевима и чија је сврха репликација свих пакета који собраћају кроз свич. Могућност снифовања на самом рутеру зависи од рутера до рутера, а информације ради, навешћемо да на Микротик уређајима постоји ова могућност. Пошто је у оба случаја (мониторинг порт на свичу и sniffing на рутеру) у питању наменска опрема која није увек доступна, ми ћемо се у овом тексту детаљније бавити само ARP spoofing техником.

ARP SPOOFING

Веома битан елемент који је потребан за овај setup јесте мрежна карта која функционише у promiscuous моду. Promiscuous мод, кратко речено значи да ће мрежни адаптер прихватити све пакете укључујући и оне који нису директно њему намењени. Могућности за ово подешавање у великој мери зависе од модела мрежне карте и оперативног система, најчешће се promiscuous мод мора подесити накнадно и не спада у подразумевана подешавања.

ARP Spoofing, односно ARP poisoning техника користи слабост у самом ARP протоколу, односно чињеницу да ARP протокол не подржава никакав облик аутентикације. Наиме, када се уређај прикључи на мрежу, он асоцира друге уређаје и њихове одговарајуће MAC адресе, али у суштини, не постоји механизам којим би се потврдило да уређај X на адреси AB-CD-EF-12-34-56 заиста јесте уређај X, а не неки други уређај. Овај недостатак отвара могућност за вршење ARP spoofing-а.

ARP – ВЕРУЈЕ СВИМА

Претпоставимо да се уређај X прикључио на LAN мрежу. Уређај X би сада требало да комуницира са уређајем Y на IP адреси 192.168.1.16, па ће на адресу FF-FF-FF-FF-FF-FF (broadcast) послати упит:

„Ко зна на којој се MAC адреси налази уређај који има IP адресу 192.168.1.16?“

Сада се јавља уређај са IP адресом 192.168.1.16 и са своје MAC адресе, рецимо AB-CD-EF-12-34-56 шаље одговор:

„Ја имам адресу 192.168.1.16, а налазим се на MAC адреси AB-CD-EF-12-34-56„.

Постоји и реверзни упит при чему се потразује MAC адреса на основу IP адресе. Овде је кратко описан процесс који функционише без додатних провера, при чему уређаји прихватају саобраћај и са адреса за које нису слали упит.

pak-pregl

Поред процедуре коју смо описали постоји још једна која је за нашу тему и битнија, а зове се Gratuitous ARP. Gratuitous ARP је регуларан ARP одговор, са разликом да му није претходио упит нити једне мрежне јединице. Може да га објави сваки уређај на локалној мрежи, а сви уређаји ће без икакве провере прихватити информацију из ове објаве као истиниту. Gratuitous ARP је регулисан у оквиру ARP протокола и користи се у разним случајевима, на пример када се промени IP адреса на мрежној карти уређаја, који овим путем ту измену јавно објављује. Овакво дефинисана процедура пружа простор и за разне врсте злоупотреба.

АНАТОМИЈА НАПAДА

Претпоставимо да нападач жели да пресретне сав саобраћај који се одвија између циљаног уређаја који има IP адресу 192.168.1.16 (зваћемо га „жртва“ у наставку текста) и рутера, чија је IP адреса 192.168.1.1 Оваквим пресретањем нападач добија могућност да снифује, практично сав саобраћај жртве ка интернету. Као први корак, нападач ће се прикључити на локалну мрежу и почети да преплављује рутер Gratuitous ARP објавама (одговори без претходног упита) којима асоцира своју MAC адресу на IP адресу жртве:

„Ја имам IP адресу 192.168.1.16 (жртвина IP адреса), а налазим се на MAC адреси FF-FF-FF-BB-BB-BB (нападачева MAC адреса)“.

Услед недостатка механизма провере у оквиру ARP протокола, рутер ову објаву мора да прихвати и у свом ARP кешу ће асоцирати нападачеву MAC адресу са жртвином IP адресом.
Следећи корак је плављење жртве са Gratuitous ARP објавама, али сада објаве изгледају овако:

„Ја имам IP адресу 192.168.1.1 (IP адреса рутера), а налазим се на MAC адреси FF-FF-FF-BB-BB-BB (нападачева MAC адреса)“.

Поново, због природе ARP протокола и жртва ће ову информацију прихватити. Сада имамо ситуацију у којој се нападач жртви представио као рутер, а рутеру као жртва, при чему и рутер и жртва поуздано рачунају са овим информацијама.

Овиме је завршен процес ARP spoofing-а и остао је још само један елемент како би напад, који се назива и „Man in the middle (MiTM)“ напад, попримио свој коначан облик. Нападач сада треба да конфигурише свој оперативни систем тако да обезбеди IP forwarding. То значи да ће нападач пакете који му стижу прослеђивати према мрежним јединицама којима су и намење. Ако жртва пошаље пакет рутеру, тај пакет ће реално стићи прво до нападача, а како би се остварила комуникација, нападач пакет мора да проследи рутеру.

ПРАКСА

На почетку текста поменули смо значај одговарајуће комбинације софтвера за успешан sniffing. Поменимо као пример Wireshark програм, намењен packet analyzing-у (Виндовс и Линукс). Његова мана у овој примени јесте зависност од спољњих елемената. Wireshark нема интегрисану ARP spoofing функцију, па би смо, уколико желимо да извршимо Packet sniffing, морали да се ослонимо на мониторинг порт, HUB или додатни софтвер који је у стању да обави ARP spoofing. Процедура у комбинацији са додатним софтвером изгледала би овако…

Потребно је подесити оперативни систем за функционалан IP forwarding, мрежну карту пребацити у Promiscuous мод, затим покренути ARP spoofing програм, а када је и ова процедура завршена, може се покренути Wireshark и почети са пресретањем саобраћаја.

На Линуксу је ову операцију много лакше извести него на Виндовсу, будући да постоји обиље софтвера, расположива је и директна подршка оперативног система за IP forwarding, као и promiscuous моде за мрежни adapter. На Виндовс машинима ситуација је нешто другачија, што наравно не значи да операцију није могуће извести. Потребан софтвер за Виндовс је углавном портован са Линукса, нема га пуно, углавном су то пројекти ентузијаста који имају слабу подршку, а поврх свега, иако у оквиру оперативног система постоји подршка за IP forwarding, подршка не постоји и за promiscuous моде (то је разлог што се уз Wireshark испоручује WinPcap driver).

КАКО СЕ ЗАШТИТИТИ?

Пошто се недобронамерно (малициозно) експлоатисање ARP-а ослања на пропусте који су инкорпорирани у самој сржи протокола не постоји пуно превентивних и заштитних мера које се могу педузети. Када су у питању мале мреже могу се користити статички уноси којима се на мрежним уређајима IP адресе везују за MAC адресе (помало непрактично решење са становишта администрације). На Виндовс машинама, MAC адреса уређаја се може видети путем ipconfig команде, а на Линукс машинама, команда је ifconfig, а затим се командом arp –с могу додавати статички ARP уноси.

За веће мреже, вероватно најбоље решење је инвестирати у свич који има „port security“ опцију. Ова опција за сваки физички порт на свичу дозвољава само по једну MAC адресу, што би требало да спречи ARP spoof нападе.
Генерално за све мреже, препоручена одбрана била би имплементација неког ARP мониторинг софтвера, као што је за пример ARPwatch. Софтвер овог типа ће пратити саобраћај на мрежи и пријављивати сваки вид комуникације који је у овом смислу сумњив као и све промене MAC адреса. Дужност која остаје администраторима јесте да податке анализирају и одлуче да ли су пријављене промене малициозне или регуларне.

Показна вежба

На интернету постоји велики број упутстава која детаљно описују како обавити sniffing операцију коју смо у претходном делу теоретски обрадили. Ова упутства се већином односе на Линукс платформу, а ми ћемо овом приликом представити релативно лак начин да се Packet sniffing операција изведе на Виндовс оперативном систему помоћу програма чији је назив Intercepter-NG

INTERCEPTER-NG
Пре него што пређемо на детаље, желим да нагласим да је ово упутство креирано у едукативне сврхе. Упутство представља приказ технологија које се данас често налазе у практичној употреби и сматам да је добро упознати се са њима и имати представу о томе како оне функционишу. У складу са тиме, не могу да прихватим никакву одговорност у случају било какве злоупотребе, односно употребе примера из овог текста у малициозне сврхе.

Intercepter-NG је моћан алат за снифовање, чија намена и могућности у многоме превазилазе процедуру коју ћемо овде приказати. Доступан је за Виндовс NT(2K\XP\2k3\Vista\7\8), Линукс и Андроид платформе, а пун сет функционалности можете погледати на официјелном сајту.
Упрошћени и скраћени приказ „Маn in the middle“ операције којег ћемо приказати, није туторијал и има едукативни карактер. Туторијали и детаљна упутства, Вики документација, YouTube туторијали и други детаљни ресурси расположиви су и доступни путем веб претраге свакоме ко је заинтересован да се дубље бави овом тематиком.

ИНСТАЛАЦИЈА И ИНТЕРФЕЈС

За почетак, потребно је преузети setup фајл и инсталирати апликацију на систему који служи за напад (линк за преузимање налази се на крају текста). У зависности од браузера и антивирус програма, скоро је извесно упозорење да је фајл малициозан. Ово реално није случај, сам фајл није малициозан и опасност ове врсте не постоји, па поруку можете слободно да игноришете и распакујете архиву.

Након покретања Intercepter-NG.еxе појавиће се интерфејс који изгледа као на наредној слици и ради упознавања и информативности, ближе ћемо описати његове елементе.

interceptergui

  1. Избор врсте адаптера – да ли ће се користити мрежна или бежичну врста адаптера
  2. Одабир мрежног интерфејса који ће се користити за sniffing
  3. Messengers mode – омогућује да се у току sniffing-а посматрају конверзације које се одвијају у оквиру чет апликација, Скајпа, Џабера и других
  4. Ressurection mode – овде ће се појавити фајлови, слике и текстови који су присутни у комуникацији (фајлови реконструисани из мноштва пакета у којима се шаљу)
  5. Password mode – овде можемо видети пресретнуте лозинке и одговарајућа корисничким именима
  6. Scan mode – у овом одељку се скенира локална мрежа
  7. NAT mode – подешавање додатних аспеката sniffing-а
  8. DHCP mode – подешавање базичног DHCP сервера
  9. Raw mode – служи за праћење и логовање свих пакета из саобраћаја у сировој, необрађеној форми
  10. Start – када су сва подешавања комплетирана, покреће sniffing
  11. Settings – глобална подешавања
  12. ARP cage – путем ARP spoofing-а може се изоловати одређена мрежна јединица од остатка локалне мреже
  13. ARP watch – када је активиран, овај сервис прати промене асоцијације ARP и IP адреса и упозорава уколико неко нас spoof-ује
  14. Радна површина на којој се виде пакети у пролазу и сл.

ПОДЕШАВАЊА

interceptersettings

У Settings дијалогу, између осталог, могуће је навести додатне портове које је потребно пратити. Постоји и eXtreme Mode опција која није препоручљива јер ће у овој опцији, насупрот слушању одређених портова, Intercepter-NG пресретати све портове, што услед енормне количине пакета може да сруши саму апликацију. Promisc се односи на promiscuous моде мрежне карте о којем смо више говорили у претходном тексту.

IP forward функција која је неопходна у овој операцији, у старту је искључена у корист Stealth IP приступа којег Intercepter-NG користи како би могао да врши и SSL strip (ово ћемо појаснити касније).
Остала подешавања нису превише битна за потребе ове демонстрације и протумачена су на Intercepter-NG Вики страници.

ТОК SNIFFING АКЦИЈЕ

Прво је потребно изабрати врсту адаптера (кликом на зелену иконицу са леве стране листе за одабир интерфејса) и интерфејс на којем ће се пресретати саобраћај. У овом случају у питању је бежични интерфејс и одговарајући адаптер.

izboradaptera

У следећем кораку, потребно је одабрати Scan mode. Десним кликом на радну површину отвориће се мени из којег треба одабрати „Smart scan“. Апликација ће представити листу уређаја на мрежи и једну Stealth IP адресу. Stealth IP је адреса која није заузета на мрежи, а којом ће се уређај са којег се врши sniffing представити рутеру.

smartscan

Као објекат sniffing-а у овом случају бирамо рачунар на IP адреси 192.168.1.220. Ово се врши десним кликом на одговарајући унос са листе и одабиром „Add to NAT“, при чему је могуће додати више sniffing објеката одједном.

dodajnat

NAT (NETWORK ADDRESS TRANSLATION) MODE

У оквиру Router’s IP и Stealth IP поља, већ имамо дефинисан рутер и стелт адресу које смо добили коришћењем Smart scan-а, а у оквиру NAT Clients поља је излистана IP адреса жртве коју смо додали у претходном кораку. Наравно, уколико знамо потребне податке, све ово можемо подешавати и ручно и притом потпуно заобићи скенирање.

External и Internal интерфејси говоре NAT сервису одакле ће и куда прослеђивати саобраћај. У случај када користимо два мрежна adapterа, овде треба правилно подесити смер саобраћаја. У случају коришћења једне мрежне карте интерфејс изабран у првом кораку ће бити дефинисан у оба поља.

Пре него што наставимо даље обратите пажњу на опцију SSL Strip. Ако чекирамо ово поље, Intercepter-NG ће осим пресретања регуларног саобраћаја покушати и да декриптује SSL саобраћај. Да би успешно извео ову операцију, програм ће подметнути своје, лажне сертификате што ће за последицу имати упозорење у жртвином браузеру, приликом приступа сваком сајту заштићеном SSL енкрипцијом.

podmetnuti_sertifikat

Уколико жртва игнорише упозорење, SSL саобраћај ће бити пресретнут заједно са свим лозинкама, корисничким именима, сликама, фајловима и другим подацима. Размислите, колико често је свако од нас у прилици да на овакву поруку одговори потврдно и одабере да настави?
У овом случају, обележићемо SSL Strip и SSL MiTM. Ово друго поље значи да ћемо пресретати SSL саобраћај како би до декрипције уопште и дошло.

Naredni korak jeste klik na

Naredni korak jeste klik na
Наредни корак јесте клик на ‘Start/Stop sniff’ тастер.
Posle sniff-ovanja, sledi startovanje NAT servisa
После снифовања, следи стартовање NAT сервиса
Pored tastera za NAT nalazi se taster 'Start/Stop ARP Poison' pomoću kojeg se aktivira ARP spoofing.
Поред тастера за NAT налази се тастер ‘Start/Stop ARP Poison’ помоћу којег се активира ARP spoofing.

Уколико све прође како треба оутпут у доњем прозору би требало да изгледа овако:

output-aplikacije

На овом прозору постоје још два тастера, први је „Configure Spoofing“ за грануларна подешавања ARP spoofingа, а други у облику ињекције представља „Configure HTTP Injecting“ функционалност на коју ћемо се вратити мало касније.
У оквиру RAW моде прегледа, можемо да видимо како „напад“ функционише.

rawmodepregled

Са рачунара на IP адреси 192.168.1.220 пингован је Google DNS сервер на адреси 8.8.8.8. Тај саобраћај је пресретнут и прослеђен са наше Stealth IP адресе 192.168.1.221 Примљен је одговор од Google-а, опет на Stealth IP адресу, и на крају прослеђен жртви. Жртва, наравно, свега овога није свесна, њена перцепција је да је пакет послат директно рутеру и одговор такође добијен директно од рутера.

У одељку Resurrection можемо видети фајлове који су реконструисани од пресретнутих пакета. Десним кликом на фајл отвара се мени који омогућује да се фајл прегледа или да се отвори фолдер у којем Intercepter-NG чува све пресретнуте фајлове.

rekonstrukcija-paketa

Десним кликом у празно отвара се мени за филтрирање приказаних резултата.

filtriranjerezultata

PASSWORD MODE

passwordmod

Последњи унос (на горњој слици) је пресретнути HTTPS саобраћај. У Username пољу видимо пресретнуто корисничко име, а у password пољу лозинку. У from/то пољу је наведена IP адреса нападача, иако је сајту уствари приступила жртва са адресе 192.168.1.220.

За крај, вратићемо се на HTTP injecting. Ова функционалност омогућује да по шаблону којег сами креирамо, неки од html елемената, узмимо за пример све слике које пресретнемо, заменимо елементом којег ми одаберемо.
Вратићемо се на NAT mode и одабрати Configure HTTP Injecting.

httpinjectdetalj2

Pattern је шаблон по којем се пресрећу фајлови (могуће је дефинисати wildcard, име, екстензију или део имена фајла уместо екстензије). Content Type одређује тип фајла (.pdf,.jpg,.png), а Count одређује колико пута ће се применити ово правило.

httpinjectdetalj

Кликом на Add отвориће се стандардни дијалог у којем треба изабрати фајл који се подмеће уместо оригинала. Сада имамо дефинисан шаблон за HTTP Injecting. Наравно, могуће је у исто време дефинисати више шаблона.

Сетовање се моментално примењује, тако да сада у пољу испод опција оутпут изгледао као на наредној слици, када год се пресретнут саобраћај поклопи са критеријумом за injecting.

httpinjecting

Ово је резултат – све .png слике су пресретнуте и замењене оном коју смо изабрали:

injectionrezultat

ЗАКЉУЧАК

Практични пример из овог текста је груб приказ коришћења једне апликације намењене Packet Sniffing-у. Кроз приказ коришћења Intercepter-NG апликације, може се стећи увид у могућности Packet Sniffing-а и наслутити шта се све овом технологијом може постићи, што је и био циљ овог текста.

itmogul-logoТекст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Синиша Марјановић. Компјутераш ИТ блог објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.