2024全网最全面及最新且最为详细的网络安全技巧 (3-3) 之 linux提权各类技巧 上集

举报
肾透侧视攻城狮 发表于 2024/11/03 17:34:46 2024/11/03
【摘要】 2024全网最全面及最新且最为详细的网络安全技巧 (3-3) 之 linux提权各类技巧 上集之Linux 提权之 shaodow 文件提权

欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]


专栏跑道一

➡️网络空间安全——全栈前沿技术持续深入学习 

专栏跑道二

➡️ 24 Network Security -LJS

 

专栏跑道三

 ➡️ MYSQL REDIS Advance operation


专栏跑道四

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

专栏跑道五

➡️RHCE-LJS[Linux高端骚操作实战篇]​

专栏跑道六


➡️数据结构与算法[考研+实际工作应用+C程序设计]

专栏跑道七

➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾

3.4 Linux 提权之 shaodow 文件提权

实验介绍

  • /etc/passwd 和 /etc/shadow 文件是 Linux 系统登录认证的关键文件,如果系统运维人员对 shadow 或 shadow 文件的内容或权限配置有误,则可以被利用来进行系统提权。
  • 上一章中,我们已经学习了 /etc/passwd 文件的提权方法, 在本章节中,我们将学习如何利用/etc/shadow 来完成系统提权。

知识点


  • /etc/shadow 文件含义
  • 通过 /etc/shadow 文件提权的方法

理解 /etc/shadow 文件含义


  • 我们先了解一下 /etc/shadow 内容的含义
  • Linux 密码信息保存在两个文件中,分别为:/etc/passwd 和 /etc/shadow,/etc/passwd 文件的含义,我们在上一章已经讲过。
  • /etc/shadow 文件用于存储加密后的密码和密码相关的配置信息,该文件的每一行代表一个用户,每行都包含 9 个字段,用冒号(":")隔开,顺序如下:
  1. 用户名
  2. 加密后的密码
  3. 上次修改密码的时间(从 1970.1.1 开始的总天数)
  4. 两次修改密码间隔的最少天数,如果为 0,则没有限制
  5. 两次修改密码间隔最多的天数,表示该用户的密码会在多少天后过期,如果为 99999 则没有限制
  6. 提前多少天警告用户密码将过期
  7. 在密码过期之后多少天禁用此用户
  8. 用户过期日期(从 1970.1.1 开始的总天数),如果为 0,则该用户永久可用
  9. 保留,未来使用

例如,假设 /etc/shadow 文件中其中一行信息如下:

其含义解读如下

  • 用户名:test-user
  • 加密后的密码:$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0
  • 上次修改密码的时间(从 1970.1.1 开始的总天数为 17470)
  • 两次修改密码最小间隔天数:没有限制
  • 两次修改密码最大间隔天数:没有限制
  • 提前 7 天警告用户密码将过期
  • 该用户永久可用

默认情况下,只有 root 权限才能读取和修改 /etc/shadow 文件,但有时候由于系统管理员的错误配置,也会给我们带来可乘之机。


通过 /etc/shadow 文件提权


通常来说,通过 /etc/shadow 提权的方法有两种:

  • 如果具有 /etc/shadow 的 w (写入) 权限,可以直接修改 root 密码
  • 如果具有 /etc/shadow 的 r (读取) 权限,可以通过读取 root 用户密码并使用 john 进行破解

因为 /etc/shadow 文件的提权方法和 /etc/passwd 是比较类似的,相信学习完上一章的同学能够很快掌握,所以本章的实验我会尽量简写,以节约大家时间,如果有不能理解的地方,欢迎评论区留言。

场景一:具有 /etc/shadow 文件写入权限


初始化实验环境


首先需要初始化实验环境,打开终端并执行如下命令:

curl https://labfile.oss.aliyuncs.com/courses/2650/init_shadow_1.sh > ~/init_shadow_1.sh;chmod +x ~/init_shadow_1.sh;sudo ./init_shadow_1.sh

  • 如上图所示,完成实验环境的部署,此时我们已经切换到 tomcat-syl 用户——模拟渗透测试前期获取到的初始 shell。

开始实验

使用如下命令查看 /etc/passwd  /etc/shadow 文件的权限:

ls -alh /etc/passwd /etc/shadow

从输出结果中我们发现,/etc/shadow 文件的所有者被错误配置为了 tomcat-syl 用户,导致我们拥有了对 /etc/shadow 文件的读写权限。

于是接下来的利用思路就是:

  • 编辑/etc/shadow 文件,将 root 用户的密码篡改。
  • 命令查看 shadow 文件中 root 用户的密码配置:
    cat /etc/shadow|grep root

得到的结果是

root:**$6$5PfZMEbQ$pCjxwZagiIqsrkL4V6r3flOiKQrheDV5eup3zicnvBSKPItaddhUfDAVA5GWAYUHX9LQ5kXzLH8ehoUno2qkE/**:18167:0:99999:7:::

  • 我们只需要替换第一个:和第二个:之前的字符串,这是经过加密之后的密码哈希。

  • 生成密码的方法和上一章中的一样,需要使用到 openssl 套件,创建一个密码为 pass123 的 linux hash,命令如下:

    openssl passwd -1 -salt ignite pass123
  • 参数解释:

  • -1 :使用 MD5 hash 算法

  • -salt :对 hash 算法加 "盐"

计算得到的 hash 为

$1$ignite$3eTbJm98O9Hz.k1NTdNxe1

使用 vim 编辑 etc/shadow,替换密码哈希:

使用 cat 命令确认一下是否修改成功:

确认添加成功后,使用 su root 切换到 root 用户,密码为 pass123:

场景二:具有 /etc/shadow 文件的读取权限

  • 简介:如果具有/etc/shadow 文件的读取权限,可以获得 root 用户的密码哈希,再使用 john 工具进行破解。

初始化实验环境

  • 新打开一个终端,执行如下命令开始配置实验环境:

    curl https://labfile.oss.aliyuncs.com/courses/2650/init_shadow_2.sh > ~/init_shadow_2.sh;chmod +x ~/init_shadow_2.sh;sudo ./init_shadow_2.sh

  • 输出如上图所示,说明环境部署成功。

开始实验

和之前一样,使用如下命令查看 /etc/passwd  /etc/shadow 文件的权限:

ls -alh /etc/passwd /etc/shadow

从输出结果中我们发现,/etc/shadow 文件其他用户也具有读取(r)权限,导致我们可以直接读取 /etc/shadow 的内容:

  • 可以看到,shadow 文件中记录了 root 用户的密码哈希,接下来我们使用 john 工具来破解。

  • Kali Linux 上默认安装了该工具,但在 ubuntu 实验机器上需要自己安装。打开一个新终端,输入如下命令进行安装:

    sudo apt install john

  • john 会调用指定字典对 hash 字符串进行破解,破解时间取决于字典大小和计算机性能。
  • john 支持使用内置字典,也可以使用用户自己的自定义字典,本课程中我们使用 john 自带字典完成破解。

j
不过在开始破解之前,还有一步要做:

  • 在实战环境中,我们需要先将 /etc/passwd 和 /etc/shadow 的内容合并,否者 john 可能无法识别 /etc/shadow 中的内容。
  • 需要使用到 unshadow 命令:
    # 注意 passwd 必须是第一个参数 
    unshadow /etc/passwd /etc/shadow > ~/shadow_crack.txt

接下来就可以使用 john 来破解 shadow_crack.txt ,john 会自动加载所有识别到的用户 hash 并按次序破解:

john ~/shadow_crack.txt

稍微等待一下,成功破解出 root 密码:

使用 su root 命令切换到 root 用户:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。