---
# System prepended metadata

title: Атаки на сеть на уровне доступа
tags: [Linux]

---

###### tags: безопасность, компьютерные сети. 
# Атаки на сеть на уровне доступа 
В данном мануале вы узнаете несколько банальных атак которые можно провести на L2 уровне. 
Все тут показанное будет происходить в рамках виртуальное лаборатории EVE-ng. 

## Атака на протокол DHCP 
### Теоретическая часть 
Cуть атаки DHCP Starvation: Истощение ресурсов DHCP обычно нацелено на сетевые DHCP-серверы с целью наполнить авторизованный DHCP-сервер сообщениями DHCP REQUEST с использованием поддельных MAC-адресов источника. Сервер DHCP будет отвечать на все запросы, не зная, что это атака с истощением DHCP, назначая доступные IP-адреса, что приводит к истощению пула DHCP. DHCP-пул, из которого клиенты получают IP-адреса, ограничен. Например, это может быть 253 адреса (при маске 255.255.255.0).

Действия, осуществляемые при атаке:
1. Атакующее устройство запрашивает себе IP-адрес у DHCP-сервера и получает его;
2. MAC-адрес атакующего устройства изменяется и оно запрашивает следующий, уже другой IP-адрес, маскируясь под нового клиента;
3. Такие действия повторяются до тех пор, пока весь пул IP-адресов на сервере не будет исчерпан.

В качестве результата данной атаки можно выделить следующее:
1. Отказ в обслуживании.
2. Проведение атаки DHCP-spoofing с вероятностью успеха 100%.

**Зачем могут производить такую атаку?**

Для проведения уже следующей атаки а именно DHCP spoofing - это атака при которой злоумышленник отвечает на запросы DHCP и пытается указать себя как шлюз по умолчанию или DNS-сервер, следовательно, инициируя атаку через посредника. При этом возможно, что он может перехватывать трафик от пользователей перед пересылкой на реальный шлюз или выполнять DoS, заполняя реальный DHCP-сервер запросами на засорение ресурсов IP-адресов. Для защиты от подобных атак используется технология DHCP Snooping.

**Что такое DHCP Snooping?**

DHCP Snooping - это технология безопасности уровня 2, предназначенная для защиты от атак с использованием протокола DHCP. Например, атаки с подменой DHCP-сервера в сети или атаки DHCP starvation, которая заставляет DHCP сервер выдать все существующие на сервере адреса злоумышленнику. DHCP Snooping блокирует сообщения от несанкционированных (мошеннических) DHCP-серверов, предлагающих IP-адреса DHCP-клиентам. 

**Функция DHCP Snooping выполняет следующие действия:**

- защитить клиентов в сети от получения адреса от неавторизованного DHCP-сервера.
- регулировать какие сообщения протокола DHCP отбрасывать, какие перенаправлять и на какие порты.

Для правильной работы DHCP snooping, необходимо указать какие порты коммутатора будут доверенными **(trusted)**, а какие — нет (**untrusted**, в дальнейшем — ненадёжными):

- Ненадёжные (Untrusted) — порты, к которым подключены клиенты. DHCP-ответы, приходящие с этих портов отбрасываются коммутатором. Для ненадёжных портов выполняется ряд проверок сообщений DHCP и создаётся
база данных привязки DHCP (DHCP snooping binding database).
- Доверенные (Trusted) — порты коммутатора, к которым подключен другой коммутатор или DHCP-сервер. DHCP-пакеты полученные с доверенных портов не отбрасываются.

**Как работает DHCP-Snooping?**

По умолчанию коммутатор отбрасывает DHCP-пакет, который пришел на ненадёжный порт, если:

- Приходит одно из сообщений, которые отправляет DHCP-сервер (DHCPOFFER, DHCPACK, DHCPNAK или DHCPLEASEQUERY);
- Приходит сообщение DHCPRELEASE или DHCPDECLINE, в котором содержится MAC-адрес из базы данных привязки DHCP, но информация об интерфейсе в таблице не совпадает с интерфейсом, на котором был получен пакет; 
- В пришедшем DHCP-пакете не совпадают MAC-адрес указанный в DHCP-запросе и MAC-адрес отправителя;
- Приходит DHCP-пакет, в котором есть опция 82.

Чтобы выяснить, как работает DHCP Snooping, мы должны поймать рабочий механизм DHCP, который обозначает протокол динамической конфигурации хоста.

При включенном DHCP сетевое устройство без IP-адреса будет "взаимодействовать" с DHCP-сервером через 4 этапа следующим образом:

![](https://i.imgur.com/G5ko37B.png)

DHCP Snooping обычно классифицирует интерфейсы на коммутаторе по двум категориям: надежные и ненадежные порты. Надежный порт - это порт или источник, сообщения DHCP-сервера которого являются доверенными. Ненадежный порт - это порт, с которого сообщения DHCP-сервера не являются доверенными. Если инициируется отслеживание DHCP, сообщение предложения DHCP может быть отправлено только через доверенный порт. В противном случае оно будет отброшено.

![](https://i.imgur.com/JPxb0sF.png)

На этапе подтверждения, будет создана таблица привязки DHCP в соответствии с сообщением DHCP ACK. Он записывает MAC-адрес хоста, арендованный IP-адрес, время аренды, тип привязки, а также номер VLAN и информацию об интерфейсе, связанную с хостом. Если последующий пакет DHCP, полученный от ненадежного хоста, не совпадает с информацией, он будет удален.

![](https://i.imgur.com/6qQT1h3.png)

Порядок настройки DHCP snooping.
1. Настройка и проверка работы DHCP-сервера и DHCP-ретранслятора без включенного DHCP snooping.
2. Включение DHCP snooping. После включения DHCP snooping на коммутаторе и в соответствующих VLAN, все порты коммутатора по умолчанию считаются ненадёжными.
3. Указание доверенных портов. Те порты к которым подключены коммутаторы и которые ведут к DHCP-серверу (или порты к которым сервер подключен) должны быть настроены как доверенные.
4. Настройка политики обработки опции 82.
5. (Опционально) Включение или выключение дополнительных проверок DHCP-сообщений.

После того, как DHCP snooping включен на коммутаторе, по мере выдачи адресов клиентам, начинает заполняться база данных привязки DHCP.

В базе данных привязки DHCP хранятся информация только о ненадёжных портах:

▪ MAC-адрес клиента
▪ Арендованный IP-адрес клиента
▪ Время аренды в секундах
▪ Идентификатор VLAN
▪ Идентификатор порта к которому присоединен клиент

### Практическая часть 

Собираю следующию топологию:

![](https://i.imgur.com/524Ybsg.png)

В качестве коммутатора и маршрутизатора используеться cisco устройства. 
На R1 настроен nat для выхода в интернет и DCHP сервер для внутренней сети.

Проводить атаку будем с помощью специальной утилиты yersinia а также воспользуемся сетевым сканером nmap:

```
apt install nmap yersinia 
```

Проведем сканирование сети на наличие DHCP сервера:

![](https://i.imgur.com/yxQxZ7O.png)

```
nmap -n --script=broadcast-dhcp-discover 
```
Запустим yersinia:

![](https://i.imgur.com/cKLyC9Q.png)

команда:
```
yersinia -I
```
Нажимаем клавишу G выбираем в списке протоколов DHCP. Начинается отлов dhcp пакетов. 

![](https://i.imgur.com/VmQXpEv.png)

:::warning
Возможно вам понадобиться для ускорения процесса запросить IP адресс:
```
dhclient -v ens33
```
:::

Выбираем любой пакет и жмем клавишу Х и видим все доступные атаки:

![](https://i.imgur.com/IvtFyku.png)

Жмем 1. И как можем увидить начилась атака отправка большого количества DISCOVER сообщений:

![](https://i.imgur.com/UVezYE3.png)

Если мы посмотрим выданные IP адреса на роутере то увидим что были заняты все IP Адреса.  Теперь любой клиент который захочет получить IP адрес по dhcp не сможет это сделать. Теперь злоумышленник может настроить свой dhcp сервер в котором укажет свой шлюз для перехвата всего трафика в сети или свой адрес dns сервера чтобы перенаправлять клиентов на фейковые сайты. 

![](https://i.imgur.com/YciUHqt.png)

Далее рекомендую рассмотреть как можно защитить сервер от подобной атаки. 

## CDP флуд 
### Теоретическая часть 

Протокол CPD (Cisco Discovery Protocol) – проприетарный протокол компании Cisco, работающий на 2 уровне модели OSI, который позволяет сетевым устройствам (и не только сетевым) анонсировать в сеть информацию о себе и принимать такие анонсы от своих соседей.

Протокол достаточно полезный, так как он может показать, что за устройство (версия ПО, номера портов, платформа и ещё много другой информации) подключено в сеть. Это может быть удобно для составления карты сети, ведения документации и мониторинга сети. Однако также это облегчает атаку на сеть. В связи с этим протокол CDP в большинстве случаев отключают.

**Reconnaissance**

Дамп трафика CDP/LLDP дает большой импакт, поскольку нарушитель получает много информации о сетевом устройстве — начиная от модели устройства и заканчивая даже типом дуплекса. Информация, полученная из дампа трафика CDP/LLDP, будет полезной для злоумышленника. Он может ее использовать,чтобы определить версию прошивки коммутатора. Если в ней найдется известная уязвимость, то злоумышленник сможет провести атаку.

**CDP Flooding**

Злоумышленник может вызвать отказ в обслуживании коммутатора Cisco, если разошлет огромное количество сообщений CDP. Центральный процессор коммутатора будет полностью перегружен, а таблица соседей CDP начнет переполняться.

![](https://i.imgur.com/xN4ZXAy.png)

### Практическая часть 

Воспользуемся той же топологией что и в прошлом пункте. 
Для захвата трафика будем использовать утилиту tcpdump:

![](https://i.imgur.com/nl9TlIG.png)

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

![](https://i.imgur.com/0thzKUJ.png)

Для проведения атаки CDP Flooding на коммутатор воспользуемся yersinia. Запустим программу в интерактивном режиме. Нажмем G и выберем cdp.

![](https://i.imgur.com/ObkNc1j.png)

Нажмем Х и выберем 1 атаку.

![](https://i.imgur.com/zTUSWKN.png)

Если у вас настроен portsec коммутаторе или storm control то отключите их иначе атаку провести не удасться.

![](https://i.imgur.com/R1mekGf.png)

А вот что пишет теперь коммутатор. Все коммутатор выведен из строя.

![](https://i.imgur.com/Fpr1Mw7.png)

Ну как вы наверное уже поняли portsec защищает от этой атаки.

## Атака на VLAN используя уязвимость DTP
### Теоретическая часть
Аббре­виату­ра DTP рас­шифро­выва­ется как Dynamic Trunking Protocol. Этот про­токол раз­работан инже­нера­ми Cisco Systems для реали­зации авто­мати­чес­кой тран­кинго­вой сис­темы. Какой порт будет тран­ковым, а какой нет — c этим разбира­ется имен­но про­токол DTP, а не сетевой инже­нер. DTP очень час­то остается без дол­жно­го вни­мания и в боль­шинс­тве слу­чаев исполь­зует кон­фигурацию по умол­чанию. 

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

![](https://i.imgur.com/91iiYRl.png)

В про­токо­ле DTP пре­дус­мотре­но нес­коль­ко режимов работы пор­тов ком­мутато­ра для ини­циали­зации магис­траль­ного канала:
- Access Mode — режим пос­тоян­ного бес­тран­кового сос­тояния. Порт всег­да будет оста­вать­ся в бес­тран­ковом сос­тоянии, нес­мотря на то что сосед­ний порт не сог­ласен с изме­нени­ем;
- Trunk Mode — режим пос­тоян­ного тран­кового сос­тояния. Порт всег­да будет оста­вать­ся в тран­ковом сос­тоянии, нес­мотря на то что сосед­ний порт не сог­ласен с изме­нени­ем;
- Dynamic Auto — в этом режиме порт готов перей­ти в тран­ковое сос­тояние, если сосед­ний порт будет в режиме Trunk или Dynamic Desirable. Важ­но упо­мянуть, что Dynamic Auto — это режим по умол­чанию для всех пор­тов ком­мутато­ра;
- Dynamic Desirable — в этом режиме порт всег­да пыта­ется перей­ти в тран­ковое сос­тояние. Порт при­обре­тет режим Trunk, если сосед­ний порт нас­тро­ен в режимах Dynamic Auto, Dynamic Desirable или Trunk Mode;
- Nonegotiate — в этом режиме порт не учас­тву­ет в про­цес­сах DTP. Он не будет ни отправ­лять кад­ры DTP, ни при­нимать их.

![](https://i.imgur.com/leSwQUU.png)

Что­бы не запутать­ся в этих тер­минах, я сде­лал таб­лицу ком­бинаций режимов DTP двух сосед­них пор­тов. Пос­мотрев на дан­ные в этой таб­лице, ты навер­няка заметил, что если два сосед­них пор­та находят­ся в режиме Dynamic Auto, то они не смо­гут обра­зовать магис­траль­ный канал и оба пор­та оста­нут­ся в режиме Access. Дру­гой при­мер: если пер­вый порт будет в режиме Dynamic Auto, а вто­рой порт в режиме Dynamic Desirable, то в конеч­ном сче­те обра­зует­ся магис­траль­ный канал или же транк.

Кад­ры DTP рас­сыла­ются через пор­ты ком­мутато­ра каж­дые 30 секунд. И для их рас­сылки исполь­зует­ся спе­циаль­ный муль­тикас­товый адрес 01:00:0C:CC:CC:CC. Если порт был скон­фигури­рован динами­чес­ки, то вре­мя его жиз­ни — все­го 300 секунд.

![](https://i.imgur.com/zqOk80q.png)

Муль­тикас­товый адрес 01:00:0C:CC:CC:CC исполь­зует­ся не толь­ко про­токо­лом DTP, но и дру­гими, нап­ример CDP, VTP, PAgP, UDLD. Что­бы про­токо­лы мог­ли отли­чать­ся друг от дру­га при отправ­ке сво­их объ­явле­ний по оди­нако­вому муль­тикас­товому адре­су, для них реали­зова­но уни­каль­ное зна­чение в заголов­ке SNAP на уров­не LLC (Logical Link Control). Для DTP это зна­чение экви­вален­тно 0x2004.

**Уязвимость**

Суть уяз­вимос­ти зак­люча­ется в том, что про­токол DTP вклю­чен по умолчанию на всех сов­ремен­ных ком­мутато­рах Cisco. При этом каж­дый порт ком­мутато­ра нас­тро­ен в режиме Dynamic Auto. То есть порт будет ожи­дать инициации тран­ка со сто­роны соседа. Для успешно­го про­веде­ния ата­ки нам нуж­но физичес­ки под­клю­чить­ся к ком­мутато­ру и отпра­вить спе­циаль­но под­готов­ленный кадр DTP Desirable. Порт перек­лючит­ся в режим магис­траль­ного канала, и мы смо­жем получить дос­туп ко всем сетям VLAN.

![](https://i.imgur.com/ReQyrVx.png)

### Практическая часть

Топология таже. 
На R1 только создано два саб-интерфейса для сетей vlan 10,20. 

Для это атаки можно воспользоваться все той же yersinia, но я покажу вам еще один инструемет а именно scapy - он позволяет создавать и отправлять пакеты вручную. 

```
apt install scapy 
```

Запустите scapy:

![](https://i.imgur.com/PKGIllz.png)

Со­берем кадр DTP Desirable с помощью Scapy. Для начала необ­ходимо импорти­ровать модуль для работы с про­токо­лом DTP:

![](https://i.imgur.com/qzpnXZ3.png)

Можно написать инструкции ручками: 

![](https://i.imgur.com/l6JQMJX.png)

Не забыва­ем о сло­ях LLC и SNAP с ука­зани­ем зна­чения 0x2004, опре­деля­юще­го, что это имен­но про­токол DTP. Зна­чения заголов­ков в tlvlist оставля­ем по умол­чанию, кро­ме DTPNeighbor. И в кон­це зацик­лим отправ­ку соб­ранно­го кад­ра — пусть шлет­ся раз в три секун­ды. Потому что если порт был скон­фигури­рован динами­чес­ки, то вре­мя его жиз­ни все­го 300 секунд (5 минут).

По­чему‑то в Scapy в дефол­тном кад­ре DTP по умол­чанию хра­нят­ся все необ­ходимые зна­чения, что­бы соб­рать имен­но кадр DTP Desirable. Я пока не знаю, с чем это свя­зано, но нам это на руку: сэконо­мим вре­мя. Поэто­му мы оста­вили парамет­ры DTP по умол­чанию (за исклю­чени­ем DTPNeighbor).
Од­нако вкрат­це рас­ска­жу о самых важ­ных для нас заголов­ках и их зна­чени­ях:
- DTPType = '\xa5' — зна­чение заголов­ка, ука­зыва­ющее на исполь­зование инкапсу­ляции 802.1Q;
- DTPStatus = '\x03' — зна­чение заголов­ка, ука­зыва­ющее на ста­тус DTP-кад­ра. Это ста­тус Desirable, то, что нам нуж­но для ини­циации магис­траль­ного режима пор­та.

А можем воспользоваться готовой функцией для этого в терминале scapy выполните команду: 
```
>>> negotiate_trunk()
```

![](https://i.imgur.com/2uxFY8R.png)

Порты коммутатора до атаки:

![](https://i.imgur.com/O1tTwdM.png)

Порты коммутатора после атаки:

![](https://i.imgur.com/cdb32UR.png)

Теперь осталось создать саб интерфейсы на linux-се назначить на них vlan и получить адрес по dhcp и все сеть скомпроментирована теперь мы имеем с атакующей машины доступ в другой vlan. Возможно вам понадобиться установить пакет vlan.

![](https://i.imgur.com/ts3nygz.png)

Вообще перед тем как создавать саб интерфейс и задавать на него vlan необходимо провести разведку сети с помощью снифера к примеру Wireshark и узнать какие вообще в сети есть vlan. Это могло бы выглядеть как то так:

![](https://i.imgur.com/BUCt6hL.png)

обна­руже­ны сети VLAN 100, 200, 220 и 250. Эти зна­чения VLAN ID рас­положе­ны в одном из заголов­ков про­токо­ла STP — Root Identifier (Root Bridge System ID Extension).

Проверим доступ в сети:

![](https://i.imgur.com/8cjMLMt.png)

![](https://i.imgur.com/uCJx8SJ.png)

**Доступ в сеть с скомпроментированного vlan будет 5 минут так как транковый порт сконфигурирован динамически.** (Чтобы доступ был постоянно надо открыть во 2 терминале зацикленную отправку DTP кадра. Вы можете также воспользоваться Yersinia для проведения этой атаки. 

## VTP иньекции 
### Теоретическая часть 

Про­токол VTP был соз­дан для того, что­бы авто­мати­чес­ки и цен­тра­лизо­ван­но управлять базами дан­ных VLAN на ком­мутато­рах Cisco. Для это­го исполь­зуют­ся номера ревизии кон­фигура­ции. С их помощью ком­мутатор опре­деля­ет самую све­жую базу дан­ных VLAN, при­нима­ет объ­явле­ния VTP и обновля­ет БД VLAN, уви­дев боль­ший номер ревизии.

Роли коммутаторов в домене VTP
- **VTP Server.** Ком­мутатор в роли VTP Server может соз­давать новые VLAN, уда­лять ста­рые или менять информа­цию в самих VLAN. Так­же он занима­ется генери­рова­нием объ­явле­ний VTP для осталь­ных чле­нов домена.
- **VTP Client.** Ком­мутатор в этой роли будет получать спе­циаль­ные анон­сы VTP от дру­гих ком­мутато­ров в домене, что­бы обновлять базы дан­ных VLAN у себя. Кли­енты огра­ниче­ны в воз­можнос­тях соз­давать VLAN и даже не име­ют пра­ва локаль­но изме­нять кон­фигура­цию VLAN. Ина­че говоря, дос­туп read only.
- **VTP Transparent.** В этом режиме ком­мутатор не учас­тву­ет в про­цес­сах VTP и может вес­ти у себя пол­ное и локаль­ное адми­нис­три­рова­ние всей кон­фигура­ции VLAN. Работая в проз­рачном режиме, ком­мутато­ры занима­ются толь­ко переда­чей объ­явле­ний VTP от дру­гих ком­мутато­ров, не зат­рагивая свою кон­фигура­цию сетей VLAN. У таких ком­мутато­ров номер ревизии всег­да будет равен нулю, и про­тив них ата­ки с инъ­екци­ей VTP не про­вес­ти.

Типы объявлений в домене VTP:

- **Summary Advertisement** — объ­явле­ние VTP, отправ­ляемое сер­вером VTP каж­дые 300 секунд (5 минут). В этом объ­явле­нии хра­нит­ся имя домена VTP, вер­сия про­токо­ла, отметка вре­мени и зна­чение MD5-хеша кон­фигура­ции;
- **Subset Advertisement** — объ­явле­ние VTP, которое отправ­ляет­ся при каж­дом изме­нении кон­фигура­ции VLAN;
- **Advertisement Request** — это зап­рос от кли­ента VTP к сер­веру VTP на сооб­щение Summary Advertisement. Обыч­но рас­сыла­ется в ответ на сооб­щение о том, что ком­мутатор обна­ружил Summary Advertisement с бóльшим номером ревизии кон­фигура­ции.

Что­бы ата­ковать домен VTP, необ­ходимо, что­бы порт, к которо­му ты под­клю­чен во вре­мя ата­ки, был в режиме магис­траль­ного канала. Кста­ти говоря, ата­ка на VTP может быть сле­дующим шагом пос­ле того, как ты ата­ковал про­токол DTP и стал тран­ковым каналом. Зло­умыш­ленник смо­жет про­водить VTP-инъ­екции и отправ­лять яко­бы «обновлен­ные» базы дан­ных VLAN с бóльшим номером ревизии. Легитим­ные ком­мутато­ры, в свою оче­редь, при­мут и обно­вят свои базы дан­ных VLAN. Про­вес­ти такую ата­ку нам поможет Yersinia. Рас­смот­рим ата­ку на VTPv1 с пос­леду­ющим уда­лени­ем всех VLAN.

### Практическая часть 
Топология следующия: 

![](https://i.imgur.com/8MWskyc.png)

Есть 3 vlan сети (10,20,30) каждый пк в своем vlan. 

S1 настроен в режиме VPT-server:

![](https://i.imgur.com/qibEp3g.png)

Настройте S2, S3 в режиме клиента VTP:

![](https://i.imgur.com/5zHlFZK.png)

Проверьте что vlan появились на других коммутаторах:

![](https://i.imgur.com/BtPBpPB.png)

Проведем атаку на DTP чтобы порт коммутатора S3 стал транковым. 

![](https://i.imgur.com/gC50iy7.png)

В yersinia выберем протокол VTP:

![](https://i.imgur.com/i2qtO23.png)

Нажмем X и выполним к примеру атаку по удалению всех vlan. 

![](https://i.imgur.com/QXXR0Zt.png)

![](https://i.imgur.com/TJ2Erna.png)

Проверяем что все VLAN удалены: 

![](https://i.imgur.com/DUSNAsY.png)

![](https://i.imgur.com/K6bdCtb.png)

![](https://i.imgur.com/HZDEGOA.png)

## Сетевая разведка и перехват трафика с помощью ARP 
### Теоретическая часть 
#### ARP Harvesting

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

Проб­лема ска­ниро­вания ARP в том, что это очень шум­ный спо­соб сетевой
раз­ведки. С этим спо­собом нуж­но быть осто­рож­ным, что­бы не спро­воци­ровать тре­вогу сис­тем безопас­ности IPS/IDS. Да и на пор­те, к которо­му ты под­клю­чен, может быть скон­фигури­рован Storm Control, бло­киру­ющий порт при ано­маль­ном широко­веща­тель­ном тра­фике (тра­фик про­токо­ла ARP — широко­веща­тель­ный).

C помощью утилиты arp-scan можем обна­ружить активные хос­ты в сети и их MAC-адре­са. В моем слу­чае тес­товая сеть малень­кая, но тем не менее.

![image](https://hackmd.io/_uploads/ry88wfq46.png)

#### ARP Cache Poisoning

Техника этой сетевой атаки заключается в использовании недостатков протокола ARP. Абсолютно любой хост в сети может вызывать ARP-запросы и принимать их, они это делают без механизма аутентификации (в протоколе ARP не предус­мотрен механизм аутентификации), поэтому все хос­ты доверя­ют друг дру­гу. Зло­умыш­ленни­ку дос­таточ­но отпра­вить фальсифицирован­ные отве­ты ARP в сто­рону цели A и цели B. С помощью под­делыва­ния отве­тов ARP компь­ютер атакующе­го позици­они­рует­ся целью А для цели B и наобо­рот, тем самым встав посере­дине. Это соз­дает усло­вия для перех­вата тра­фика.

![image](https://hackmd.io/_uploads/B1oV2zjN6.png)

#### Переполнение ассоциативной памяти коммутатора 

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

![Снимок экрана 2023-11-22 в 09.23.32](https://hackmd.io/_uploads/BJ7OAfiEa.png)

### Практическая часть

1. **Топология сети:**
 
![image](https://hackmd.io/_uploads/BkijCzjV6.png)

2. **Настройка R1**
    a. Измените hostname R1 на R1_ваша фамилия.
    b. Настройте интерфейс g0/0. IP адрес cети 192.168.N.0/24 (где N номер по журналу.
    c. Настройте протокол DHCP. Укажите в качестве DNS сервера 8.8.8.8 8.8.4.4
    d. Настройте NAT и маршрут по умолчанию.
3. **Настройка FTP-server**
    a. Установите пакет vsftpd.
    ![image](https://hackmd.io/_uploads/By8L1Xs4T.png)
    b. Настройте ftp сервер по своему усмотрению. Пользователь для подключение ваша фамилия.
4. **Сканирование локальной сети.**
    a. Исследуете сеть с помощью arp-scan.
    b. Используя nmap просканируйте полученные адреса от arp-scan. Найдите ftp сервер.
    ![image](https://hackmd.io/_uploads/rJGi1msNa.png)
5. **Проведение атаки ARP Cache Poisoning.**
    a. Переведите интерфейс атакующей машины в неразборчивый режим. Включите маршрутизацию (форвардинг).
    ![image](https://hackmd.io/_uploads/BJt61QjNp.png)
    b. Сделайте клон проекта с гита https://github.com/in9uz/NetworkExploitation.git. Там лежит нужная нам утилита.
    c. С помощью скрипта ARPSpoofer.py запускаем процесс отравления ARP. В качестве первой цели указываем клиента а в качестве второй сервер ftp.
    ![image](https://hackmd.io/_uploads/ryCmlXoNp.png)
    d. Переходим к прослушиванию сетевого трафика в новом окне. Используйте утилиту tcpdump.
    ![image](https://hackmd.io/_uploads/rJ8rg7i4p.png)
    e. Залогиньтесь с клиента на ftp сервере.
    ![image](https://hackmd.io/_uploads/Hk68x7oNT.png)
    f. Завершите перехват пакетов. Выполните форматированный вывод с помощью утилиты grep чтобы посмотреть пароль и логин для ftp.
    ![image](https://hackmd.io/_uploads/B1UOxXsEa.png)
6. **Проведение атаки по переполнению ассоциативной памяти коммутатора.**
    a. Посмотрим заполненность Mac таблицы до атаки.
    ![image](https://hackmd.io/_uploads/HkYjlXs4a.png)
    b. Вос­поль­зуем­ся Scapy, что­бы про­вес­ти такую ата­ку. В качес­тве MAC-адре­са источни­ка пусть будет ран­домизи­рован­ный MAC-адрес, каж­дый новый генерирующий­ся кадр будет с новым MAC-адресом. MAC-адресов наз­начения это тоже каса­ется. Да­лее с помощью метода sendp выпол­няем рас­сылку фиктивных кад­ров Ethernet. Задав loop = 1, зацик­лим отправ­ку этих кад­ров.
    ![image](https://hackmd.io/_uploads/ByfeZ7oE6.png)
    c. Посмотрим состояние таблицы коммутатора после атаки.
    ![image](https://hackmd.io/_uploads/S1r-Z7oNa.png)

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