max*_*zig 5 password login authentication
查看脚本小子的所有 ssh 登录尝试,我假设连接到互联网的系统混乱,并且设置了无密码帐户。
但是如何检查 Linux/Unix 系统的此类帐户(可能由损坏的安装程序脚本、困惑的管理员或类似的东西创建)?
作为第一个近似值,我可以想到以下内容:
$ grep '^[^:]\+::' /etc/passwd /etc/shadow
Run Code Online (Sandbox Code Playgroud)
使用空密码打印所有帐户 - 但也许在具体系统上,此类帐户甚至不是问题,因为没有程序接受空条目 - 参见密码(5):
但是,如果密码字段为空,某些读取 /etc/passwd 文件的应用程序可能会决定根本不允许任何访问。
但是散列空字符串作为密码呢(例如crypt(""))呢?
如何检查它们?
以及如何在使用更复杂的帐户数据库(NIS、LDAP 等)时检查帐户?
查找加密的空密码或弱密码的一种简单方法是使用密码破解程序,例如 开膛手约翰。
如果您使用的是 NIS 或 LDAP,您首先需要从数据库中提取密码哈希值 - 一种方法是通过getent,请参阅来自 maxschlepzig的答案