Хотите дальше читать devby? 📝
Support us

Принтер-шоу: творим хардкор своими руками. Часть 2

Оставить комментарий
Принтер-шоу: творим хардкор своими руками. Часть 2
hardcore Сетевые принтеры и МФУ, какие скрытые проблемы безопасности и приватности они порождают? В этой заключительной части мы сосредоточимся на возможностях их удаленной перепрошивки, дефолтных паролях и кое-чем ещё не менее интересном. По непонятным для меня причинам многие принтерные вендоры организовали механизм обновления прошивки так, что для его проведения даже не нужно знать системный пароль принтера. Более того, для этого не нужно скачивать специальный менеджер производителя: любой может проделать эту относительно несложную процедуру удаленно, как через web-панель, так и через обычный netcat, тогда как инициировать её можно и вовсе через интернет – посылкой «магического» задания для печати. Продолжаем ранее начатый нами разговор.

Трюк # 5. Мастерим своё облачное хранилище

Давайте теперь посмотрим на проблему принтеров немножко с другой стороны. Вот, например, вы напечатали некий важный и конфиденциальный договор – куда он делся после этого? Возможно, такая постановка вопроса немножко обескуражит неподготовленного читателя, давайте попробуем ответить на него вместе. Я свел наиболее известные системные папки (их адреса) в принтере в таблицу, приведенную ниже. В этих сетевых папках принтера надолго оседает всё напечатанное и принятое им, включая интимные послания отдельных сотрудников, распечатанные ими полгода назад на казенной технике, рецепты вкусной и не всегда здоровой пищи, а иногда, вы не поверите мне, попадается даже что-то, хм… политическое. table К главной общей папке принтера от HP чаще всего можно получить доступ по адресу http://192.168.1.1/hp/device/ где вместо 192.168.1.1 нужно указать сетевой адрес искомого принтера. Итак, суммируем: сетевой принтер можно использовать как большую удаленную «флэшку» (или ftp-сервер, так как большинство из них поддерживает этот протокол), на котором, как правило, отсутствует пароль, поэтому для многих хакеров печатающие устройства – идеальное место для создания скрытых от посторонних глаз «файлопомоек», находящихся к тому же глубоко в тылу врага и далеко позади линии фронта (всех граничных офисных брандмауэров). Размер встроенного винчестера на большинстве современных моделей офисных принтеров колеблется в диапазоне от 5 до 50Gb, что более чем достаточно для подобного специализированного хостинга.  Advanced printer storage Advanced printer storage В отличие от меня, скромного брестского Perl'писателя, смелый и независимый американский исследователь Бен Смит решил вообще создать настоящее распределенное облако для хранения своих файлов на этих халявных принтерных ресурсах – ну, что-то типа дармового Dropbox. Смит представил программу PrintFS, которая автоматически ищет уязвимые офисные устройства через Интернет или по внутренней сети, взламывает их и превращает их в распределенную систему хранения. Она может быть использована хакерами в качестве свободного места для хранения вредоносных программ или других спорных материалов. «PrintFS сканирует и ищет все сетевые устройства, поэтому за 20-30 минут вы сможете найти и создать своё собственное приватное облачное хранилище», – заверяет Смит.

Трюк # 6. Прошитый в особо извращенной форме

