# Катенин Владимир - Networks Basic. Занятие 5. Безопасность локальной сети [toc] ## Задача 1) Провести атаку на DHCP. На коммутаторе настроить защиту от Rogue DHCP Server и от DHCP starvation 2) Провести атаку VLAN hopping. На коммутаторе настроить защиту от данного типа атаки (либо предложить рекомендацию) 3) Провести атаку CAM-table overflow. На коммутаторе настроить защиту от CAM-table overflow 4) Провести атаку MAC-spoofing. Настроить защиту от атаки MAC-spoofing, используя Port Security 5) Настроить ACL: -- KALI имеет доступ куда угодно, кроме debian машинки по протоколу HTTP -- Win-7 машинка имеет доступ только в интернет и в VLAN-1 -- Debian машинка имеет доступ только в интернет ## Топология сети Возьмем топологию из предыдущего практического задания ![](https://imgur.com/gkotOuj.jpg) ## Настройка инфраструктуры Запустим Firewall ![](https://imgur.com/O9A01iv.jpg) Настроим сабинтерфейсы на Firewall ![](https://imgur.com/FFynap6.jpg) Зайдем в веб-версию и изменим названия сабинтерфейсов ![](https://imgur.com/Qlvfl5L.jpg) ![](https://imgur.com/Z9DNo1R.jpg) Изменим правила Firewall ![](https://imgur.com/qblsnXc.jpg) ![](https://imgur.com/ejkAoLi.jpg) Настроим Kali-MITM `nano /etc/network/interfaces` `apt update` `apt install bridge_utils` ![](https://imgur.com/uWU5cts.jpg) ![](https://imgur.com/9rzght7.jpg) ![](https://imgur.com/BkzFmsp.jpg) Настроим Debian ![](https://imgur.com/rECuOqk.jpg) ![](https://imgur.com/ZIx1eK8.jpg) Настроим Kali Linux ![](https://imgur.com/WEAPxz5.jpg) Win7 ![](https://imgur.com/AA7cTwR.jpg) ![](https://imgur.com/adgnLl3.jpg) Настроим Switch ![](https://imgur.com/M1HUp2C.jpg) ## Атака на DHCP Установим yersinia `apt install yersinia` Запустим `yersinia -G` Выберем вкладку DHCP, введем MAC адрес ![](https://imgur.com/GqlA8xs.jpg) MAC адрес берем из таблицы Switch ![](https://imgur.com/sM5LQ9O.jpg) Выберем отправку DISCOVER пакетов ![](https://imgur.com/1tsB2En.jpg) Запустим ![](https://imgur.com/wN9trfJ.jpg) Видим отправленные пакеты на eth1 Firewall ![](https://imgur.com/DjOiLe5.jpg) ### DHCP Starvation Проведем атаку `python starvit.py -i eth0 -net 192.168.1.0/24 -start 1 -end 254 -dst_mac 50:00:00:05:00:01` ![](https://imgur.com/ye8cT2t.jpg) Видим в Wireshark трафик ![](https://imgur.com/4gyTD77.jpg) Таблица DHCP Leases в Firewall заполняется ![](https://imgur.com/n0xZNRq.jpg) ### Защита от DHCP Starvation Настроим Switch `int e0/3` `switchport mode access` `switchport port-security` `switchport port-security maximum 5` `switchport port-security violation restrict` `switchport port-security mac-address sticky` ![](https://imgur.com/Ym8S1rm.jpg) Запустим атаку ![](https://imgur.com/LJl6qMF.jpg) Видим, что Wireshark не ловит ненужные пакеты ![](https://imgur.com/6QUXPzy.jpg) Switch блокирует пакеты ![](https://imgur.com/Kg8NU2y.jpg) В DHCP Leases нет ненужных записей ![](https://imgur.com/GhM9jh4.jpg) ### Защита от Rogue DHCP Server Прописываем на интерфейс e0/0 в Switch `ip dhcp snooping trust` А на остальные `ip dhcp snooping limit rate 15` ![](https://imgur.com/VJgv4aI.jpg) ## VLAN Hopping Добавим сабинтерфейсы на Kali-MITM `nano /etc/network/interfaces` ![](https://imgur.com/fNqoav5.jpg) Видим трафик из VLAN 10 ![](https://imgur.com/BkMNOhw.jpg) ![](https://imgur.com/lcFeLsh.jpg) Видим трафик из VLAN 20 ![](https://imgur.com/OJkINYQ.jpg) ### Защита от VLAN Hopping Атака возможна только в тех случаях, когда интерфейсы настроены в режиме транка. Интерфейс e0/0 был ранее настроен в режим транка. Чтобы защититься, нужно проверить, что порты не настроены на автоматическую работу в режиме транка, а также отключить протокол DTP на порте с помощью `switchport nonegotiate`. ![](https://imgur.com/p8mw2Gm.jpg) ## CAM-table overflow Посмотрим таблицу MAC адресов на свитче `show mac address-table` ![](https://imgur.com/kwIYas3.jpg) Запустим атаку с Kali Linux (порт eth1, т.к. на eth0 стоит защита от переполнения - portsecurity) ![](https://imgur.com/7t0aOMB.jpg) Видим, что таблица забилась MAC адресами ![](https://imgur.com/oI38UJN.jpg) ### Защита от CAM-table overflow Настроим свитч `int e1/0` `switchport mode access` `switchport port-security` `switchport port-security maximum 5` `switchport port-security violation restrict` ![](https://imgur.com/B6ZC1XZ.jpg) Посмотрим таблицу MAC адресов до атаки ![](https://imgur.com/YXHc5na.jpg) Запустим атаку ![](https://imgur.com/eBSJoLa.jpg) Видим блокировку MAC адресов на свитче ![](https://imgur.com/7UnyTaA.jpg) Посмотрим таблицу MAC адресов ![](https://imgur.com/WzlxmDQ.jpg) ## MAC-spoofing Добавим две новые Kali Linux машины в топологию ![](https://imgur.com/ycMFxsk.jpg) Посмотрим таблицу MAC адресов на свитче, видим, что на каждом порте свой адрес ![](https://imgur.com/aJnUtmL.jpg) Прописываем MAC адрес атакуемого устройства (Linux) на Linux-Attack ![](https://imgur.com/2473xMj.jpg) В таблице коммутации видим, что MAC адрес атакуемого устройства у порта атакующего ![](https://imgur.com/f31yNwA.jpg) Посмотрим IP жертвы ![](https://imgur.com/xmeoiyV.jpg) Для проверки пропингуем жертву с Kali-MITM и перехватим трафик на Linux-Attack с помощью Wireshark ![](https://imgur.com/zJV1Jyl.jpg) Видим трафик для жертвы на Linux-Attack ![](https://imgur.com/VilvBbp.jpg) В таблице коммутации видим, что запись с фактическим MAC адресом атакующего устройства отсутствует ![](https://imgur.com/17Afext.jpg) ### Защита от MAC-spoofing Защитим с помощью port-security `int e1/1` `switchport mode access` `switchport port-security` `switchport port-security mac-address 0050.0000.0700` ![](https://imgur.com/ukMgFqt.jpg) Посмотрим таблицу MAC адресов до атаки ![](https://imgur.com/zS9bHwH.jpg) После подмены MAC адреса в таблице коммутации отсутствует поддельный адрес и порт Linux-Attack, защита осуществлена ![](https://imgur.com/ZUcrBze.jpg) ## Настройка ACL Топология сети ![](https://imgur.com/7sHyfAD.jpg) Настроим интерфейсы на свитче ![](https://imgur.com/TeFWkX7.jpg) Настроим интерфейсы на роутере ![](https://imgur.com/RnaS2Oo.jpg) Настроим выход в интернет и NAT на роутере ![](https://imgur.com/7BfCqbV.jpg) Настроим выход в интернет на Kali Linux ![](https://imgur.com/UFvbDWj.jpg) Проверим ![](https://imgur.com/dQZ0HVS.jpg) Настроим выход в интернет на Win7 ![](https://imgur.com/Vd7RdYs.jpg) Проверим ![](https://imgur.com/UvaAhLZ.jpg) Настроим выход в интернет на Debian ![](https://imgur.com/EHBkGrq.jpg) ![](https://imgur.com/c3p2XUB.jpg) Проверим ![](https://imgur.com/dpUl2fa.jpg) Для выполнения первого пункта задания по ACL установим nginx на Debian `apt update` `apt install nginx` ![](https://imgur.com/5GpEzbH.jpg) Проверим с Win7, что наш сервер работает ![](https://imgur.com/Db8tMRD.jpg) Настроим ACL ![](https://imgur.com/G88Jrc5.jpg) Повесим ACL на e0/0.20 ![](https://imgur.com/VysqT14.jpg) Пробуем зайти с Win7 - работает ![](https://imgur.com/6QR7cPY.jpg) Пробуем зайти с Kali Linux - не получается, все правильно ![](https://imgur.com/qMbFsGz.jpg) При этом пинг работает ![](https://imgur.com/oqyfdUn.jpg) Сделаем ACL для данного условия `Win-7 машинка имеет доступ только в интернет и в VLAN-1` ![](https://imgur.com/QiCv0hm.jpg) Пробуем пинговать с Win7. Доступ есть к интернету и VLAN 1 ![](https://imgur.com/1Yr9pnc.jpg) ![](https://imgur.com/FS3XN5h.jpg) Сдалем ACL для данного условия `Debian машинка имеет доступ только в интернет` ![](https://imgur.com/yA2xqkR.jpg) Проверим ![](https://imgur.com/88wLZ8M.jpg) Конфигурация ACL на роутере ![](https://imgur.com/nOGBHFy.jpg)