您查看的文章来源于http://www.oklinux.cn
Usage: MDCrack [options...] --test-hash|hash MDCrack [options...] --bench[=PASS] MDCrack [options...] --resume[=FILENAME]|--delete[=FILENAME] MDCrack [options...] --help|--about
最简单的命令行调用是 wine MDCrack-sse.exe --algorithm=MD5 --append=$USERNAME $MD5_HASH,其中 $USERNAME 为用户名,而 $MD5_HASH 是 pg_shadow 目录文件中的 MD5 散列。
如下所示,MDCrack 可以在会话模式下运行,因此您可以停止一个解密操作并在稍后继续执行。
清单 16. 在会话模式下运行的 MDCrack
# start sessionwine MDCrack-sse.exe --algorithm=MD5 --append=$USERNAME $MD5_HASH\ --session=mysessionfile.txt# resume using the last session modewine MDCrack-sse.exe --algorithm=MD5 --append=$USERNAME $MD5_HASH\ --resume=mysessionfile.txt
默 认字符集为 abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ。如果要测试的密码包 含了不属于默认字符集的字符,那么您可以中止进程。您可以将其修改为由字母和数字字符组成的任意组合。例如,您可能希望包含控制字符和标点符号。
调整字符集是在命令行中完成的。变量 $CHARSET 表示将要使用的实际字符集:
wine MDCrack-sse.exe --algorithm=MD5 --append=$USERNAME $MD5_HASH --charset=$CHARSET
下面的示例将修改 Postgres 密码 123。如果忽略前三个字符,那么将得到 MD5 散列值 md5173ca5050c91b538b6bf1f685b262b35。您可以通过以下调用确定密码(提示:对字符串 Collision found 执行 grep 命令)。这次解密用了大约 0.32 秒:
wine MDCrack-sse.exe --algorithm=MD5 --append=user1 173ca5050c91b538b6bf1f685b262b35\| grep "Collision found"
清单 17 演示了在系统目录 pg_shadow 中解密密码。
清单 17. 解密密码
wine MDCrack-sse.exe --algorithm=MD5 --append=user1 \`psql -t -c "select substring(passwd,4) from pg_shadow where usename='user1';"` \| grep "Collision found" 身份验证模型
您已经知道了哪些部分会出现问题,现在让我们看看采取哪些措施来纠正错误。身份验证是一个庞大的主题,因此这里只涉及一些基本的知识。
在 “身份验证” 这一庞大主题下,可以用许多种方法控制对 Postgres 集群的访问:
?UNIX 域套接字
?Ident 服务器身份验证
?LDAP 服务器身份验证
?PAM
?Kerberos
?SSL
UNIX 域套接字
一个 UNIX 域套接字就是一个双向通信管道,它在许多方面与文件相似。服务器创建域套接字,域套接字等待客户机通过文件系统打开文件。一个典型的 PostgreSQL 域套接字如下所示。