Содержание статьи
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Все уже привыкли, что в отчете можно встретить картинку с захваченной пентестерами видеокамеры.
Безусловно, смотрится круто, но какой от этого импакт? Жизнь — это вам не игра Watchdogs 2, где взламывать устройства можно по картинке с камеры. Злоумышленник, наверное, может выследить что‑то важное, наблюдая, как сотрудники ходят по коридорам туда‑сюда, а потом использовать это для социальной инженерии, но все подобные сценарии похожи скорее на буйный полет фантазии.
С точки зрения пентеста куда интереснее получить шелл на захваченной камере. Раз внутри у нее небольшой компьютер, доступ к нему может оказаться небесполезным для атакующего.
Кейс 1: пароль по умолчанию
Думаю, ты не раз видел подобное окно логина в веб‑интерфейс камеры.
Понятно, что первая мысль — пойти в Google и поискать логины и пароли по умолчанию.
info
Иногда бывает, что знать логин и пароль от камеры не обязательно, чтобы получить с нее изображение. Для этого может быть достаточно подобрать правильную RTSP-ссылку, которая похожа на классическую HTTP-ссылку. Найти ее зачастую можно в документации к камере. Также для этого создан скрипт nmap
, но пока что в нем собраны далеко не все варианты ссылок.
Допустим, нам повезло и мы получили доступ в веб‑интерфейс с правами администратора. Самое простое и быстрое, что мы можем сделать, — поискать возможность запустить SSH или Telnet. В примере ниже такая возможность нашлась.
Пробуем активировать SSH. Ставим соответствующую галочку и жмем «Сохранить».
Нам стал доступен порт 22 (TCP). Логично попробовать подключиться к SSH с теми же логином и паролем, что подошли к веб‑интерфейсу. И у нас получается! Хотя, конечно, такое прокатывает не всегда.
Давай посмотрим, что нам удалось получить. Достаточно быстро понимаем, что попали в шелл BusyBox, который сильно ограничивает наши действия. Здесь есть два пути. Первый — каким‑то образом попытаться выйти из BusyBox в нормальный шелл (Bash, Ash или еще какой‑то). Этот способ потенциально может дать больший эффект, но он слишком долгий, чтобы проворачивать его в рамках ограниченного по времени пентеста.
Поэтому есть второй вариант: можем вспомнить про штатную возможность SSH проксировать трафик. В данном случае мы имеем дело с SSH-сервером Dropbear. Он легковесный, и его часто устанавливают на камеры. Казалось бы, для максимальной оптимизации из него должны были убрать возможности проксирования трафика, но производитель их оставил, чем мы сейчас и воспользуемся.
Для проксирования трафика через камеру пробуем подключиться к ней по SSH с помощью следующей команды:
ssh root@IP -D 4444
При выполнении такой команды на нашей системе поднимается порт с поддержкой SOCKS5, который средствами SSH проксирует наше соединение через целевое устройство, в данном случае камеру. Пробуем проверить, что коннект работает штатно.
Несмотря на то что мы не смогли обойти BusyBox, главной цели удалось достичь: проксировать трафик через камеру. На пентестах мне встречались инфраструктуры, в которых при обращении из сети камер не было никаких ограничений на доступ, что очень удобно для хакерских дел.
Кейс 2: уязвимость в прошивке
В этом кейсе обсудим, как получить RCE и запивотиться на камере, когда изначально никакого доступа не удалось получить вообще.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее