pjl printer что это
Язык РJL (Printer Job Language язык управления работой принтера) был специально разработан для управления принтером. Он позволяет прикладному программному обеспечению управлять работой принтера, обеспечивает получение информации о состоянии принтера и его конфигурации. Применение PJL в достаточной степени упрощает управление принтерами по локальным сетям, причем он позволяет управлять принтером на таком уровне, который ни один другой язык, например PCL или PostScript не обеспечивает. Используя команды языка PJL, синтаксис их написания и пересылку на принтер можно конфигурировать принтер, устанавливать настройки по умолчанию, выполнять принудительную установку значений различных счетчиков, изменять параметры и настройки панели управления, изменять, считывать сообщения и различные сервисные коды, отображаемые на панели управления оператора, которые недоступны для считывания в обычных режимах работы. Кроме того, язык позволяет в процессе работы контролировать и управлять данными, посланными на принтер от ПК, а также отсылать сообщение на ПК о состоянии самого принтера.
Язык в понимании программирования не очень сложный и состоит из определенного набора команд. Полный перечень команд и изменяемых параметров, а также их синтаксис написания, свойства, значения и общие принципы их применения можно найти в фирменных руководствах «PJL Technical Reference Manual» и «Printer Job Language Technical Manual Addendum», которые доступны на официальном сайте HP.
Программирование принтера с помощью PJL команд. Данная процедура необходима в тех случаях, когда в принтере нужно установить новое значение счетчика, серийный номер принтера, установить новые параметры конфигурации принтера по умолчанию. Необходимость такой процедуры объясняется такими случаями как замена форматера в принтере на новый, или необходимостью в принтере установить например по умолчанию кодовую таблицу поддержки кириллического шрифта PC866CYR для печати принтера русскими символами из под DOS и т.д.
Blogerator.org
Эксклюзивные ИТ-новости, обзоры и интервью
Принтер, как источник угрозы. Часть 4
Продолжаем катить нашу телегу, прошлая часть была вот тут, а начало всей серии статей про безопасность сетевых принтеров (оглавление) — ищите здесь.
Принтер должен печатать, и ничего более
Отключите на принтере все вспомогательные сервисы, до которых сможете дотянуться. Поэтому третий, самый главный и одновременно до ужаса банальный вывод звучит так: единственное, что должен делать принтер — это печатать. Худо-бедно, но печатать, больше от него ничего не требуйте!
Я показал ранее, насколько зачастую некачественная реализация встроенного ftp-сервера поставляется практически в каждом втором принтере, как безобидный telnet-сеанс позволяет скрытно блокировать работу принтера, дошла очередь показать, какое безобразие творится с web-панелью управления сетевым принтером.
Наиболее просто обход авторизации выполняется на некоторых МФУ марки Toshiba, поэтому наш практический пример посвящен именно ей. Здесь нужно просто знать прямой путь-URL на любое вложенное меню web-панели, но поскольку все эти пути стандартные на всех моделях принтера, то это не такой уж и большой секрет.
Вот пример такого произвольного пути в меню Сканирование:
Если предварительно не авторизоваться на таком принтере/МФУ и попробовать сразу перейти на одну из страниц web-панели — произойдет вполне логичный редирект на страницу c приглашением сначала ввести пароль:
Да-да, это сработала встроенная система безопасности принтера — лично я очень впечатлен таким поворотом дел. Очень хорошо, тогда добавляем дополнительный «слэш» в первоначальный адрес как показано ниже и пробуем ещё раз:
Вот это другое дело — защита, конечно, заставляет «напрячься», чтобы ввести дополнительный знак с клавиатуры, но зато теперь сразу открывается страница настроек, в которую мы и намеревались первоначально войти.
Кстати о паролях. согласитесь, как-то не эстетично лазить в чужие принтера «через окна», когда существует вполне нормальные «входные двери», и пароли — эти двери отворяющие.
Как-то кошки на душе скребут, когда вот так вот через какой прямой URL, порой нахрапом вваливаешься в чужую администраторскую зону — не эстетично это всё как-то, право.
Сразу после попадания в принтер вышеописанным методом, советую потратить немного времени, чтобы впредь чувствовать себя человеком. Зайдите в административный раздел ответственный за настройку, где перечислены поля ввода паролей и логин, после чего откройте просмотр «исходного кода страницы», как правило, тут все достаточно скучно и однообразно на многих моделях принтеров и от разных производителей.
Как видно на рис. ниже, в свойстве поля Password сразу открыто указан как бы скрытый от вас на странице звёздочками пароль. Записывайте все эти пароли на бумажку, и не лазьте в чужие принтеры какими-то окольными путями — помните, всегда важно сохранять человеческое достоинство, даже занимаясь ни пойми чем.
Дьявол носит Praeda
Тема обзора уязвимостей доступных в принтерах и МФУ достаточно огромна, но ещё один момент которого я бы хотел обязательно коснуться напоследок, это ответ на логичный вопрос: как добывается такое количество уязвимостей на принтеры?
В нашем примере мы рассмотрим специализированный исследовательский инструмент — Praeda (полное и очень глубокомысленное название: Praeda Harvesting Tool), который, несмотря на свою молодость уже успел снискать определенную известность «в узких кругах». Эта программа впервые была представлена на конференции по информационной безопасности ShmooCon 2011.
Итак, Praeda — это довольно объемный скрипт на Perl (кстати, в самом конце 2011 года принято принципиальное решение и начат процесс переноса этого проекта с языка Perl на Ruby, но это начинание пока ещё в самой начальной стадии своей реализации), который предназначен для поиска активных уязвимостей в web-панелях управления современных лазерных принтеров и МФУ, и который не только очень активно развивается в последнее время, но и содержит в себе достаточно продвинутые эвристические алгоритмы, а не только банальный fuzzing или перебор уже стандартных/известных способов взлома известных web-панелей управления.
Например, в данный момент завершается изучение и тестирование модуля расшифровки бэкапов и экспорта настроек создаваемых некоторыми известными принтерными вендорами.
Программа при своей работе рассчитывает на то, что настройки уровня безопасности МФУ и лазерных принтеров представляют из себя значения по умолчанию, поэтому она пытается выудить максимально большой объем информации с таких устройств, включая имена зарегистрированных пользователей, адреса электронной почты, адресные книги пользователей, данные аутентификации SMB, email, LDAP-пароли и т.д.
Как правило, вся подобная информация используется как стартовая точка для развития атаки на локальную сеть.
Давайте очень кратко опишем, на что способна текущая версия Praeda:
Также следует остановиться в общих чертах и на параметрах работы с этим скриптом, так как документация к нему достаточно скудная. Вот общий формат его запуска:
Здесь файл target_file содержит список-перечисление всех принтеров (их сетевых адресов), которые должны быть исследованы, записанные в формате один адрес на строчку. Аргумент tcp-port указывает на порт web-панели (допускается только одно — общее для всех значение ), а project_name — это названия вашего проекта-исследования, физически же будет создана отдельная папка с этим названием, куда будут складироваться все собранные в рамках этого запуска данные.
Вот пример запуска его диспетчера (головного файла комплекса):
Хотелось бы отметить, что различные модули 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-взаимодействий с принтерами).
Читать этот материал дальше. Оглавление и начало этой серии статей — здесь.
Настройка параметров безопасности
Обзор
Настройки параметров безопасности — единое меню для настройки большинства параметров безопасности устройства. Настройки этой страницы, наряду с настройками Мастера настройки безопасности HP Jetdirect помогают улучшить уровень безопасности устройства.
Этот раздел справки дополняет страницу Настройки параметров безопасности. Он содержит объяснение настроек и связанные с ними рекомендации. Учтите, что не все сети работают одинаково и рекомендации даются для справки, чтобы дать пользователю возможность рассмотреть варианты.
ПРИМЕЧАНИЕ. Рекомендации HP, приведенные на этой странице, относятся к типовой корпоративной сети. Каждую из рекомендаций следует проверять на применимость к конкретной сети.
Нажмите кнопку Применить в нижней части страницы для завершения настройки. Настройка не будет завершена, пока вы не нажмете Применить.
В разделах ниже описываются соответствующие разделы страницы Настройки параметров безопасности устройства встроенного веб-сервера (EWS).
Пароль устройства
Пароль устройства помогает защитить устройство от несанкционированного доступа через удаленные приложения, такие как устройство EWS (это приложение). После настройки пароля устройства продукт не позволит изменять конфигурацию без ввода правильного пароля. Пароль устройства называется паролем администратора в некоторых приложениях.
Параметр Для вкладки «Информация» требуется административный доступ повышает уровень безопасности; если его включить, информация об устройстве будет недоступна пользователю без ввода пароля устройства (если он задан). Если этот параметр не включен, пользователь может осуществлять доступ к вкладке Информация без ввода пароля устройства (если он задан).
Мастер настройки безопасности Jetdirect также позволяет настроить пароль устройства (здесь он называется паролем администратора). Если первым делом вы запустили мастер настройки безопасности (в соответствии с рекомендациями) к этому моменту пароль устройства уже настроен.
Кроме того, в устройстве есть функция «Пароль EWS», доступная в некоторых приложениях. При настройке пароля устройства продукт синхронизирует его с паролем EWS.
Рекомендация: задайте пароль устройства, чтобы обеспечить контроль над конфигурацией.
Чтобы задать пароль устройства, введите 12 символов (или меньше) в поле Новый пароль и повторите ввод в поле Подтверждение пароля.
Чтобы изменить пароль, введите старый пароль в поле Старый пароль и новый пароль в поля Новый пароль и Подтверждение пароля.
Чтобы отключить пароль устройства, введите старый пароль в поле Старый пароль и оставьте поля Новый пароль и Подтверждение пароля пустыми.
Пароль PJL
Функция «Пароль PJL» помогает защитить устройство от несанкционированной конфигурации посредством команд языка PJL (Print Job Language). Она не влияет на обычные задания печати. После настройки пароля PJL устройство будет требовать ввода этого пароля перед обработкой команд PJL.
Рекомендация: функция «Пароль PJL» отличается от функции отключения дискового доступа PJL (другая настройка страницы безопасности EWS). Для лучшего уровня безопасности задайте обе настройки.
Чтобы задать пароль PJL, введите любое число между 1 и 2147483647 в поле Новый пароль и повторите ввод в поле Подтверждение пароля.
Чтобы изменить пароль, введите старый пароль в поле Старый пароль и новый пароль в поля Новый пароль и Подтверждение пароля.
Чтобы отключить пароль устройства, введите старый пароль в поле Старый пароль и оставьте поля Новый пароль и Подтверждение пароля пустыми.
Пароль файловой системы
Пароль файловой системы помогает защитить устройства хранения данных продукта от несанкционированного доступа. После задания пароля файловой системы устройство потребует этот пароль при попытке настройки функций, влияющих на систему хранения данных. В числе таких функций режим стирания файлов, безопасное стирание данных и доступ к файловой системе.
Рекомендация: настройте пароль файловой системы, чтобы обеспечить улучшенный контроль доступа к файловой системе.
Чтобы задать пароль файловой системы, введите 8 символов (или меньше) в поле Новый пароль и повторите ввод в поле Подтверждение пароля.
Чтобы изменить пароль, введите старый пароль в поле Старый пароль и новый пароль в поля Новый пароль и Подтверждение пароля.
Чтобы отключить пароль устройства, введите старый пароль в поле Старый пароль и оставьте поля Новый пароль и Подтверждение пароля пустыми.
Настройки доступа к файловой системе
Настройки доступа к файловой системе позволяют отключить многие точки доступа к системе хранения данных устройства. Эти точки доступа относятся к разным областям использования устройства. Некоторые из них являются функциями устройства, другие нет. См. рекомендации ниже.
Если вы задали пароль файловой системы, устройство запросит его перед изменением настроек файловой системы.
Рекомендация: корпорация HP рекомендует отключить функции Доступ к диску PJL, Доступ к диску SNMP и Доступ к диску NFS. Эти точки доступа предназначены для добавления и удаления файлов в устройствах хранения, но они не требуются для обычных операций устройства, таких как печать, копирование, факс и цифровая отправка.
Корпорация HP рекомендует включить (выбрать) функцию Доступ к диску PS. Это даст пользователям возможность печатать файлы PS-типа.
ПРИМЕЧАНИЕ. Имейте в виду, что некоторые сетевые процессы могут использовать эти точки доступа. Например, некоторым приложениям Norton необходим доступ через NFS. Таким образом не следует отключать доступ через NFS, если он используется в вашей сети.
Режим стирания файлов
Режим стирания определяет уровень безопасности удаления файлов с устройств хранения.
Доступно три уровня безопасности удаления файлов:
Рекомендация: корпорация HP рекомендует метод Безопасное быстрое стирание, так как он относительно быстр, но предоставляет эффективное стирание данных, обеспечивая приемлемый уровень безопасности. Если в вашей сети необходим более высокий уровень безопасности (например для соответствия требованиям Министерства обороны), необходимо выбрать метод Безопасная санация.
ПРИМЕЧАНИЕ. Настройка Режим стирания файлов будет доступна только после задания пароля файловой системы.
Блокировка панели управления
Функция блокировки панели управления поддерживает три режима работы, подразумевающих блокировку различных меню панели управления.
Рекомендация: корпорация HP рекомендует выбрать параметр Средняя блокировка меню. Это позволит пользователям работать с их собственными заданиями, но запретит вмешиваться в задания других пользователей.
ПРИМЕЧАНИЕ. После блокировки доступа к панели управления, доступ к заблокированным функциям из панели управления будет невозможен. Устройство не предлагает способ авторизованного использования заблокированных настроек.
Параметры домашней страницы (встроенного веб-сервера)
Параметры EWS позволяют определить некоторые настройки, доступные на странице EWS по умолчанию. Некоторые параметры позволяют пользователям управлять заданиями других людей или даже удалять их.
Рекомендация: компания HP рекомендует отключить все эти функции, кроме Страница печати. Страница печати позволяет пользователям печатать документы через EWS. Отключение других функций позволит предотвратить несанкционированный доступ к пользователей к устройству.
Параметры услуг
Устройство поддерживает различные службы, которые могут работать удаленно или непосредственно на устройство. Имейте в виду, что авторизованный администратор может включать службы, необходимые для работы, и отключать их.
Рекомендация: корпорация HP рекомендует отключить все функции, кроме Хранения задания, если эти функции не требуются приложениям в вашей сети. Например, в некоторые сетевые приложения предоставляют возможности печати документооборота, которые могут понадобиться пользователю.
Эти параметры, предназначены для удобства использования и для некоторых типов сетевых приложений, которые помогают в управление.
Прямые порты (USB/IEEE 1284)
Функция Прямые порты позволяет заблокировать прямые подключения (параллельный порт и USB-порт). Блокировка этих портов делает невозможным прямое подключение компьютера к устройству. Это ограничивает доступ к устройству сетевым подключением.
Рекомендация: отключите прямые порты, чтобы ограничить доступ к конфигурации.
Отслеживание расхода печати
Функция отслеживания расхода печати позволяет изменить способ подсчета страниц на устройстве. Новый метод подсчета страниц более приспособлен для сегодняшних задач. Однако после включения нового метода подсчета страниц невозможно вернуться к старому.
Рекомендация: Поскольку переход на новый метод подсчета является необратимым, корпорация HP настоятельно рекомендует внимательно прочитать условия, представленные в этом разделе, прежде чем включать эту функцию на устройстве. Для получения более подробной информации о переходе следуйте инструкциям, приведенным в этом тексте данного раздела.
Следуйте инструкции, чтобы включить функцию «Отслеживание расхода печати».
1. Выберите параметр Принять.
2. Отметьте флажком параметр Включить отслеживание расхода печати на устройстве.
3. Чтобы изменения вступили в силу, нажмите кнопку Применить.
Применение настроек
Настройки на этой странице применяются к устройству после нажатия кнопки Применить в нижней части экрана. Можно применить настройки по мере их изменения, или применить все настройки единовременно. Нажмите Отмена, чтобы отменить изменения.
ПРИМЕЧАНИЕ. Ни одна из заданных настроек не будет применена к устройству, пока вы не нажмете кнопку Применить.
Волшебная печать. Получаем контроль над сетевыми принтерами
Содержание статьи
PJL и JetDirect
Компания Hewlett-Packard разработала язык Printer Job Language (PJL) еще в девяностых. Изначально он был предназначен для расширения команд принтера, но шли годы, и в динамичном мире информационных технологий для этой функции стал использоваться другой язык — Printer Command Language (PCL). С легкой руки HP язык PJL пошел своей дорогой. Его взяли на вооружение другие компании, он оброс новыми функциями. В итоге мы получили что-то сравнимое с ассемблером — язык один, а инструкции на каждое устройство свои.
Даже если взять только устройства HP, то полного описания инструкций и команд в открытом доступе нет (видимо, компания поняла, что выкладывать технические детали в интернет небезопасно). Есть общий мануал, в котором сопоставлены серийные модели принтеров и поддерживаемые ими команды. Также существует инструкция, описывающая действия команд, синтаксис и ошибки. Документ старый, сильно на него полагаться не стал бы.
Помимо языка управления принтерами, HP разработала еще одну интересную штуку, которая служит и по сей день, — JetDirect. Это технология, позволяющая превратить любой принтер в сетевой. На ее основе выпускаются как отдельные принт-серверы, так и встроенные (в принтеры, МФУ и роутеры). JetDirect позволяет подключать устройства к сети и печатать удаленно. причем не только их владельцу! 😉
Ломаем приветствие
С помощью PJL некоторые хакерские приемы применяются в сервисных центрах. Например, так сбрасывают счетчики напечатанных листов или очищают память о вставленных ранее картриджах. Это нельзя сделать из меню самого принтера, поэтому и приходится прибегать к таким уловкам через консоль. Давай и мы разомнемся!
WARNING
Статья написана в образовательных целях. Ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный изложенными здесь материалами.
Сервис JetDirect по умолчанию сконфигурирован на прослушивание TCP-порта 9100. На него мы и будем отправлять команды из консоли. Для опытов я использовал сетевой принтер HP Color LaserJet 3600n со встроенным принт-сервером HP JetDirect Fast Ethernet.
Находим открытый порт 9100 программой Nmap
Поясню немного команду:
@PJL — эти символы дают понять принтеру, какой мы используем язык;
STMSG DISPLAY — это сама команда изменения надписи на дисплее. После нее мы просто пишем то, что хотим вывести.
Посылаем команду на принтер
В итоге получаем результат как на фотографии.
Дисплей принтера до и после отправки команды
Теперь наша надпись будет сиять на дисплее вместо стандартного приветствия, пока кто-то не нажмет любую кнопку на самом устройстве.
Аналогичного эффекта можно добиться, используя оператор RDYMSG (сообщение о готовности) вместо STMSG (стандартное сообщение). Команда приобретет следующий вид:
То же самое можно проделать, выполнив печать из файла:
После этих команд на табло принтера снова гордо воссияла надпись HACKED, а это значит, что мы можем отправлять принтеру PJL-команды из файла.
Массовый тест
Взаимодействие принтера и компьютера при печати можно представить как трехслойную модель. На первом слое будет сетевой протокол, затем язык управления принтером (в нашем случае PJL) и последним — язык описания (PostScript).
Внесу небольшую ремарку: если есть желание получить идентичные надписи на разных моделях и марках принтеров и МФУ — лучше сразу забыть. PostScript не «понимает» форматирование текста, или, если сказать другими словами, шрифт и размер надписи будет разный, тот, который используется по дефолту.
В итоге мы имеем возможность печатать документ при помощи JetDirect, просто отправив текст на TCP-порт 9100 из файла или консоли. Можно ли это автоматизировать? Нужно!
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее