Информация О том, что можно сделать со взломанной камерой


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 142
Репутация
8 267
Всем привет!

У нас тут на форуме есть популярная тема:ОБНОВЛЕНИЕ БРУТФОРСЕРА "IPCAMBRUTER v3.4.2.1697" FULL VERSION!

Но было интересно, что в итоге можно сделать с камерой, зачем брутфорсить ?

В этой приватно статье с Хакера, можно почитать:

Я сделаю перепост, надеюсь автор не будет против.)

1719129807086.png


Картинка с камеры, безусловно, смотрится круто, но какой от этого импакт? Жизнь — это вам не игра Watchdogs 2, где взламывать устройства можно по картинке с камеры. Злоумышленник, наверное, может выследить что‑то важное, наблюдая, как сотрудники ходят по коридорам туда‑сюда, а потом использовать это для социальной инженерии, но все подобные сценарии похожи скорее на буйный полет фантазии.

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

КЕЙС 1: ПАРОЛЬ ПО УМОЛЧАНИЮ​

Думаю, ты не раз видел подобное окно логина в веб‑интерфейс камеры.

1719129884130.png


Понятно, что первая мысль — пойти в Google и поискать логины и пароли по умолчанию.

Иногда бывает, что знать логин и пароль от камеры не обязательно, чтобы получить с нее изображение. Для этого может быть достаточно подобрать правильную RTSP-ссылку, которая похожа на классическую HTTP-ссылку. Найти ее зачастую можно в документации к камере. Также для этого создан скрипт nmap rtsp-url-brute, но пока что в нем собраны далеко не все варианты ссылок.
Допустим, нам повезло и мы получили доступ в веб‑интерфейс с правами администратора. Самое простое и быстрое, что мы можем сделать, — поискать возможность запустить SSH или Telnet. В примере ниже такая возможность нашлась.

1719129958470.png


Пробуем активировать SSH. Ставим соответствующую галочку и жмем «Сохранить».

1719129981473.png


Нам стал доступен порт 22 (TCP). Логично попробовать подключиться к SSH с теми же логином и паролем, что подошли к веб‑интерфейсу. И у нас получается! Хотя, конечно, такое прокатывает не всегда.

1719130010373.png


Давай посмотрим, что нам удалось получить. Достаточно быстро понимаем, что попали в шелл BusyBox, который сильно ограничивает наши действия. Здесь есть два пути. Первый — каким‑то образом попытаться выйти из BusyBox в нормальный шелл (Bash, Ash или еще какой‑то). Этот способ потенциально может дать больший эффект, но он слишком долгий, чтобы проворачивать его в рамках ограниченного по времени пентеста.

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

Для проксирования трафика через камеру пробуем подключиться к ней по SSH с помощью следующей команды:

ssh root@IP -D 4444

1719130077558.png


При выполнении такой команды на нашей системе поднимается порт с поддержкой SOCKS5, который средствами SSH проксирует наше соединение через целевое устройство, в данном случае камеру. Пробуем проверить, что коннект работает штатно.

1719130134716.png


Несмотря на то что мы не смогли обойти BusyBox, главной цели удалось достичь: проксировать трафик через камеру. На пентестах мне встречались инфраструктуры, в которых при обращении из сети камер не было никаких ограничений на доступ, что очень удобно для хакерских дел.

КЕЙС 2: УЯЗВИМОСТЬ В ПРОШИВКЕ​

В этом кейсе обсудим, как получить RCE и запивотиться на камере, когда изначально никакого доступа не удалось получить вообще.

Тут, правда, начальные условия немного сложнее. Допустим, мы снова встретили знакомый веб‑интерфейс, попробовали пароли по умолчанию и еще несколько популярных паролей. Ничего не подошло, и попасть в админку мы не смогли. В таком случае можно было бы опустить руки и идти дальше. Но нет, мы пойдем в Google и поищем зарегистрированные уязвимости, желательно с готовым эксплоитом.

Мне удалось найти баг CVE-2021-36260. Это лишь пример, с другим оборудованием тебе может попасться любой другой баг. Но мне повезло сразу выйти на .

Импакт от эксплуатации — возможность удаленного выполнения кода (RCE). Эксплуатация с готовым эксплоитом обычно происходит в одну команду.

1719130527422.png


