0x1 渗透测试瓶颈
目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。
而现在挖漏洞除了拿到shell以外,客户又要求可以尽可能的挖到核心业务系统的漏洞,并将漏洞范围订在主域名,核心业务系统现在又基本集中在移动端,移动端现在都会进行APP加壳,流量加密。这就导致无法进行平常渗透测试过程,像老生常谈的中间人攻击,进行拦截,篡改数据包就很难进行。
接下来就尝试解决中间人攻击的问题,目标是
1.看到明文的request和response的数据包;
2.做到可以拦截,篡改数据包。
0x2 frida
frida是平台原生app的Greasemonkey,说的专业一点,就是一种动态插桩工具,可以插入一些代码到原生app的内存空间去,(动态地监视和修改其行为),这些原生平台可以是Win、Mac、Linux、Android或者iOS。而且frida还是开源的。
环境需要越狱的IOS或者ROOT的Android。安装的版本需要一致
MAC:
越狱Iphone:
通过USB链接越狱手机,可以执行frida-ps -aU 就代表环境安装成功
0x3 越狱检测绕过
启动目标APP时,APP自身会进行环境检测,如果处于越狱环境会提示如下:
点击“我知道了”就直接退出APP。
所以先尝试先绕过第一步越狱环境检测。可以先尝试搜索包含“jail,jeil,jb,break"关键字的函数
关于函数追踪可以使用frida-trace,如:
# Trace recv* and send* APIs in Safari$ frida-trace -i "recv*" -i "send*" Safari# Trace ObjC method calls in Safari$ frida-trace -m "-[NSView drawRect:]" Safari# Launch SnapChat on your iPhone and trace crypto API calls$ frida-trace -U -f com.toyopagroup.picaboo -I "libcommonCrypto*"
burp的插件brida也支持对函数名进行检索hook,和"Jail"相关的越狱检测函数如下:
**** Result of the search of JailOBJC: +[BLYDevice isJailBreak]OBJC: +[IFlySystemInfo isJailbroken]OBJC: