clonewolf 发表于 2022-9-20 16:25

记一次"=="引发的血案

朋友给了台刷坏U-Boot的R33,拿编程器重写后了解有个网站可以计算出cloud_token,无奈每次复制太麻烦,于是动了自己写算法的念头。因为R33的lua通过luac混淆了,通过一番折腾,学会了“1、在极路由上编译出了luader”,反编译后得到大致过程:local_token=b64encode(Mac+",ssh,"+(时间值 *1)+","+lua_hmac_sha1_with_uid(前面的字符串)),而cloud_token=b64encode(lua_hmac_sha1_with_uid(Mac+",ssh,"+(时间值 +1))。看到这里结合第三方网站需要的参数,很容易就猜出lua_hmac_sha1_with_uid函数应该就是 拿"mac..."当消息,uuid当key,于是拿Java写了段验证的代码(噩梦也是从这里开始),遗憾的是计算出来的结果并不是理想的结果。通过抽丝剥茧之后发现核心的hmac_sha1_with_uid函数是在libauth.so里,拿IDA打开后发现在hmac_sha1前面似乎调用了一次sha1,于是了如图1时的代码。无奈当时没留意计算值(其实也记不住),只是看“计算失败”,以为算法上还是有问题,加上之前费了近一星期的时间倒腾,本着不服气的精神,决定来点高难度的,就是跟踪进hmac_sha1_with_uid函数,看看消息和key的值到底是什么。于是第一版采用lua_debug调用lua_hmac_sha1_with_uid的方法(学会了2、lua本地和远程调试),很快就GG了。于是决定再升级难度,自己写个程序动态调用hmac_sha1_with_uid,用gdb去跟踪,使用openwrt14.7的交叉编译链也算是没难度就编译出二进制程序,可能因为我把程序下载到win系统,再传到R33的缘故,程序无法执行,于是又学会了“3、使用交叉编译链打包出ipk安装包”。然而本地gdb时又GG了,大概是没有so的源代码,跟不进去hmac_sha1_with_uid函数。由于半个月的高强度倒腾,决定休息几天,同时也找到了“4、远程gdb+IDA的调试”方案。因为不会IDA又花了好几天的时间得出的结果hmac_sha1_with_uid其实就是和我最初的猜测一致,"mac..."当消息,sha1(uuid)当key。因为花了半个多月的倒腾,也记住了计算值,看到自己的计算值时就泪奔了,TMD花了一个多星期的捣鼓,就是为了去验证最初的猜测。。。最后把Java改成了图2,终于看到了“计算成功”4个字。。。

leesona 发表于 2022-9-20 18:25

硬核大佬.牛逼.https://www.right.com.cn/forum//mobcent//app/data/phiz/default/23.pnghttps://www.right.com.cn/forum//mobcent//app/data/phiz/default/23.png

wmf1029 发表于 2022-9-20 18:49

硬核大佬.牛逼.https://www.right.com.cn/forum//mobcent//app/data/phiz/default/23.pnghttps://www.right.com.cn/forum//mobcent//app/data/phiz/default/23.png

zfdx 发表于 2022-9-26 11:32

强啊,硬核

我真叫cdd 发表于 2022-9-26 15:02

请问一下可以开源吗?如果可以的话希望可以把算法做到这个自动获取ssh权限的小工具里面去
https://www.right.com.cn/forum/thread-4088953-1-1.html

zfdx 发表于 2022-9-26 17:13

谢谢老哥思路,写出来了

clonewolf 发表于 2022-9-29 21:57

我真叫cdd 发表于 2022-9-26 15:02
请问一下可以开源吗?如果可以的话希望可以把算法做到这个自动获取ssh权限的小工具里面去
https://www.rig ...

算法已经解释的很清楚了呀。。。

我真叫cdd 发表于 2022-10-8 14:34

clonewolf 发表于 2022-9-29 21:57
算法已经解释的很清楚了呀。。。

:victory: ok,我那天下午已经搞清楚了,谢谢大佬的付出

jpfx86jl 发表于 2023-1-4 11:00


硬核大佬.牛逼.

fengke 发表于 2024-2-11 11:31

大佬厉害大佬厉害大佬厉害大佬厉害大佬厉害大佬厉害大佬厉害大佬厉害

kfxiaofeng 发表于 2024-5-26 12:45

膜拜,非常有用
页: [1]
查看完整版本: 记一次"=="引发的血案