Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пользовать пультдистанционного управления для активации илиwде-

 

 

 

 

 

m

активации режима охраны.

w Click

 

 

 

 

 

o

 

w

 

df-x chan

 

 

 

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

Возможно,болеедорогиеисложныесистемысигнализацииобнару- жат помехи на частоте беспроводной связи и попытаются уведомить об этом пользователя. Во избежание обнаружения вы можете попы- таться заблокировать подключение к Wi-Fi базовой станции систе- мы охранной сигнализации, выполнив атаку деаутентификации, как обсуждалось в главе 12. Дополнительные сведения об использовании пакета Aircrack-ng вы найдете в этой главе.

Воспроизведение потока с IP-камеры

Допустим,выдействуетеотлицазлоумышленника,каким-тообразом получившего доступ к сети, в которой есть IP-камеры. Как выглядит эффективная атака с серьезными последствиями для конфиденци- альности, притом что вы не прикасаетесь к камерам? Это воспроиз- ведение видеопотока с камеры! Даже если в камерах нетуязвимостей (что маловероятно), злоумышленник, который занимает позицию «человек посередине», может захватить трафик из любых потенци- ально небезопасных каналов связи. Плохая (или хорошая – это уж с какой стороны посмотреть!) новость заключается в том,что многие современные камеры все еще используютнезашифрованные сетевые протоколы для потоковой передачи видео.Захват сетевого трафика– одно, а возможность продемонстрировать заинтересованным сторо- нам, что можно воспроизвести видео из этого дампа,–другое.

Вы можете легко занять позицию «человек посередине»,используя такие методы, как отравление кеша ARP или подмена DHCP (мы об этом упоминали в главе 3), если сеть не имеет сегментации. В при- мере с видеопотоком камеры мы предполагаем, что это уже было достигнуто и что вы захватили файл видеопотока сетевой камеры

вформате pcap, передаваемый через протокол потоковой передачи

вреальном времени (RTSP), транспортный протокол реального вре- мени (RTP) и протокол управления RTP (RTCP),о которых пойдетречь

вследующем разделе.

Общие сведения о протоколах потоковой передачи

Протоколы RTSP, RTP и RTCP обычно работают сообща. Не вдаваясь в подробности их внутренней работы, приведем краткое описание каждого.

zzRTSP – это протокол клиент–сервер, который действует как се- тевое средство дистанционного управления мультимедийными серверами с прямыми трансляциями и сохраненными клипами в качестве источников данных. Вы можете рассматривать RTSP какисточниккоманд,которыйможетотправлятьсерверукоман- ды «воспроизведение», «пауза», «запись», словно обычному ви- деопроигрывателю. RTSP обычно работает через TCP.

Взлом умного дома  437

 

 

 

 

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

 

 

 

RTP выполняет передачу мультимедийных данных. RTP работа-

 

 

to

 

 

 

 

 

zz

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

ет через UDP и совместно с RTCP.

w Click

 

 

 

 

 

o

 

 

w

 

df-x chan

 

 

 

 

.

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

e

 

zzRTCP периодически отправляет отчеты, которые содержат ста- тистику канала (например, количество отправленных и по- терянных пакетов и джиттер) участникам RTP. При этом RTP обычно отправляется через UDP-портс четным номером,а RTCP отправляется через следующий UDP-порт с нечетным номером: это можно увидеть в дампе Wireshark на рис. 15.7.

Анализ сетевого трафика IP-камеры

В нашем примере IP-камера имеет IP-адрес 192.168.4.180, а клиент, который должен принимать видеопоток, – IP-адрес 192.168.5.246. Клиентом может быть браузер пользователя или видеопроигрыва-

тель вроде VLC media player.

На правах злоумышленника, занимающего положение «человек посередине»,мы записали диалог,который показан на рис.15.7 в Wi­ reshark.

Рис.15.7.Вывод Wireshark для типичного мультимедийного сеанса,установленного через RTSP

и RTP

Трафик представляет собой типичный мультимедийный сеанс RTSP/RTP между клиентом и IP-камерой.Клиент начинает с отправки на камеру запроса RTSP OPTIONS . Этот запрос запрашивает у сервера типы запросов,которые он примет.Принятые типы затем содержатся в ответе RTSP REPLY .В этом случае это DESCRIBE,SETUP,TEARDOWN,PLAY, SET_PARAMETER,GET_PARAMETER иPAUSE (читателям,которые помнятэпо-

ху видеомагнитофонов VHS,это покажется знакомым)–см.рис.15.8.

