WolvCTF 2025 Re+取证 WP
字数 1921 2025-08-30 06:50:28

WolvCTF 2025 Re+取证挑战赛完整解析

AngerIssues 挑战解析

解题思路

  1. 题目预期使用angr符号执行工具解决
  2. 替代方案:使用IDAPython正则匹配所有函数,提取等式后用Z3求解器解决

关键步骤

  • 使用IDAPython提取函数中的等式关系
  • 将提取的约束条件输入Z3求解器
  • 比angr更快的求解方法

flag:
wctf{1_h0p3_y0u_u53d_ANGR_f0r_th15_0r_y0U_w0uLd_b3_a_duMMy}

CrackMeEXE 挑战解析

解题步骤

  1. 使用UPX 3.9+版本脱壳
  2. IDA分析时发现多处反调试,需修改为强制跳转并patch
  3. 关键检查函数v16包含简单的循环异或操作
  4. 动态调试发现key即为flag

flag:
wctf{Ann0y3d_Y3t?}

Office 挑战解析

程序分析

  1. 主函数提供三个选项菜单
  2. 选项1:对随机数进行与运算检查,balance增加salary值,rand异或balance的最后1字节
  3. 选项2:只能提高salary值
  4. 选项3:读取flag函数,检查条件为257*rand==balance

解题方法

  1. 使用Z3求解器处理rand的与运算约束
  2. 多轮运行(建议16轮)以增加约束条件
  3. 求解出rand值后,通过选项2调整salary
  4. 使用选项1将balance提升至257*rand值

注意事项

  • Z3求解器定义的变量后续不能随意修改
  • 参考Z3官方issue #542和#6450解决变量修改问题

Irregularity 挑战解析

解题技巧

  1. 使用regex101.com在线工具分析正则表达式
  2. 分段分析正则表达式结构
  3. 特别注意:
    • +数字表示引用前面的捕获组
    • (?=xx)匹配xx前面的位置
    • (?<=xx)匹配xx后面的位置
    • 占位符表示有一个字符

flag:
wctf{r3gul4r_3xpr35510n5_m0r3_l1k3_1rr3gul4r_3xpr355i0ns_smh_QOKUEfzi49TCzbLr}

CompactSubscription 挑战解析

关键发现

  1. IDA未正确反编译,需查看汇编代码
  2. 提供了decoder可执行文件和message文件
  3. check_result函数实现循环右移2位操作

解题步骤

  1. 从汇编代码中提取初始keys
  2. 使用keys解密message获取flag

flag:
wctf{4Rc_1s_FuN}

Active取证系列

Active 1: Domain Access

攻击路径分析

  1. C:\Users\mssql_service\MSSQL13.SQLEXPRESS\MSSQL\Log\ERRORLOG中找到第一部分flag
  2. 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

攻击路径

  1. 在Dan用户的PowerShell历史记录(ConsoleHost_history.txt)中发现asreproast.output文件
    • base64解码获得第一部分flag
  2. 使用hashcat破解krb5asrep(需手动添加$23),获得emily密码
  3. 在emily历史记录中发现7z压缩包,用密码+777解压
    • 从car.jpeg中foremost提取出James密码和第二部分flag
  4. 在James命令行历史中找到第三部分flag

完整flag:
wctf{asr3pr04st3d?sh0uldv3_3nabl3d_s0m3_k3b3r0s_pr34th_4nd_d0nt_us3_4ll3xtendedr1ghts}

Active 3: Domain Admin

攻击路径

  1. 检查jake用户命令行历史,发现downloads目录下的system.hive和sam.hive
  2. 使用secretsdump工具提取凭证信息
  3. 从winPEASOutput.txt确认jessica是admin用户
  4. 在BloodHound审计数据中找到第一部分flag
  5. 使用主流城市名列表爆破jessica的密码

技术要点

  • 利用BloodHound进行域权限分析
  • 针对城市名的字典攻击技术
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进行域权限分析 针对城市名的字典攻击技术