🌟 关注这个靶场的其它相关笔记:[网安靶场] 蓝队应急响应靶场 —— 知攻善防实验室 · 靶场笔记合集
0x01:应急响应 —— 题目环境介绍
0x0101:应急响应靶场 — 场景导入
小李在值守的过程中,发现有 CPU 占用飙升,出于胆子小,就立刻将服务器关机,并找来正在吃苕皮的 hxd 帮他分析,这是他的服务器系统,请你找出以下内容,并作为通关条件:
-
攻击者的 Shell 密码
-
攻击者的 IP 地址
-
攻击者的隐藏账户名称
-
攻击者挖矿程序的矿池域名(仅域名)
-
有实力的可以尝试着修复漏洞
0x0102:应急响应靶场 — 环境搭建
将靶场从官网网盘下载下来后,通过 VMware 启动即可,如果启动错误,请将 VMware 版本升级至 17.5 以上。
靶机环境:
-
Windows Server 2022
-
phpstudy(小皮面板)
0x0103:应急响应靶场 — 答案验证
如何查看自己的题解是否正确?在虚拟机的 administrator 用户的桌面上有一个解题程序,点击运行后即可校验你认为正确的答案:
相关账户密码
用户: administrator
密码: Zgsf@admin.com
0x02:应急响应 —— 蓝队应急视角
将靶机下载下来后,建议第一件事是先给靶机做一个原始快照,保留好原始数据,不然回头病毒没干崩虚拟机,你应急的时候先给它干崩了,这样就不好玩了。OK,下面开始应急推理。
0x0201:WebShell 查杀
打开靶机,发现桌面存在 PhpStudy,我们先定位一下网站的根目录:
然后上传一个 D 盾,对上面获取到的网站根目录进行一次自定义扫描,如下,可以扫出来一个 shell.php:
打开 shell.php 文件,内容如下,我们的第一个目标是拿到攻击者的 Shell 的密码:
如上,成功拿到了攻击者的 Shell 密码,那么下一个就是去找攻击 IP 了(Shell 可以保留一个副本,然后把原始的给干掉)。
0x0202:网站日志排查
攻击者上传了 WebShell 后肯定是要访问的,而这些访问记录就会被记录在 Web 日志中,所以接下来,我们只要去找哪个 IP 访问了 system.php,我们就知道,谁是攻击者了。
目标使用的是 PhpStudy 搭建的站点,PhpStudy 中用做 Web 服务的就是 Apache 和 Nginx,所以我们主要排查这两个中间件的日志。
在靶机中 Nginx 的日志在 C:\phpstudy_pro\Extensions\Nginx1.15.11\logs 目录下:
如上,啥都没有,所以重点排查 Apache 的日志信息:
C:\phpstudy_pro\Extensions\Apache2.4.39\logs
Apache日志详解 - 夏秋初 - 博客园转自 :http://blog.51cto.com/longlei/2095594 Apache日志详解 1、Apache日志文件名称及路径介绍 当我们安装并启动Apache后,Apache会自动生成两个日志文件,这两个日志文件分别是访问日志access_log(在Windows上是access.lhttps://www.cnblogs.com/xiaqiuchu/articles/10400792.html
如上,成功拿到攻击者的 IP 地址。如果你再网上翻翻日志,会发现存在一堆 POST 请求,此时打开 PhpStudy 并且访问,你会发现是一个登录框,盲猜攻击者就是爆破出了弱口令账户然后上传的木马程序:
0x0203:隐藏账户排查
下面是去寻找攻击者留下的隐藏账户。也不用刻意去寻找,在 WIndows 的设置中去查看其他用户就会发现一个叫 hack168$ 的账户,还是管理员权限的:
其实通过 D 盾也是可以直接排查出隐藏账户的:
0x0204:挖矿病毒排查
在上一步中,我们成功定位到了一个隐藏账户。那么下面我们来看看该用户的目录下是否有啥见不得人的秘密。
Windows 的用户文件夹在 C:\Users\<用户名>
,我们进入 hack168$ 的文件夹中,看修改日期,其余的都是同一时间,唯独 “桌面” 的日期不一样:
进入该用户的桌面,一个 kuang 程序映入眼帘(它要是换个名字,藏深一点还不好发现):
从这个软件的图标来看是一个 pyinstaller 打包的工具,所以我们可以使用 pyinstxtractor 进行反编译:
再从 kuang.exe 反编译得到的 kuang.exe_extracted 文件夹中找到 kuang.pyc 文件,使用在线 pyc 反编译工具得到源码,很容易就定位到矿池地址了:
https://toolkk.com/tools/pyc-decomplie
最终题解如下(PS:想要成功显示和笔者一样的内容需要反编译解题程序,它们没做暂停):
0x03:应急响应 —— 蓝队溯源视角
在本节,我们将以蓝队溯源视角,尝试通过攻击者遗留下来的痕迹,溯源攻击者的完整攻击路径,以此来发掘我们站点的薄弱之处,同时提升我们自身的攻防技术。
在 “应急视角” 一章中,我们知道了,攻击者是通过 Web 服务打进来的,那么我们就先开启靶机的 Apache 服务(还有 MySQL 服务)来看看这个靶机上搭建了啥站点:
如上,可以看到,靶机上通过 EMLOG 搭建了一个个人的 Web 站点。然后我们来深度分析一下靶机上的 Apache 日志,来看一下攻击者的攻击路径(我们现在可是蓝队溯源,攻击者咋攻击的都留痕了)。
0x0301:网站日志溯源 — 注册接口 SQL 注入 | 用户枚举?
日志咋溯源,我们之前不是已经拿到了攻击者的 IP 嘛,就直接搜,搜索到日志中攻击者第一次访问时对应的日志,然后一条一条往下面看就行了(看到有点意思的,记得那浏览器拼接日志路径自己去看看这个界面有啥功能),下面是笔者摘抄出来的有些意思的日志:
# 1. 攻击者第一次访问我们站点
192.168.126.1 - - [26/Feb/2024:22:28:56 +0800] "GET / HTTP/1.1" 200 7822
# 2. 攻击者找到了后台的注册接口 - 这个注册接口是能随意注册进去的
192.168.126.1 - - [26/Feb/2024:22:28:59 +0800] "GET /admin/account.php?action=signin HTTP/1.1" 200 3644
如上,我们发现攻击者找到了注册接口,然后就是一大堆的注册日志:
注册接口,一般我们都是注册用户的,然后我们实操发现,注册接口是能随便注册的,并没有密码啥的限制,那为啥攻击者会发送这么多 POST 请求包呢?SQL 注入,有点可能。
我们继续找,找到攻击者停止注册的分界日志点(真实情况下,可能攻击者只是挂了一个进程在慢慢跑,自己可能会在注册中间浑水摸鱼去摸其它的接口):
如上,可以发现,攻击者注册着注册着,转头跳到了 /admin/
路径下,然后加载了一堆网页资源,这里我们留意一下 err_login=1
这个请求包,笔者测试,这个似乎是邮箱存在时的报错:
复盘留言:笔者这里犯蠢了,signin 是登录接口,不是注册接口!!!
那这是不是说明,攻击者在注册接口停留这么久,要么是想通过 SQL 注入创建一个高权限账号,要么是想通过网站的报错机制,枚举出后端可能存在的用户的邮箱账号?
但是注意了,我们并没有从日志中发现攻击者对登录接口进行爆破,那这有两种可能:
-
攻击者爆破出了后端可能存在的用户,且该用户拥有弱口令,攻击者不用爆破,一次就成功登录。
-
攻击者可能掌握了后端某个用户的账号,但是觉得爆破效率不高,且因为网站注册接口不严谨,任意用户都可以随意注册,所以攻击者自己注册了个账号,准备先进内部看看。
笔者这里比较倾向于第二种思路,我们也注册一个账号,然后开启二阶段。
0x0302:网站日志溯源 — 推翻重蹈 & 弱口令登录
继续看日志,可以看到如下两条内容,攻击者请求了一个 /admin/upgrade.php
页面:
笔者尝试拿自己注册的底权限账号也查看一下,结果出了下面这个问题:
看来上一阶段我们推测失败,攻击者确实是爆破出了后台的一个管理员账户,且该账户拥有弱口令,直接进行的登录,那么我们要想继续溯源,要么去找我们亲爱的运维,要管理员账号密码(可惜我们没有运维),要么自己爆破,复现渗透流程。
笔者在爆破过程中发现前面的推导有点问题,笔者把 signin
想当然的就当作是注册接口了,然而实际上,signin
对应下面这个页面,它是一个登录接口:
证明攻击者就是单纯的通过爆破拿到了后台管理员的账号与密码,然后进行的后续渗透。好,那么问题来了,作为一个经验丰富的渗透专家,你怎么爆破效率比较高?肯定是先确定一个值呀,比如,用户名。
我们来到网站首页,可以看到 emer
发布于 xxx,这是不是很可能就是真实存在的一个用户:
中间隔了很长很长时间以后 。。。。。。。。 笔者是 Sha Bi,笔者爆破了半天都没成功,后面去看人家搭建 EMLOG,发现搭建成功后全部都是 Emer 发布,证明上面的可能就不是一个真实存在的用户。
然后,最后你猜怎么着,使用 admin : 123456
就过了,就进了后台了,还拥有管理员权限:
0x0303:网站日志溯源 — Emlog Pro 任意文件上传漏洞
现在登录了后台,我们继续看日志,可以发现,攻击者后面一直在请求 plugin.php 页面,即插件页面,并且它还调用了 Upload 方法,证明它可能上传了插件(内含恶意代码):
此时我们只要搜索关键字 ”EMLOG PRO 漏洞“ 就会发现,EMLOG 确实有个任意文件上传漏洞:
仔细看一下,确实就是本次案例演示的内容,所以嘞,后续的从上传到 Get Shell,只需要去参考 CVE-2023-44974 这个漏洞就可以了(当然,修复也是)。
0x0304:系统日志溯源 — 后门用户创建
其实在上一步中我们已经可以推导出攻击链路了,攻击者先通过 Web 的弱口令漏洞以管理员身份登录了 EMLog 的后台,然后利用 CVE-2023-44974 漏洞上传了一个恶意的插件进而 GetShell,最后通过获得的 Shell 在我们的机器上胡作非为。
但由于前面我们还排查出了后门账户,所以嘞,笔者还是教你这个后门账户咋看,最简单的其实是去系统日志中查 4720,即用户创建记录:
如上,一查即知,我们当然还可以去注册表中查看,这个也是比较稳妥的方法:
0x04:参考资料
应急响应靶机训练-Web1【题解】衔接上文,应急响应靶机训练-Web1【题解】https://mp.weixin.qq.com/s?__biz=MzkxMTUwOTY1MA==&mid=2247485188&idx=2&sn=54b8962a88b9da74a3db436f515b815b&chksm=c11a56f9f66ddfefd0ca7402617e4c5665033b0305a5f66a1434630b9795b09fa23fc63d3c12&scene=21#wechat_redirect
Emlog Pro 任意文件上传漏洞(CVE-2023-44974)_emlog v2.2.0后台插件上传漏洞-优快云博客文章浏览阅读3.1k次,点赞10次,收藏3次。Emlog Pro 任意文件上传漏洞(CVE-2023-44974)_emlog v2.2.0后台插件上传漏洞https://blog.youkuaiyun.com/W13680336969/article/details/137267677