vulnhub SickOS1

0x01 端口扫描

image.png

image.png

image.png

image.png

开启了squid-http代理、ssh,关闭了8080

0x02 web渗透

穿越squid代理

image.png

web服务并未直接对外开放,添加3128端口为代理,使其转发流量从而访问web服务

image.png

image.png

目录爆破

1
dirb 10.10.10.139 -p 10.10.10.139:3128

image.png

image.png

image.png

image.png

Wolf CMS

虽然从源码没有找到版本号,但还是先走公开漏洞利用:

image.png

image.png

先试试这个能否利用:

image.png

重定向到了登录页面,尝试了几个弱密码,登录成功

image.png

image.png

上传反弹shell,拿到立足点

image.png

0x03 提权

image.png

内核版本很低,还有gcc,尝试内核提权,跑linpeas:

image.png

image.png

image.png

判断脏牛为误报

image.png

linpeas的建议均排除,直接搜索:

image.png

41995、43345、45553均失败,暂时放下内核提权

linEnum枚举:

image.png

发现一个特权很高的admin用户sickos

image.png

发现很感兴趣的定时任务,出现了很多次,且是root名下

image.png

有root的计划任务进程在执行

image.png

有数据库开放

image.png

计划任务没什么收获,找mysql配置文件

image.png

开源信息表示存在config.php保存各凭据

image.png

登录数据库查:

image.png

只有一个最初登录网站时的admin@admin凭据
尝试拿数据库密码和admin登录其他账户:

image.png

以数据库密码登录到了sickos用户

image.png

sudo ALL提权至root

0x04 另解:shellshock漏洞

shellshock:bash的漏洞,攻击者可以使用特定环境变量使用类似注入的方法达成rce
参考:freebufgithub

原理:Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题的是以(){开头定义的环境变量在命令ENV中解析成函数后,Bash执行未退出,而是继续解析并执行shell命令,而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

条件:bash版本<4.3

payload:() { :; }; echo; /bin/cat /etc/passwd

image.png

nikto扫描发现存在针对cgi-bin/status的shellshock漏洞
漏洞利用:

image.png

1
curl -x 10.10.10.139:3128 http://10.10.10.139/cgi-bin/status -H "test: () { :; };echo;/bin/cat /etc/passwd" -v

-x:指定代理服务器,本机需要
-H:修改请求头,添加了test参数
-v:显示完整数据包
由于本机需要代理,故未用bp,下图为使用bp:

image.png

0x05 靶机总结

预期

  1. 端口扫描:开放ssh、http代理squid
  2. web渗透:不能直接访问到web服务,需通过squid端口代理;目录爆破得到cms页面,按照公开漏洞,弱密码admin@admin登录后台,传马,拿到立足点
  3. 提权:从配置文件拿到mysql凭据,密码喷洒成功登录高权限用户sickos的ssh,sudo ALL提权

非预期

  1. 漏洞扫描:nikto扫到了apache cgi的shellshock漏洞
  2. shellshock利用:构造漏洞payload达成rce,获得www-data的立足点
  3. 提权:同预期

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