---
# System prepended metadata

title: Отчёт по лабораторной работе №5
tags: [Network Labs]

---

###### tags: `Network Labs`
# Отчёт по лабораторной работе №5
Выполнил: Запорожец Арсений
## Часть 1. - DHCP Starvation
### Атака
Для выполнения данной атаки нам понадобится pyDHCPStarvator. Его можно скачать с github из одноимённого репозитория. 
В качестве первого шага добудим mac-address цели. Для этого в нашем случае достаточно необходимо ввести команду `arp`:


Скачаем и установим зависимости pyDHCPStarvator. Запустим его командой. Для успешной атаки необходимо выполнить две команды:
`python3 starvit.py -i eth0 -net 192.168.1.0/24 -start 1 -end 254 -dst_mac 50:00:00:05:00:01`:
![](https://i.imgur.com/UJHjwFy.png)
`python3 listener.py -i eth0 -starvation-attack`:
![](https://i.imgur.com/gYuuWVL.png)

Просмотрев трафик мы можем увидеть множество исходящих DHCP запоросов:
![](https://i.imgur.com/iRr0rZA.png)

После атаки мы можем увидеть забитую таблицу ip адресов:
![](https://i.imgur.com/VqTlaP3.png)


### Защита
Для защиты от данного вида атаки необзодимо всего-лишь ограничить количество mac адресов для текущего DHCP сервера. По мере добавления машин пул можно расширять. Также в данном случае неплохо помогает DHCP snooping, которая ограничивает количество запросов в секунду на хост (рекомендуется не больше 100). Пользователь не привысит это значение, а вот злоумышленник будет обнаружен:
![](https://i.imgur.com/9EKcdSo.png)
![](https://i.imgur.com/INKHupp.png)


## Часть 2. - Атака DHCP Rouge
### Атака
Для этой атаки нам понадобится помощь yarshini'и. Запустим на ней DHCP rouge сервер:
![](https://i.imgur.com/mKINfwt.png)

Т.к. мы заполнили ip таблицу основного сервера, то отвечать хостам будет уже кто-то другой, а именно наш DHCP сервер. Я запустил dhclient на debian. Вот результаты:
![](https://i.imgur.com/Py0wo2b.png)

В самой же vershinia можно анализировать трафик, рассматривая, кому именно был выдан IP адрес:
![](https://i.imgur.com/tDaSg31.png)

Как мы можем увидеть, некоторые запросы перенаправляются на машину с kali linux. Это позволяет нам прослушивать трафик, что может привести к серьёзному ущербу, в том числе и серьёзной утечки данных.

### Защита
Тот же самый случай, что и при DHCP Starvation:
![](https://i.imgur.com/9EKcdSo.png)
![](https://i.imgur.com/INKHupp.png)

## Часть 3. - Атака CAM table overflow
### Атака
Скачаем утилиту Macof.py и запустим её. В моём случае запуск проводился с kali linux. Атака была проведена на switch. Результаты:
![](https://i.imgur.com/ZfMrQUA.png)

Как мы можем увидеть, таблица mac адресов успешно была забита.
Вот показания анализатора трафика:
![](https://i.imgur.com/RkW4AFd.png)

### Защита
Официально рекомендуемый метsод – включение port-security на интерфейсе коммутатора. Ограничим возможности атакующих, ограничив число возможных mac адресов с 1 интерфейса:
![](https://i.imgur.com/pJvYyF2.png)

С помощью этих настроек мы ограничили число mac-адресов до 5.

## Часть 4. - Атака Mac-Spoofing
### Атака
Атака подразумивает ручную смену mac-address'а на какой-либо другой внутри сети. Это позволяет злоумышленнику получать пакеты, которые до этого он видеть не мог:
![](https://i.imgur.com/UaDw2FI.png)

### Защита
Всё достаточно просто. Для защиты от подобного вида атак всего-лишь достаточно закрепить за отедльным пользователем отедльный mac-адрес. Сделать это нам поможет port security:
![](https://i.imgur.com/cR56acF.png)

## Часть 5. - VLAN hopping
## Атака
Данная атака позволяет проникнуть в недоступный VLAN и прослушивать его содержимое. Для простейшей реализации данной атаки необходимо просто настроить файл /etc/network/interfaces следующим образом:
![](https://i.imgur.com/lPstNWc.png)

Далее, если, например, пустить arp запросы по сети, то, запустив wireshark, мы сможем увидеть их в 20 vlan'е:
![](https://i.imgur.com/PdbL3gc.png)

## Защита
Здесь можно дать несколько рекомендаций.
Т.к. эта атака возможна только если интерфейс работает в режиме транка, то есть простой совет - никогда не оставлять интерфейсы настроенными на автоматическую работу в режиме транка.
Ну и ещё одно, то, что будет продемонстрировано на экране - ещё один возможный способ взлома. DTP. Его отключение повысит надёжность системы:
![](https://i.imgur.com/teflG6I.png)

## Часть 6. - ACL настройка
Перейдём к настройке ACL.

-Debian10 (192.168.20.10)-
Для этого придётся в роутере создавать правила и уже после этого отправлять их. Начнём с конца. Debian10 не должен иметь доступ никуда, кроме интернета. Значит создаём правило:
![](https://i.imgur.com/aUXbQF2.png)

Небольшое разъяснение, зачем нужен permit ip any any в конце. Дело в том, что если за правило ни одно условие не сработало, то пакет просто сгорит, а нам нужно его отправить, в случае если Debian стучиться ни во VLAN 1 (который, кстати, не рекомендуется использовать ввиду угрозы атаки VLAN hopping), ни во VLAN10. Выгружаем правило:
![](https://i.imgur.com/yQ8o9Oq.png)

Перезагружаем сеть и проверяем работу правила:
Debian потерял доступ к VLAN1 и 10, но доступ к интернету сохранил, а значит задача выполнена.
![](https://i.imgur.com/R7bx7Qq.png)

-Windows7- (192.168.10.10)
С ней уже немного по другому. Доступа нужно лишить только до VLAN20. Это делает нашу работу немного легче. Создаём правило:
![](https://i.imgur.com/bJKwK65.png)

И выгружаем его:
![](https://i.imgur.com/LOC3h57.png)

Делаем проверку и вуоля - есть контакт с интернетом и VLAN1, но нету с VLAN20:
![](https://i.imgur.com/JevKJtL.png)

При этом kali всё также имеет контакт с VLAN20:
![](https://i.imgur.com/xtUwOef.png)

-KaliLinux- (192.168.1.10)
Самое, пожалуй, простое правило, которое, однако, требует понимания, что именно нужно взять в настройках. Создадим его:
![](https://i.imgur.com/xf0px1Q.png)

Выгрузим правило:
![](https://i.imgur.com/wO1WVeC.png)

Теперь проверим конфигурацию. С Windows всё работает:
![](https://i.imgur.com/7w081KL.png)

Но вот у kali доступа нет:
![](https://i.imgur.com/rBX1isQ.png)

И проблема здесь явно не в том, что хост вне зоны досягаймости:
![](https://i.imgur.com/e1TVIIf.png)

Конфигурация роутера (скриншоты сделаны чуть раньше правил, они были добавлены позже):
![](https://i.imgur.com/5nAjDJ3.png)

Здесь уже полное описания каждого правила, где 101 - vlan1, 103 - vlan20:
![](https://i.imgur.com/mJxPx5W.png)
