1、shadow文件格式分析
文件内容:
cmcc:$y$j9T$Tk0pcQ561zX9aa4rIiT1z/$WMSZ24MMqhOfIa1ID3b5N2YBXeEC8IeTQWxxW:19523:0:99999:7:::
USERNAME:PASSWORD:LAST_CHANGED:MIN_DAYS:MAX_DAYS:WARNNING:EXPIRES:INVALID:RESERVED
1、USERNAME:用户账号名称。
2、PASSWORD:加密后的密码。
3、LAST_CHANGED:密码最后一次修改的日期。
4、MIN_DAYS:密码修改的最小间隔天数。
5、MAX_DAYS:密码修改的最大天数。
6、WARNNING:密码过期前警告的天数。
7、EXPIRES:密码过期的日期
8、INVALID: 账号失效日期
9、RESERVED:保留位,未定义功能
2、分析密码
PASSWORD:分析这个字段
获得加密方式:盐:和密码
如:split_node="$y$j9T$Tk0pcQ561zX9aa4rIiT1z/$WMSZ24MMqhOfIa1ID3b5N2YBXeEC8IeTQWxxW"
3、撞库
import crypt
split_node="$y$j9T$Tk0pcQ561zX9aa4rIiT1z/$WMSZ24MMqhOfIa1ID3b5N2YBXeEC8IeTQWxxW"
_pwd = crypt.crypt("猜测密码", "$".join(split_node[:-1]))
print('密码是', _pwd)