Просмотров: 7516

Принтер, как источник угрозы. Часть 4


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

HP printer принтер угрозы взлом компрометация уязвимость перепрошивка PJL HP Canon Samsung МФУ MFU атака сетевые принтеры безопасность защита угрозы секьюрити

Принтер должен печатать, и ничего более

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

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

Наиболее просто обход авторизации выполняется на некоторых МФУ марки Toshiba, поэтому наш практический пример посвящен именно ей. Здесь нужно просто знать прямой путь-URL на любое вложенное меню web-панели, но поскольку все эти пути стандартные на всех моделях принтера, то это не такой уж и большой секрет.

Вот пример такого произвольного пути в меню Сканирование:

http://198.68.0.1/TopAccess/Administrator/Setup/ScanToFile/list.htm

Если предварительно не авторизоваться на таком принтере/МФУ и попробовать сразу перейти на одну из страниц web-панели — произойдет вполне логичный редирект на страницу c приглашением сначала ввести пароль:

http://198.68.0.1/TopAccess/Administrator/Login/Login.htm

Да-да, это сработала встроенная система безопасности принтера — лично я очень впечатлен таким поворотом дел. Очень хорошо, тогда добавляем дополнительный «слэш» в первоначальный адрес как показано ниже и пробуем ещё раз:

198.68.0.1/TopAccess//Administrator/Setup/ScanToFile/list.htm

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

Через трюки примерно подобного мелкого пошиба сходу ломаются web-панели многих известных принтеров, поэтому, забегая чуть вперед, сразу выдам совет — забудьте про web-управление принтером как кошмарный сон, отключите его в первую очередь и немедленно! Хотя в первой части этой статьи я показывал, как свободно найти через Google до 10000 принтеров по всему миру вообще без установленного пароля, можно смело утверждать, что ваш принтер даже с установленным паролем, — точно также открыт мотивированному на то специалисту в области «темных сетевых наук», поэтому лучше не искушать судьбу, полагаясь на «типа очень сложные пароли».

Кстати о паролях... согласитесь, как-то не эстетично лазить в чужие принтера «через окна», когда существует вполне нормальные «входные двери», и пароли — эти двери отворяющие.

Как-то кошки на душе скребут, когда вот так вот через какой прямой URL, порой нахрапом вваливаешься в чужую администраторскую зону — не эстетично это всё как-то, право...

HP printer принтер угрозы взлом компрометация уязвимость перепрошивка PJL HP Canon Samsung МФУ MFU атака сетевые принтеры безопасность защита угрозы секьюрити

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

Как видно на рис. ниже, в свойстве поля Password сразу открыто указан как бы скрытый от вас на странице звёздочками пароль. Записывайте все эти пароли на бумажку, и не лазьте в чужие принтеры какими-то окольными путями — помните, всегда важно сохранять человеческое достоинство, даже занимаясь ни пойми чем.

Toshiba printer принтер угрозы взлом компрометация уязвимость перепрошивка PJL HP Canon Samsung МФУ MFU атака сетевые принтеры безопасность защита угрозы секьюрити

Кроме того, если есть физический доступ к принтеру, все ваши пароли на нём можно также аннулировать, просто выполнив сброс настроек принтера (hard reset), поэтому ваши «продвинутые» сотрудники при распечатке могут убить двух зайцев сразу: распечатать нужный текст, а также, раз уж дошли к принтеру ногами — сбросить все пароли на нём, для последующего беспрепятственного доступа к нему через сеть.

Дьявол носит Praeda

Тема обзора уязвимостей доступных в принтерах и МФУ достаточно огромна, но ещё один момент которого я бы хотел обязательно коснуться напоследок, это ответ на логичный вопрос: как добывается такое количество уязвимостей на принтеры?

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

В нашем примере мы рассмотрим специализированный исследовательский инструмент — Praeda (полное и очень глубокомысленное название: Praeda Harvesting Tool), который, несмотря на свою молодость уже успел снискать определенную известность «в узких кругах». Эта программа впервые была представлена на конференции по информационной безопасности ShmooCon 2011.

Итак, Praeda — это довольно объемный скрипт на Perl (кстати, в самом конце 2011 года принято принципиальное решение и начат процесс переноса этого проекта с языка Perl на Ruby, но это начинание пока ещё в самой начальной стадии своей реализации), который предназначен для поиска активных уязвимостей в web-панелях управления современных лазерных принтеров и МФУ, и который не только очень активно развивается в последнее время, но и содержит в себе достаточно продвинутые эвристические алгоритмы, а не только банальный fuzzing или перебор уже стандартных/известных способов взлома известных web-панелей управления.

Например, в данный момент завершается изучение и тестирование модуля расшифровки бэкапов и экспорта настроек создаваемых некоторыми известными принтерными вендорами.

