Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.pdf
Скачиваний:
24
Добавлен:
19.04.2024
Размер:
31.35 Mб
Скачать

 

 

 

 

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