私は1990年代のコンピュータを持っています。 Linuxでは書き込めない(範囲指定された)EFSファイルシステムがあるため、パスワードを手動でリセットすることはできません。だからパスワードを解く必要があります。そのために、私はジョン・ザ・リッパーを試しました。
me2 ファイルには元の /etc/passwd ファイルのエントリがあります: root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,::/:/bin/ksh
他のスレッドの一部の人々は、これがDESパスワードである可能性があると提案しました。
だから私はこのコンピュータに再接続できるようにこのパスワードを復号しようとしています。
sudo john me2
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 SSE2-16])
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: MaxLen = 13 is too large for the current hash type, reduced to 8
警告を見て、それが何を意味するのか知りたいです。ジョン・ザ・リッパーを数時間走らせた後、帰ってきた。ずっとそんなことが起きているようでしたが…何か問題があるのは間違いないと思いました。
答え1
あなたのルートパスワードはですqwer134
。
% /usr/sbin/john --show pwdfile
root:qwer134:0:0:Super-User,,,,,,,:/:/bin/ksh
lp:passwd1:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp:NO PASSWORD:10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
3 password hashes cracked, 0 left
ジョンはルートパスワードを見つけるのに2.5日かかり、おそらくもっと時間がかかるでしょう。ハッシュが実際に一致していることを確認するためにパスワードを暗号化できます。
% perl -le 'print crypt("qwer134", "8s")'
8sh9JBUR0VYeQ
答え2
パスワードがハッシュされました。既存のDESベースのアプローチ。この方法はそれほど悪くありません。ハッシュで直接パスワードを見つけることができます。つまり、正しいパスワードが見つかるまでパスワードハッシュを計算する無差別代入が必要です。このハッシュ方法の欠点は、ハッシュ計算が比較的速く、パスワードが8文字に制限されることです(そしてソルトが小さすぎます)。これジョンベンチマークコアあたり毎秒約600万のタスクが実行されます。
人が選択したほとんどのパスワードは、毎秒600万回であれば、ほぼ直ちに復号化できます。ただし、印刷可能なすべての8文字のパスワードからランダムにパスワードを選択すると、約6.7×10 15のパスワードが可能になります。これは、累積CPU時間が約12,800日であることを意味します。
EFSという名前のファイルシステムの多くを指定しませんでした。ほとんどのファイルシステムでは、ファイルが圧縮または暗号化されていない限り、ディスクイメージのファイル内容を取得できます。ファイルシステムの構造を理解せずにファイルを変更することは、バイトを内部で変更し、ファイルサイズを同じにしていない限り動作しません。したがって、ファイルが圧縮または暗号化されていないと仮定すると、次のことができます。
- Linuxまたは他のUnixバリアントを実行しているコンピュータにディスクを挿入します。
- ディスクイメージのコピーを作成します。これは重要です。間違えると、元のデータを回復できなくなる可能性があります。
passwd
バイナリツールを使用して、ディスクイメージ内のファイルの内容を見つけます。バラよりブロックデバイスで検索/変更しますか?root:8sh9JBUR0VYeQ:
知っているパスワードのハッシュと同じ長さの文字列に置き換えてください。perl -le 'print crypt("swordfis", "aa")'
パスワードハッシュを生成するために使用できますswordfis
。
または、物理的にアクセスできる場合は、コンピュータが通常の起動プロセスをバイパスする方法を提供することもできます。