目录

  1. 1. 前言
  2. 2. 正篇
    1. 2.1. shadow文件
    2. 2.2. John

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

利用john对shadow文件中的哈希密码进行爆破

2023/5/20 渗透 提权
  |     |   总文章阅读量:

前言

[NSSRound#12 Basic]Secrets in Shadow为例

工具:WindTerm(ssh连接用),john(对哈希密码进行爆破)

正篇

ssh连接,以ctf身份登录后尝试直接cat flag失败,明显需要提权

image-20230520195034565

结合题目名称可知和shadow文件有关


shadow文件

Linux系统中存储用户账户密码的文件,它通常存储在/etc/shadow路径下。Shadow文件的目的是将用户密码和其他安全相关信息从/etc/passwd文件中分离出来,以增强系统的安全性。

文件内容格式:

username:password:lastpasswordchange:minpasswordage:maxpasswordage:passwordwarning:passwordinactive:accountexpirationdate:reservedfield
  • username: 用户名
  • password: 用户密码的哈希值(已加密)
  • lastpasswordchange: 上次更改密码的时间(自1970年1月1日以来的天数)
  • minpasswordage: 密码最短使用时间(以天为单位)
  • maxpasswordage: 密码最长使用时间(以天为单位)
  • passwordwarning: 密码过期前的警告天数
  • passwordinactive: 密码过期后账户被禁用的天数
  • accountexpirationdate: 账户过期日期(自1970年1月1日以来的天数)
  • reservedfield: 保留字段,目前未使用

Shadow文件中的密码字段在Shadow文件中,密码字段是经过加密的哈希值,不能直接读取用户密码。密码哈希值的加密方式可以通过第二个字段中的前缀来识别。下面是一些常见的密码哈希值前缀:

  • 1: MD5加密
  • 2a: Blowfish加密
  • 2y: 更安全的Blowfish加密
  • 5: SHA-256加密
  • 6: SHA-512加密

cat /etc/shadow

image-20230520200253959

得到root用户密码的哈希值

$6$Vh57Xwpz34U8wthL$Xd0QAbWlZgB4nOhgDPCR/Q50rhAUsVVkIs3MUiglBlMychQjULqAADyTSzTXNuuF0TO.2TzUi574DHY6e8Fma1

然后使用john进行爆破


John

外链

一款密码破解工具,支持哈希算法

貌似直接john+文件名就能自动爆破了

常用的John命令:

john --wordlist=<path_to_wordlist> <path_to_hash_file>

使用字典攻击模式破解哈希文件,字典文件路径为<path_to_wordlist>,哈希文件路径为<path_to_hash_file>

john --incremental <path_to_hash_file>`

使用暴力破解模式破解哈希文件,使用增量模式进行破解。

john --rules=<path_to_rules_file> <path_to_hash_file>`

使用规则攻击模式破解哈希文件,规则文件路径为<path_to_rules_file>,哈希文件路径为<path_to_hash_file>

john --show <path_to_hash_file>

显示已经破解的密码。

john --test <path_to_hash_file>

测试John是否支持指定哈希算法。

john --list=formats

列出John支持的哈希算法。


使用john爆破得到root用户的密码

image-20230520201231153

密码为

bullshit

接下来要么直接su root切换到root用户,要么用root连接ssh,继而就可以读取到flag