从对抗到出洞:某金融APP 实战渗透与 Frida 反检测绕过(Rpc + Flask + AutoDecoder)
内容提要
Frida可以正常注入程序,但使用Java.use会导致闪退。通过编译frida-bridge或使用ZygiskFrida可以绕过检测。分析请求和响应体发现,签名字段通过HmacSha1实现,数据加密后再验证签名。clientKey_和clientIv_动态生成,需要使用frida和Python提取。
关键要点
-
Frida可以正常注入程序,但使用Java.use会导致闪退。
-
编译frida-bridge或使用ZygiskFrida可以绕过Java.use检测。
-
请求体和响应体都是json格式,签名字段通过HmacSha1实现。
-
数据加密后再验证签名,签名算法通过配置决定使用国密SM3算法或其他算法。
-
clientKey_和clientIv_动态生成,需要使用frida和Python提取。
-
AESCipher.clientKey_和clientIv_在每次打开APP时都会改变。
-
clientKey_和clientIv_既不是通过HTTP请求传输的,也不是硬编码在代码中。
-
通过frida+rpc+flask获取clientIv、clientKey、serverKey、serverIv。
-
文中提供的技术信息仅供参考,读者需谨慎使用并遵守相关法律法规。
延伸解读
Frida的使用限制
尽管Frida能够正常注入程序,但使用Java.use时会导致闪退,这表明在某些情况下,Frida的功能受到限制。开发者在使用Frida进行渗透测试时,应考虑这些限制,并寻找替代方案,如编译frida-bridge或使用ZygiskFrida,以确保测试的顺利进行。
数据加密与签名机制
文章中提到的请求体和响应体使用HmacSha1进行签名,并通过AES加密数据。这种加密和签名机制的复杂性意味着,攻击者在进行数据重放攻击时需要深入理解加密流程,尤其是clientKey_和clientIv_的动态生成方式,这对渗透测试的成功至关重要。
法律与道德责任
文章最后强调了技术信息的使用需遵循法律法规,读者在进行渗透测试时必须谨慎,确保不违反《中华人民共和国网络安全法》。这提醒我们,技术的使用不仅要关注其有效性,还要考虑其合法性和道德性,避免潜在的法律风险。
延伸问答
Frida如何绕过Java.use的检测?
可以通过编译frida-bridge或使用ZygiskFrida来绕过Java.use的检测。
请求体和响应体的签名是如何实现的?
签名字段通过HmacSha1实现,数据加密后再验证签名。
如何提取动态生成的clientKey和clientIv?
需要使用frida和Python提取clientKey和clientIv,这些值在每次打开APP时都会改变。
数据加密的过程是怎样的?
数据加密过程包括对请求体进行AES加密,并在此基础上进行HMAC运算,最后进行Base64编码。
clientKey和clientIv是如何生成的?
clientKey和clientIv并不是通过HTTP请求传输的,也不是硬编码在代码中,而是通过特定的密钥交换过程生成。
使用Frida进行渗透测试时需要注意什么?
在使用Frida进行渗透测试时,需遵守相关法律法规,并谨慎使用提供的技术信息。