PRET, reventando impresoras al vuelo

Todos nosotros alguna vez hemos manipulado alguna impresora, ya sea para hacer copias, imprimir documentos... También, muchos tenemos una impresora en casa, las cuales desde hace unos años se comenzaron a desarrollar sin la necesidad de ser conectadas físicamente a nuestro ordenador, poco después, se introdujo en ella la funcionalidad de la conexión via WiFi, en la que podríamos imprimir documentos inalambricamente, con la única condición de que tanto la impresora como el ordenador desde el que queremos enviar el documento, estén conectado a la misma red.

Con estos avances a algunas personas (trolls) se les encendió la bombilla, y utilizando el sentido común, pensaron que estando en la misma red que una impresora, podrían imprimir cualquier documento sin el permiso del propietario para, como no, trollear y reírse un rato.

Con el paso del tiempo, para evitar lo mencionado anteriormente, se han ido implementando algunas medidas de seguridad en algunos dispositivos, como por ejemplo, contraseñas que se para vincular dispositivos, para que solo ellos puedan realizar acciones sobre dicha impresora.

Pero como todos los que leemos este blog sabemos, la seguridad es algo "ilusorio".

Esta vez le ha tocado la china a las impresoras. Hace una semana, unos estudiantes de la universidad de Ruhr University Bochum presentaron su tesis en la cual, desarrollaron una herramienta que han liberado hace pocos días en Github, hablo de PRET, una herramienta desarrollada para probar las seguridad de las impresoras.

Esta herramienta se puede conecta a la impresora vía USB o vía WiFi y se encargará de explotar el lenguaje con el que fue desarrollada la impresora objetivo. Actualmente atacar a los lenguajes PostScript, PJL y PCL, los cuales se encuentran en la mayoría de impresoras láser; esta herramienta nos permitirá hacer cosas como: capturar documentos, modificarlos, acceder a la memoria de la impresora o incluso dañar la impresora físicamente. Este tool ha sido programado en Python, que será un requisito imprescindible para su uso e instalación, más concretamente, deberemos tener instalado el interprete Python2.

Como instalar esta herramienta:
  1. Deberemos descargar la herramienta de Github: https://github.com/RUB-NDS/PRET.
  2. En la terminal ejecutaremos: pip install colorama pysnmp.
  3. Posteriormente ejecutamos: pip install win_unicode_console.
  4. Y por último: apt-get install imagemagick ghostscript.
  5. Para ejecutarlo únicamente tendremos que ejecutar ./pret.py  y nos mostrará los siguientes parámetros.
pret.py [-h] [-s] [-q] [-d] [-i file] [-o file] target {ps,pjl,pcl}


positional arguments:
target printer device or hostname
{ps,pjl,pcl} printing language to abuse

optional arguments:
-h, --help show this help message and exit
-s, --safe verify if language is supported
-q, --quiet suppress warnings and chit-chat
-d, --debug enter debug mode (show traffic)
-i file, --load file load and run commands from file
-o file, --log file log raw data sent to the target














Los creadores de esta herramienta también nos muestran los comandos que podremos ejecutar en base al lenguaje de la impresora que estemos atacando. Serian los siguientes:

┌───────────┬─────┬─────┬─────┬────────────────────────────────────────┐
│ Command │ PS │ PJL │ PCL │ Description │
├───────────┼─────┼─────┼─────┼────────────────────────────────────────┤
│ ls │ ✓ │ ✓ │ ✓ │ List contents of remote directory. │
│ get │ ✓ │ ✓ │ ✓ │ Receive file: get <file> │
│ put │ ✓ │ ✓ │ ✓ │ Send file: put <local file> │
│ append │ ✓ │ ✓ │ │ Append to file: append <file> <str> │
│ delete │ ✓ │ ✓ │ ✓ │ Delete remote file: delete <file> │
│ rename │ ✓ │ │ │ Rename remote file: rename <old> <new> │
│ find │ ✓ │ ✓ │ │ Recursively list directory contents. │
│ mirror │ ✓ │ ✓ │ │ Mirror remote filesystem to local dir. │
│ cat │ ✓ │ ✓ │ ✓ │ Output remote file to stdout. │
│ edit │ ✓ │ ✓ │ ✓ │ Edit remote files with vim. │
│ touch │ ✓ │ ✓ │ │ Update file timestamps: touch <file> │
│ mkdir │ ✓ │ ✓ │ │ Create remote directory: mkdir <path> │
├───────────┼─────┼─────┼─────┼────────────────────────────────────────┤
│ cd │ ✓ │ ✓ │ │ Change remote working directory. │
│ pwd │ ✓ │ ✓ │ │ Show working directory on device. │
│ chvol │ ✓ │ ✓ │ │ Change remote volume: chvol <volume> │
│ traversal │ ✓ │ ✓ │ │ Set path traversal: traversal <path> │
├───────────┼─────┼─────┼─────┼────────────────────────────────────────┤
│ format │ ✓ │ ✓ │ │ Initialize printer's file system. │
│ fuzz │ ✓ │ ✓ │ │ File system fuzzing: fuzz <category> │
├─ ─ ─ ─ ─ ─┴─ ─ ─┴─ ─ ─┴─ ─ ─┴─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤
│ path - Explore fs structure with path traversal strategies. │
│ write - First put/append file, then check for its existence. │
│ blind - Read-only tests for existing files like /etc/passwd. │
├───────────┬─────┬─────┬─────┬────────────────────────────────────────┤
│ df │ ✓ │ ✓ │ │ Show volume information. │
│ free │ ✓ │ ✓ │ ✓ │ Show available memory. │
└───────────┴─────┴─────┴─────┴────────────────────────────────────────┘  

Y con esto, una vez más queda demostrada la inseguridad de los IoT.
También comentaros que esta herramienta ha sido creada para un proposito educativo, no ha sido diseñado para crear ningún tipo de daño.




Via: www.hackplayers.com
PRET, reventando impresoras al vuelo PRET, reventando impresoras al vuelo Reviewed by Zion3R on 17:46 Rating: 5