18.越狱开发

[TOC]

越狱概述

iOS11越狱后的调试坑

​ AppSync Unified — 使用Xcode安装IPA时绕过验证、修复正常工程运行时TweakInject.dylib找不到的问题。

​ ViewDebugger — 无法使用,使用cycript替代。

OpenSSH

Mac终端通过OpenSSH工具远程连接登录手机,

SSH连接手机

与cycript连接的区别:通过monkey安装的应用在连接时相当于连接到的是cycript的应用服务,不是手机服务。

如果手机未安装OpenSSH,会报错:ssh: connect to host 192.192.1.169 port 22: Connection refused

OpenSSH的默认密码是:alpine,默认端口:22

SSH连接指令:

  • 登录连接:格式:$ssh 用户名@用户服务器地址如:$ssh [email protected],$ssh [email protected]
  • 修改默认密码:登录后输入passwd指令后两次密码即可;
  • 删除SSH服务器公钥:$ssh-keygen -R 服务器IP地址

两个用户的权限:

iPhone上var目录有2个用户包括root和mobile,一般情况下手机的操作都是在mobile权限下。

root有最高权限:如root用户可以进入mobile的目录,而反之不行;root可以在系统中新建文件,而mobile不行。

  • root 最高权限的用户 $HOME:/var/root
  • 还有一个 mobile $HOME: /var/mobile

通过WiFi连接登录时,每个手机都有单独的IP所以不会不出现中间人攻击的error。

SSH & OpenSSH

SSH:网络协议,用于计算机之间的加密登录!95年发明、芬兰。非对称:76年发明。

OpenSSH:应用SSH的工具。

SSH原理:1. C向S发起请求;2. S将公钥传给C;3. C使用S的公钥加密登录加密,并发给S;4. S用私钥解密并校验,确认是否登录成功。

中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)

​ 流程:略

​ 验证:1. 预防中间人攻击最有效的方法就是验证公钥是不是服务器的!!

​ 2. 如果是公开的SSH服务器,一般会将公钥的哈希值 公布在网站上!!

  • Mac保存iPhone的公钥到~/.ssh/know_hosts文件中,可以通过ssh-keygen删除;
  • ~/.ssh是一个隐藏文件夹,默认为空,可根据需要在里面创建文件。其中know_hosts文件保存被信任的SSH服务器地址及其公钥新生成的id_rsaid_rsa.pub也都存放在该目录中;
  • 每次连接新的SSH服务器时都会讲S的公钥保存到本地,且需要对MD5进行验证;
  • 并且登录同一台服务器时,如果S的公钥发生变化时登录不能通过,提示有中间人攻击;
  • 公钥一般1024位,通过MD5可以快速查看2个公钥是否一样;
  • iPhone自己的公钥、私钥保存路径在/etc/ssh/不是在~目录下,是在根目录下。其中ssh_host_rsa_key.pub就是公钥文件;该文件的内容即和Mac中know_hosts文件中的IP公钥对应。

公钥(免密)登录

除了使用密码登录,也可以免密码登录(所谓的公钥登录)!

原理:

  1. Mac电脑将自己的公钥发给远程的手机
  2. 手机随机的生成一段字符串,发给Mac电脑.
  3. Mac利用私钥加密字符串!
  4. 手机利用公钥解密字符串!
  5. 判断解密的字符串与原字符串是否一致!

对于部分设置免密后依然要求输入密码的情况,需要设置文件的权限! chmod 755

配置:

  1. 生成Mac端公私钥指令:ssh-keygen
  2. 拷贝公钥到服务器:ssh-copy-id [email protected],id为公钥名的前半部分,拷贝时需要输入登录密码;
  • iPhone上默认没有~/.ssh/目录,在配置免密登录后才会有。

  • iPhone上将Mac上传过来的公钥保存在~/.ssh/authorized_keys文件中。

RSA目录汇总:
1. Mac上只有一个~/.ssh/(存放自己新生成的公私钥和服务端的公约);
2. iPhone上有/etc/ssh(存放自己的公私钥)和~/.ssh/(存放免密的客户端公钥);
3. 将iPhone作为服务端,Mac为客户端,那么登录时仅需Mac保存iPhone的公钥,而iPhone仅在免密时需要保存Mac的公钥。另外Mac可以保存多个iPhone的公钥,以IP:公钥形式保存,如果同一个IP的公钥不一致时,Mac登录时就会报错:中间人攻击

USB连接

usbmuxd (usbmux.py来实现)在iOS和Mac上都是自带的,软件duet就是使用submuxd进行分屏! 以USB连接可以保证数据传输的稳定和高效。

原理:当向Mac的指定端口12345输入数据时,使用usbmuxd工具将数据通过USB映射到手机22号端口上,从而达到将本地数据上传到iPhone上;

OpenSSH安装在手机,让手机开启了SSH服务,并提供SSH访问权限,默认端口22。所以可以指定端口22来登录:$ssh -p 22 [email protected]

连接

指令方式

先映射端口,后连接

  • 监听Mac的12345端口、并将Mac的端口12345映射到手机的22端口:$python tcprelay.py -t 22:12345;// tcprelay负责监听,usbmux负责映射;
  • 登录指令:$ssh -p 12345 [email protected]

脚本方式

将Python文件拷贝到脚本路径下,将上面的2个指令分别写入2个脚本文件内,并单独运行脚本。

中间人攻击处理

  • 出现:同IP不同公钥时出现中间人攻击
  • 解决:叫本地保存的IP与公钥对进行删除,重新保存。

文件拷贝

WiFi拷贝:scp 1234.txt [email protected]:~/

USB拷贝:

  • 连接:sh usbConnect.sh

  • 拷贝:scp -P 12345 1234.txt root@localhost:~/

你可能感兴趣的:(18.越狱开发)