# Network Basic Модуль Занятие 2
## Модель OSI и канальный уровень
### Практическая работа 2
В этой практике рассмотрим простейшие атаки на уровне L2 модели OSI (представляет канальный уровен передачи данных).

#### Часть 1 Атака переполнением таблицы коммутации.
Данная атака позволяет уменьшить доступность всей сети для конечных хостов путем переполнения оперативной памяти коммутаторов через заполнение таблицы коммутации бесполезными MAC адресами. Таким образом, временно может теряться связность между хостами в сети.
Для начала потребуется провести первичную настройку коммутаторов Switch3 и Switch1. Позже для других атак нам потребуется работа с VLAN, поэтому дадим коммутаторам возможность передавать фреймы между друг другом с идентификатором VLAN
Switch3

```
enable
configure terminal
interface e0/0
switchport trunk encapsulation dot1q
switchport mode trunk
```
Switch1

```
enable
configure terminal
interface range e0/0-2
switchport trunk encapsulation dot1q
switchport mode trunk
```
Далее перейдем к настройке Kali. С помощью нее мы будем проводить все дальнейшие атаки. Для проведения атак скачаем дополнительные пакеты.


```
sudo apt install dsniff, yersinia
```
Далее проведем настройку атакуемого клиента Windows. Клиенту нужно выдать IP-адрес, чтобы он мог обращаться к маршрутизатору.




Теперь зайдем в консоль Switch3 чтобы посмотреть MAC таблицу

```
enable
show mac address-table
```
На данный момент она включает совсем немного устройств.
Теперь запустим отправку большого количества запросов с Windows, чтобы посмотреть, что доступность сервера будет пропадать во время атаки

```
ping 8.8.8.8 -n 10000
```
После чего можно запустить атаку на самом Kali с помощью команды `macof`

Kali начнет генерировать множество запросов с разных MAC адресов. Коммутатор будет занят обработкой всех этих адресов и не сможет достаточно быстро обрабатывать запросы с других своих портов. По итогу получим, что Windows частично не получает ответы от сервера при выполнении команды *ping*

Закончим выполнение `macof` на Kali и посмотрим на таблицу коммутации Switch3

Таблица полна огромным количеством MAC-адресов с порта e0/1, к которому подключена Kali
#### Часть 2. Arp-Spoofing
Благодаря протоколу ARP у злоумышленников есть возможность перенаправлять трафик внутри локальной сети с одного устройства на другое путем замены MAC-адреса в таблице ARP с одного на другой.
Для начала настроим Windows. Мы попробуем произвести соединение с Switch1 по протоколу Telnet (в прошлой практике на нем настроена система учетных записей и IP адрес для обращения). Для работы с этим протоколом потребуется добавить пакеты для него в самой Windows




Теперь настроим Kali для проведения атаки. Сначала нам нужно будет разрешить внутреннюю маршрутизацию Kali (для этого нужно раскоментировать строчку *net.ipv4.ip_forward=1* и сохранить файл).

Далее применим параметр командой `sysctl -p /etc/sysctl.conf`. В ответ получим информацию об измененных параметрах (около net.ipv4.ip_forward должна быть 1)

После этого можно запустить атаку

```
arpspoof -i eth0 -t 192.168.1.65 -r 192.168.1.100
```
+ -i - название интерфейса
+ -t - цель, трафик которой мы перенаправим на себя
+ -r - тот, кто владеет ARP таблицей, данные которой мы хотим изменить
И запустим Wireshark
После запуска команды используем Windows для подключения к Switch1.
```
telnet 192.168.1.100
```

в Wireshark отобразятся запросы от Windows (пакеты Telnet принадлежат только что запущенной сессии соединения на Windows)

Нажмем на какой-то пакет правой кнопкой мыши -> Follow -> TCP Stream

И увидим все данные, которые передавали между собой Switch3 и Windows (синие символы соответсвуют получаемой клиентом информации, красные - информации, отправленной с клиента при подключении к серверу).

Таким образом, ARP-Spoofing позволил нам получать пакеты другого клиента (т.к. информация об IP в ARP-таблице на коммутаторе).
#### Часть 3. VLAN-hopping.
Один из способов спасения от разных атак на локальную сеть - максимальное разделение ее на виртуальные подсети с помощью технологии VLAN. Она основывается на добавлении во фрейм данных дополнительной секции с идентификатором VLAN, к которой принадлежит клиент. Таким образом, если какая-то атака будет исходить от злоумышленника, который представляется клиентом сети, урон будет нанесен только по части сети, представленной этим самым VLAN.
Но есть способ обойти эти ограничения. Заключается он в представлении себя в качестве нового коммутатора для уже созданной сети. Фактически, клиент начинает самостоятельно генерировать фреймы, содержащие секцию с идентификатором VLAN. Благодаря этому клиент злоумышленника сможет осуществлять переходы между разными VLAN, нанося ущерб всей сети.
Попробуем провести такую атаку. Но для начала произведем настройку коммутаторов, чтобы добавить дополнительные VLAN.
Настроим работу порта e0/3 на представление исходящих фреймов без VLAN_ID (пусть он будет обрабатывать трафик с VLAN 10)

Далее перейдем к настройке роутера. Нам нужно объявить виртуальный интерфейс, который будет заниматься обработкой данных с VLAN 10 (ему потребуется добавить IP адрес)

На Switch1 также потребуется добавить VLAN 10, т.к. коммутаторы не работают с идентификаторами, которых не знают

Изначально в коммутаторе трафик с Kali никак не сконфигурирован в какой-либо VLAN. Но благодаря данной атаке у нас получится "зайти" в VLAN, которому Kali не принадлежит.
Теперь запускаем *yersinia*. Она позволяет подделывать фреймы разных типов, в частности, фреймы с VLAN_ID внутри.

Начнем запуск атаки.

Из представленных протоколов нас интересует протокол DTP, его оборудование Cisco использует для настройки работы VLAN

Теперь настроим интерфейсы самой Kali. Нам нужно добавить дополнительный виртуальный интерфейс, который позволит нам работать с трафиком в VLAN.

```
modprobe 8021q
vconfig add eth0 10
ifconfig eth0.10 up
```
После настрйки посмотрим на интерфейсы через `ip a`

Видим, что кроме интерфейса по умолчанию, настроен еще один виртуальный интерфейс.
Если зайдем в консоль Switch3 и посмотрим состояние интерфейсов коммутатора
```
enable
show interfaces trunk
```

то увидим, что интерфейс, через который происходит подключение коммутатора к Kali стал принимать пакеты, содержащие VLAN_ID
Кроме того, если мы посмотрим поведение интерфейса в Wireshark, то увидим в каждом отображаемом пакете на уровне инкапсюляции фреймов идентификатор VLAN, к которому изначально Kali не имела доступа


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