Hacking Printers: Difference between revisions

From
Jump to navigation Jump to search
Line 1: Line 1:
==Printer Hacking How-To==
'$> command'

==Motivation und Szenario==
==Motivation und Szenario==
Drucker sind weit verbreitete Geräte und stellen auf den ersten Blick kein lohnendes Angriffsziel dar. Das führt dazu, dass Updates teils nicht konsequent durchgeführt werden. So fand <ref> Jens Müller. [Exploting Network Printers] Master's Thesis. 2016. </ref> allein in Deutschland fast 2000 über das Internet erreichbare Drucker und in vielen getesteten Modellen gravierende Sicherheitslücken.
Drucker sind weit verbreitete Geräte und stellen auf den ersten Blick kein lohnendes Angriffsziel dar. Das führt dazu, dass Updates teils nicht konsequent durchgeführt werden. So fand <ref> Jens Müller. [Exploting Network Printers] Master's Thesis. 2016. </ref> allein in Deutschland fast 2000 über das Internet erreichbare Drucker und in vielen getesteten Modellen gravierende Sicherheitslücken.
Line 11: Line 14:


Die von uns getesten Angriffe waren auf zwei der drei getesteten Drucker erfolgreich, was es uns erlaubte das Administratorpasswort zu erlangen und somit vollen Zugriff
Die von uns getesten Angriffe waren auf zwei der drei getesteten Drucker erfolgreich, was es uns erlaubte das Administratorpasswort zu erlangen und somit vollen Zugriff
auf das Gerät zu erhalten.
auf das Gerät zu erhalten.

http://hacking-printers.net/wiki/index.php/Port_9100_printing



==Informationsbeschaffung==
"Wissen ist Macht" - Diese verbreitete Weisheit gilt auch beim Eindringen in fremde Systeme. Glücklicherweise gibt es diverse Tools, die das ausspähen bzw. die Informationsbeschaffung erleichtern können.

* [https://nmap.org/ NMAP] erlaubt das Scannen von IP-Adressbereichen auf offene Ports sowie die darauf angebotenen Dienste.

Beispiel:
<code>
$> nmap -A 192.168.188.22
Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-11 11:33 CEST
Nmap scan report for 192.168.188.22
Host is up (0.00093s latency).
Not shown: 991 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp HP JetDirect ftpd
23/tcp open telnet HP JetDirect printer telnetd
80/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config)
| http-title: hp LaserJet 4250
|_Requested resource was /hp/device/this.LCDispatcher
280/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config)
| http-title: hp LaserJet 4250
|_Requested resource was /hp/device/this.LCDispatcher
443/tcp open ssl/https?
|_ssl-date: 2017-10-11T11:03:52+00:00; +1h28m45s from scanner time.
515/tcp open printer
7627/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config)
|_http-server-header: HP-ChaiSOE/1.0
9100/tcp open jetdirect?
14000/tcp open tcpwrapped
MAC Address: 00:12:79:7E:EB:AE (Hewlett Packard)
</code>

