Атаки на STP. Взламываем протокол STP с помощью Yersinia - «Новости» » Самоучитель CSS
Меню
Наши новости
Учебник CSS

Невозможно отучить людей изучать самые ненужные предметы.

Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3

Надо знать обо всем понемножку, но все о немногом.

Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы

Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)

Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода

Самоучитель CSS

Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5

Новости

Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости

Справочник CSS

Справочник от А до Я
HTML, CSS, JavaScript

Афоризмы

Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы

Видео Уроки


Видео уроки
Наш опрос



Наши новости

       
26-08-2021, 00:02
Атаки на STP. Взламываем протокол STP с помощью Yersinia - «Новости»
Рейтинг:
Категория: Новости

Про­токол STP был при­думан аж в 1985 году, но активно исполь­зует­ся до сих пор и нас­читыва­ет нес­коль­ко модифи­каций. Без при­мене­ния про­токо­ла STP не обхо­дит­ся прак­тичес­ки ни одна сеть. Исклю­чение сос­тавля­ют раз­ве что сов­ремен­ные сети ЦОД с раз­личны­ми про­токо­лами TRILL или тран­спортны­ми механиз­мами VXLAN, но это сов­сем дру­гая исто­рия. STP име­ет свои недос­татки и осо­бен­ности, и в этой статье мы пос­мотрим, как ими мож­но вос­поль­зовать­ся. Для начала крат­ко опи­шем тех­ничес­кую сос­тавля­ющую STP.
 

Как устроен STP


Клас­сичес­кие ком­мутато­ры работа­ют на каналь­ном уров­не (Data Link Layer) модели OSI. На уров­не L2 ком­мутато­ры работа­ют с кад­рами (frame) для переда­чи дан­ных. Отпра­витель добав­ляет к ори­гиналь­ным дан­ным заголов­ки кад­ра, в которые вклю­чен MAC-адрес источни­ка и MAC-адрес получа­теля. На осно­ве этих адре­сов при­меня­ется логика переда­чи кад­ра.


При получе­нии кад­ра ком­мутатор добав­ляет в свою таб­лицу MAC-адре­сов адрес источни­ка и интерфейс, на котором этот кадр получен. Таким обра­зом ком­мутатор запол­няет свою таб­лицу и, осно­выва­ясь на ней, сра­зу же при­мет решение, на какой интерфейс отпра­вить кадр. Если у ком­мутато­ра нет в таб­лице нуж­ного адре­са, кадр будет отправ­лен во все пор­ты, кро­ме того, с которо­го кадр был получен, в надеж­де получить ответ от при­нима­юще­го устрой­ства. Такой тип тра­фика называ­ется Unknown unicast flooding — раз­новид­ность брод­каста.


Брод­каст — обыч­ная ситу­ация для сетей, нап­ример ког­да отправ­ляет­ся ARP request. ARP request име­ет адрес получа­теля в кад­ре FF:FF:FF:FF:FF:FF. Все ком­мутато­ры будут рас­сылать дан­ный кадр на все свои пор­ты (на все пор­ты в пре­делах VLAN).


Enterprise-сети стро­ятся с исполь­зовани­ем резер­вирова­ния, обо­рудо­вания, добав­ления избы­точ­ности на уров­не лин­ков и так далее. Так как в ethernet-кад­рах нет поля TTL, которое исполь­зует­ся в IP-пакетах для допол­нитель­ной защиты от петель, то каж­дый из них может переда­вать­ся по сети бес­конеч­но, наг­ружая обо­рудо­вание и перепол­няя CAM-таб­лицы.


Атаки на STP. Взламываем протокол STP с помощью Yersinia - «Новости»
Ши­роко­веща­тель­ный шторм

Для пре­дот­вра­щения таких ситу­аций при­меня­ется про­токол STP, основная задача которо­го — изба­вить сеть от петель.



info


Су­щес­тву­ет нес­коль­ко вер­сий про­токо­ла STP. В дан­ной статье мы рас­смат­рива­ем 802.1D.



STP работа­ет по сле­дующе­му прин­ципу. В домене L2 выбира­ется кор­невой ком­мутатор — root bridge. Выбор осно­выва­ется на при­ори­тете (по умол­чанию 32768). Чем мень­ше при­ори­тет, тем луч­ше. У всех ком­мутато­ров зна­чение сто­ит по умол­чанию, выбор про­исхо­дит по связ­ке при­ори­тет + MAC. Ком­мутатор, у которо­го зна­чение MAC будет мень­ше (более ста­рый ком­мутатор), ста­нет root bridge, что пов­лияет на про­изво­дитель­ность сети.


