2025-2月Solar应急响应官方题解

admin 2025年3月5日21:16:40评论47 views字数 8779阅读29分15秒阅读模式
 

一、2月月赛排名

2025年2月Solar应急响应公益月赛已于2月28日16:00圆满结束。以下为最终排名结果(部分选手因未在规定时间内提交WP,不计入最终排名)

2025-2月Solar应急响应官方题解

以下为最终排名结果
2025-2月Solar应急响应官方题解

二、平台介绍

天狩·网络安全竞赛平台是由 思而听网络科技有限公司 推出的一款Saas化部署的网络安全竞赛平台。平台可满足CTF、AWD、渗透赛等各种赛制的举办需要,可以满足万人同时竞赛的需要,支持最高全国级的网络安全大赛承办。具备竞赛中心、竞赛管理、练习场、试卷管理、赛题管理、人员管理、报名管理、数据中心、日志管理、防作弊机制、3D大屏等功能模块,能够全面、精准地考核选拔网络安全人才。

2025-2月Solar应急响应官方题解

2025-2月Solar应急响应官方题解

三、赛事回顾
2月Solar应急响应公益月赛吸引了超过150名师傅们参加,从选手提交的WP来看,这次比赛有两个特别亮点:首先是题目设计很巧妙,像修复虚拟硬盘这种题,有人用重建文件系统的方法,还有人通过分析内存数据找到了突破口;其次是参赛选手们各显神通,解逆向题的时候,既有选手用调试器一步步跟踪的传统方法,也有选手尝试结合GORK分析的新思路,充分展现了网络战场上"以变应变"的实战智慧。

2025-2月Solar应急响应官方题解

趋势榜单

本月赛事设置包含暗链溯源、电子取证、逆向工程、虚拟磁盘修复四大技术方向的实战化命题。根据解题榜单来看,本次比赛最具挑战性的题目当属单机取证模块的"数据库入侵溯源"专项题(第4题)。这道题以真实案例为背景,不仅要求选手具备对系统日志的精细化分析能力,更需掌握MSSQL语法知晓攻击者对数据库做了哪些操作相关内容背景可参考一次外连告警的排查与分析

2025-2月Solar应急响应官方题解

解题榜单

四、2月月赛WP

re1_wp

使用die打开 发现是一个.net编写的程序
2025-2月Solar应急响应官方题解
因此使用dnspy打开文件,可以反编译出如下代码
2025-2月Solar应急响应官方题解
程序的主要逻辑就是将flag文件进行aes加密,然后将随机生成的key和iv以及标识字符串写入末尾。
因此解密的逻辑也很清晰了,读取被加密的文件,提取出key和iv,然后解密文件,代码如下
 public static void DecryptFile(string inputFilePath, string outputFilePath)
 {
     using (FileStream inputFileStream = new FileStream(inputFilePath, FileMode.Open, FileAccess.Read))
     {
         // 检查文件长度是否足够包含元数据
         long totalLength = inputFileStream.Length;
         if (totalLength < 56)
         {
             throw new InvalidOperationException("文件已损坏或格式不正确。");
         }

         // 读取末尾的56字节元数据(密钥 + IV + 标识符)
         byte[] metadata = new byte[56];
         inputFileStream.Seek(-56, SeekOrigin.End); // 定位到元数据起始位置
         inputFileStream.Read(metadata, 0, 56);

         // 分解元数据
         byte[] key = metadata.Take(32).ToArray();        // 前32字节为密钥
         byte[] iv = metadata.Skip(32).Take(16).ToArray(); // 接下来16字节为IV
         byte[] identifierBytes = metadata.Skip(48).ToArray(); // 最后8字节为标识符

         // 验证标识符
         string actualIdentifier = Encoding.UTF8.GetString(identifierBytes);
         if (actualIdentifier != identifier)
         {
             throw new InvalidOperationException("文件标识符不匹配,可能已被篡改。");
         }

         // 准备解密
         using (Aes aesAlg = Aes.Create())
         {
             aesAlg.Key = key;
             aesAlg.IV = iv;
             aesAlg.Padding = PaddingMode.PKCS7;
             aesAlg.Mode = CipherMode.CBC;

             ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

             // 计算加密数据部分的长度(总长度 - 元数据长度)
             long encryptedDataLength = totalLength - 56;

             // 回到文件开头读取加密数据
             inputFileStream.Seek(0, SeekOrigin.Begin);

             // 写入解密后的数据到输出文件
             using (FileStream outputFileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write))
             using (CryptoStream cryptoStream = new CryptoStream(outputFileStream, decryptor, CryptoStreamMode.Write))
             {
                 byte[] buffer = new byte[4096];
                 int bytesRead;
                 long bytesLeft = encryptedDataLength;
                 while (bytesLeft > 0)
                 {
                     int readSize = (int)Math.Min(buffer.Length, bytesLeft);
                     bytesRead = inputFileStream.Read(buffer, 0, readSize);
                     if (bytesRead == 0) break;

                     cryptoStream.Write(buffer, 0, bytesRead);
                     bytesLeft -= bytesRead;
                 }

                 cryptoStream.FlushFinalBlock(); // 确保处理最后一块数据
             }
         }
     }

     Console.WriteLine($"文件 '{inputFilePath}' 已解密到 '{outputFilePath}'。");
 }
