目录
写在开头
本篇博客是根据红队笔记大佬的视频进行打靶,本次靶机依然是vulnhub上的prime,本文详述了提权的思路,从获得初始立足点www-data的shell开始,最终提权为root的过程。本文核心利用了OpenSSL的解密过程。前述的模糊测试及wfuzz工具的使用、文件包含漏洞利用、wordpress CMS代码执行的过程见我的上一篇博客:
红队打靶:Prime1详细打靶思路之模糊测试+内核提权(vulnhub)
上一篇博客的提权使用了内核提权。利用了老版本linux内核的漏洞,虽然提权过程并不复杂,但这种方式并不“优雅”,并不推荐大家作为首选。利用内核提权是很暴力的,容易导致系统服务的中断/重启,被系统管理员发现。因此,本文使用其他方式,涉及知识点包括find命令寻找备份、md5哈希生成、OpenSSL加解密的参数设定、bash脚本的编写等。详细思路见红队比较大佬的视频:
「红队笔记」靶机精讲:Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。_哔哩哔哩_bilibili
prime是vulnhub中的一台用于OSCP考试练习的的靶机,链接见:
靶机下载链接见:
https://download.vulnhub.com/prime/Prime_Series_Level-1.rar

特别注意,本文是从拿到www-data的shell开始的:

下面我们就开始提权的过程。
第一步:enc查找与破解
拿到www-data的shell之后,应该先查看自身权限:
sudo –l

发现www-data能够以root权限执行/home/saket/enc这个东西,那么我们cd /home/saket之后,看看enc是个啥
cd /home/saket
ls -liah

果然有个enc,而且是个可执行文件,既然他说能够在无密码的前提下以root权限运行,那我们在此目录sudo执行试试。
sudo ./enc

发现需要输入密码,那我们随便输入一个aaa试试,如上图,应该是失败了。此处应该是需要寻找密码,因此我们在整个系统中查找有没有备份信息,可能会泄露enc的密码信息。这也是打靶的常规思路,当发现登录或执行命令时需要密码,而我们此时不知道密码,可以在系统中寻找是否有信息泄露的位置,从而得到密码。根据经验,存放密码的地方可能是系统的备份,也可能管理员直接起名为password/passwd这样类似的名称,我们先在根目录开始寻找名称中存在backup字符的文件,命令如下:
find / -name "*backup*"
其中/表示从根目录开始搜索,-name表示以文件名作为匹配,"*backup*"表示匹配字符串中包含backup的文件。运行结果如下:

信息非常多,而且有好多都报错Permission denied(权限不允许),这种信息是没意义的,干脆把他丢弃掉,用2>/dev/null过滤:
find / -name "*backup*" 2>/dev/null

结果依旧有很多,我们应当选择最有可能泄露密码的位置。搜索结果中有很多在/usr/share/help目录下,help是帮助,应该不会泄露这些密码,另外有关内核的.ko文件也不会是。使用此命令发现第一个查找的结果就是/var/backups,感觉很有可能,那我们试试看。进入目录/var/backups,看看里面有什么:

里面还真有两个文件passwd.bak和shadow.bak。我们试试能不能查看,结果很可惜,权限不够,没法读:

那说不定其他目录也有备份,再找找吧。回看刚才find命令的找到的文件,最底下有个/opt/backup,那我们再看看:

本文详细介绍了如何从www-data用户权限开始,通过查找备份文件、md5哈希生成、OpenSSL解密参数确定及bash脚本自动化解密过程,最终成功提权至root用户。关键步骤包括enc的密码破解、密文的md5转换、OpenSSL的加密算法枚举以及bash脚本的编写,展示了渗透测试中优雅的提权方法。
最低0.47元/天 解锁文章
1458

被折叠的 条评论
为什么被折叠?