Да­лее каж­дый non-root bridge ком­мутатор выбира­ет один порт, ведущий к root bridge, пор­ты, исполь­зуемые для переда­чи тра­фика, и пор­ты, которые дол­жны быть вык­лючены, что­бы избе­жать появ­ления петель ком­мутации.


Ре­зуль­тат работы про­токо­ла STP для защиты от петель

По умол­чанию в про­цес­се выбора кор­невого ком­мутато­ра в про­токо­ле STP нет механиз­мов защиты. Так­же в нем нет встро­енных механиз­мов аутен­тифика­ции, паролей или про­верок источни­ка. STP доверя­ет всем.


При появ­лении в сети нового ком­мутато­ра, при­ори­тет которо­го будет ниже при­ори­тета текуще­го кор­невого ком­мутато­ра, выбира­ется новое кор­невое устрой­ство. Манипу­лируя такими сце­нари­ями, мы можем изме­нить опти­маль­ные пути тра­фика и даже поп­робовать их перех­ватить, зас­памить сеть спе­циаль­ными сооб­щени­ями STP — TCN, что при­ведет к очи­щению таб­лиц ком­мутации каж­дого ком­мутато­ра и вызовет потери, сни­жение про­изво­дитель­нос­ти сети и дру­гие проб­лемы.


Для при­мене­ния этой ата­ки дос­таточ­но под­клю­чить к сети компь­ютер с Linux и фрей­мвор­ком Yersinia, который поз­волит запус­тить STP на нашем хос­те, выдав себя за ком­мутатор. Это поз­волит нам манипу­лиро­вать нашим L2-сег­ментом.


При­мене­ние ата­ки и изме­нения в тополо­гии STP при вклю­чении компь­юте­ра с фрей­мвор­ком Yersinia

Этот фрей­мворк пре­дос­тавля­ет нам боль­шой выбор атак на STP: флуд TCN, перех­ват ролей ком­мутато­ров.


 

Практика


Пе­рей­дем к прос­тому стен­ду для экспе­римен­тов.


То­поло­гия стен­да в вир­туаль­ной лабора­тории

В нашем при­мере исполь­зует­ся часть стан­дар­тной тополо­гии, чаще все­го при­меня­емой в кор­поратив­ном сег­менте. SW1 выс­тупа­ет в качес­тве root bridge, SW2 и SW3 — non-root bridge ком­мутато­ры. Пор­ты SW1 0/0, 0/1 SW2 0/1,0/3 SW3 0/0,0/2 исполь­зуют­ся для переда­чи тра­фика, 0/0 и 0/1 на SW2 и SW3 заб­локиро­ваны во избе­жание петель.


Тра­фик идет по пути SW2 — SW1 — SW3. Далее мы под­клю­чаем нашу Linux-машину к двум access-ком­мутато­рам SW2 и SW3 и видим, что нам при­ходят сооб­щения STP.


Дамп тра­фика в Wireshark

Эти сооб­щения озна­чают, что STP на ком­мутато­рах запущен и не заб­локиро­ван на под­клю­чен­ных к нам пор­тах. Объ­еди­няем наши интерфей­сы в bridge для того, что­бы тра­фик про­ходил через наше устрой­ство, запус­каем фрей­мворк Yersinia и видим, что нам дос­тупен STP на обо­их интерфей­сах.


Ин­форма­ция о получен­ных STP BPDU

За­пус­каем ата­ку и выбира­ем тип ата­ки Claiming Root Role, озна­чающий, что мы нач­нем анон­сировать себя в качес­тве ком­мутато­ра с мень­шим при­ори­тетом, что зас­тавит перес­тро­ить­ся дерево STP.


Вы­бира­ем тип ата­ки Claiming Root Role

Как и ожи­далось, мы ста­ли кор­невым ком­мутато­ром для нашего сег­мента сети и теперь смо­жем уви­деть тра­фик, который ранее шел через SW1:


