首页
社区
课程
招聘
[原创]看雪 2022 KCTF 秋季赛 第十题 两袖清风 简单思路
发表于: 2022-12-9 11:57 9602

[原创]看雪 2022 KCTF 秋季赛 第十题 两袖清风 简单思路

2022-12-9 11:57
9602

因为精力限制,这次就简单点写。

 

程序模拟了一个木马,涉及了 shellcode 解密执行、uuid 免杀、反调试等

 

我们给的输入分为三个部分:
第一个部分长 85,第二部分长 4。第三部分首字节是长度,其后跟着两倍长度的内容(因为有 hex 编码)
第二部分要求是纯数字,4 个数字两两相同,顺序任意(比如 1212 2233 4554 6666 都可以),然后第一部分经过一波运算,拼在数字之后,作为一段 shellcode 的 AES 解密密钥。这部分 shellcode 是多解的来源(之一),因为即使前两部分不是原先设计好的密钥,也有概率生成合法的 shellcode,直接 ret

 

然后对输入的每一位判断是数字或大写,或小写,往一个数组里面写 0 或 1 或 2。反调试会改变数组指针,我把相关 jz 判断都改成了 jmp。
最后 uuid 免杀的 shellcode 会取第三段输入,转换成 10*10 的坐标,需要坐标和上面的数组满足一定关系:大概来说,每个坐标之间 |x2-x1|=1 or |y2-y1|=1,第一个坐标 y=0,最后一个坐标在边缘(0或9);坐标对应点!=1,前100个点全为0

 

根据上面的要求,我准备给一个纯数字的输入。第一部分随便给,第二部分爆破,找到不会崩,能输出 no 的情况
第三部分的设想是 02 + 10 20,但是需要再长一点,不然 0 不够用。改成 10 +(10 20)*8。当然,多重复几次,或者改改坐标也可以,多解来源 +1

 

给几个输入:

1
2
3
4
012345678901234567890123456789012345678901234567890123456789012345678901234567890123449941010201020102010201020102010201020
012345678901234567890123456789012345678901234567890123456789012345678901234567890123473731010201020102010201020102010201020
012345678901234567890123456789012345678901234567890123456789012345678901234567890123473731010201020102010201020102010201120
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234499412102010201020102010201020102010201020

简单评价一下,对抗的思路比较有趣,但是验证部分有些缺陷


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-12-9 12:04 被tkmk编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//