Praeda fuzzing принтеры угрозы взлом компрометация уязвимость перепрошивка PJL HP Canon Samsung МФУ MFU атака сетевые принтеры безопасность защита угрозы секьюрити

Программа при своей работе рассчитывает на то, что настройки уровня безопасности МФУ и лазерных принтеров представляют из себя значения по умолчанию, поэтому она пытается выудить максимально большой объем информации с таких устройств, включая имена зарегистрированных пользователей, адреса электронной почты, адресные книги пользователей, данные аутентификации SMB, email, LDAP-пароли и т.д.

Как правило, вся подобная информация используется как стартовая точка для развития атаки на локальную сеть.

Давайте очень кратко опишем, на что способна текущая версия Praeda:

  • Поставляется около 30 специализированных модулей (то есть если в принтере обнаруживается какая-то отдельная уязвимая служба — стартует отдельный модуль её обрабатывающий);
  • На данный момент поддерживаются более 40 известных марок принтеров, такие как Canon, HP, Lexmark, Ricoh, Sharp, Toshiba, Xerox и другие;
  • Многопоточный режим работы, допускается передача в качестве аргументов сразу целого списка из принтеров;

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

praeda.pl target_file tcp-port project_name output_file [-ssl]

Здесь файл target_file содержит список-перечисление всех принтеров (их сетевых адресов), которые должны быть исследованы, записанные в формате один адрес на строчку. Аргумент tcp-port указывает на порт web-панели (допускается только одно — общее для всех значение ), а project_name  — это названия вашего проекта-исследования, физически же будет создана отдельная папка с этим названием, куда будут складироваться все собранные в рамках этого запуска данные.

Кроме того в этой папке будет создан файл data-file.log , который документирует все операции выполняемые Praeda во время своей работы (название этого файла и определяет последний обязательный аргумент — output_file ). Здесь опция ssl необязательна, она позволяет работать с принтерами, где доступ к их web-панели открыт только через этот криптографический протокол.

Вот пример запуска его диспетчера (головного файла комплекса):

./praeda.pl  target.lst 80 pentest1 data-file

Хотелось бы отметить, что различные модули Praeda, которые могут быть автоматически запущены, будут подключаться по разным протоколам и портам, отличным от указанного в строке запуска скрипта, поэтому предварительно убедитесь, что ваш локальный брандмаер лояльно настроен по отношению к этому скрипту. И последнее, для его работы требуются следующие установленные в системе Perl-модули:

LWP::Simple, LWP::UserAgent, HTML::TagParser, URI::Fetch, HTTP::Cookies, IO::Socket, HTML::TableExtract.

Справка: современные принтерные языки
Наиболее известный на данный момент принтерный язык — PJL (HP Printer Job Language), — современный метод, реализующий уровень контроля заданий и расширенного управления принтером (в противоположность PCL или HP-GL/2). Так, например, он обеспечивает прозрачное переключение между языками для каждого отдельного документа, вывод сообщений на контрольную панель, настройку конфигурации, команды по управлению файловой системой принтера и многое-многое другое. Известная хакерская утилита Phenoelit’s Hijetter позволяет использовать по своему усмотрению любые PJL-функции принтеров, в том числе малоизвестные и недокументированные. Несмотря на уверения производителей в абсолютно безопасной реализации PJL, достаточно сделать запрос в Google по словосочетанию «PJL exploits » чтобы убедиться, что здесь всё не так гладко (мне понравилось вот это, например).

Исторически PJL задумывался как мощное расширение языков PCL и JCL и создавался на их основе. Несмотря на то, что PJL это разработка компании HP, сейчас этот язык используется на множестве современных принтеров от других известных производителей. Правда, в некоторых случаях их реализации могут содержать свои собственные функции, несовместимые с прототипом (эта ситуация отчасти напоминает SQL с его множеством общих диалектов, иногда несовместимых между собой в деталях).

PJL, отчасти наряду с более ранними и более простыми языками «разметки страниц» — PostScript (PS), Encapsulated PostScript (EPS), Epson Job Language (EJL) и Printer Command Language (PCL), — на данный момент монопольно доминирует на рынке принтеров. В свою очередь некоторые идеи PJL получили дальнейшее развитие в PML (HP Printer Managment Language) — новейшем объектно-ориентированном двухстороннем протоколе для одновременного обмена информацией между множеством приложений и множеством принтеров (например, используемый для SNMP-взаимодействий с принтерами).

~

Читать этот материал дальше. Оглавление и начало этой серии статей — здесь.

Игорь Савчук ©  Системный Администратор, 2012
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , ,
Эта запись опубликована: Четверг, 2 августа 2012 в рубрике Обзоры.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз