local Key Attestation 验证饶过

查看 74|回复 7
作者:pareto   
bootloaderspoofer 插件分析
自己做了一个本地绕过的脚本效果不是很理想,又去研究大佬的脚本,这个大佬的每次commit 基本我都看了,被大佬的底蕴折服,也印证了一句话,知识面越广,攻击面越广。
https://github.com/chiteroman/BootloaderSpoofer
核心流程见注释
[Java] 纯文本查看 复制代码public class Xposed implements IXposedHookLoadPackage {
    private static int indexOf(byte[] array) {
        final byte[] PATTERN = {48, 74, 4, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 1, 2};
        outer:
        for (int i = 0; i
这一版问题很明显,challenge 没有饶过,被修改的证书内容,实际无法通过公钥验证;又更新了一个版本,卧槽 被大佬深厚的底蕴震撼v3.5 , 这个版本的思路, 弥补之前的短板:
  • challenge 没有修复
  • 证书被修改后,实际没法通过公钥验证
    那chiteroman怎么做的呢?
  • hook generateKeyPair ,返回插件预置的公私钥
  • hook setAttestationChallenge ,实时获取challenge
  • 替代 engineGetCertificateChain  函数,伪造整条证书链、并写入challenge
    是吧 这个思路看起来很nice ,不过也存在问题 , 始终使用的内置的公私钥。换句话说,无论生成几次公私钥,始终是同一个公私钥,这一点问题。正常产生的公钥


    image-20231222202803391.png (18.8 KB, 下载次数: 0)
    下载附件
    2023-12-26 18:52 上传



    image-20231222202915406.png (23.92 KB, 下载次数: 0)
    下载附件
    2023-12-26 18:52 上传

    怎么解决呢?
  • 内置多个证书
  • 中间人实时生产证书
    我正在开发的脚本,思路就是直接走一个中间人发证书。因为个人兴趣原因,后续可能也会做很多设备异常判定的研究,有相同志向的小伙伴 不做黑产!!纯研究,可以私信我。我看人多的话,就拉个群大家一起交流。https://github.com/chiteroman/BootloaderSpoofer
    https://github.com/doom-man/bypasskeyattestation/blob/main/docs/other.md

    大佬, 证书

  • spawn_fly   

    这个帖子图片也有问题会很快失效,看这个修改https://www.52pojie.cn/misc.php? ... 29&messageid=36
    v12608   

    学习了,谢谢!!
    Skyblue332   

    好好研究一下
    pareto
    OP
      

    这是不是和Android手机上的TEE有关?
    zhangting2022   


    Skyblue332 发表于 2023-12-28 02:26
    这是不是和Android手机上的TEE有关?

    是的,也可以是SE
    vae666   

    感谢感谢分享
    spawn_fly   

    佬,咋还断更了,继续学起来
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部