- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •4. Оценка сети
- •Переход в сеть IoT
- •VLAN и сетевые коммутаторы
- •Спуфинг коммутатора
- •Двойное тегирование
- •Имитация устройств VoIP
- •Идентификация устройств IoT в сети
- •Обнаружение паролей службами снятия отпечатков
- •Атаки MQTT
- •Настройка тестовой среды
- •Написание модуля MQTT Authentication-Cracking в Ncrack
- •Тестирование модуля Ncrack на соответствие MQTT
- •Заключение
- •5. Анализ сетевых протоколов
- •Проверка сетевых протоколов
- •Сбор информации
- •Анализ
- •Создание прототипов и разработка инструментов
- •Работа с Lua
- •Общие сведения о протоколе DICOM
- •Генерация трафика DICOM
- •Включение Lua в Wireshark
- •Определение диссектора
- •Определение основной функции диссектора
- •Завершение диссектора
- •Создание диссектора C-ECHO
- •Начальная загрузка данных функции диссектора
- •Анализ полей переменной длины
- •Тестирование диссектора
- •Разработка сканера служб DICOM для механизма сценариев Nmap
- •Написание библиотеки сценариев Nmap для DICOM
- •Коды и константы DICOM
- •Написание функций создания и уничтожения сокетов
- •Создание заголовков пакетов DICOM
- •Написание запросов контекстов сообщений A-ASSOCIATE
- •Чтение аргументов скрипта в движке сценариев Nmap
- •Определение структуры запроса A-ASSOCIATE
- •Анализ ответов A-ASSOCIATE
- •Создание окончательного сценария
- •Заключение
- •6. Использование сети с нулевой конфигурацией
- •Использование UPnP
- •Стек UPnP
- •Распространенные уязвимости UPnP
- •Злоупотребление UPnP через интерфейсы WAN
- •Другие атаки UPnP
- •Использование mDNS и DNS-SD
- •Как работает mDNS
- •Как работает DNS-SD
- •Проведение разведки с помощью mDNS и DNS-SD
- •Злоупотребление на этапе проверки mDNS
- •Атаки «человек посередине» на mDNS и DNS-SD
- •Использование WS-Discovery
- •Как работает WS-Discovery
- •Подделка камер в вашей сети
- •Создание атак WS-Discovery
- •Заключение
- •UART
- •Аппаратные средства для связи с UART
- •Как найти порты UART
- •Определение скорости передачи UART
- •JTAG и SWD
- •JTAG
- •Как работает SWD
- •Аппаратные средства для взаимодействия с JTAG и SWD
- •Идентификация контактов JTAG
- •Взлом устройства с помощью UART и SWD
- •Целевое устройство STM32F103C8T6 (Black Pill)
- •Настройка среды отладки
- •Кодирование целевой программы на Arduino
- •Отладка целевого устройства
- •Заключение
- •Как работает SPI
- •Как работает I2C
- •Настройка архитектуры шины I2C типа «контроллер–периферия»
- •Заключение
- •9. Взлом прошивки
- •Прошивка и операционные системы
- •Получение доступа к микропрограмме
- •Взлом маршрутизатора Wi-Fi
- •Извлечение файловой системы
- •Статический анализ содержимого файловой системы
- •Эмуляция прошивки
- •Динамический анализ
- •Внедрение бэкдора в прошивку
- •Нацеливание на механизмы обновления микропрограмм
- •Компиляция и установка
- •Код клиента
- •Запуск службы обновления
- •Уязвимости служб обновления микропрограмм
- •Заключение
- •10. Радио ближнего действия: взлом rFID
- •Радиочастотные диапазоны
- •Пассивные и активные технологии RFID
- •Структура меток RFID
- •Низкочастотные метки RFID
- •Высокочастотные RFID-метки
- •Настройка Proxmark3
- •Обновление Proxmark3
- •Клонирование низкочастотных меток
- •Клонирование высокочастотных меток
- •Имитация RFID-метки
- •Изменение содержимого RFID-меток
- •Команды RAW для небрендированных или некоммерческих RFID-тегов
- •Подслушивание обмена данными между меткой и считывателем
- •Извлечение ключа сектора из перехваченного трафика
- •Атака путем подделки RFID
- •Автоматизация RFID-атак с помощью механизма скриптов Proxmark3
- •Пользовательские сценарии использования RFID-фаззинга
- •Заключение
- •11. Bluetooth Low Energy (BLE)
- •Как работает BLE
- •Необходимое оборудование BLE
- •BlueZ
- •Настройка интерфейсов BLE
- •Обнаружение устройств и перечисление характеристик
- •GATTTool
- •Bettercap
- •Взлом BLE
- •Настройка BLE CTF Infinity
- •Приступаем к работе
- •Заключение
- •12. Радиоканалы средней дальности: взлом Wi-Fi
- •Как работает Wi-Fi
- •Атаки Wi-Fi на беспроводные клиенты
- •Деаутентификация и атаки «отказ в обслуживании»
- •Атаки на Wi-Fi путем подключения
- •Wi-Fi Direct
- •Атаки на точки доступа Wi-Fi
- •Взлом WPA/WPA2
- •Взлом WPA/WPA2 Enterprise для сбора учетных данных
- •Методология тестирования
- •Заключение
- •13. Радио дальнего действия: LPWAN
- •Захват трафика LoRa
- •Настройка платы разработки Heltec LoRa 32
- •Настройка LoStik
- •Превращаем USB-устройство CatWAN в сниффер LoRa
- •Декодирование протокола LoRaWAN
- •Формат пакета LoRaWAN
- •Присоединение к сетям LoRaWAN
- •Атаки на LoRaWAN
- •Атаки с заменой битов
- •Генерация ключей и управление ими
- •Атаки воспроизведения
- •Подслушивание
- •Подмена ACK
- •Атаки, специфичные для приложений
- •Заключение
- •14. Взлом мобильных приложений
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Защита данных и зашифрованная файловая система
- •Подписи приложений
- •Аутентификация пользователя
- •Управление изолированными аппаратными компонентами и ключами
- •Проверенная и безопасная загрузка
- •Анализ приложений iOS
- •Подготовка среды тестирования
- •Статический анализ
- •Динамический анализ
- •Атаки путем инъекции
- •Хранилище связки ключей
- •Реверс-инжиниринг двоичного кода
- •Перехват и изучение сетевого трафика
- •Анализ приложений Android
- •Подготовка тестовой среды
- •Извлечение файла APK
- •Статический анализ
- •Обратная конвертация двоичных исполняемых файлов
- •Динамический анализ
- •Перехват и анализ сетевого трафика
- •Утечки по побочным каналам
- •Заключение
- •15. Взлом умного дома
- •Физический доступ в здание
- •Клонирование RFID-метки умного дверного замка
- •Глушение беспроводной сигнализации
- •Воспроизведение потока с IP-камеры
- •Общие сведения о протоколах потоковой передачи
- •Анализ сетевого трафика IP-камеры
- •Извлечение видеопотока
- •Атака на умную беговую дорожку
- •Перехват управления интеллектуальной беговой дорожкой на базе Android
- •Заключение
- •Инструменты для взлома интернета вещей
- •Предметный указатель
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
ды социальной инженерии, чтобы заставить пользователя посетить |
|
|
|
to |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
веб-сайт, на котором размещена вредоносная полезная нагрузка Ja- |
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
vaScript с XSS. XSS позволит уязвимому маршрутизатору войти в ту же локальную сеть, что и пользователь, чтобы вы могли отправлять ему команды через его службу UPnP. Эти команды в виде специаль- но созданных XML-запросов внутри объекта XMLHttpRequest могут заставить маршрутизатор перенаправлять порты из локальной сети в интернет.
Использование mDNS и DNS-SD
Multicast DNS (широковещательный DNS, mDNS) – это протокол с ну- левой конфигурацией, который позволяет вам выполнять DNS-по добные операции в локальной сети в отсутствие обычного одноад ресного DNS-сервера. Протокол использует тот же API, форматы пакетов и рабочую семантику, что и DNS, что допускает разрешение доменных имен в локальной сети.Обнаружение службы DNS (DNS Ser- vice Discovery, DNS-SD) – это протокол, который позволяет клиентам обнаруживать список именованных экземпляров служб (например, test._ipps._tcp.local или linux._ssh._tcp .local) в домене с помощью стандартных DNS-запросов. DNS-SD чаще всего используется вме- сте с mDNS, но не зависит от него. Оба они используются многими устройствами интернета вещей,такими как сетевые принтеры,Apple TV, Google Chromecast, устройства для хранения данных с подключе- нием к сети (NAS) и камеры. Большинство современных операцион- ных систем поддерживают их.
Обапротоколаработаютводномшироковещательномдомене;это означает,что устройства используютодин итотже уровеньпередачи данных,также называемый локальным каналом или уровнем 2 в мо- дели взаимодействия открытых систем (OSI) компьютерных сетей. Это означает, что сообщения не будут проходить через маршрутиза- торы, которые работают на уровне 3. Устройства должны быть под- ключены к тем же ретрансляторам Ethernet или сетевым коммута- торам для прослушивания этих многоадресных сообщений и ответа на них.
Протоколы локальных каналов могут создавать уязвимости по двум причинам. Во-первых, даже если вы обычно сталкиваетесь с этими протоколами в локальном соединении, локальная сеть не обязательно является надежной с взаимодействующими участника- ми. В сложных сетевых средах часто отсутствует правильная сегмен- тация, позволяющая злоумышленникам переходить от одной части сети к другой (например, путем компрометации маршрутизаторов). Кроме того, в корпоративных средах часто применяются политики использования собственного устройства (BYOD), которые позволяют сотрудникам использовать свои личные устройства в этих сетях. Си- туация усугубляется в общественных сетях, например в аэропортах или кафе. Во-вторых, небезопасные реализации этих сервисов могут
166 Глава 6
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
позволить злоумышленникам использовать их удаленно, полностью |
|
|
|
|
|
m |
|||||
|
w Click |
|
|
|
|
|
|
||||
|
w |
|
|
|
|
|
|
|
|
|
|
минуя локальные ссылки. |
|
w |
|
df-x chan |
|
o |
|
||||
|
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
В этом разделе мы рассмотрим, как злоупотреблять этими двумя протоколами в экосистемах интернета вещей. Вы можете выполнять разведку,атакитипа «человек посередине»,атакитипа «отказ в обслу- живании»,«отравление» одноадресного DNS-кеша и многое другое!
Как работает mDNS
Устройства используют mDNS, когда в локальной сети отсутствует обычный одноадресный DNS-сервер. Чтобы разрешить доменное имя для локального адреса с помощью mDNS, устройство отправляет DNSзапрос для доменного имени, заканчивающегося на .local, на широко-
вещательный адрес 224.0.0.251 (для IPv4) или FF02::FB (для IPv6). Вы также можете использовать mDNS для разрешения глобальных домен- ных имен (не.local),но в реализациях mDNS это поведение по умолча- ниюдолжнобытьотключено.ЗапросыиответыmDNSиспользуютUDP
ипорт 5353 в качестве как порта источника,так и порта назначения. Каждыйраз,когдапроисходитизменениеподключенияреспондера
(ответчика)mDNS,ондолженвыполнитьдвадействия:проверку(prob- ing) и объявление (announcing). Во время проверки, которая выполня- ется первой, хост запрашивает (с использованием типа запроса "ANY", который соответствует значению 255 в поле QTYPE в пакете mDNS) ло- кальную сеть на предмет того, используются ли уже записи, которые он хочет объявить. Если они не используются, хост объявляет о своих новых зарегистрированных записях (содержащихся в разделе ответа пакета),отправляя незапрошенные ответы mDNS в сеть.
mDNS-ответы содержат несколько важных флагов, включая зна- чение времени жизни записи (Time to Live, TTL), которое указывает, сколько секунд записьдействительна.Отправка ответа с TTL = 0 озна- чает,что соответствующая записьдолжна бытьаннулирована.Другой важный флаг–это битQU,который указывает,являетсяли запрос од- ноадресным, или нет. Если бит QU не установлен, пакет является ши- роковещательным. Поскольку можно получать одноадресные запро- сы за пределами локальной ссылки, безопасные реализации mDNS всегдадолжныпроверять,чтоадресисточникавпакетесоответствует диапазону адресов локальной подсети.
Как работает DNS-SD
DNS-SD позволяет клиентам обнаруживать доступные службы в сети. Чтобы использовать его, клиенты отправляют стандартные DNS-за просы для записей-указателей (PTR), которые сопоставляют тип службысоспискомименконкретныхэкземпляровэтоготипаслужбы.
Чтобы запросить запись PTR, клиенты используют форму имени "<Служба>.<Домен>". Часть <Служба> представляет собой пару меток DNS: символ подчеркивания,за которым следуетимя службы (напри-
мер, _ipps, _printer или _ipp) и либо _tcp, либо _udp. Часть <Домен>
Использование сети с нулевой конфигурацией 167
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
получает значение ".local". Затем респонденты возвращают запи- |
|
|
|
to |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
си PTR, которые указывают на сопутствующую службу (SRV) и текст |
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
(TXT). Запись mDNS PTR содержит имя службы, которое совпадает с именем записи SRV без имени экземпляра: другими словами, оно указывает на запись SRV. Вот пример записи PTR:
_ipps._tcp.local: type PTR, class IN, test._ipps._tcp.local
Часть записи PTR слева от двоеточия – это его имя, а часть спра- ва – это запись SRV, на которую указывает запись PTR. В записи SRV перечислены целевой хост и порт,по которым экземпляр службы мо- жет быть доступен. Например, на рис. 6.4 показана SRV-запись «test._ ipps._tcp.local» в Wireshark.
Рис.6.4.Пример записи SRV для службы «test._ipps._tcp.local».Поля Target и Port
содержат имя хоста и порт прослушивания для службы
Имена SRV имеют формат "<Экземпляр>.<Служба>.<Домен>". Мет-
ка <Экземпляр> включает удобное для пользователя имя для службы (в данном случае test). Метка <Служба> определяет, что делает служба и какой протокол приложения она использует для этого. Она состо- ит из набора меток DNS: символа подчеркивания, за которым следует имя службы (например, _ipps, _ipp, _http), за которым следует транс- портный протокол (_tcp, _udp, _sctp и т. д.). Часть <Домен> указывает субдомен DNS,в котором зарегистрированы эти имена.Для mDNS это
.local,но это может быть что угодно,если вы используете одноадрес- ный DNS. SRV-запись также содержит разделы Target и Port, содержа- щие имя хоста и порт,на котором можно найти службу (рис.6.4).
Запись TXT, имеющая то же имя, что и запись SRV, предоставля- ет дополнительную информацию об этом экземпляре в структури- рованной форме с использованием пар ключ/значение. Запись TXT содержит информацию,необходимую,когда IP-адреса и номера пор- та (содержащихся в записи SRV) недостаточно для идентификации службы. Например, в случае со старым протоколом Unix LPR запись TXT указывает имя очереди.
Проведение разведки с помощью mDNS и DNS-SD
Вы можете многое узнать о локальной сети, просто отправив запро- сы mDNS и перехватив многоадресный трафик mDNS.Например,мо-
168 Глава 6
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
жете обнаруживать доступные службы, запрашивать определенные |
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
экземпляры службы, перечислять домены и идентифицировать хостdf.-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
В частности,для идентификации хоста в системе, которую вы пытае- тесь исследовать, должна быть включена специальная служба _workstation.
Мы проведем разведку с помощью инструмента под названием Pholus, который разработал Антониос Атласис. Загрузите его с https:// github.com/aatlasis/Pholus/. Обратите внимание, что Pholus написан на Python 2, который официально больше не поддерживается. Воз- можно,вам придется вручную загрузить pip для Python2 по аналогии с установкой Umap (см. выше раздел «Получение и использование Umap»). Затем нужно будет установить Scapy, используя версию pip
для Python2:
# pip install scapy
Pholus будетотправлятьзапросы mDNS (-rq) влокальную сетьи за- хватывать широковещательный трафик mDNS (для -stimeout 10 се- кунд), собирая много интересной информации:
root@kali:~/zeroconf/mdns/Pholus# ./pholus.py eth0 -rq -stimeout 10
source MAC address: 00:0c:29:32:7c:14 source IPv4 Address: 192.168.10.10 source IPv6 address: fdd6:f51d:5ca8:0:20c:29ff:fe32:7c14
Sniffer filter is: not ether src 00:0c:29:32:7c:14 and udp and port 5353 I will sniff for 10 seconds, unless interrupted by Ctrl-C
------------------------------------------------------------------------
Sending mdns requests
30:9c:23:b6:40:15 192.168.10.20 QUERY Answer: _services._dns-sd._udp.local. PTR Class:IN "_ nvstream_dbd._tcp.local."
9c:8e:cd:10:29:87 192.168.10.245 QUERY Answer: _services._dns-sd._udp.local. PTR Class:IN "_ http._tcp.local."
00:0c:29:7f:68:f9 fd37:84e0:6d4f::1 QUERY Question: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.4
.d.6.0.e.4.8.7.3.d.f.ip6.arpa. * (ANY) QM Class:IN
00:0c:29:7f:68:f9 fd37:84e0:6d4f::1 QUERY Question: OpenWrt-1757.local. * (ANY) QM Class:IN 00:0c:29:7f:68:f9 fd37:84e0:6d4f::1 QUERY Auth_NS: OpenWrt-1757.local. HINFO Class:IN "X86_64LINUX"
00:0c:29:7f:68:f9 fd37:84e0:6d4f::1 QUERY Auth_NS: OpenWrt-1757.local. AAAA Class:IN "fd37:84e0:6d4f::1"
00:0c:29:7f:68:f9 fd37:84e0:6d4f::1 QUERY Auth_NS: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.4. d.6.0.e.4.8.7.3.d.f.ip6.arpa. PTR Class:IN "OpenWrt-1757.local."
На рис. 6.5 показан дамп Wireshark из запроса Pholus. Обратите внимание, что ответы отправляются обратно на адрес широковеща- тельнойрассылкичерезпортUDP5353.Посколькулюбойможетполу- читьмногоадресные сообщения,злоумышленник можетлегко отпра- вить запрос mDNS c поддельного IP-адреса и по-прежнему получать ответы в локальной сети.
Узнать больше о том, какие службы доступны в сети,– самый пер- вый шаг в любом тесте безопасности . Используя этот подход, вы мо-
Использование сети с нулевой конфигурацией 169