iOS IPA渗透工具

iOS IPA渗透,对MAC进行配置,这里记录一下,希望可以帮助有需要的人。

环境

Mac Air 64 
iphone 5s  版本10.2(可越狱)

配置目录

0、homebrew
1、java
2、node.js
3、iphone越狱
4、iphone安装frida
5、passionfruit
6、ida7.0
7、ipa重签名
8、ipa砸壳
9、class-dump
10、安装cyrun (12.0以上系统)

快捷键
切换输入法(中英文切换) --- control+space [空格]
搜索 ---------- command+space
打开多个终端 ------ 移动到终端内command+N

安装

0、homebrew安装
Homebrew是“MacOS缺失的软件包管理器”,用于安装软件。打开终端
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
查看是否安装成功brew -v

图片.png

1、java安装
(1)直接安装 brew install java [没有成功]
(2)手动下载安装,Mac java8下载,下载jdk,安装 .dmg

2、node.js安装
(1)打开终端安装brew install node

(2)查看是否安装成功node -v

这里node包含npm。

3、iphone越狱
参考

4、iphone安装frida
在cydia应用添加frida软件源,如下:

图片.png
图片.png

5、passionfruit安装
(1)依赖java,node,frida(参考)
(2)执行安装passionfruitsudo npm install -g --unsafe-perm passionfruit
(3)执行passionfruit
(4)连接iphone手机,打开网页http://localhost:31337

图片.png

注意 如果frida(指手机上的)版本过高(如12.8.0),passinfruit还不能兼容,就会出现Uncaught RPC Error: invalid size

passionfruit
listening on [http://localhost:31337](http://localhost:31337)
<-- GET /
<-- GET /static/0.build.js
<-- GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1
<-- GET /static/MaterialIcons-Regular.woff2?570eb83859dc23dd0eec423a49e147fe
<-- GET /static/build.js
--> GET / 200 13ms 338b
--> GET /static/MaterialIcons-Regular.woff2?570eb83859dc23dd0eec423a49e147fe 200 21ms 43.26kb
--> GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1 200 24ms 16.33kb
--> GET /static/0.build.js 200 29ms 55.2kb
--> GET /static/build.js 200 46ms 865.29kb
<-- GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1
--> GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1 200 4ms 16.33kb
nc localhost 51421
Uncaught RPC Error: invalid size
at Object.checksec (/script1.js:107:26)
at handleRpcMessage (frida/runtime/message-dispatcher.js:43:1)

这时,去下载一个低版本的frida-server,这里我选择12.6.11的,解压出来将其修改为frida-server,替换iphone手机目录/var/sbin/frida-server(6s以上在 /usr/sbin/frida-server)。再次访问:如下

图片.png

6、ida7.0安装
下载ida7.0

7、ipa重签名
参考

8、ipa砸壳
参考

9、class-dump
class-dump是一个mac端的命令行工具,用来导出Mach-O头文件的。class-dump是可以把Objective-C运行时的声明的信息导出来的工具。实质就是可以导出.h文件。用class-dump可以把未经加密的app的头文件导出来。

下载地址:http://stevenygard.com/projects/class-dump/。打开链接后,选择class-dump-3.5.dmg,进行下载。下载完成之后,将dmg文件中的class-dump复制到/usr/bin目录,并在终端执行如下执行进行赋权

image.png

这里提供一个windows版的 Mac_Linux_Win_class-dump-z.zip (这个只支持32位的,64位的dump不出来,需要mac版)。

10、安装cyrun
通过Cydia安装New Curses,readline,adv-cmds
通过Cydia安装wget,主要为了在iPhone上可以下载deb文件
以root用户登录到iPhone上,安装wget
apt install wget
分别下载

wget http://apt.saurik.com/debs/cycript_0.9.594_iphoneos-arm.deb
wget http://www.tateu.net/repo/files/net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb
wget http://www.tateu.net/repo/files/net.tateu.cyrun_1.0.5_iphoneos-arm.deb

以root用户在iPhone上安装下载的deb

dpkg -i cycript_0.9.594_iphoneos-arm.deb
dpkg -i net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb   net.tateu.cyrun_1.0.5_iphoneos-arm.deb

方式一、
动态注入注入
cyrun -n Bundle -e -d -f
cyrun -b appName -e -d -f(中文)
代码注入实例

var alertView = [[[UIAlertView alloc] initWithTitle:@"inject" message:@"success" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show]

如果出现下面情况,可以考虑方式二

Waiting for Cycript to become active...
ERROR - could not connect to Cycript

方式二

ps aux | grep xxx
cycript -p xxx
var alertView = [[[UIAlertView alloc] initWithTitle:@"inject" message:@"success" delegate:nil cancelButtonTitle:@"ok" otherButton itles:nil] show]

例如


图片.png

你可能感兴趣的:(iOS IPA渗透工具)