
29 ноября 2018 года пользователь твиттера под псевдонимом @TheHackerGiraffe «взломал» более 50 000 сетевых принтеров и распечатал на них листовки с призывом подписываться на YouTube-канал некоего PewDiePie. Он говорит, что таким образом хотел способствовать популярности своего кумира, который сейчас сражается за 1-е место по количеству подписчиков на YouTube.
Здесь интересна простота, с которой хакеру удалось получить доступ к 50 000 принтеров. В сессии вопросов и ответов AMA на Reddit хакер раскрыл подробности этого взлома. Оказывается, в нём нет ничего сложного. Более того, в Сети свободно доступны программные инструменты для эксплуатации многих уязвимостей в старых прошивках принтеров. К сожалению, повторить этот фокус может буквально любой желающий.

Технические детали
Для поиска уязвимых устройств традиционно используется поисковая система Shodan. Она позволяет указать номер порта и протокол — и получить список сетевых устройств, в которых данный порт свободно открыт в интернет, с указанием IP-адресов.Последняя атака была нацелена на принтеры с открытыми портами IPP (Internet Printing Protocol), LPD (Line Printer Daemon) и портом 9100. Затем пишется скрипт, чтобы рассылать по полученным IP-адресам и указанному порту файл PostScript, который сразу принимается на печать.

Список уязвимых принтеров можно скачать с Shodan. Затем хакер взял инструмент Printer Exploitation Toolkit (PRET), исходный код которого свободно опубликован в интернете и использовал его для подключения к принтерам. Кстати, PRET позволяет не только вывести на печать сообщение, но и получить доступ к внутренней сети, к файлам, а также просто повредить принтер, среди прочего.

@TheHackerGiraffe запустил такой bash-скрипт. Скрипт берёт список принтеров c Shodan (
potential_bros.txt
) и циклом прогоняет по каждому IP-адресу PRET с командами, указанными в commands.txt
:#!/bin/bash
while read -r line; do
ip="$line"
torify ./PRET/pret.py $ip pjl -q -i ./commands.txt
done < "./potential_bros.txt"
Содержимое
commands.txt
:print ./message.pdf
display HACKED
quit
В связи с большим количеством IP-адресов скрипт лучше запустить где-нибудь на сервере.

@black_triangle_tg