vulnhub pWnOS1.0

0x01 端口扫描

80web、10000webmin、22ssh、445smb


扫到10000端口可能有目录穿越,以%01截断,试了一下没什么用

对于80端口nikto好像发现了重要信息:php目录、index1.php文件包含报错

10000端口扫出了可能的漏洞cve-2006-3392

0x02 web渗透

先看80,同时起目录爆破

包含点在connect位置

三个用户名:obama、osama、yomama

目录爆破:


找到了需要登录的phpmyadmin,直接通过包含点偷出配置文件:

很奇怪没有登录成功,猜测可能是使用的不是这个配置文件?

走投无路,选择去看10000端口:

webmim

很无奈不能爆破
走投无路,选择搜下扫出的cve:

readme:可无视权限读取任意文件、需要提前修改ip

尝试读shadow:

爆破:

拿到立足点

0x03 提权

跑linpeas:

尝试了几种方法都失败了,看了wp,居然是shellshock

image.png

存在shellshock,思考如何提权

寻找webmin实例位置:

1
ps aux | grep miniserv

image.png

Webmin 实例位于 /usr/local/webmin 目录下,并使用 /etc/webmin/miniserv.conf 配置文件,做初步探查:

image.png

webmin的http服务是webmin自己起的!但是配置文件无权查看
但是webmin服务是root起的,我们从后端还能看到文件名,还有shellshock,尝试shellshock打cgi

image.png

很烦,原生的cgi文件全都有限制,报错无法利用,切换思路

突然想到前面发现的目录穿越,感觉可以直接写马然后穿越过去触发
考虑解析问题,webmin本身就是pl文件构成,一定是有perl的解释器,尝试写perl的马:

image.png

image.png

发现只要是pl文件就禁止访问,可能是配置文件的设置问题,但是配置文件看不了就很抽象,好在是开源项目,转去分析setup.sh,看看默认的配置是什么样的:

image.png

果然这种前后端分离的cgi项目是禁用了直接访问模块(pl)文件的,但是可以注意到一个很有趣的设定:addtype_cgi=internal/cgi

image.png

这个设定可以说是非常危险了,不像apache那样指定只有/usr/lib/cgi-bin/下的才被解析,webmin的这个配置只要是能访问到的.cgi文件都会被解析,这配合着目录穿越就造成了巨大的风险!

利用姿势:在/tmp写执行反弹shell的1.cgi,由webmin服务配合目录穿越触发,即可拿到root shell

尝试:

image.png

image.png

可以执行,换成python反弹shell语句:

image.png

现成的只有perl的,那就换pl:

image.png

image.png

拿到反弹的root shell

0x04 提权2

既然提权1中已经可以使用自定义的cgi文件,那么可以直接配合shellshock达成root身份的命令执行

image.png

简述原理:每个cgi文件执行时都是一次调用bash,而请求头的参数要作为环境变量加载到该bash进程,完全满足shellshock利用条件,注入命令将vmware加入sudoers完成提权

0x05 提权3

image.png

https://www.exploit-db.com/download/5092

或者还有其他内核漏洞:

image.png

Sucuri 网站防火墙 - 访问被拒绝 — Sucuri WebSite Firewall - Access Denied (exploit-db.com)


vulnhub pWnOS1.0
https://fyhypo.github.io/blog/vulnhub/vulnhub pWnOS1.o/
作者
FYHypo
发布于
2024年8月31日
许可协议