或者手动提取key和iv 通过CyberChef也可解密
2025-2月Solar应急响应官方题解
flag{asdfj@394P-33453495}

暗链

场景:网站某些路径被跳转到第三方恶意链接请排查原因
2025-2月Solar应急响应官方题解
2025-2月Solar应急响应官方题解

暗链排查1

点击超链接就会跳转至其他网站,通过抓包排查可发现响应中有一个js,大概率通过该js实现跳转
2025-2月Solar应急响应官方题解
动态调试该JS,可获得FLAG
2025-2月Solar应急响应官方题解
或base64解码+zlib最终得到暗链排查1的flag
2025-2月Solar应急响应官方题解

暗链排查2

通过服务器提供的22端口上机排查
检查tomcat相关配置、文件,并无异常:
2025-2月Solar应急响应官方题解
2025-2月Solar应急响应官方题解
检查当前进程,可发现启动了两个nginx
2025-2月Solar应急响应官方题解
通过检查当前nginx配置文件发现并没有相关的代码,且未找到对应的nginx1.conf,推测nginx1.conf应该就是最终导致被劫持的原因
2025-2月Solar应急响应官方题解
通过导出该进程内存还原nginx1.conf
2025-2月Solar应急响应官方题解
导出方法:
确认主进程pid
ps -ef |grep nginx

检查内存映射
cat /proc/pid/maps |grep heap
将返回结果:
556096ebf000-556096f24000 rw-p 00000000 00:00 0     [heap]

使用gdb转储堆
gdb -p master_pid
(gdb)dump memory /target/file  0x556096ebf000 0x556096f24000
最终可获得/target/file 通过查看该文件即可得到nginx配置文件

单机取证

WP

溯源完整过程记录

该wp使用Autopsy进行解答,也可以使用AccessData FTK Imager等工具进行仿真解答
某某文化有限公司的服务器被攻击了,领导发话了让小王看看攻击者对服务器做了什么找不出来就炒鱿鱼,请你拯救小王的运维生涯。

1.帮助小王找到是什么漏洞导致了小王的运维生涯受到了打击?(回答攻击者利用的漏洞编号)

flag格式为:flag{CNVD-20xx-12xxx}
CNVD-2022-60632

在桌面文件下可以看到服务器运行oa为用友TPlus,在"C:Program Files (x86)ChanjetTPlusProWebServerserverlogs"可找到其日志。

2025-2月Solar应急响应官方题解
将日志导出可看到ip:192.168.60.220在2025年2月18日对其进行大量目录扫描,随后进行漏洞验证并上传webshell然后与其连接
2025-2月Solar应急响应官方题解
2025-2月Solar应急响应官方题解
搜索其访问路径可得到漏洞编号
2025-2月Solar应急响应官方题解

2.请你帮助小王找到攻击者使用的信息收集工具。(回答工具名称)

flag格式为:flag{xxxx.exe}
mimikatz.exe
在攻击者创建的隐藏账户桌面发现其使用的mimikatz.exe
2025-2月Solar应急响应官方题解

3.帮助小王找到攻击者创建的隐藏账户的密码。

flag格式为:flag{xxxxxxxxxx}
666777888
导出SAM和SYSTEM(需配合 SYSTEM 注册表文件解密)
C:WindowsSystem32configSAM
C:WindowsSystem32configSYSTEM
2025-2月Solar应急响应官方题解
使用impacket-secretsdump提取哈希
ccc8d64785a1f7981dd70c11f0928bb2
2025-2月Solar应急响应官方题解
解密
2025-2月Solar应急响应官方题解

