freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

day01 提权
2023-05-30 16:36:13
所属地 江苏省

开始介绍:本文章来源博主个人学习总结 。均为测试环境 。请勿用于商业 ,后果自负~

大佬勿喷~~~

Linux提权概述

一句话概括,在 Linux 中,我们进行权限提升的最终目标是获得一个以 root 用户身份运行的 shell。

环境

靶机 :Linux Debian

攻击机:kali Linux

实操一:

shadow文件利用权限(可读)

*shadow文件是用来存储用户密码的

最初只有passwd文件,新发行版Linux passwd文件中,passwd密码段都用  ‘ X ’表示:(意味着,密码实际以哈希值存储在shadow文件中。)(这就是为什么cat /etc/shadow  会看到该文件中显示有哈希值的原因)

shadow和passwd的区别:(孪生兄弟)

1、枚举shadow文件(检查/etc/shadow文件的权限:)

命令:ls -liah /etc/shadow

1685429991_64759ee719e78a5e3dc10.png!small

看到shadow文件是可写的,那么它就是可以利用起来的

r:读

w:写

x:执行

2、查看shadow文件

命令:cat /etc/shadow

1685430288_6475a010e5b0a5c6df535.png!small?1685430289709可以看到我环境里面有两条是带有哈希值的为root和user字段是~可读

即可考虑(暴力破解)

附1:正常的shadow文件是有两个哈希信息的。一个是root  一个是user ,user就是当前用户,root是我们 最感兴趣的,大家都知道

* 附2:现在Linux的发行中 ,密码都是在shadow文件中的;passwd文件中 并不存储,只用一个 X 来占位 ;但还是可以在可写的文件中直接写入密码

因操作文件比较重要,我们先要把passwd文件做一备份

cp /etc/passwd /tmp/passwd.bak

3、将有哈希值的记录贴出来,看有什么特征

只要有:$ 把它单独提取出来。( $ 要加转义符 \ )

命令:cat /etc/shadow | grep ':\$'

1685430560_6475a120c4c83c5452b35.png!small?1685430561501

我们可以拿到root和user的哈希值,然后 创建一个存放hash值的文档(这里我是以hash命名)

1685430774_6475a1f6bb9e809d769ad.png!small?1685430775417

4、使用John破解密码哈希:

命令:sudo john --wordlist=/usr/share/wordlists/rockyou.txt hash

1685430875_6475a25b7565892915b77.png!small?1685430876227

5、su命令切换到root用户。

输入我们破解的root密码:password123

1685431138_6475a36243a1dccf66c1c.png!small?1685431139015

已登录到root

可读shadow文件利用提权演示完毕~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

实操二:

shadow文件利用权限(可写)

这里前3步和实操一 一样。简写~

1、枚举shadow文件(检查/etc/shadow文件的权限:)

命令:ls -l /etc/shadow

1685431288_6475a3f87a71d70eb7b40.png!small?1685431289059

看到shadow文件是可读可写的,那么它也是可以利用起来的

我们可以把密码替换到我们自己的,然后切换到root用户

2、查看shadow文件

1685432685_6475a96d45d09a5e3be31.png!small?1685432686413

2.1 附:

<!--加密算法-->

<!--$6$开头的,表明是用SHA-512加密的,-->

<!--$1$ 表明是用MD5加密的-->

<!--$2$ 是用Blowfish加密的-->

<!--$5$ 是用 SHA-256加密的。-->

3、生成密码哈希

命令:mkpasswd -m sha-512 zmy

mkpasswd:生成Linux密码哈希

m为需要指定哈希的加密类型

zmy 为密码哈希(自定义)

常用的Linux密码的加密方式看哈希值的前几个字母就可以了

如不清楚 可自行用kali自带 hash-identifier 进行验证

1685433157_6475ab45133a9823fb7b3.png!small?1685433157906

4、替换shadow文件中root哈希值

命令: vim /etc/shadow

将生成的哈希值 替换到root 字段 后一个   :  (分号)

保存 ,退出

1685433476_6475ac84a396f7c698c21.png!small?1685433477226

5、su进入 root权限

看到命令行带有#号的,没问题已经进入到root账户

1685433520_6475acb01f9bb57220017.png!small?1685433520817

可写shadow文件利用提权演示完毕~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

实操三:

passwd文件利用提权(可写)

1、枚举passwd文件(检查/etc/passwd文件的权限:)

命令:ls -liab /etc/passwd

ls -lish /etc/passwd

1685433972_6475ae74a991140cd0b7d.png!small?1685433973271

可以看到该文件是可写的。可以利用

提示:或是通过历史记录等命令查看用户操作,也有可能会发现可以操作passwd文件的~~~

2、查看passwd

用一个‘ X ’来占位 。但还是可以在可写的文件中来写入密码。

但还是可以利用这种方式尝试提权

1685434227_6475af730842005046f9d.png!small?1685434228236

3、生成一个 自己密码的哈希

(使用openssl以密码"password"生成密码哈希值:)1685434622_6475b0fe07e716a1e9cd6.png!small?1685434622807

5yinBM4eKKq6g(自己的哈希)

也到passwd文件中,替代占位的‘ X ’        :wq

1685434880_6475b20029d9ed6c89564.png!small?1685434880726

4、su进入 root权限

1685434974_6475b25e56c7026f5c4ea.png!small?1685434975635

拿到root权限

可写passwd文件利用提权演示完毕~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

记得备份  记得备份   记得备份(养成好习惯)

# 提权 # linux提权
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录