SW2-LINUX-SW3
SW1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 8193
Address aabb.cc00.0f00
Cost 300
Port 2 (Ethernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8193 (priority 8192 sys-id-ext 1)
Address aabb.cc00.1000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0 Altn BLK 100 128.1 Shr
Et0/1 Root FWD 100 128.2 Shr

SW2
SW2#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 8193
Address aabb.cc00.0f00
Cost 200
Port 3 (Ethernet0/2)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address aabb.cc00.2000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0 Desg FWD 100 128.1 Shr
Et0/1 Desg FWD 100 128.2 Shr
Et0/2 Root FWD 100 128.3 Shr
Et0/3 Desg FWD 100 128.4 Shr
SW3#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 8193
Address aabb.cc00.0f00
Cost 200
Port 4 (Ethernet0/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address aabb.cc00.3000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0 Desg FWD 100 128.1 Shr
Et0/1 Altn BLK 100 128.2 Shr
Et0/2 Desg FWD 100 128.3 Shr
Et0/3 Root FWD 100 128.4 Shr

Для про­вер­ки поп­робу­ем запус­тить пинг:


R4#ping 192.168.0.5
Type escape sequence to abort.
Sending 5,100-byte ICMP Echos to 192.168.0.5,timeout is 2 seconds:
.!!!!

Мы видим, что все пакеты ICMP прош­ли через наш компь­ютер.


Па­кеты ICMP прош­ли через наш компь­ютер

info


ICMP тут исполь­зует­ся толь­ко для наг­ляднос­ти, таким обра­зом мож­но перех­ватить любой тра­фик, изме­нив струк­туру, пос­тро­енную STP.



Рас­смот­рим так­же дру­гие типы атак на STP, которые поз­воля­ет выпол­нять Yersinia.


Ти­пы атак фрей­мвор­ка Yersinia

Sending conf BPDU — мы еди­нож­ды отпра­вим BPDU, который зас­тавит ком­мутато­ры в нашем L2-сег­менте перес­тро­ить дерево и вер­нуть­ся к исходной схе­ме, так как BPDU с нашей машины боль­ше не отправ­ляет­ся.


Про­токол STP был при­думан аж в 1985 году, но активно исполь­зует­ся до сих пор и нас­читыва­ет нес­коль­ко модифи­каций. Без при­мене­ния про­токо­ла STP не обхо­дит­ся прак­тичес­ки ни одна сеть. Исклю­чение сос­тавля­ют раз­ве что сов­ремен­ные сети ЦОД с раз­личны­ми про­токо­лами TRILL или тран­спортны­ми механиз­мами VXLAN, но это сов­сем дру­гая исто­рия. STP име­ет свои недос­татки и осо­бен­ности, и в этой статье мы пос­мотрим, как ими мож­но вос­поль­зовать­ся. Для начала крат­ко опи­шем тех­ничес­кую сос­тавля­ющую STP. Как устроен STP Клас­сичес­кие ком­мутато­ры работа­ют на каналь­ном уров­не (Data Link Layer) модели OSI. На уров­не L2 ком­мутато­ры работа­ют с кад­рами (frame) для переда­чи дан­ных. Отпра­витель добав­ляет к ори­гиналь­ным дан­ным заголов­ки кад­ра, в которые вклю­чен MAC-адрес источни­ка и MAC-адрес получа­теля. На осно­ве этих адре­сов при­меня­ется логика переда­чи кад­ра. При получе­нии кад­ра ком­мутатор добав­ляет в свою таб­лицу MAC-адре­сов адрес источни­ка и интерфейс, на котором этот кадр получен. Таким обра­зом ком­мутатор запол­няет свою таб­лицу и, осно­выва­ясь на ней, сра­зу же при­мет решение, на какой интерфейс отпра­вить кадр. Если у ком­мутато­ра нет в таб­лице нуж­ного адре­са, кадр будет отправ­лен во все пор­ты, кро­ме того, с которо­го кадр был получен, в надеж­де получить ответ от при­нима­юще­го устрой­ства. Такой тип тра­фика называ­ется Unknown unicast flooding — раз­новид­ность брод­каста. Брод­каст — обыч­ная ситу­ация для сетей, нап­ример ког­да отправ­ляет­ся ARP request. ARP request име­ет адрес получа­теля в кад­ре FF:FF:FF:FF:FF:FF. Все ком­мутато­ры будут рас­сылать дан­ный кадр на все свои пор­ты (на все пор­ты в пре­делах VLAN). Enterprise-сети стро­ятся с исполь­зовани­ем резер­вирова­ния, обо­рудо­вания, добав­ления избы­точ­ности на уров­не лин­ков и так далее. Так как в ethernet-кад­рах нет поля TTL, которое исполь­зует­ся в IP-пакетах для допол­нитель­ной защиты от петель, то каж­дый из них может переда­вать­ся по сети бес­конеч­но, наг­ружая обо­рудо­вание и перепол­няя CAM-таб­лицы. Ши­роко­веща­тель­ный штормДля пре­дот­вра­щения таких ситу­аций при­меня­ется про­токол STP, основная задача которо­го — изба­вить сеть от петель. info Су­щес­тву­ет нес­коль­ко вер­сий про­токо­ла STP. В дан­ной статье мы рас­смат­рива­ем 802.1D. STP работа­ет по сле­дующе­му прин­ципу. В домене L2 выбира­ется кор­невой ком­мутатор — root bridge. Выбор осно­выва­ется на при­ори­тете (по умол­чанию 32768). Чем мень­ше при­ори­тет, тем луч­ше. У всех ком­мутато­ров зна­чение сто­ит по умол­чанию, выбор про­исхо­дит по связ­ке при­ори­тет MAC. Ком­мутатор, у которо­го зна­чение MAC будет мень­ше (более ста­рый ком­мутатор), ста­нет root bridge, что пов­лияет на про­изво­дитель­ность сети. Да­лее каж­дый non-root bridge ком­мутатор выбира­ет один порт, ведущий к root bridge, пор­ты, исполь­зуемые для переда­чи тра­фика, и пор­ты, которые дол­жны быть вык­лючены, что­бы избе­жать появ­ления петель ком­мутации. Ре­зуль­тат работы про­токо­ла STP для защиты от петельПо умол­чанию в про­цес­се выбора кор­невого ком­мутато­ра в про­токо­ле STP нет механиз­мов защиты. Так­же в нем нет встро­енных механиз­мов аутен­тифика­ции, паролей или про­верок источни­ка. STP доверя­ет всем. При появ­лении в сети нового ком­мутато­ра, при­ори­тет которо­го будет ниже при­ори­тета текуще­го кор­невого ком­мутато­ра, выбира­ется новое кор­невое устрой­ство. Манипу­лируя такими сце­нари­ями, мы можем изме­нить опти­маль­ные пути тра­фика и даже поп­робовать их перех­ватить, зас­памить сеть спе­циаль­ными сооб­щени­ями STP — TCN, что при­ведет к очи­щению таб­лиц ком­мутации каж­дого ком­мутато­ра и вызовет потери, сни­жение про­изво­дитель­нос­ти сети и дру­гие проб­лемы. Для при­мене­ния этой ата­ки дос­таточ­но под­клю­чить к сети компь­ютер с Linux и фрей­мвор­ком Yersinia, который поз­волит запус­тить STP на нашем хос­те, выдав себя за ком­мутатор. Это поз­волит нам манипу­лиро­вать нашим L2-сег­ментом. При­мене­ние ата­ки и изме­нения в тополо­гии STP при вклю­чении компь­юте­ра с фрей­мвор­ком YersiniaЭтот фрей­мворк пре­дос­тавля­ет нам боль­шой выбор атак на STP: флуд TCN, перех­ват ролей ком­мутато­ров. Практика Пе­рей­дем к прос­тому стен­ду для экспе­римен­тов. То­поло­гия стен­да в вир­туаль­ной лабора­торииВ нашем при­мере исполь­зует­ся часть стан­дар­тной тополо­гии, чаще все­го при­меня­емой в кор­поратив­ном сег­менте. SW1 выс­тупа­ет в качес­тве root bridge, SW2 и SW3 — non-root bridge ком­мутато­ры. Пор­ты SW1 0/0, 0/1 SW2 0/1,0/3 SW3 0/0,0/2 исполь­зуют­ся для переда­чи тра­фика, 0/0 и 0/1 на SW2 и SW3 заб­локиро­ваны во избе­жание петель. Тра­фик идет по пути SW2 — SW1 — SW3. Далее мы под­клю­чаем нашу Linux-машину к двум access-ком­мутато­рам SW2 и SW3 и видим, что нам при­ходят сооб­щения STP. Дамп тра­фика в WiresharkЭти сооб­щения озна­чают, что STP на ком­мутато­рах запущен и не заб­локиро­ван на под­клю­чен­ных к нам пор­тах. Объ­еди­няем наши интерфей­сы в bridge для того, что­бы тра­фик про­ходил через наше устрой­ство, запус­каем фрей­мворк Yersinia и видим, что нам дос­тупен STP на обо­их интерфей­сах. Ин­форма­ция о получен­ных STP BPDUЗа­пус­каем ата­ку и выбира­ем тип ата­ки Claiming Root Role, озна­чающий, что мы нач­нем анон­сировать себя в качес­тве ком­мутато­ра с мень­шим при­ори­тетом, что зас­тавит перес­тро­ить­ся дерево STP. Вы­бира­ем тип ата­ки Claiming Root RoleКак и ожи­далось, мы ста­ли кор­невым ком­мутато­ром для нашего сег­мента сети и теперь смо­жем уви­деть тра­фик, который ранее шел через SW1: SW2-LINUX-SW3 SW1

Теги: CSS

Просмотров: 539
Комментариев: 0:   26-08-2021, 00:02
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

 
Еще новости по теме:



Другие новости по теме:
Комментарии для сайта Cackle