* [https://www.tenable.com/products/nessus-vulnerability-scanner Nessus] ist ein proprietäres Tool, dass Ziele auf bekannte Schwachstellen abklopft. Diese sind in öffentlich zugänglichen Datenbanken hinterlegt, wie etwa [https://cve.mitre.org/index.html CVE].
* [http://www.openvas.org/ OpenVAS] ist eine Open Source Alternative zu Nessus.
* Das Lesen von Dokumentation der Zielgeräte kann auch reichhaltige Informationen zu sicherheitskritischen Aspekten liefern, beispielsweise erlaubte Zeichen und Länge von Passwörtern oder Sicherheitslücken, die in Patchnotes Erwähnung finden.




==Schwachstellen ausnutzen==

==Metasploit==
Metasploit ist ein Framework, das eine Liste von bekannte Schwachstellen mitbringt, und im Gegensatz zu den bereits genannten Vulenrability Scannern auch mit konfigurierbarer Payload ausnutzen kann.

==Druckersprachen==
1. PCL
Die Printer Command Language ist eine Befehlssprache für Drucker. Die Sprache wurde mit dem Ziel entwickelt, alle Druckertypen über eine gemeinsame Standardsprache ansteuern zu können. PCL basiert auf Escape-Sequenzen und ist daher deutlich weniger komplex als PostScipt.
2. PJL
Die Printer Job Language ist eine Sammlung von Kommandos, mit denen Drucker kontrolliert werden können. PJL bietet neben einer kombletten Jobsteuerung auch umfangreiche Statuskontrollen an. Zum Beispiel kann der aktuelle Status einer Anfrage abgefragt werden
3. PS


==Tools==

* [https://github.com/RUB-NDS/PRET PRET] Das Printer Exploitation Toolkit ist im Rahmen einer Masterarbeit an der Ruhr Universität in Bochum entstanden. Dieses Programm baut eine Verbindung zu einem via Netzwerk oder USB angeschlossenen Drucker auf und nutzt eine der vorgestellten Druckersprachen zur Absetzung von Befehlen. Entsprechend der unterschiedlichen Mächtigkeit dieser Sprachen fällt auch die Menge der unterstützten Befehle unterschiedlich groß aus.

Beispiel:
<code>
pret <printer ip> ps
</code>

Zu den möglichen Befehlen gehören ha
192.168.188.22:/> ?

Available commands (type help <topic>):
=======================================
append date discover get loop put set version
capture debug dump hang ls pwd shell
cat delete edit help mirror rename site
cd destroy exit hold mkdir replace timeout
chvol devices find id open reset touch
close df format known overlay resource traversal
config dicts free load pagecount restart unlock
cross disable fuzz lock print search uptime











==Literatur- und Quellenverzeichnis==
<references/>
<references/>

Revision as of 10:25, 11 October 2017

Printer Hacking How-To

'$> command'

Motivation und Szenario

Drucker sind weit verbreitete Geräte und stellen auf den ersten Blick kein lohnendes Angriffsziel dar. Das führt dazu, dass Updates teils nicht konsequent durchgeführt werden. So fand <ref> Jens Müller. [Exploting Network Printers] Master's Thesis. 2016. </ref> allein in Deutschland fast 2000 über das Internet erreichbare Drucker und in vielen getesteten Modellen gravierende Sicherheitslücken. Entgegen ihrer augenscheinlichen Harmlosigkeit läuft auf den von uns getesteten Druckern ein vollwertiges Betriebssystem und lassen sich daher von einem erfolgreichen Angreifer zu nützlichen Bots umfunktionieren. Außerdem enthalten Druckjobs potentiell vertrauliche Daten, die für einen Angreifer wertvoll sein könnten.

Dies motivierte uns dazu am Informatikinstitut eingesetzte Drucker auf Schwachstellen zu überprüfen und zu versuchen in das System des Druckers einzudringen. Als Leitfrage beschäftigte uns, ob dies einem Angreifer möglich ist, der keine Programmierkenntnisse besitzt und somit nicht in der Lage ist selbstständig Exploits zu entwickeln.

Wir konzentrierten uns auf drei verschiedene Geräte: einen (1) Canon ImageRunner 3225, einen (2) HP LaserJet 4250n und einen (3) HP LaserJet CD3505dn. Zur Durchführung unserer Angriffe beschränkten wir uns auf vorgefertigte Penetrationtesting Tools wie Hydra, MetaSploit oder Nessus.

Die von uns getesten Angriffe waren auf zwei der drei getesteten Drucker erfolgreich, was es uns erlaubte das Administratorpasswort zu erlangen und somit vollen Zugriff auf das Gerät zu erhalten.

http://hacking-printers.net/wiki/index.php/Port_9100_printing


Informationsbeschaffung

"Wissen ist Macht" - Diese verbreitete Weisheit gilt auch beim Eindringen in fremde Systeme. Glücklicherweise gibt es diverse Tools, die das ausspähen bzw. die Informationsbeschaffung erleichtern können.

  • NMAP erlaubt das Scannen von IP-Adressbereichen auf offene Ports sowie die darauf angebotenen Dienste.

Beispiel: $> nmap -A 192.168.188.22 Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-11 11:33 CEST Nmap scan report for 192.168.188.22 Host is up (0.00093s latency). Not shown: 991 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp HP JetDirect ftpd 23/tcp open telnet HP JetDirect printer telnetd 80/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config) | http-title: hp LaserJet 4250 |_Requested resource was /hp/device/this.LCDispatcher 280/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config) | http-title: hp LaserJet 4250 |_Requested resource was /hp/device/this.LCDispatcher 443/tcp open ssl/https? |_ssl-date: 2017-10-11T11:03:52+00:00; +1h28m45s from scanner time. 515/tcp open printer 7627/tcp open http HP-ChaiSOE 1.0 (HP LaserJet http config) |_http-server-header: HP-ChaiSOE/1.0 9100/tcp open jetdirect? 14000/tcp open tcpwrapped MAC Address: 00:12:79:7E:EB:AE (Hewlett Packard)

  • Nessus ist ein proprietäres Tool, dass Ziele auf bekannte Schwachstellen abklopft. Diese sind in öffentlich zugänglichen Datenbanken hinterlegt, wie etwa CVE.
  • OpenVAS ist eine Open Source Alternative zu Nessus.
  • Das Lesen von Dokumentation der Zielgeräte kann auch reichhaltige Informationen zu sicherheitskritischen Aspekten liefern, beispielsweise erlaubte Zeichen und Länge von Passwörtern oder Sicherheitslücken, die in Patchnotes Erwähnung finden.



Schwachstellen ausnutzen

Metasploit

Metasploit ist ein Framework, das eine Liste von bekannte Schwachstellen mitbringt, und im Gegensatz zu den bereits genannten Vulenrability Scannern auch mit konfigurierbarer Payload ausnutzen kann.

Druckersprachen

1. PCL Die Printer Command Language ist eine Befehlssprache für Drucker. Die Sprache wurde mit dem Ziel entwickelt, alle Druckertypen über eine gemeinsame Standardsprache ansteuern zu können. PCL basiert auf Escape-Sequenzen und ist daher deutlich weniger komplex als PostScipt. 2. PJL Die Printer Job Language ist eine Sammlung von Kommandos, mit denen Drucker kontrolliert werden können. PJL bietet neben einer kombletten Jobsteuerung auch umfangreiche Statuskontrollen an. Zum Beispiel kann der aktuelle Status einer Anfrage abgefragt werden 3. PS


Tools

  • PRET Das Printer Exploitation Toolkit ist im Rahmen einer Masterarbeit an der Ruhr Universität in Bochum entstanden. Dieses Programm baut eine Verbindung zu einem via Netzwerk oder USB angeschlossenen Drucker auf und nutzt eine der vorgestellten Druckersprachen zur Absetzung von Befehlen. Entsprechend der unterschiedlichen Mächtigkeit dieser Sprachen fällt auch die Menge der unterstützten Befehle unterschiedlich groß aus.

Beispiel: pret <printer ip> ps

Zu den möglichen Befehlen gehören ha 192.168.188.22:/> ?

Available commands (type help <topic>):

===========================

append date discover get loop put set version capture debug dump hang ls pwd shell cat delete edit help mirror rename site cd destroy exit hold mkdir replace timeout chvol devices find id open reset touch close df format known overlay resource traversal config dicts free load pagecount restart unlock cross disable fuzz lock print search uptime






Literatur- und Quellenverzeichnis

<references/>