强网杯 - JustRe - writeup

这篇博客详细介绍了参与强网杯时遇到的JustRe挑战,主要涉及SMC技术的逆向分析和3DES解密。作者首先通过IDA分析代码,发现使用了SMC进行解密,然后利用Z3求解方程得到解密的前十位。在3DES解密部分,作者识别并解析了3DES解密过程,最终得到关键的解密key。
摘要由CSDN通过智能技术生成

JustRe

文件链接 -> Github

初步分析

使用32位的IDA打开文件

shift+F12 搜索字符串,找到了带有 flag{%.26s} 字样的字符串。根据交叉引用找到该字符串被引用的代码段

发现 test eax,eax 这句代码上方的代码IDA识别不出来。按下 [space] ,查看上方的代码是什么样的

我们发现它调用了这个函数,跟进去看一下

发现端倪了,这里使用了 SMC 技术。那么返回,查看上方的函数调用

经过分析,得知 sub_401CE0 的作用是获取输入;sub_401610 的作用就是对函数 sub_4018A0 进行解密

sub_401610 中看到这两个调用

GetCurrentProcess 的作用是获取当前进程的一个伪句柄
WriteProcessMemory 的作用就是向进程的指定偏移写入内容

在这两个调用的上方就是解密的过程,其内使用了大量的 xmm 寄存器,IDA与OD都不能很好地识别这些指令,于是就转战x64debug

分析SMC解密函数

401C2C 处下断点,根据 ECX 的值得到了输入在内存中的位置,同时得知输入将会在 sub_401610 被使用

跟进函数一步步查看,就得到了函数的逻辑:

  1. 将输入的前八位转换成数字,比如输入为 “12345678” ,就将它转换为 0x12345678,将其看作Num_0

  2. 将转换后的数字拓展到128位,比如将 0x12345678 拓展为 0x12345678123456781234567812345678,将其看作Num_1

  3. 将输入的第 9、10 位转换成数字,比如 “90” 转换成 0x90

  4. 将转换后的数字拓展到128位,比如 0x90 拓展为 0x90909090909090909090909090909090,将其看作Num_2

  5. 403040 有一个表,表中有总共 128 * 4 字节的数据,将其看作数组A,共四项,每项128字节

  1. 405018 有一个表,该表有总共 128 * 6 字节的数据,将其看作数组B,共六项,每项128字节,其中每项也是一个数组,该数组每项32字节

  1. 进行如下运算

    • B[0] = ( B[0] + Num_2 ) ^ ( A[0] + Num_1 )

    • B[1] = ( B[1] + Num_2 ) ^ ( A[0] + A[1] + Num_1 )

    • B[2] = ( B[2] + Num_2 ) ^ ( A[0] + A[2] + Num_1 )

    • B[3] = ( B[3] + Num_2 ) ^ ( A[0] + A[3] + Num_1 )

  2. 将输入的第 9、10 位拓展到32位,就此例,0x90 拓展为 0x90909090,将其看作 Num_3

  3. 进行如下运算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSCP 2023 Challenge Writeup-MedTech-CSDN博客是一个关于OSCP挑战赛的技术解析博客。在这篇博客中,作者详细讲解了一个名为MedTech的挑战项目,并提供了解决该挑战所需的步骤和工具。 这篇博客的开头介绍了OSCP证书的重要性和它在信息安全领域的认可度。接着,作者向读者介绍了挑战项目MedTech的背景和目标。MedTech是一个模拟医疗技术公司的网络环境,参与者需要在该环境中寻找漏洞、获取权限,最终控制主机,获取FLAG。 在解决这个挑战的过程中,作者详细介绍了使用的工具和技术。例如,他讲解了利用漏洞扫描工具Nmap进行主机发现和服务探测的步骤,以及如何使用Metasploit框架进行漏洞利用和提权。 博客中还涵盖了其他一些有关网络渗透测试的技术,如枚举、社会工程学和Web应用程序漏洞利用。作者详细解释了每个技术的原理和实际应用。 在解决MedTech挑战的过程中,作者还分享了一些遇到的困难和技巧。他提到了一些常见的错误和陷阱,并分享了如何避免它们的经验。 最后,作者总结了整个挑战的过程,并分享了他在完成挑战时的成就感和收获。他强调了在这个过程中学到的技能和知识的重要性,并鼓励读者积极参与类似的挑战和项目。 这篇博客不仅提供了对OSCP挑战赛的深入了解,而且为读者提供了解决类似问题的思路和方法。它对于那些对信息安全和网络渗透感兴趣的读者来说是一个很有价值的参考资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值