Рис.15.8.Ответ камеры RTSP OPTIONS содержит типы запросов,которые она принимает

438  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Затем клиент отправляет запрос RTSP DESCRIBE , который включа-

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

ет URL-адрес RTSP (ссылка для просмотра канала камеры, в данномdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

случае rtsp://192.168.4.180:554/video. mp4). В этом запросе клиент запрашивает описание URL и уведомляет сервер с описанием форма- тов, понятных клиенту, используя заголовок Accept в форме Accept: application/sdp. Ответ сервера обычно имеет формат протокола описания сеанса (SDP), показанный на рис. 15.9. Ответ сервера име- ет для нас большое значение, потому что мы будем использовать эту информацию для создания основы файла SDP. Он содержит важные поля, такие как атрибуты мультимедиа (например, кодирование ви- део H.264 с частотой дискретизации 90 000 Гц) и используемые режи- мы пакетирования.

Рис.15.9.Ответ RTSP камеры на запрос DESCRIBE включает часть SDP

Следующие два запроса RTSP–это SETUP и PLAY.Первый просит ка- меру выделить ресурсы и начать сеанс RTSP, второй – начать отправ- ку данных в потоке, выделенном с помощью­ SETUP. Запрос SETUP включает два порта клиента для получения данных RTP (видео и ау- дио) и данных RTCP (статистика и управляющая информация). Ответ камеры на запрос SETUP подтверждает порты клиента и добавляет соответствующие выбранные порты сервера (рис. 15.10).

Рис.15.10.Ответ камеры на запрос SETUP клиента

После запроса PLAY сервер начинаетпередачу потока RTP и не- которых пакетов RTCP .Вернитесь к рис.15.7,где показано,что этот обмен происходит между согласованными по запросу SETUP портами.

Извлечение видеопотока

Теперь нам нужно извлечь байты из пакета SDP и экспортировать их в файл. Поскольку пакет SDP содержит важные сведения о том, как кодируется видео, эта информация нужна нам для воспроизведения видеопотока. Вы можете извлечь пакет SDP, выбрав пакет RTSP/SDP

Взлом умного дома  439

 

 

 

 

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

 

 

в главном окне Wireshark и Session Description Protocol (Протокол

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

описания сеанса), а затем щелкнув правой кнопкой мыши и отметив

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

Export Packet Bytes (Экспортировать байты пакета) – рис. 15.11. Со- храните байты в файл на диске.

Рис.15.11.Выберите часть SDP пакета RTSP в Wireshark и экспортируйте байты пакета в файл

Созданный файл SDP будет выглядеть примерно так, как в листин-

ге 15.1.

Листинг 15.1. Исходный файл SDP, сохраненный путем экспорта пакета

SDP из дампа Wireshark

v=0

o=- 0 0 IN IP4 192.168.4.180 s=LIVE VIEW

c=IN IP4 0.0.0.0 t=0 0

a=control:*

m=video 0 RTP/AVP 35 a=rtpmap:35 H264/90000 a=rtpmap:102 H265/90000 a=control:video a=recvonly

a=fmtp:35 packetization-mode=1;profile-level-id=4d4033;sprop-parameter-sets=Z0 1AM42NYBgAbNgLUBDQECA=,aO44gA==

Мы отметили наиболее важные части файла, которые нам нужно изменить. Мы видим владельца сеанса (-), идентификатор сеанса (0) и сетевой адрес отправителя . Для точности, поскольку отправи- телем этого сеанса будет наш локальный хост, мы можем изменить IP-адрес 127.0.0.1 или полностью удалить эту строку.Далее мы видим имя сеанса . Можно опустить эту строку или оставить ее как есть. В последнем случае ненадолго появится строка LIVE VIEW («прямое включение»), когда VLC воспроизведет файл. Далее выведен адрес

440  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прослушивающей сети .Следует изменить его на 127.0.0.1,чтобы не

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

открывать инструмент FFmpeg, который мы позже будем использоd-f-x chan

.c

 

 

 

.

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

вать в сети, потому что будем отправлять данные в FFmpeg локально

 

 

 

 

 

 

через сетевой интерфейс.

 

 

 

 

 

 

 

 

 

 

 

Самая важная часть файла – это значение, содержащее сетевой

 

 

 

 

 

 

порт для RTP . В исходном SDP-файле это 0, потому что порт был

 

 

 

 

 

 

согласован позже с помощью­

запроса RTSP SETUP. Нам нужно изме-

 

 

 

 

 

 

нить этот порт на допустимое в нашем случае ненулевое значение. Мы произвольно выбрали 5000.

В листинге 15.2 показан измененный SDP-файл. Мы сохранили его под именем camera.sdp.

Листинг 15.2. Измененный файл SDP

v=0

c=IN IP4 127.0.0.1 m=video 5000 RTP/AVP 35 a=rtpmap:35 H264/90000 a=rtpmap:102 H265/90000 a=control:video a=recvonly

a=fmtp:35 packetization-mode=1;profile-level-id=4d4033;sprop-parameter-sets=Z0 1AM42NYBgAbNgLUBDQECA=,aO44gA==

Второйшаг–извлечениепотокаRTPизWireshark.RTP-потоксодер- житзакодированные видеоданные.Откройте файл pcap,содержащий захваченные пакеты RTP в Wireshark; затем щелкните Telephony > RTP Streams (Телефония>ПотокиRTP).Выберитепоказанныйпоток, щелкните по нему правой кнопкой мыши и выберите Prepare Filter (Подготовить фильтр). Еще раз щелкнув правой кнопкой мыши, вы- берите Export as RTPDump (Экспортировать как RTPDump). Затем сохранитевыбранныйпотокRTPкакфайлrtpdump(мысохранилиего как camera.rtpdump).

Чтобы извлечь видео из файла rtpdump и воспроизвести его, вам потребуются следующие инструменты: инструменты RTP для чтения

ивоспроизведения сеанса RTP, FFmpeg для преобразования потока

иVLC для воспроизведения окончательного видеофайла. Если вы ис- пользуетеDebianнаосноведистрибутива,такогокакKaliLinux,може- те легко установить первые два инструмента с помощью­ apt:

$ apt-get install vlc

$ apt-get install ffmpeg

Вам нужно будет загрузить инструменты RTP вручную либо с веб-­

сайта (https://github.com/irtlab/rtptools/), либо из репозитория GitHub.

Используя git, вы можете клонировать последнюю версию репози-

тория GitHub:

Взлом умного дома  441

 

 

 

 

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

 

 

 

 

$ git clone https://github.com/cu-irt/rtptools.git

Затем скомпилируйте инструменты RTP:

 

 

 

 

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

 

 

 

 

 

-x cha

 

 

 

 

$ cd rtptools

$ ./configure && make

Запустите FFmpeg, используя следующие параметры:

$ ffmpeg -v warning -protocol_whitelist file,udp,rtp -f sdp -i camera.sdp -copyts -c copy -y out.mkv

Мы заносим в белый список разрешенные протоколы (файл, UDP и SDP),потому что это правильный подход–указывать разрешенные протоколы в явном виде. Параметр -f устанавливает формат входно- го файла SDP независимо от расширения файла. Параметр -i предо- ставляет измененный файл camera.sdp в качестве входных данных. Параметр -copyts означает, что входные временные метки не будут обрабатываться. Параметр -c copy показывает, что поток не должен перекодироваться, он только выводится; параметр -y перезаписыва- ет файлы вывода без запроса на удаление старого файла. Последний аргумент (out.mkv) – это выходной видеофайл.

Теперь запустите RTP Play, указав путь к файлу rtpdump в качестве аргумента для переключателя -f:

~/rtptools-1.22$ ./rtpplay -T -f ../camera.rtpdump 127.0.0.1/5000

Последний аргумент– это сетевой адрес назначения и порт, на ко- торый будет воспроизводиться сеанс RTP. Этот аргумент должен со- ответствовать одному потоку FFmpeg, прочитанному через файл SDP (помните, что мы выбрали 5000 в измененном файле camera.sdp).

Обратите внимание, что вы должны выполнить команду rtpplay сразу после запуска FFmpeg,потому что по умолчанию FFmpeg завер- шает работу, если в ближайшее время не поступит входящий поток. Инструмент FFmpeg затем декодирует воспроизведенный сеанс RTP и выведет файл out.mkv.

  ПРИМЕЧАНИЕ    Если вы используете Kali Linux, как показано в нашем примере, следует запустить все соответствующие инструменты от имени пользователя без полномочий root.Причина в том,что вредонос- ные данные могут существовать где угодно, и существуют известные уязвимости, связанные с повреждением памяти в сложном программ- ном обеспечении,таком как видеокодеры и декодеры.

Наконец,VLC сможет воспроизвести видеофайл:

$ vlc out.mkv

442  Глава 15