4.小王发现系统中有什么文件一直被删除,你能找出来原因吗?(请回答包含的可疑域名)

flag格式为:flag{xxx.xxx.xxx}
0wwww.cyg2016.xyy
在桌面可看到运维留下的数据库密码本
2025-2月Solar应急响应官方题解
在日志中也可以看到攻击者将“Ole Automation Procedures”已从 0 更改为1 启动了OLE自动化过程
2025-2月Solar应急响应官方题解
sp_OACreate是SQL Server的扩展存储过程,用于创建OLE对象实例。odsole70.dll则是支持OLE自动化操作的组件,怀疑攻击者对数据库进行了操作。
2025-2月Solar应急响应官方题解
作业信息存储
数据库作业信息存储在msdb 数据库中
如:
  • msdb.dbo.sysjobs 存储所有作业的基本信息(如作业名称、所有者、启用状态等)。
  • msdb.dbo.sysjobsteps 存储作业的步骤(Step)信息(如执行的命令、类型、成功/失败后的操作)。
  • msdb.dbo.sysschedules 存储作业的计划(Schedule)信息(如执行频率、时间)。
  • msdb.dbo.sysjobschedules 关联作业与计划(Job 和 Schedule 的对应关系)。
  • msdb.dbo.sysjobhistory 存储作业的执行历史记录(如开始时间、结束时间、执行状态)。
导出msdb数据库,并进行附加
2025-2月Solar应急响应官方题解

执行命令查看作业详细

USE msdbDATA;
SELECT * FROM dbo.sysjobsteps;
2025-2月Solar应急响应官方题解
将其十六进制进行转换
2025-2月Solar应急响应官方题解

5.请你帮助小王找到攻击者隐藏的webshell后门,(请回答shell的md5值)

flag格式为:flag{xxxxxxxxx}
6e632aba24e8383a7e7a4d446dc285fc

可以在路径“C:Program Files (x86)ChanjetTPlusProWebSiteWorkFlow”下发现其近期修改的“config.aspx”文件

2025-2月Solar应急响应官方题解
对其文件进行分析可发现其具有以下行为:
通过 Application 对象存储恶意程序集、使用 AES + XOR 多层加密、反射加载 .NET 程序集等可判断其为后门文件。
2025-2月Solar应急响应官方题解

导出文件计算md5

2025-2月Solar应急响应官方题解

FLAG

1.帮助小王找到是什么漏洞导致了小王的运维生涯受到了打击?(回答攻击者利用的漏洞编号)

flag{CNVD-2022-60632}

2.请你帮助小王找到攻击者使用的信息收集工具。(回答工具名称)

flag{mimikatz.exe}

3.帮助小王找到攻击者创建的隐藏账户的密码。

flag{666777888}

4.小王发现系统中有什么文件一直被删除,你能找出来原因吗?(请回答包含的可疑域名)

flag{0wwww.cyg2016.xyy}

5.请你帮助小王找到攻击者隐藏的webshell后门,(请回答shell的md5值)

flag{6e632aba24e8383a7e7a4d446dc285fc}

vmdk修复

虚拟机无法打开,检查虚拟机文件,发现vmdk被加密
2025-2月Solar应急响应官方题解

通过查看其他虚拟机的vmdk文件 可发现格式应为

# Disk DescriptorFile
version=1
encoding="GBK"
CID=ee578b63
parentCID=ffffffff
createType="twoGbMaxExtentSparse"

# Extent description
RW 8323072 SPARSE "a-s001.vmdk"

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "15665"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "661640663b4c2e2767ac5685ee578b63"
ddb.toolsInstallType = "4"
ddb.toolsVersion = "12389"
ddb.uuid = "60 00 C2 9c 6c 76 ee 9f-e6 0b dc ed 20 04 11 b6"
ddb.virtualHWVersion = "21"

Header 部分

# Disk DescriptorFile
version=1
encoding="GBK"  //使用的字符串编码(用于描述文件)
CID=ee578b63 //随机32位值
parentCID=ffffffff //表示没有父内容
createType="twoGbMaxExtentSparse" //disk类型

Extent descriptions 部分

