iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone

简介: iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone

一、安装 Mac 上提高效率的辅助工具 (可选)

二、简介

1、我们经常在 Mac 的终端上通过敲一些命令行来完成一些操作。

2、iOSMac OS X 都是基于 Darwin (苹果的一个基于 Unix 的开源系统内核) ,所以 iOS 中同样支持终端的命令行操作。

3、在逆向工程中,我们经常会通过命令行来操纵 iPhone

4、为了能够让 Mac 终端中的命令行能作用在 iPhone 上,我们得让 MaciPhone 建立连接。

5、通过 Mac 远程登录到 iPhone 的方式建立连接。

三、SSHOpenSSH

  • Secure Shell 的缩写,意为 安全外壳协议 , 是一种可以为远程登录提供安全保障的协议
  • 使用 SSH ,可以把所有传输的数据进行加密,中间人 攻击方式就不可能实现,能防止 DNS 欺骗和 IP 欺骗,中途拦截篡改数据。
  • OpenSSH
  • SSH 协议的免费开源实现。
  • 可以通过 OpenSSH 的方式让 Mac 远程登录到 iPhone

四、使用 OpenSSH 远程登录到 iPhone,先安装 OpenSSH

  • 默认 iPhone 上是不支持 OpenSSH 的,我们需要通过 Cydia 安装 OpenSSH 工具 (软件源http://apt.saurik.com)
  • 打开 Cydia 搜索 OpenSSH 即可安装,如果搜不到在添加上面的软件源,默认应该是有的,如果网络有问题建议换个网络环境。(附:Cydia 商店安装方式

五、OpenSSH 使用步骤

1、SSH 是通过 TCP 协议通信,所以要确保 MaciPhone 在同一局域网下,比如连接着同一个 WiFi

2、然后在 Mac 的终端输入 ssh 账户名@服务器主机地址 这种格式的命令进行连接 iPhone

3、iOS 下有 2 个常用账户: rootmobile

  • root:最高权限账户,$HOME(路径)是 /var/root
  • mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件, $HOME(路径)是 /var/mobile

4、账户名 我们这里用 root

5、服务器主机地址 也就是 IP 地址,电脑与手机都连接一个 Wifi,然后打开手机 设置 -> 无限局域网 -> 点你连接Wifi后面的叹号 -> 然后就看到 IP 地址了

6、然后通过以上结合的命令就是: ssh root@10.0.89.184,然后在命令行中使用,(OpenSSH 的默认密码都是 alpine)。

dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184
// 这个 IP 地址是没有建立过连接的
The authenticity of host '10.0.89.184 (10.0.89.184)' can't be established.
// 服务器公钥通过 SHA256 加密之后的字符串,如果确定连接将解析出来并存到本地
// 一个方便下次连接不需要再次询问确认,二个以免有同样 IP 地址的服务端冒充
RSA key fingerprint is SHA256:TmFvst8CU2JJqrFZ1QIANzprd1rUckdYjV4lcVaS8Gk.
// 问你是否确定连接,选 yes
// 然后就会将验证公钥解析出来并存到你本地 ~/.ssh/known_hosts 文件夹里面,下次连接使用
// 可以通过命令 $ ssh-keygen -R 10.0.89.184 进行清除存储的公钥,然后再次回到这个询问
Are you sure you want to continue connecting (yes/no)? yes
// 然后需要密码,OpenSSH 的默认密码都是 alpine ,所以你直接输入即可,下面也有修改密码教程
root@10.0.89.184's password: 
// 如果输入成功,就进入到 iPhone 里面了,这里可以通过正常的 cd、ls 等命令操作
iPhone:~ root# 
// exit 退出登录
iPhone:/ root# exit
logout
Connection to 10.0.89.184 closed.

六、修改 rootmobile 用户的登录密码

1、登录 root 账号,只有它才有权限修改。

2、修改 root 账号的密码

// 登录手机 root 账户
dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184
// 输入旧密码
root@10.0.89.184's password: 
// 输入 passwd 命令进行修改密码
iPhone:~ root# passwd
Changing password for root.
// 输入新密码
New password:
// 再次输入新密码
Retype new password:

3、修改 mobile 账号的密码,同样还是在 root 账号里面进行修改

// 通过 passwd 命令进行修改密码,passwd mobile :指的是修改 mobile 账户的密码
iPhone:~ root# passwd mobile
Changing password for mobile.
// 输入新密码
New password:
// 再次输入新密码
Retype new password:

七、(附带扩展知识)根据上面链接手机询问,如何查看比较公私钥?

连接手机成功之后,在电脑上查看一下存储的公钥是什么,之前有说如果确定连接了,公钥会被存到 ~/.ssh/known_hosts 这个文件夹中。

// 进入 ~/.ssh 文件
dengzemiaodeMacBook-Pro:~ dengzemiao$ cd ~/.ssh
// 展示列表文件
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ ls
id_rsa    id_rsa.pub  known_hosts
// 查看 known_hosts 文件
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ cat known_hosts
....... 前面还有很多端口号,我就省略了,找到我们连接的端口号看看就好了
10.0.89.184 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCHckZZQzMFLhuHGwSQleU13ygF7Kv5URZSw88L1MtpL1jRo+Sa6IvNF9HMKScLxRed+XPSorBlt7vxaQbvSd2ESeqn3EW52S44z3Jnc4R4jUPfLqd1QgGbXbXc8emnTnqXv/o6aZcWQNlcNX8WBRJuXU5Tfr8NX9Sp8nERi2tiRKx01uh4S5eAEr7TUXE+Vh5kcXU6m0jQWsqTnwz3nHNTYlKyGz5qCpU/RufhavTxeaQyE9MH3E7RxTpjeSuYb3xNF7p3emXqnlrSZx3/RCvPMELDMiFlUCRRWxVCm6TtvUAkFwS6sMgT1lDWJvsF8ycr3qgUkkgwbAwsp+ZCz6xx
// 客户端电脑的公钥看到了,我们可以看看服务端(手机)上的公钥
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ ssh root@10.0.89.184
root@10.0.89.184's password: 
// 进入 /etc/ssh
iPhone:~ root# cd /etc/ssh
// 在 /etc/ssh 目录下有公私钥数据,我们打开公钥文件
iPhone:/etc/ssh root# cat ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCHckZZQzMFLhuHGwSQleU13ygF7Kv5URZSw88L1MtpL1jRo+Sa6IvNF9HMKScLxRed+XPSorBlt7vxaQbvSd2ESeqn3EW52S44z3Jnc4R4jUPfLqd1QgGbXbXc8emnTnqXv/o6aZcWQNlcNX8WBRJuXU5Tfr8NX9Sp8nERi2tiRKx01uh4S5eAEr7TUXE+Vh5kcXU6m0jQWsqTnwz3nHNTYlKyGz5qCpU/RufhavTxeaQyE9MH3E7RxTpjeSuYb3xNF7p3emXqnlrSZx3/RCvPMELDMiFlUCRRWxVCm6TtvUAkFwS6sMgT1lDWJvsF8ycr3qgUkkgwbAwsp+ZCz6xx


相关文章
|
28天前
|
iOS开发 开发者
解决xcode doesn‘t support iphone’s ios 14.6 (18f72)
解决xcode doesn‘t support iphone’s ios 14.6 (18f72)
50 3
|
2月前
|
开发工具 iOS开发 计算机视觉
|
5天前
|
Swift iOS开发 UED
揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【9月更文挑战第5天】本文通过具体案例介绍如何在iOS应用中使用Swift与UIKit实现自定义按钮动画,当用户点击按钮时,按钮将从圆形变为椭圆形并从蓝色渐变到绿色,释放后恢复原状。文中详细展示了代码实现过程及动画平滑过渡的技巧,帮助读者提升应用的视觉体验与特色。
25 11
|
19天前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
63 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
28天前
|
Swift iOS开发 UED
【绝妙创意】颠覆你的视觉体验!揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【8月更文挑战第13天】本文通过一个具体案例,介绍如何使用Swift与UIKit在iOS应用中创建独特的按钮动画效果。当按钮被按下时,其形状从圆形变化为椭圆形,颜色则从蓝色渐变为绿色;释放后,动画反向恢复原状。利用UIView动画方法及弹簧动画效果,实现了平滑自然的过渡。通过调整参数,开发者可以进一步优化动画体验,增强应用的互动性和视觉吸引力。
35 7
|
28天前
|
安全 测试技术 调度
iOS开发-多线程编程
【8月更文挑战第12天】在iOS开发中,属性的内存管理至关重要,直接影响应用性能与稳定性。主要策略包括:`strong`(强引用),保持对象不被释放;`weak`(弱引用),不保持对象,有助于避免循环引用;`assign`(赋值),适用于基本数据类型及非指针对象类型;`copy`(复制),复制对象而非引用,确保不变性。内存管理基于引用计数,利用自动引用计数(ARC)自动管理对象生命周期。此外,需注意避免循环引用,特别是在block中。最佳实践包括理解各策略、避免不必要的强引用、及时释放不再使用的对象、注意block中的内存管理,并使用工具进行内存分析。正确管理内存能显著提升应用质量。
|
29天前
|
BI Linux 数据安全/隐私保护
忘了 iOS(iPad、IPhone) 设备上的「屏幕使用时间」密码怎么办?找回屏幕密码
忘了 iOS(iPad、IPhone) 设备上的「屏幕使用时间」密码怎么办?找回屏幕密码
37 0
|
2月前
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性与编程实践
【7月更文挑战第8天】在移动开发的广阔天地中,安卓和iOS这两大操作系统各自占据着半壁江山。它们在用户界面设计、系统架构及开发工具上展现出截然不同的特色。本文将深入探讨这两个平台在技术实现和开发生态上的关键差异,并分享一些实用的开发技巧,旨在为跨平台开发者提供有价值的见解和建议。
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析:选择适合自己的编程平台
移动应用开发的两大阵营——安卓和iOS,各自拥有不同的开发环境和工具集。本文通过深入比较这两个平台的编程语言、集成开发环境(IDE)、用户界面设计、测试框架以及部署流程,旨在为开发者提供一个全面的视角来选择最符合个人或项目需求的开发环境。
|
3月前
|
安全 IDE Android开发
探索Android与iOS开发的差异:平台特性与编程实践
【6月更文挑战第17天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据半壁江山。它们在用户群体、系统架构以及开发环境上的差异,为开发者带来了不同的挑战和机遇。本文深入探讨了这两个平台在技术实现、界面设计、性能优化等方面的主要区别,并提供了实用的开发建议,旨在帮助开发者更好地理解各自平台的特性,从而创造出更加优秀的移动应用。