[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 root@192.192.1.169,$ssh mobile@192.192.1.169
; - 修改默认密码:登录后输入
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_rsa
和id_rsa.pub
也都存放在该目录中; - 每次连接新的SSH服务器时都会讲S的公钥保存到本地,且需要对MD5进行验证;
- 并且登录同一台服务器时,如果S的公钥发生变化时登录不能通过,提示有中间人攻击;
- 公钥一般1024位,通过MD5可以快速查看2个公钥是否一样;
- iPhone自己的公钥、私钥保存路径在:
/etc/ssh/
,不是在~
目录下,是在根目录下。其中ssh_host_rsa_key.pub
就是公钥文件;该文件的内容即和Mac中know_hosts文件中的IP公钥对应。
公钥(免密)登录
除了使用密码登录,也可以免密码登录(所谓的公钥登录)!
原理:
- Mac电脑将自己的公钥发给远程的手机
- 手机随机的生成一段字符串,发给Mac电脑.
- Mac利用私钥加密字符串!
- 手机利用公钥解密字符串!
- 判断解密的字符串与原字符串是否一致!
对于部分设置免密后依然要求输入密码的情况,需要设置文件的权限! chmod 755
配置:
- 生成Mac端公私钥指令:
ssh-keygen
; - 拷贝公钥到服务器:
ssh-copy-id root@192.192.1.169
,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 root@192.192.1.169
;
连接
指令方式
先映射端口,后连接
- 监听Mac的12345端口、并将Mac的端口12345映射到手机的22端口:
$python tcprelay.py -t 22:12345
;// tcprelay负责监听,usbmux负责映射; - 登录指令:
$ssh -p 12345 root@127.0.0.1
脚本方式
将Python文件拷贝到脚本路径下,将上面的2个指令分别写入2个脚本文件内,并单独运行脚本。
中间人攻击处理
- 出现:同IP不同公钥时出现中间人攻击
- 解决:叫本地保存的IP与公钥对进行删除,重新保存。
文件拷贝
WiFi拷贝:scp 1234.txt root@192.192.1.169:~/
USB拷贝:
-
连接:
sh usbConnect.sh
; -
拷贝:
scp -P 12345 1234.txt root@localhost:~/
;
网友评论