# Extent description
RW 8323072 SPARSE "a-s001.vmdk" //8323072扇区  *512字节/扇区 = 4GB 
//SPARSE稀疏型VMDK文件在创建时不会立即占用全部分配的空间

The Disk Data Base 部分

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic" //lsilogic 表示使用LSI Logic SAS控制器。
ddb.geometry.cylinders = "15665" //磁道数
ddb.geometry.heads = "255" //磁头数
ddb.geometry.sectors = "63" //扇区数
ddb.longContentID = "661640663b4c2e2767ac5685ee578b63" //虚拟磁盘的内容标识符,用于唯一标识该磁盘的内容
ddb.toolsInstallType = "4" //4 表示 VMware Tools 已经安装并且版本与虚拟机硬件版本兼容
ddb.toolsVersion = "12389" //VMware Tools 的版本号
ddb.uuid = "60 00 C2 9c 6c 76 ee 9f-e6 0b dc ed 20 04 11 b6" //唯一标识符
ddb.virtualHWVersion = "21"

DDB包含了关于虚拟磁盘的重要元数据和配置信息。
按照该格式进行修复可得到
# Disk DescriptorFile
version=1
encoding="GBK"
CID=ee578b63
parentCID=ffffffff
createType="twoGbMaxExtentSparse"

# Extent description
RW 8323072 SPARSE "Ubuntusy-s001.vmdk"
RW 8323072 SPARSE "Ubuntusy-s002.vmdk"
RW 8323072 SPARSE "Ubuntusy-s003.vmdk"
RW 8323072 SPARSE "Ubuntusy-s004.vmdk"
RW 8323072 SPARSE "Ubuntusy-s005.vmdk"
RW 8323072 SPARSE "Ubuntusy-s006.vmdk"
RW 8323072 SPARSE "Ubuntusy-s007.vmdk"
RW 8323072 SPARSE "Ubuntusy-s008.vmdk"
RW 8323072 SPARSE "Ubuntusy-s009.vmdk"
RW 8323072 SPARSE "Ubuntusy-s010.vmdk"
RW 8323072 SPARSE "Ubuntusy-s011.vmdk"
RW 8323072 SPARSE "Ubuntusy-s012.vmdk"
RW 8323072 SPARSE "Ubuntusy-s013.vmdk"
RW 8323072 SPARSE "Ubuntusy-s014.vmdk"
RW 8323072 SPARSE "Ubuntusy-s015.vmdk"
RW 8323072 SPARSE "Ubuntusy-s016.vmdk"
RW 8323072 SPARSE "Ubuntusy-s017.vmdk"
RW 8323072 SPARSE "Ubuntusy-s018.vmdk"
RW 8323072 SPARSE "Ubuntusy-s019.vmdk"
RW 8323072 SPARSE "Ubuntusy-s020.vmdk"
RW 8323072 SPARSE "Ubuntusy-s021.vmdk"
RW 8323072 SPARSE "Ubuntusy-s022.vmdk"
RW 8323072 SPARSE "Ubuntusy-s023.vmdk"
RW 8323072 SPARSE "Ubuntusy-s024.vmdk"
RW 8323072 SPARSE "Ubuntusy-s025.vmdk"
RW 8323072 SPARSE "Ubuntusy-s026.vmdk"
RW 8323072 SPARSE "Ubuntusy-s027.vmdk"
RW 8323072 SPARSE "Ubuntusy-s028.vmdk"
RW 8323072 SPARSE "Ubuntusy-s029.vmdk"
RW 8323072 SPARSE "Ubuntusy-s030.vmdk"
RW 1966080 SPARSE "Ubuntusy-s031.vmdk"

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "15665"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "661640663b4c2e2767ac5685ee578b63"
ddb.toolsInstallType = "4"
ddb.toolsVersion = "12389"
ddb.uuid = "60 00 C2 9c 6c 76 ee 9f-e6 0b dc ed 20 04 11 b6"
ddb.virtualHWVersion = "21"
启动虚拟机后 进入安全模式可直接查看或修改密码查看flag

2025-2月Solar应急响应官方题解

 

原文始发于微信公众号(solar应急响应团队):2025-2月Solar应急响应公益月赛排名及官方题解

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月5日21:16:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2025-2月Solar应急响应官方题解https://cn-sec.com/archives/3794592.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息