На самом деле до этого трюка был исключительно подготовительный материал для разогрева вашего дельта-ритма головного мозга, а теперь начинается обещанный в заголовке – кромешно-адский хардкор. Для большей определенности я выбрал первые принтеры из серпа Google со скриншота, приведенного выше: посмотрите внимательно на скриншот ниже – здесь мы можем свободно загрузить любое свое задание для печати в меню Print даже без любой авторизации, и далее я привожу типичное такое меню: printer Но мы ведь не печатать собрались на другом краю света? Здесь видно (я обвел красным) очень важное примечание про возможность интерпретации .rfu-файлов (даже если его и нет в подписи на другой модели принтера в этом меню, rfu-команды всё равно будут почти наверняка исполняться) – то есть файлов-прошивки и специальных команд для управления принтером. Иначе говоря, внимание: для того чтобы перепрошить чужое устройство через интернет, при этом как угодно изменив его функциональность, не нужно знать даже пароля – каждый принтер открыт к своей модификации любыми сторонними людьми. К примеру, как вам такая шалость: безобидная посылка любых заведомо неподдерживаемых (несуществующих) команд к принтеру приведет к его прочной блокировке. Второй, ещё более надёжный вариант перепрошивки принтера – посылка задания на печать на тот самый заветный порт 9100, как было показано в трюке №2, но с единственным отличием: посылать мы будем не обычный текст, а специальные оп.коды на языке принтера PJL. Позвольте дать совсем немного справочной информации об этом неизвестном широкой публике языке, прежде чем мы продолжим мутить наше последнее дело. PJL (HP Printer Job Language) – это язык, реализующий уровень контроля заданий и расширенного управления принтером. Так, например, он обеспечивает переключение между языками для документов, вывод сообщений на контрольную панель, настройку конфигурации, команды по управлению файловой системой принтера и многое-многое другое. Известная хакерская утилита Phenoelit’s Hijetter позволяет через сеть использовать любые PJL-функции принтеров, в том числе недокументированные, а также примонтировать его файловую систему к своей локальной ФС. Несмотря на уверения производителей в безопасной реализации PJL, достаточно сделать запрос в Google по словосочетанию ”PJL exploits” чтобы убедиться, что здесь не всё так гладко. Например, часто официально отрицается возможность удаленной перепрошивки принтеров, и в то же самое время в языке PJL всё-таки содержится недокументированная функция remote firmware update (RFU). И, хотя некоторые диалекты PJL действительно не поддерживают RFU, в процентном исчислении это скорее исключение из правил. PJL, отчасти наряду с более ранними и простыми языками «разметки страниц» – PostScript (PS), Epson Job Language (EJL) и Printer Command Language (PCL) – монопольно доминирует на рынке принтеров. Некоторые идеи PJL получили дальнейшее развитие в PML (HP Printer Managment Language) – новейшем объектно-ориентированном и двухстороннем протоколе для одновременного обмена информацией между множеством приложений и принтеров. На базе новейших принтеров и МФУ, использующих PML, можно создавать сложнейшие распределенные системы из целых армий принтеров, и если когда-нибудь и суждено появиться на свет воспетой в серии фильмов про Терминатора системе SkyNet – верьте мне, восстание машин начнётся именно на базе принтерного языка PML, потому что при минимуме защиты он даёт воистину гигантские возможности. О’кей, таким образом, пока SkyNet ещё не построен, минимально переделав скрипт из второго трюка и заглянув походу в руководство по PJL, вы можете делать с чужим принтером вообще всё, что угодно, например, инициировав его удаленную перепрошивку, тогда принтер сам загрузит с указанного вами URL-адреса ранее подготовленный файл и радостно перепрошьётся. Я долго думал, что же показать в качестве примера такой возможности, и решил остановиться на примере превращения принтера в офисный бойлер, поэтому сейчас мы повторим подвиг, горячо воспетый СМИ совсем недавно. Напомню, что в конце 2011 года профессор Сальваторе Стольфо (Salvatore J. Stolfo) и его помощники-студенты из Колумбийского университета в Нью-Йорке (Columbia IDS Lab) показали в демонстрационном видео, как большинство принтеров от HP может быть удаленно перепрограммировано через специально созданные задания печати, в которые включается операционный управляющий код, приводящий к стиранию текущей прошивки и установки вместо неё новой, подгружаемой злоумышленниками через сеть. Специально загруженная прошивка приводила к тому, что ранее взломанный принтер непрерывно нагревал свой термоэлемент, что, в конечном счете, привело к задымлению помещения и образованию на вставленном листе бумаги коричневой полосы обугленной бумаги, на чем эксперимент и был остановлен. printer Ребята, между нами говоря, есть такие вещи, от которых нам, программистам, порой откровенно смешно, особенно когда мы смотрим популярные телевизионные программы о неких гениальных хакерах. Дело в том, что суть этой кастомизированной прошивки (да и всего исследования этой группы именитого американского университета) сводится всего лишь к одному единственному вечному циклу, который очень тупо дёргает одну весьма ресурсоёмкую операцию с термоэлементом принтера. Если в это время в лоток вставлен листок бумаги, то эта операция при таком режиме его эксплуатирования приводит к появлению сизого дымка уже через пять-семь минут непрерывной работы такой микропрограммы. Как я и обещал в начале статьи, прошу меня заранее извинить: на данном месте я уже не буду приводить её листинг, благо я наговорил достаточно для того, чтобы тот, кому это реально было интересно, мог самостоятельно поджечь любой сетевой принтер, равно как и офис, где тот располагается. На самом деле всё очень просто, повторюсь: это единственный цикл с единственной командой на простейшем до предела бэйсикоподобном языке PJL. В качестве очередного домашнего задания, вы можете написать свой скрипт находящий через сеть и прошивающий эти миллионы сетевых принтеров, этим вызвав массовые офисные пожары на нашей прекрасной голубой планете. Хорошая новость: вы можете стать частью истории, легендой, у вас будет своя именная страничка в Википедии. Плохая новость: можно загреметь по целому списку статей уголовного кодекса, поэтому я призываю вас не делать этого, и в свою очередь я намеренно не привожу последний листинг «во избежание». Целые исследовательские команды американских суперуниверститетов потратили годы на то, о чем я сейчас так щедро делюсь с вами, поэтому извините, последний шаг для Proof-of-Concept вам придётся сделать самостоятельно. О’кей, дойдя до этого места, читатель, нервно косящийся на рядом стоящий принтер, вероятно, вспомнил главное – а как же пароли, нас защищающие? Есть такая сущность и в принтерах, и сейчас мы это обсудим, и это будет последний трюк в этом длинном опусе.

