Эксперимент по удалённому запуску кода на принтере

15 июня 2017 года

Якоб Бейнс (Jacob Baines), участвующий в разработке сетевого сканера безопасности Nessus, опубликовал статью, в которой показал печальное состояние с защитой сетевых принтеров. После покупки новых офисных принтеров HP OfficeJet Pro 8210 Якоб обнаружил, что они укомплектованы устаревшей прошивкой, в которой производителем отмечена уязвимость CVE-2017-2741, а автоматическая установка обновлений отключена в настройках.

Производитель приводит только общие сведения об уязвимости CVE-2017-2741, не раскрывая детали. Исследователя насторожило, что проблеме присвоен критический уровень опасности (9.8 из 10) и упоминается, что потенциально проблема может привести к удалённому выполнению кода, поэтому он решил самостоятельно проанализировать защищённость своего принтера. В итоге, было выявлено, что на сетевом порту 9100 принтер без ограничения принимает команды на языке PJL (Printer Job Language). Доступ к файловой системе ограничен каталогами tmp/ и csr_misc/, но данное ограничение тривиально обходится через передачу символов "../" в составе пути, например, для доступа к файлу с паролями можно выполнить команду "@PJL FSUPLOAD NAME="../../etc/passwd".

Более того, некоторые системные директории оказались доступны на запись, что позволило разместить собственный скрипт инициализации в директории "/rw/var/etc/profile.d/", который был запущен во время перезапуска принтера. Например, удалось успешно загрузить и запустить бэкдор для удалённого входа на принтер с правами root:


$ python printer_exploit.py 192.168.1.158 9100
connecting to 192.168.1.158 port 9100
@PJL FSQUERY NAME="0:/../../rw/var/etc/profile.d/lol.sh" TYPE=FILE SIZE=119
Done! Try port 1270 in ~30 seconds
albinolobster@ubuntu:~$ nc 192.168.1.158 1270
whoami
root

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Эксперимент по удалённому запуску кода на принтере», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.