Скрипт успешно отрабатывает, и мы получаем шелл на камере. В данном случае это полноценный Ash. Дальнейшие действия могут развиваться как угодно. Можем, например, залить C2 для закрепа или пивотинга. Ну а самый простой способ я уже описал выше: можно просто проксировать трафик с помощью SSH.

КЕЙС 3: ХАРДКОД В ПРОШИВКЕ​

В этот раз ситуация будет поинтереснее. Проксировать трафик нам поможет функция самой прошивки.

Логинимся в веб‑интерфейс камеры средствами basic-аутентификации: снова подошли дефолтные креды. И сразу ищем, какие есть возможности для запуска SSH или Telnet. Таких возможностей не находим.

1719130592088.png


Сканируем порты и видим, что нам доступен Telnet.

1719130617498.png


Недолго думая, пробуем подключиться к нему с логином и паролем от веб‑интерфейса. У нас ничего не выходит. Не сдаемся и идем в Google. Производитель пишет, что Telnet нужен только разработчикам, а обычным пользователям там делать нечего, и никаких паролей в открытом доступе нет. Можно было бы отступить, но пентестер — это не обычный пользователь. Я скачал прошивку с сайта производителя и решил в ней покопаться.

1719130655067.png


Пробуем открыть прошивку обычным архиватором вроде 7-Zip. И у нас получается! Удивительно, но прошивка никак не защищена, не зашифрована и не использует внутри свою замороченную файловую систему. Все просто и доступно.

1719130687243.png


Мы получили доступ к файловой системе rootfs. В ней есть директория /etc, а там — файлик passwd. Открываем его и видим хеш от учетки root.

1719130709814.png


Комментарии излишни!

1719130728783.png


Естественно, пробуем брутить этот хеш. Прошивка старенькая — 2019 года, вероятность сбрутить такой хеш достаточно большая. Забегая вперед, скажу, что все получится.

Брутим при помощи hashcat:

Код:
hashcat -a 0 -m 500 '$1$ct81jPGd$V4mhTmjAOkTwNhnFsIrmt1' /usr/share/wordlists/rockyou.txt

1719130768495.png


Мне стало интересно, что за камеру я встретил, и, поискав по паролю, я нашел занятную . Как оказалось, это камеры китайского завода Brovotech, где закупаются многие производители. Если при пентесте встретишь noname-камеру, возможно, тебе подойдет тот же пароль.

Попробуем подключиться к Telnet с помощью пароля, который только что сбрутили.

1719130811348.png


Мы смогли подключиться к камере и получить полноценный шелл. Но Telnet, может быть, и хорош, но он «из коробки» не дает возможности проксировать трафик, как это делает SSH. Поэтому нам понадобится какое‑то дополнительное средство, например SOCKS-прокси или C2.

Попробуем самый простой и распространенный вариант C2 — Metasploit с нагрузкой Meterpreter. Антивирусов на камерах я пока ни разу не встречал, поэтому можно не стесняться.

Генерируем нагрузку:

Код:
msfvenom -p linux/armle/meterpreter/bind_tcp -f elf -o bind

1719130865149.png


Теперь у нас есть бинарь, и встает вопрос о том, как его залить на камеру. Netcat отсутствует, curl нет, да и вообще почти ничего нет. Остается пересылать побайтово, например с помощью printf. Сгенерировать нагрузку можно примерно так:

Код:
cat bind | od -An -t o1 -v | tr ' ' '/' | while read line
do echo "printf '$line' >> out.bin" | tr '/' '\'
done

Здесь стоит сказать большое спасибо моему коллеге за то, что помог все это автоматизировать.

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

1719130922039.png


Залитому файлу не забываем дать права на исполнение и пробуем запустить. Действительно — все сработало. Своей цели мы достигли: снова получили RCE на камере. А как сделать прокси, ты уже знаешь.


КЕЙС 4: МОДИФИКАЦИЯ ПРОШИВКИ​

И один из самых интересных кейсов — модификация прошивки. У нас есть доступ к веб‑интерфейсу камеры, но нет возможности включить SSH или Telnet. Но мы можем обновить на камере прошивку, это и попробуем сделать.

Итак, мы получили сетевой доступ к веб‑интерфейсу камеры. По традиции не забываем сходить в Google и поискать креды по умолчанию.

1719130963541.png


