• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Истощение и подмена DHCP-сервера

pablo

(L2) cache
Пользователь
Регистрация
01.02.2019
Сообщения
433
Реакции
1 524
При атаке на канальном уровне, можно перепрыгнуть через все средства защиты, настроенные на более высоких уровнях. В данной статье мы с вами рассмотрим два вектора атак на этот самый низкий уровень сети — истощение (DHCP Starvation) и подмена DHCP-сервера (DHCP Spoofing).

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

DHCP Starvation​

Эта атака основана на проведении рассылок огромного количества сообщений DHCPDISCOVER с целью истощить адресное пространство на сервере DHCP. Сервер DHCP будет реагировать на каждый запрос и выдавать IP-адрес. После переполнения допустимого адресного пространства сервер DHCP больше не сможет обслуживать новых клиентов в своей сети, выдавая им IP-адреса.
dhcp-starvation-attack-scheme.png

DHCP Starvation Attack

Протестируем эту атаку на небольшой локальной сети. DHCP-сервер уже настроен на маршрутизаторе GW. Подсеть — 10.1.1.0/24.
dhcp-spoofing-scheme.png

Полигон для проведения атаки на DHCP

С помощью Scapy вызовем рассылку фейковых DHCPDISCOVER. В качестве MAC-адреса назначения и IP-адреса назначения выступят адреса широковещательной рассылки.

Добавим слой протокола UDP, поскольку протокол DHCP использует его. В шаблоне options укажем, что мы будем рассылать пакеты DHCP типа DISCOVER

И в конце зациклим бесконечную отправку генерируемых фреймов.
Код:
>>> malicious_dhcp_discover = Ether(src=RandMAC(), dst="FF:FF:FF:FF:FF:FF")
 >>> malicious_dhcp_discover /= IP(src="0.0.0.0",dst="255.255.255.255")
 >>> malicious_dhcp_discover /= UDP(sport=68, dport=67)
 >>> malicious_dhcp_discover /= BOOTP(op=1, chaddr = RandMAC())
 >>> malicious_dhcp_discover /= DHCP(options=[('message-type', 'discover'),('end')])
 >>> sendp(malicious_dhcp_discover, iface="eth0", loop=1, verbose=1)
adusing-dhcp.png

Дамп трафика во время DHCP Starvation

overflowing-dhcp-lease.png

Переполняющееся адресное пространство DHCP-сервера. Часть 1

overflowing-dhcp-lease-part2.png

Переполняющееся адресное пространство DHCP-сервера. Часть 2


Сервер DHCP выведен из строя, теперь можно приступить к созданию его ложного аналога.

DHCP Spoofing​

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

Поэтому, настраивая такой DHCP-сервер, в качестве default gateway укажем наш IP-адрес. После того как клиент получит адрес, сделав запрос к нам, на его стороне мы будем шлюзом по умолчанию и он будет направлять свои пакеты нам. Это создает идеальные условия для проведения атак типа MITM.

Воспользуемся Yersinia, чтобы поднять ложный сервер DHCP.

dhcp1.png

Создание ложного DHCP-сервера

dhcp2.png

Конфигурация ложного DHCP-сервера


Теперь на машине с Windows 10 с помощью двух команд вызовем обновление IP-адреса, то есть попробуем получить адрес из созданного нами ложного сервера DHCP:
Код:
C:\Windows\system32> ipconfig /release
C:\Windows\system32> ipconfig /renew
victim-dhcp.png

Клиент получил адрес по DHCP

Как видим, клиент получил IP-адрес и информацию о шлюзе по умолчанию. Теперь можно попытаться перехватить трафик, поскольку весь трафик клиента будет идти к нам.

Переключим наш интерфейс в неразборчивый режим и разрешим форвардинг трафика на интерфейсе:
Код:
c0ldheim@PWN:~$ sudo ifconfig eth0 promisc
c0ldheim@PWN:~$ sudo sysctl -w net.ipv4.ip_forward=1
В итоге нам удалось перехватить незашифрованный FTP-трафик с кредами nightmare:nightmare.
captured-ftp-dhcp-abuses.png

Перехват учетных данных для сервера FTP

Заключение​

Исходя из личного опыта пентестов, могу сказать, что протоколы уровня L2 очень часто остаются без должного внимания и в большинстве случаев работают с конфигурацией по умолчанию. Этим, как вы видите, может воспользоваться хакер.

Атаки L2 в последнее время утратили актуальность и немного вышли из моды: сейчас мало кто обращает на них внимание. Возможно, эта статья подарит пентестерам новые варианты атак, а сетевые инженеры после прочтения смогут повысить уровень защищенности своих сетей.

автор статьи @Kozhuh
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх