Практическая работа №5 == # Атаки на DHCP ## Подготовка сети Собираем нужную сеть: ![](https://i.imgur.com/fW0fTI0.png) После устанавливаем на kali-mitm и kali-linux нужный софт Поместим kali-linux в 10 и 20 вланы, для этого на Switch настроим: ![](https://i.imgur.com/kQBsERT.png) И: ![](https://i.imgur.com/67GhfVS.png) На kali-linux получены адреса: ![](https://i.imgur.com/U63O0Zs.png) ## DHCP starvation Работаем в kali-mitm В yersinia указываем mac-адрес pfsense: ![](https://i.imgur.com/eq3Yh9m.png) Выбираем тип пакетов, которые будем посылать: ![](https://i.imgur.com/KnWs2mX.png) Видим Discover запросы в трафике: ![](https://i.imgur.com/tNlnhRh.png) Запускаем starvation с помощью pyDHCPStarvator: ![](https://i.imgur.com/TqDK7us.png) Видим таблицу leases заполненой: ![](https://i.imgur.com/8qbUSho.png) Трафик: ![](https://i.imgur.com/5rPUVxW.png) ## Rogue DHCP server Сначала настроим DHCP сервер на kali-linux Качаем isc-dhcp-server, редактируем конфиг так: ![](https://i.imgur.com/xUbQOFz.png) А также изменим файл /etc/default/isc-dhcp-server ![](https://i.imgur.com/ylQ4TZT.png) Таким образом на kali-linux работает dhcp сервер на интерфейсе eth1, который смотрит в debian и находится в 20 влане Запустим атаку DHCP starvation: ![](https://i.imgur.com/cRNf7vU.png) Видно, что pfsense отвечает NAK на запросы адреса то есть все они заняты: ![](https://i.imgur.com/hhDFuda.png) Debian уже получал адрес у оригинального DHCP сервера, на него эта атака не срабатывает (для него адрес зарезервирован довольно жестко в pfsense, как я понял), поэтому я добавил на Debian новый адаптер и подлкючился к Switch с него, вместо старого Запрашиваем для нового адаптера адрес: ![](https://i.imgur.com/6x3mmlT.png) Трафик при запросе адреса, видно, что поддельный сервер (пакеты 43,47,48,52) опередил оригинальный (50, 51): ![](https://i.imgur.com/txa9SSZ.png) Это странно, поскольку только что оригинальный сервер отвечал, что адреса заняты, но по итогу атака удалась Результат: ![](https://i.imgur.com/Y3M3CJj.png) C kali-linux видим трафик debian, поскольку для него kali-linux является маршрутом по умолчанию: ![](https://i.imgur.com/oUOKxBR.png) ## Защита В качестве защиты от поддельного сервера настроим DHCP snooping Активируем эту функцию: ![](https://i.imgur.com/6wA2BuJ.png) Определим доверенный порт: ![](https://i.imgur.com/cVbXWGA.png) В качестве защиты от DHCP starvation настроим port-security, ограничив количество устройств на один порт коммутатора: ![](https://i.imgur.com/X1dm0UZ.png) Это не даст атакующему исчерпать все адреса из пула # VLAN-hopping ## Атака Создадим на kali-linux еще один интрефейс и подключим его к switch, с этого интерфейса мы и будем проводить атаку: ![](https://i.imgur.com/ZnyZGRv.png) Порт коммутатора находится в нужном состоянии: ![](https://i.imgur.com/a6kjzLq.png) На kali-linux добавим виртуальные интерфейсы для вланов: ![](https://i.imgur.com/GlGr3yd.png) В yersinia проведем атаку, делая вид, что являемся коммутатором: ![](https://i.imgur.com/nfx6Usz.png) Интерфейс переведен в нужный режим: ![](https://i.imgur.com/L7zDweH.png) Можем пинговать в произвольный влан: ![](https://i.imgur.com/XDHFrL4.png) Успешно подменили влан: ![](https://i.imgur.com/O59SX9U.png) ## Защита Вернем порт свича в начальное положение: ![](https://i.imgur.com/PGbSbV6.png) Одна из мер защиты - отключение режима автоматического перехода в trunk, для этого можно перевести порт в состояние access: ![](https://i.imgur.com/plvTgpl.png) Режим trunk отключен: ![](https://i.imgur.com/WRERAy9.png) Кроме этого можно совсем отключить DTP: ![](https://i.imgur.com/tJB8zEu.png) Атака не проходит: ![](https://i.imgur.com/5598SN4.png) # CAM-table overflow ## Атака Перед этим нужно отключить ограничение максимального количества mac-адресов на один порт коммутатора Запускаем macof на eth0: ![](https://i.imgur.com/v4jcQrm.png) Пошел трафик: ![](https://i.imgur.com/dLuhzCy.png) Видим заполненную таблицу на switch: ![](https://i.imgur.com/M83BEbX.png) Если запустить атаку во время пинга, то время его работы сильно увеличивается: ![](https://i.imgur.com/noO1VjZ.png) ## Защита Настроим защиту от такой атаки Укажем максимальное количество адресов для одного порта: ![](https://i.imgur.com/5OgFZQa.png) Таблица не переполняется, пинг идет без задержки: ![](https://i.imgur.com/tHwYReH.png) # MAC-spoofing ## Атака Атака заключается в смене mac-адреса, проделаем ее на Debian Был адрес: ![](https://i.imgur.com/180RZjQ.png) Меняем с помощью команд: ![](https://i.imgur.com/EGnKNp6.png) Адрес поменялся: ![](https://i.imgur.com/tCKS3gS.png) И сеть работает: ![](https://i.imgur.com/nXf3aAp.png) ## Защита Для защиты от смены mac-адреса можно использовать port security и указать лимит в один адрес на один порт Для начала перезагрузим debian, чтобы отменить смену mac-адреса Настройка Switch: ![](https://i.imgur.com/deA2n7r.png) Пробуем сменить адрес: ![](https://i.imgur.com/AwivAEd.png) Порт перешел в состояние error-disabled (поведение по умолчанию): ![](https://i.imgur.com/vISWIAA.png) Помимо этого можно указать конкретно какой mac-адрес ожидается на порту коммутатора # ACL ## Настройка сети Собираем сеть: ![](https://i.imgur.com/uF1uUbZ.png) Всем интерфейсам Router даем адреса 192.168.vlan_id.254 Машинам - 192.168.vlan_id.10 ## Настройка ACL ### NAT Включим nat: ![](https://i.imgur.com/asMzfWT.png) Добавляем записи в ACL 1: ![](https://i.imgur.com/SfyD0Ch.png) Заканчиваем настройку: ![](https://i.imgur.com/1nKoHFT.png) Указываем внутренние интерфейсы nat: ![](https://i.imgur.com/CttNS6q.png) Пингуется как нужно: ![](https://i.imgur.com/5XrpbVw.png) ### ACL для kali-linux Развернули веб на дебиане: ![](https://i.imgur.com/NVkumwj.png) Запрещаем доступ kali на дебиан по http: ![](https://i.imgur.com/jrgORM5.png) Остальное разрешаем: ![](https://i.imgur.com/g1iTnHO.png) Применяем правило: ![](https://i.imgur.com/s9bAv86.png) Проверяем, с кали нет доступа: ![](https://i.imgur.com/rNRZPyi.png) С Win7 есть: ![](https://i.imgur.com/NgrQl7T.png) ### ACL для Win7 Запрещаем доступ во влан 10: ![](https://i.imgur.com/FezLorY.png) Остальное разрешаем: ![](https://i.imgur.com/TrmlDc8.png) Применяем его к интерфейсу e0/0.10: ![](https://i.imgur.com/lf1TVEO.png) Проверим, все так: ![](https://i.imgur.com/twtVtL5.png) ### ACL для Debian Запрещаем доступ к 2 сетям, остальное разрешаем: ![](https://i.imgur.com/LPoXh1N.png) Вешаем на интерфейс: ![](https://i.imgur.com/JMPwyDP.png) Проверим: ![](https://i.imgur.com/WxGFvZn.png)