> For the complete documentation index, see [llms.txt](https://notes.kraken-security.ru/kraken/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/ataka-na-protokol-stp.md).

# Атака на протокол STP

### Что такое протокол STP

STP (Spanning Tree Protocol) — это сетевой протокол, который предотвращает возникновение «петель» в сетях Интернет, использующих коммутаторы и мосты.

Давайте метафору:\
\
Сеть → это система дорог. \
Данные, которые передаются по сети → это машины.&#x20;

Коммутаторы в сети работают как перекрёстки, которые направляют данные (машины) к месту назначения. Если у нас есть несколько путей для достижения одного и того же места назначения, данные могут зациклиться (произойдет так называемая «петля»), так же как машины могут войти в круговое движение и ехать по нему бесконечно.

Эти самые «петли» могут вызвать множество проблем: перегрузка сети из-за бесконечного дублирования данных и сбои в работе оборудования. \
\
Здесь и вступает протокол STP. Он решает проблему петель, автоматически определяя наиболее эффективный путь для передачи данных и блокируя все другие пути.&#x20;

Когда STP работает, он выбирает один основной маршрут для передачи данных и временно «отключает» другие альтернативны. Если основной маршрут выходит из строя, STP быстро определит новый эффективный путь и включит его, чтобы данные продолжили свой путь к месту назначения.

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

### Какие есть плюсы и минусы у протокола STP&#x20;

| +                                                                                                                                                           | -                                                                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Устраняет петли, которые могут парализовать сеть                                                                                                            | Требуется время для сходимости и перестроения дерева в случае изменения топологии. Это может приводить к временным сбоям в работе.                       |
| Автоматически переключает трафик на запасной маршрут в случае сбоя или отказа активной связи. Это обеспечивает избыточность сети увеличивает её надежность. | В больших сетях очень сложная настройка.                                                                                                                 |
| Легко внедряется в существующую инфраструктуру                                                                                                              | Может быть уязвим для определенных видов атак (про это мы поговорим ниже)                                                                                |
| Легко интегрируется: STP поддерживает большинство производителей сетевого оборудования                                                                      | У STP есть ограничения по количеству поддерживаемых коммутаторов и уровням иерархии. Так что этот протокол не подходит для гигантских по масштабу сетей. |
|                                                                                                                                                             |                                                                                                                                                          |

### Атака на STP

Это сегмент типовой топологии, которую обычно используют в корпоративной сети.&#x20;

<figure><img src="/files/mAZrM3esGE6IM5B8Oxm4" alt=""><figcaption></figcaption></figure>

SW1 → корневой мост (root bridge). \
SW2 и SW3 → некорневые коммутаторы (non-root bridges). \
Порты SW1 (0/0 и 0/1), SW2 (0/1 и 0/3) и SW3 (0/0 и 0/2) → настроены на пропускание трафика. \
\
Порты 0/0 и 0/1 на SW2 и SW3 заблокированы для предотвращения образования сетевых петель.

Движение трафика идет по маршруту SW2 → SW1 → SW3. Мы подсоединяемся к этим двум коммутаторам доступа SW2 и SW3 с помощью нашего устройства на базе Linux и обнаруживаем получение сообщений протокола STP.

<figure><img src="/files/Ecfvr5pFTz0z36xWmnrY" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/7FHqFtvXmtq9ukCsdv78" alt=""><figcaption></figcaption></figure>

Выберем тип атаки Claiming Root Role. Так мы нач­нем анон­сировать себя в качес­тве ком­мутато­ра с мень­шим при­ори­тетом. Это заставит перес­тро­ить­ся дерево STP.<br>

<figure><img src="/files/BkukihmwJJtyJvtHwTUK" alt=""><figcaption></figcaption></figure>

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

**SW2-LINUX-SW3**

<figure><img src="/files/aHNtM4pI4fSmYMci2v01" alt=""><figcaption></figcaption></figure>

**SW2**

<figure><img src="/files/4eNU7z1cXTVjYSoFs9bZ" alt=""><figcaption></figcaption></figure>

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

`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: .!!!!`<br>

<figure><img src="/files/wjpyUWxeChOC3t7yIitj" alt=""><figcaption></figcaption></figure>

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/ataka-na-protokol-stp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
