どのユーザーが特定のパスワードを持っているかを確認する

どのユーザーが特定のパスワードを持っているかを確認する

サーバーセットからすべてのデフォルトのユーザーパスワードを削除しようとしています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

おすすめ記事