逆向第一课 (逆向环境搭建)

今天我们开始学习逆向APP有关方面的知识点
当然在此之前你需要一台越狱手机,越狱手机,越狱手机 重要的事情说三遍,不会越狱这里提供教程,检查手机是否可以越狱:http://jailbreak.25pp.com/ios

越狱方法推荐
PP助手:http://jailbreak.25pp.com/

这里简单给大家简单说一下越狱
什么是iOS Jailbreak?
利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)

越狱.png

越狱的优点

打造个性化、与众不同的iPhone
自由安装各种实用的插件、主题、APP
修改系统APP的一些默认行为
自由安装非AppSore来源的APP
“付费APP”秒变“免费APP”
未越狱iPhone安装APP的途径
AppStore
真机调试
通过证书打包签名ipa安装
灵活管理文件系统,让iPhone可以像U盘那样灵活**
给开发者提供了逆向工程的环境

越狱的缺点

不予保修
费电,越狱后的iOS系统会常驻一些进程,耗电速度约提升10%~20%
在新的iOS固件版本出来的时候,不能及时地进行更新
每个新版本的固件,都会修复上一个版本的越狱漏洞,使越狱失效
如果需要保持越狱状态,要等待新的越狱程序发布时,才能升级相应的固件版本
不再受iOS系统默认的安全保护,容易被恶意软件攻击,个人隐私有被窃取的风险
如果安装了不稳定的插件,容易让系统变得不稳定、变慢,甚至出现“白苹果”等问题

如何判断是否越狱成功?

桌面是否有Cydia


cycdia.png

一般我们的mac上会有几个必须要安装的应用

iFunBox
管理文件系统

PP助手
自由安装海量APP
卸载APP
备份APP为ipa安装包(iOS9开始,不再支持备份APP)

逆向开始

首先介绍几个工具,可能大部分人有些工具都使用过,那就更利用我们进行逆向开发
Alfred
XtraFinder
iTerm2
Go2Shell

一.Mac远程登录到iPhone

我们经常在Mac的终端上,通过敲一些命令行来完成一些操作
iOS和Mac OS X都是基于Darwin(苹果的一个基于Unix的开源系统内核),所以iOS中同样支持终端的命令行操作
在逆向工程中,我们经常会通过命令行来操纵iPhone


终端.png

为了能够让Mac终端中的命令行能作用在iPhone上,我们得让Mac和iPhone建立连接
通过Mac远程登录到iPhone的方式建立连接

SSH、OpenSSH

SSH
Secure Shell的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议
使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗

ssh.png

OpenSSH
是SSH协议的免费开源实现
可以通过OpenSSH的方式让Mac远程登录到iPhone
在iPhone上通过Cydia安装OpenSSH工具(软件源http://apt.saurik.com

openssh.png

OpenSSH的具体使用步骤可以查看Description中的描述


desctiption.png

使用OpenSSH远程登录 - 使用步骤

SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi
在Mac的终端输入ssh 账户名@服务器主机地址
比如ssh root@10.1.1.168(这里的服务器是手机)
初始密码alpine
登录成功后就可以使用终端命令行操作iPhone
退出登录命令是exit

NingPeiChaodeMacBook-Pro-3: ning$ ssh root@192.168.1.21
130:~ root# exit
logout
Connection to 192.168.1.21 closed.
NingPeiChaodeMacBook-Pro-3: ning$ 

iOS下有2个常用账户:root、mobile
root:最高权限账户,$HOME是/var/root
mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是/var/mobile
登录mobile用户:root mobile@服务器主机地址
root和mobile用户的初始登录密码都是alpine

SSL、OpenSSL

很多人会将SSH、OpenSSH、SSL、OpenSSL搞混

SSL
Secure Sockets Layer的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密

OpenSSL
SSL的开源实现
绝大部分HTTPS请求等价于:HTTP + OpenSSL

OpenSSH的加密就是通过OpenSSL完成的

SSH的客户端认证方式

SSH-2提供了2种常用的客户端认证方式
基于密码的客户端认证
使用账号和密码即可认证
基于密钥的客户端认证
免密码认证
最安全的一种认证方式
SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”

SSH - 基于密钥的客户端认证

在客户端生成一对相关联的密钥(Key Pair):一个公钥(Public Key),一个私钥(Private Key)
ssh-keygen
一路敲回车键(Enter)即可
OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
生成的公钥:~/.ssh/id_rsa.pub
生成的私钥:~/.ssh/id_rsa

把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部
ssh-copy-id root@服务器主机地址
需要输入root用户的登录密码
ssh-copy-id会将客户端~/.ssh/id_rsa.pub的内容自动追加到服务器的~/.ssh/authorized_keys尾部

注意:由于是在~文件夹下操作,所以上述操作仅仅是解决了root用户的登录问题(不会影响mobile用户)

公钥 >> 授权文件

可以使用ssh-copy-id将客户端的公钥内容自动追加到服务器的授权文件尾部,也可以手动操作
复制客户端的公钥到服务器某路径
scp ~/.ssh/id_rsa.pub root@服务器主机地址:~
scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上
上面的命令行将客户端的~/.ssh/id_rsa.pub拷贝到了服务器的~地址

SSH登录服务器
ssh root@服务器主机地址
需要输入root用户的登录密码

在服务器创建.ssh文件夹
mkdir .ssh

追加公钥内容到授权文件尾部
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

删除公钥
rm ~/id_rsa.pub

文件权限问题

如果配置了免密码登录后,还是需要输入密码,需要在服务器端设置文件权限
chmod 755 ~
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

22端口

端口就是设备对外提供服务的窗口,每个端口都有个端口号(范围是0~65535,共2^16个)
有些端口号是保留的,已经规定了用途,比如
21端口提供FTP服务
80端口提供HTTP服务
22端口提供SSH服务(可以查看/etc/ssh/sshd_config的Port字段)
更多保留端口号: https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3%E5%8F%B7/10883658#4_3

通过USB进行SSH登录

默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式SSH登录到iPhone,要求iPhone连接WiFi
为了加快传输速度,也可以通过USB连接的方式进行SSH登录
Mac上有个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone
/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd

usbmuxd的使用1
下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)
https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz

将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
cd ~/Documents/usbmuxd-1.0.8/python-client
python tcprelay.py -t 22:10010
加上-t参数是为了能够同时支持多个SSH连接

NingPeiChaodeMacBook-Pro-3:~ ning$ cd /Users/ning/Desktop/应用砸壳资料/python-client 
NingPeiChaodeMacBook-Pro-3:python-client ning$ ls
tcprelay.py usbmux.py   usbmux.pyc
NingPeiChaodeMacBook-Pro-3:python-client ning$ python tcprelay.py -t 20:10010
Forwarding local port 10010 to remote port 20

注意:要想保持端口映射状态,不能终止此命令行(如果要执行其他终端命令行,请新开一个终端界面)
不一定非要10010端口,只要不是保留端口就行

usbmuxd的使用2

端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了
新开一个终端界面,SSH登录到Mac本地的10010端口(以下方式2选1)
ssh root@localhost -p 10010
ssh root@127.0.0.1 -p 10010
localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址

usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone的22端口

远程拷贝文件也可以直接跟Mac本地的10010端口通信
scp -P 10010 ~/Desktop/1.txt root@localhost:~/test
将Mac上的~/Desktop/1.txt文件,拷贝到iPhone上的~/test路径
注意:scp的端口号参数是大写的-P

好了 到这里我们的逆向环境就搭建成功了,我们可以成功的使用mac来链接到我们的越狱手机

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352