Linux口令破解

1.获取密码密文

1
cat /etc/shadow


root:用户名;
$6$:是表示一种类型标记为6的密码散列suans fa,这里指SHA-512哈希算法;
mxuA5cdy:指的是加盐(Salt)值;

2.保存root用户的hash密文到passwd.lst文件中

1
cp /etc/shadow /root/Desktop/passwd.lst

由于我们只关心root账户的密码,所以删除的其他用户的信息,只保留root用户的:

使用Hashcat破解(hash值比对,查表)Linux登录密码时,并不需要一条完整的/etc/shadow记录,要把上面的完整记录削减成如下形式:
$6$mxuA5cdy$XZRk0CvnPFqOgVopqiPEFAFK72SogKVwwwp7gWaUOb7b6tVwfCpcSUsCEk64ktLLYmzyew/xd0O0hPG/yrm2X.

3.查看加密算法
Linux密码文件/etc/shadow中hash算法包括缺省的DES经典算法、MD5哈希算法($1)、Blowfish加密算法($2或$2a)和SHA哈希算法($5或$6)。因此利用hashcat工具进行破解的时候参数也不同,比如MD5哈希算法($1),使用hashcat -m 500参数;SHA哈希算法($5或$6),使用hashcat -m 1800 参数。
查看加密类型:

1
cat /etc/login.defs

找到ENCRYPT_METHOD对应的参数,这里能够看到是使用的SHA算法:SHA512

查看SHA512对应的参数:

1
hashcat --/help

4.使用工具进行破解
进入之前保存的passwd.lst文件所在的目录

1
hashcat -m 1700 -a 0 -o cracked.txt passwd.lst '/usr/share/sqlmap/txt/wordlist.txt'

-m:(–hash-type=NUM)#hash种类,下面有列表,后面跟对应数字;
1700:SHA512对应的参数;
-a (–attack-mode=NUM)#攻击模式
[ 攻击模式 ]
X | Mode
===+======
0 | Straight (字典破解)
1 | Combination (组合破解)
3 | Brute-force
6 | Hybrid Wordlist + Mask (掩码暴力破解)
7 | Hybrid Mask + Wordlist
0:字典破解;
-o:结果输出;
cracked.txt:输出结果存放文件;
passwd.lst:密文文件;
‘/usr/share/sqlmap/txt/wordlist.txt’:字典文件;