shadow文件分析

前言

在分析路由器的时候需要用到默认的密码是什么,但是我无法从网上知道,于是我想办法通过shadow去分析密码出来

shadow文件

当前的Linux系统出于安全性考虑,etc/passwd 文件中并没有存储Linux用户的密码信息,而是转移到了/etc/shadow文件下,又称为“影子文件”。该文件只有root用户才能read权限,其他用户无权查看,使密码泄露风险降低。同时shadow文件中存储的密码采用SHA512散列加密,相比较原始的MD5,加密等级更高

shadow文件密码存储格式:

id Method
1 MD5
2a Blowfish(not in mainline glibc;added in some Linux distribution)
5 SHA-256(since glibc 2.7)
6 SHA-512(since glibc 2.7)

salt是长度1-16字符的随机数,随机数的引入增大了破解难度

encrypted是最终的密文,即通过加密算法和salt(盐参)计算的最终结果

示例:

1
$6$PUehV6sk$Y1ctlOYUyKJMO868w7C78xeCvkGz4R7M73Hs6cg.IsMSN.2QryqCbbno5wvklwHn4is//ibMQA0TIWiledmp80

该shadow文件显示,使用加密算法为SHA-512,随机数(salt)为PUehV6sk,加密密钥为Y1ctlOYUyKJMO868w7C78xeCvkGz4R7M73Hs6cg.IsMSN.2QryqCbbno5wvklwHn4is//ibMQA0TIWiledmp80

Hashcat

4.1 介绍

hashcat系列软件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU来进行密码破解。在操作系统上支持Windows、Linux平台,并且需要安装官方指定版本的显卡驱动程序,如果驱动程序版本不对,可能导致程序无法运行。NVIDIA users GPU破解驱动需要ForceWare 331.67以及更高版本,AMD 用户则需要Catalyst 14.9以及更高版本,可以通过Catalyst 自动侦测和下载检测工具来检测系统应该下载那个版本,下载地址:地址,选择合适的版本安装即可。其官方github 网站地址为:地址

4.2 使用参数指南

使用Kali中内置的Hashcat工具进行破解。

参数标准语句:

1
hashcat  -a 0 -m <加密模式> <shadow文本.txt> <密码文本.txt> -o 输出文本.txt

参数列表:

-a 指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-m 指定要破解的hash类型,如果不指定类型,则默认是MD5
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
–force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
–show 显示已经破解的hash及该hash所对应的明文
–increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
–increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
–increment-max 密码最大长度,同上
–outfile-format 指定破解结果的输出格式id,默认是3
–username 忽略hash文件中的指定的用户名,在破解linux系统用户密码hash可能会用到
–remove 删除已被破解成功的hash
-r 使用自定义破解规则

Hash id对照表:

(常见ID 其他请使用–help获取)

Name Method
0 MD5
100 SHA1
1300 SHA2-224
1400 SHA2-256
3800 md5($salt.$pass.$salt)
3710 md5($salt.md5($pass))
4010 md5($salt.md5($salt.$pass))
1800 sha512crypt $6$, SHA512 (Unix)

使用方法

1
hashcat --force  -a 0 shadow.txt dic.txt -o results.txt
  • dic.txt:破解的字典
  • shadow.txt:要破解的shadow文件
  • results.txt:如果破解成功后,生成的结果

破解后的结果会在results.txt 里面,不会在终端输出结果

例子

1
$1$9.EU8ItY$z4EfK4vQ.tIaWfa8OR6HS1

命令行

1
hashcat --force -a 0 shadow.txt dic.txt --show    

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali)-[~/Desktop/hash]
└─$ hashcat --force -a 0 shadow.txt dic.txt --show

Hash-mode was not specified with -m. Attempting to auto-detect hash mode.
The following mode was auto-detected as the only one matching your input hash:

500 | md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5) | Operating System

NOTE: Auto-detect is best effort. The correct hash-mode is NOT guaranteed!
Do NOT report auto-detect issues unless you are certain of the hash type.

$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:123