サーバーセットからすべてのデフォルトのユーザーパスワードを削除しようとしていますansible
。まず、現在パスワードがある各ユーザーの名前を出力したいと思いますfoobar
。この目標をどのように達成できますか?
私の最初の意図はハッシュ値を取得し、それに対するハッシュ値を取得することでしたが、ソルティングの/etc/shadow
ためgrep
に機能しません。
私自身のハッシュを計算してそれを比較する必要がありますか?それとも、より高速で簡単な方法がありますか?
ベストアンサー1
専用のパスワード脆弱性検査ツールがあります。ジョン・ザ・リッパーすべての一般的なUnixおよびLinuxディストリビューションで利用可能で、パッケージとして提供することもできます。
以下はDebian GNU / Linux 9の使用例です(シャドウキャンセル来る男)。パスワードファイルを操作するときは注意が必要です。これはPoCです。ご注意ください、男適切なパスワードファイルが提供されている限り、コマンドはリモートで実行できます(したがって、専用システム以外の場所にはインストールされません)。
設定(パスワード設定を含む)プヴァ会計テスト):
# echo test:foobar | chpasswd
# grep ^test: /etc/shadow
test:$6$84SIejUB$qM5UulJEIiwjOc4PWXYupWoyU/jMP0rKA8cM1g8CEOgxMlC.x4ndbbdRq438rjKb.6UwCoTqzvgxoi0h51Kpm1:18050:0:99999:7:::
# unshadow /etc/passwd /etc/shadow > /root/workpasswd
# echo foobar > /tmp/wordlist
禁止/基本パスワードテスト:
# john -wordlist:/tmp/wordlist /root/workpasswd
Created directory: /root/.john
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
foobar (test)
1g 0:00:00:00 100% 5.882g/s 5.882p/s 17.64c/s 17.64C/s foobar
Use the "--show" option to display all of the cracked passwords reliably
Session completed
結果:
# john -show /root/workpasswd
test:foobar:1001:1001:,,,:/home/test:/bin/bash
1 password hash cracked, 2 left
大掃除:
# rm -r /root/workpasswd /root/.john /tmp/wordlist