Креды нашли и заходим в админку. Но возможности включить Telnet или SSH там нет. Зато мы обращаем внимание на вкладку, в которой нам предлагают обновить прошивку из файла.

1719130986152.png


Создавать прошивку с нуля — это долгое и сложное занятие. Поэтому мы можем попробовать взять прошивку от производителя и немного замоддить. Идем на сайт производителя и находим там подходящий файлик. Качаем и снова без труда открываем обычным архиватором.

Обнаруживаем интересный скрипт run.sh. Само название нам намекает на то, что он выполнится при загрузке камеры. В скрипте есть строчка telnetd &, но она закомментирована. Предполагаем, что если ее раскомментировать, то при старте камеры включится Telnet. Давай попробуем!

1719131019939.png


Также в прошивке есть файловая система rootfs. В ней — директория /etc, а там, как водится, файл passwd, в котором снова лежит хеш от учетки root. Но на этот раз смысла что‑то брутить нет. Мы просто сгенерим такой же хеш, но от пароля, который мы знаем. Затем заменим хеш и сохраним файл.

Генерируем хеш:

openssl passwd -1 password

1719131059486.png


1719131072746.png


После этих манипуляций мы почти готовы перезаливать прошивку. Неужели все так просто? Да, почти. Стоит лишь учесть тип файловой системы, используемый в прошивке. В нашем случае это cramfs. Распаковать ее действительно можно обычным архиватором, но вот запаковать уже так просто не получится. Для этого нам надо установить и выполнить такую команду:

mkcramfs romfs romfs-x.cramfs

Если ты зальешь неправильную прошивку, камера, скорее всего, превратится в «кирпич» и в реальном пентесте ты больше не сможешь получить к ней доступ.

Вот теперь мы уже точно готовы к прошивке камеры.

1719131208224.png


Жмем кнопку «Прошивка», и камера перестает отвечать на пинги и вообще не подает никаких признаков жизни.

1719131226655.png


Но спустя минуту она снова появляется, и мы можем наконец выдохнуть. Смотрим, поднялся ли наш Telnet. Да, он работает, и мы можем подключиться к нему с паролем, который внесли в /etc/passwd.

1719131248961.png


На этот раз нам доступен Netcat.

1719131265473.png


С помощью Netcat мы легко перенесем любую нагрузку и сможем запустить ее. Например, Meterpreter, который мы сгенерировали ранее.

После того как у нас снова залит и запущен C2-агент на камере, можно запускать прокси. На этот раз всего в несколько команд:

Код:
run autoroute -s 10.0.0.0/8
background
use auxiliary/server/socks_proxy
run

После этого мы получим полноценное проксирование через камеру, а также удобный контроль над ней в виде C2-агента.

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

Кстати, искать камеры достаточно просто — по сочетанию открытых TCP-портов 80 и 554.

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

ДЛЯ ЗАЩИТНИКОВ​

Наверное, ты уже заметил, что все кейсы начинались с того, что на камере установлен пароль по умолчанию. А кейсы с прошивками были связаны с захардкоженными паролями. Исходя из этого, для защиты камер рекомендую:
  • меняй дефолтные пароли, это прикроет почти все возможные векторы эксплуатации;
  • обновляй софт, производители зачастую выпускают обновления безопасности;
  • обновляй железо, иногда так бывает, что устройство перестает поддерживаться, в таком случае стоит заменять его более актуальным;
  • рекомендуй начальству проводить пентесты, чтобы обнаруживать подобные недостатки в своих инфраструктурах и вовремя принимать меры;
  • изолируй сегмент камер от основной инфраструктуры.
Иногда бывает, что камеры находятся не в ведомстве ИТ- или ИБ‑отделов, а в ведомстве отдела безопасности (охраны). В таком случае влиять на обновление камер со стороны ИБ очень тяжело. Могу только порекомендовать стараться изолировать сегменты сети, на обновления которых твоя команда не может влиять.

ВЫВОДЫ​

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

HMCoba

Активный пользователь
Активный
Регистрация
22.04.2023
Сообщения
200
Репутация
153
Очень подробная и полезная статья для пентеста, спасибо за статью!
RESPECT!
 
Последнее редактирование:

charonV

Пользователь
Форумчанин
Регистрация
01.07.2020
Сообщения
2
Очень интересная статья, спасибо автору!
 
Верх Низ