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
存在shellshock,思考如何提权
寻找webmin实例位置:
1 |
|
Webmin 实例位于 /usr/local/webmin 目录下,并使用 /etc/webmin/miniserv.conf 配置文件,做初步探查:
webmin的http服务是webmin自己起的!但是配置文件无权查看
但是webmin服务是root起的,我们从后端还能看到文件名,还有shellshock,尝试shellshock打cgi
很烦,原生的cgi文件全都有限制,报错无法利用,切换思路
突然想到前面发现的目录穿越,感觉可以直接写马然后穿越过去触发
考虑解析问题,webmin本身就是pl文件构成,一定是有perl的解释器,尝试写perl的马:
发现只要是pl文件就禁止访问,可能是配置文件的设置问题,但是配置文件看不了就很抽象,好在是开源项目,转去分析setup.sh,看看默认的配置是什么样的:
果然这种前后端分离的cgi项目是禁用了直接访问模块(pl)文件的,但是可以注意到一个很有趣的设定:addtype_cgi=internal/cgi
这个设定可以说是非常危险了,不像apache那样指定只有/usr/lib/cgi-bin/下的才被解析,webmin的这个配置只要是能访问到的.cgi文件都会被解析,这配合着目录穿越就造成了巨大的风险!
利用姿势:在/tmp写执行反弹shell的1.cgi,由webmin服务配合目录穿越触发,即可拿到root shell
尝试:
可以执行,换成python反弹shell语句:
现成的只有perl的,那就换pl:
拿到反弹的root shell
0x04 提权2
既然提权1中已经可以使用自定义的cgi文件,那么可以直接配合shellshock达成root身份的命令执行
简述原理:每个cgi文件执行时都是一次调用bash,而请求头的参数要作为环境变量加载到该bash进程,完全满足shellshock利用条件,注入命令将vmware加入sudoers完成提权
0x05 提权3
或者还有其他内核漏洞:
Sucuri 网站防火墙 - 访问被拒绝 — Sucuri WebSite Firewall - Access Denied (exploit-db.com)