Трюк # 7. Нам всё по дефолту

Когда в последний раз вы меняли свой пароль доступа на принтере? По умолчанию на большинстве принтеров пароль отсутствует (или стоит заводской – один для всей серии), найти который можно свободно в Интернете, причем для принтеров самых разных серий и производителей (например, здесь или здесь). Для массового ввода и проверки принтеров на дефолтные пароли и поиск типовых уязвимостей и ошибок написаны специальные инструменты, всё это дело как-то автоматизирующие. В нашем примере мы рассмотрим специализированный инструмент – Praeda, который, несмотря на свою молодость, уже успел снискать определенную известность «в узких кругах». Praeda – это довольно объемный скрипт на Perl (не я писал, нет, честно), предназначенный для поиска активных уязвимостей в web-панелях управления современных лазерных принтеров и МФУ и подбору дефолтных паролей. Во время своей работы Praeda пытается выудить максимально большой объем информации, включая имена зарегистрированных пользователей, адреса электронной почты, адресные книги пользователей, данные аутентификации SMB, e-mail, LDAP-пароли и т.д. Как правило, вся подобная информация используется как стартовая точка для развития атаки на локальную сеть. Впрочем, если вы внимательно читали написанное ранее – пароль в принципе не особо-то и нужен: вы можете внедрять все управляющие последовательности непосредственно в команды для печати – например, выложив ужасно интересный файл для публичного скачивания, при попытке распечатать который… ну, вы поняли. Кроме того, в принтерах есть поддержка вторичной функциональности, например тот же WiFi, который также весьма интересно настроен по умолчанию, но, позвольте я не буду сейчас писать на эту тему, чтобы не перегружать ваш канал.

Долгожданное окончание

Любое шоу когда-то да заканчивается, вот и наша унылая простыня текста подошла, наконец, к своему окончанию. Вероятно, люди, прочитавшие эту статью, ужаснутся незащищенности принтеров или МФУ – умоляю вас, не надо как-то демонизировать эти грациозные щёлкающие создания! Так компания Zscaler Labs в ходе многомесячного сканирования сети установила огромное количество СВОБОДНО доступных через интернет и никак не защищённых от посторонних лиц сетевых сканеров, копировальных машин, DSL-концентраторов, веб-камер, сетевых устройств хранения данных и самых разных систем VoIP-телефонии, доступ к которым в самом лучшем случае был защищен стандартным заводским паролем, общим для всего семейства устройств. Поэтому я выбрал здесь принтеры в качестве наиболее обычного и повседневного примера, не более того, – на его месте могло быть почти любое другое более-менее интеллектуальное сетевое периферийное оборудование, например, современная веб-камера, которая удаленно угоняется на раз-два. Не то чтобы это специфика малоизвестна для киберпреступников – нет, есть уже первые массовые заражения и всё-такое, но об этом просто пока не принято писать открыто, поэтому всё самое интересное у нас, как активных потребителей возможностей офисной техники, поверьте ещё впереди! Желающим больших технических деталей также привожу две исходные видеолекции, упомянутые в самом начале этой статьи: исходное видео от Columbia IDS Lab, а также два ролика с конференции ShmooCon 2011. ShmooCon 2011: Printers Gone Wild! + список программ и концепций представлен здесь ShmooCon 2011: Printer to PWND: Leveraging Multifunction Printers During Penetration Testing Тем, кого интересуют технические детали на русском, могу посоветовать свою серию статей «Принтер как источник угрозы», где описывается очень близкий материал, но с более низкоуровневой точки зрения, например, показано «самое святое» для любого хакера – работа с принтером через telnet, а также даны конкретные и конструктивные советы всем страждущим: «Как же обезопасить своё офисное печатающее устройство?». И напоследок: вот вам последнее предостережение – будьте осторожны, будьте ОЧЕНЬ ОСТОРОЖНЫ с принтерами, ниже – короткая видеоиллюстрация этого тезиса:
Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Украинские хакеры вычислили базу российских военных, притворившись девушками в соцсетях
Украинские хакеры вычислили базу российских военных, притворившись девушками в соцсетях
Украинские хакеры вычислили базу российских военных, притворившись девушками в соцсетях
2 комментария
Хакеры скупают базы паролей и готовятся к масштабной атаке на российский госсектор
Хакеры скупают базы паролей и готовятся к масштабной атаке на российский госсектор
Хакеры скупают базы паролей и готовятся к масштабной атаке на российский госсектор
На хакерской конференции показали обновлённый кабель для взлома любых устройств
На хакерской конференции показали обновлённый кабель для взлома любых устройств
На хакерской конференции показали обновлённый кабель для взлома любых устройств
Android 13 взломали практически сразу, как она вышла
Android 13 взломали практически сразу, как она вышла
Android 13 взломали практически сразу, как она вышла

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.