Используем STP Root Hijacking для перехвата трафика

Используем атаку STP Root Hijacking для перехвата трафика

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

Еще по теме: Техники туннелирования при пентесте

Для понимания этого материала нужно иметь бэкграунд знаний компьютерных сетей, в частности знать как работает коммутация и маршрутизация.

Как работает STP

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

По моему мне­нию, STP — это уста­рев­ший метод орга­низа­ции отка­зоус­той­чивос­ти на уров­не L2, учи­тывая, что есть сис­тема агре­гиро­вания ком­мутаци­онных каналов и тех­нология Storm Control.

Ког­да тополо­гия STP толь­ко собира­ется, наз­нача­ется спе­циаль­ный кор­невой ком­мутатор (ина­че говоря, root bridge). Выбор осно­выва­ется на спе­циаль­ном зна­чении при­ори­тета (по умол­чанию это зна­чение экви­вален­тно 32 768). У всех ком­мутато­ров в домене STP это зна­чение оди­нако­вое, поэто­му выбор опре­деля­ется сло­жени­ем сле­дующих парамет­ров:

  • Зна­чение при­ори­тета 32 768;
  • MAC-адрес ком­мутато­ра.

Ком­мутатор, у которо­го мень­ше MAC-адрес, ста­нет кор­невым ком­мутато­ром. Про­изво­дите­ли сетевых устрой­ств наз­нача­ют MAC-адре­са сво­им детищам пос­ледова­тель­но. Чем ста­рее устрой­ство, тем его MAC-адрес мень­ше. От это­го в про­дак­шене кор­невым ком­мутато­ром час­то ста­новит­ся какой‑нибудь древ­ний свитч! Про­пус­кная спо­соб­ность сети от это­го, конеч­но, стра­дает.

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

Атака STP Root Hijacking

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

Схе­ма ата­ки на STP
Схе­ма ата­ки на STP

Для начала переве­дем наши физичес­кие интерфей­сы в нераз­борчи­вый режим, соз­дадим мост br-evil и наз­начим это­му мос­ту два интерфей­са eth0 и eth1:

Те­перь нуж­но раз­решить фор­вардинг тра­фика меж­ду интерфей­сами.

Нам при­годит­ся Scapy — соб­рать спе­циаль­ный STP-фрейм. Необ­ходимо импорти­ровать модуль для работы с про­токо­лами L2.

За­тем собира­ем необ­ходимый кадр STP с наимень­шим зна­чени­ем MAC-адре­са в перемен­ных src,rootmac и bridgemac. И напос­ледок зацик­лим отправ­ку это­го фрей­ма раз в 3 секун­ды:

Для рас­сылки слу­жеб­ных TCN-сооб­щений STP исполь­зует MAC-адрес муль­тикас­товой рас­сылки 01:80:C2:00:00:00.

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

Дамп тра­фика во вре­мя ата­ки на STP
Дамп тра­фика во вре­мя ата­ки на STP

Сос­тояние STP на ком­мутато­ре SW1 пос­ле ата­ки:

Сос­тояние STP на ком­мутато­ре SW2 пос­ле ата­ки:

Сос­тояние STP на ком­мутато­ре SW3 пос­ле ата­ки:

Ата­кован­ная тополо­гия STP
Ата­кован­ная тополо­гия STP

Те­перь тра­фик побежит через наш компь­ютер. Для наг­ляднос­ти ини­циирую ICMP-зап­росы от компь­юте­ра с IP-адре­сом 10.1.1.100 до компь­юте­ра под IP-адре­сом 10.1.1.200.

STP Root Hijacking

Вот таким дос­таточ­но нес­ложным спо­собом мож­но перех­ватывать тра­фик. При этом для легитим­ных хос­тов видимых приз­наков ата­ки нет.

VLAN ID Enumeration

С помощью обна­ружен­ного кад­ра STP мож­но понять, в какой сети VLAN вы находитесь. Информа­ция о VLAN ID рас­положе­на в заголов­ке Root Identifier (Root Bridge System ID Extension).

Его зна­чение экви­вален­тно зна­чению VLAN ID на пор­те, к которо­му вы под­клю­чены.

За­голо­вок Root Identifier
За­голо­вок Root Identifier
Таб­лица сетей VLAN на ком­мутато­ре
Таб­лица сетей VLAN на ком­мутато­ре
Схе­ма сети из EVE-NG
Схе­ма сети из EVE-NG

Заключение

Ата­ки L2 в пос­леднее вре­мя утра­тили акту­аль­ность и нем­ного выш­ли из моды: сей­час мало кто обра­щает на них вни­мание. Воз­можно, эта статья подарит пен­тесте­рам новые вари­анты атак, а сетевые инже­неры пос­ле проч­тения смо­гут повысить уро­вень защищен­ности сво­их сетей.

Полезные ссылки:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован.