首页
社区
课程
招聘
[原创]KCTF2020 智能设备Crackme 题目提交
发表于: 2020-10-29 22:55 2202

[原创]KCTF2020 智能设备Crackme 题目提交

2020-10-29 22:55
2202

题目类型:
智能硬件Crackme题目

  1. flag:2296dc2f09144713

  2. 设计: 使用64位椭圆曲线,设计为弱私钥,私钥可在3分钟内爆破
    曲线参数如下:
    p = 0xc021a12750820335
    a = 0x2b7874ef148937d1
    b = 0x496412a7502c4cd5
    G = (0x4d8acf91aac0ba96, 0x79e9ac784679a36d)
    n = 0xc021a1277f8b7ee7

flag为一个固定的签名(ECC签名中的s),检查flag过程为ECC验签过程中的检查s过程。
验签过程在duktape虚拟机中运行。
题目需要在arm模拟器下运行.运行命令为:
qemu-system-arm -M versatilepb -dtb ./versatile-pb.dtb -kernel zImage -append "console=ttyAMA0" -nographic
命令在ubuntu18.04环境下测试通过.qemu版本4.2.1.

 

当输入错误时无显示,当输入正确时显示"you got it"
正确flag 的计算时间约为50秒左右.

  1. 破解
    从zImage中提取出k2020程序,直接运行strings,可以得到部分曲线参数。

跟踪验签过程得到公钥:(0xb520ee455c4e5c68, 0x8d2984eb2d7fd1ce)

 

根据曲线参数和公钥爆破得到私钥: 125591, 使用sage运行爆破时间在2分钟左右.

 

跟踪验签过程得到k值130516937431,和待验签数据 0x4b43544632303230

 

就能根据签名过程计算出flag

 

参考:
https://csrc.nist.gov/csrc/media/events/workshop-on-elliptic-curve-cryptography-standards/documents/papers/session6-adalier-mehmet.pdf


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

最后于 2020-12-12 12:34 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//