script-kiddiesのすべてのSSHログイン試行を見ると、パスワードのないアカウントが設定されたインターネットに接続されているシステムが混乱していると仮定します。
しかし、Linux / Unixシステムにそのようなアカウントがあるかどうかを確認する方法(おそらく破損したインストーラスクリプト、混乱した管理者、または同様のものによって生成された可能性があります)は何ですか?
最初の近似で、次のようなことを考えることができます。
$ grep '^[^:]\+::' /etc/passwd /etc/shadow
空のパスワードを持つすべてのアカウントを印刷します。ただし、特定のシステムではどのプログラムも空のエントリを受け入れないため、これらのアカウントは問題ではありません。 - cfパスワード(5):
ただし、パスワードフィールドが空の場合、/etc/passwdファイルを読み取るアプリケーションの中には、アクセスがまったく許可されていないと判断できます。
しかし、ハッシュはどうですか?空文字列をパスワードとして使用しますか(例crypt("")
:)?
どうやって確認しますか?
より複雑なアカウントデータベース(NIS、LDAPなど)を使用するときにアカウントを確認する方法は?
ベストアンサー1
暗号化された空または脆弱なパスワードを見つける簡単な方法は、次のパスワードクラッキングプログラムを使用することです。 ジョン・ザ・リッパー。
NISまたはLDAPを使用している場合は、まずデータベースからパスワードハッシュを抽出する必要があります。 1つの方法はを使用することですgetent
。maxschlepzigの答え