WolvCTF 2025 Re+取证 WP
字数 1921 2025-08-30 06:50:28
WolvCTF 2025 Re+取证挑战赛完整解析
AngerIssues 挑战解析
解题思路:
- 题目预期使用angr符号执行工具解决
- 替代方案:使用IDAPython正则匹配所有函数,提取等式后用Z3求解器解决
关键步骤:
- 使用IDAPython提取函数中的等式关系
- 将提取的约束条件输入Z3求解器
- 比angr更快的求解方法
flag:
wctf{1_h0p3_y0u_u53d_ANGR_f0r_th15_0r_y0U_w0uLd_b3_a_duMMy}
CrackMeEXE 挑战解析
解题步骤:
- 使用UPX 3.9+版本脱壳
- IDA分析时发现多处反调试,需修改为强制跳转并patch
- 关键检查函数v16包含简单的循环异或操作
- 动态调试发现key即为flag
flag:
wctf{Ann0y3d_Y3t?}
Office 挑战解析
程序分析:
- 主函数提供三个选项菜单
- 选项1:对随机数进行与运算检查,balance增加salary值,rand异或balance的最后1字节
- 选项2:只能提高salary值
- 选项3:读取flag函数,检查条件为257*rand==balance
解题方法:
- 使用Z3求解器处理rand的与运算约束
- 多轮运行(建议16轮)以增加约束条件
- 求解出rand值后,通过选项2调整salary
- 使用选项1将balance提升至257*rand值
注意事项:
- Z3求解器定义的变量后续不能随意修改
- 参考Z3官方issue #542和#6450解决变量修改问题
Irregularity 挑战解析
解题技巧:
- 使用regex101.com在线工具分析正则表达式
- 分段分析正则表达式结构
- 特别注意:
+数字表示引用前面的捕获组(?=xx)匹配xx前面的位置(?<=xx)匹配xx后面的位置占位符表示有一个字符
flag:
wctf{r3gul4r_3xpr35510n5_m0r3_l1k3_1rr3gul4r_3xpr355i0ns_smh_QOKUEfzi49TCzbLr}
CompactSubscription 挑战解析
关键发现:
- IDA未正确反编译,需查看汇编代码
- 提供了decoder可执行文件和message文件
- check_result函数实现循环右移2位操作
解题步骤:
- 从汇编代码中提取初始keys
- 使用keys解密message获取flag
flag:
wctf{4Rc_1s_FuN}
Active取证系列
Active 1: Domain Access
攻击路径分析:
- 在
C:\Users\mssql_service\MSSQL13.SQLEXPRESS\MSSQL\Log\ERRORLOG中找到第一部分flag - 在
C:\Users\Public\Documents\winPEASOutput.txt中发现base64编码数据- 解码后获得第二部分flag
- 其中包含hex字符串,解码后获得第三部分flag
完整flag:
wctf{d0nt_3n4bl3xP_cmdsh311_w1th_d3fault_cr3ds_0r_enabl3_4ut0log0n_0k??!?}
Active 2: Lateral Movement
攻击路径:
- 在Dan用户的PowerShell历史记录(
ConsoleHost_history.txt)中发现asreproast.output文件- base64解码获得第一部分flag
- 使用hashcat破解krb5asrep(需手动添加$23),获得emily密码
- 在emily历史记录中发现7z压缩包,用密码+777解压
- 从car.jpeg中foremost提取出James密码和第二部分flag
- 在James命令行历史中找到第三部分flag
完整flag:
wctf{asr3pr04st3d?sh0uldv3_3nabl3d_s0m3_k3b3r0s_pr34th_4nd_d0nt_us3_4ll3xtendedr1ghts}
Active 3: Domain Admin
攻击路径:
- 检查jake用户命令行历史,发现downloads目录下的system.hive和sam.hive
- 使用secretsdump工具提取凭证信息
- 从winPEASOutput.txt确认jessica是admin用户
- 在BloodHound审计数据中找到第一部分flag
- 使用主流城市名列表爆破jessica的密码
技术要点:
- 利用BloodHound进行域权限分析
- 针对城市名的字典攻击技术