iOS逆向需要了解的OpenSSH-手机登录

·  阅读 400

二、 连接手机

2.1 wifi 登录查看手机

通过 OpenSSH 插件使用 WIFI 链接手机, 在 mac 终端输入格式为: ssh 用户名@手机IP


ssh root@192.168.2.186

复制代码

在这里 手机是服务端, 电脑是客户端 OpenSSH 是让手机开启 SSH 登录服务。

默认密码: alpine

首次提示会出现保存提示, 需要输入 yes 保存后继续


➜ ~ ssh root@192.168.2.186

The authenticity of host '192.168.2.186 (192.168.2.186)' can't be established.

RSA key fingerprint is SHA256:Ae5Y7TUos3lIHFOyPSy4/HcQmYmcjeN4oxYI4goC7NBWqaf.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

复制代码

ps: 这里其实是提示公钥key 的hash值让验证有没有被篡改的。

输入密码: alpine (默认的) , 输入之后就登录成功了:


root@192.168.2.186's password:

iPhone-XS-Max:~ root#

复制代码

这样就进入手机的 root 环境了, 手机还还有个 mobile 用户, 这个权限有限, sh mobile 就切换成了, (还是在 root 权限下操作的吧)

2.2 查看文件目录

root 目录下可以看到系统文件如下, 还可以通过 cd / 进入根目录:


iPhone-XS-Max:~ root# ls

Library/ Media/

iPhone-XS-Max:~ root# cd /

iPhone-XS-Max:/ root# ls

Applications/ Developer/ Library/ System/ User@ bin/ boot/ cores/ dev/ etc@ lib/ mnt/ private/ sbin/ tmp@ usr/ var@

iPhone-XS-Max:/ root#

复制代码

还可以查看手机的应用列表"


iPhone-XS-Max:/ root# cd Applications/

iPhone-XS-Max:/Applications root# ls

AXUIViewService.app/ FieldTest.app/ SLGoogleAuth.app/

AccountAuthenticationDialog.app/ FindMy.app/ SLYahooAuth.app/

ActivityMessagesApp.app/ FindMyiPhone.app/ SMS\ Filter.app/

复制代码

通过 ps -A 查看手机当前的进程,

你想查看手机上某个 app 的安装目录(以微信为例: 需要先把微信运行在前台): ps -A | grep WeChat


iPhone-XS-Max:/Applications root# ps -A

PID TTY TIME CMD

1 ?? 5:33.67 /sbin/launchd

299 ?? 1:46.48 /usr/libexec/substituted

300 ?? 0:00.00 (amfid)

376 ?? 0:00.00 /usr/libexec/amfid

387 ?? 0:00.30 /System/Library/PrivateFrameworks/AppleCredentialManager.framework/AppleCredentialManagerDaemon

---此处省略若干---

33511 ?? 0:00.08 /usr/libexec/gpsd

33514 ?? 0:00.17 /System/Library/PrivateFrameworks/MobileBackup.framework/backupd

33030 ttys000 0:00.07 -sh

33521 ttys000 0:00.02 ps -A

---这里分行看的更清除---

iPhone-XS-Max:/Applications root# ps -A | grep WeChat

815 ?? 2560:27.65 /var/containers/Bundle/Application/0FBC53D3-FEDF-464D-A855-7A32CC595764/WeChat.app/WeChat

33506 ?? 0:03.75 /var/containers/Bundle/Application/0FBC53D3-FEDF-464D-A855-7A32CC595764/WeChat.app/WeChat

33525 ttys000 0:00.02 grep WeChat

iPhone-XS-Max:/Applications root#

复制代码

这个时候 MachO 文件路径就找到了。

2.3 退出手机查看

control+d 或者 exit 就可以退出登录了


iPhone-XS-Max:/Applications root# exit

logout

Connection to 192.168.2.186 closed.

复制代码
2.4 用户

iOS 系统下有两个用户:rootmobile

image.png

  • root:最高权限用户,可以访问任意文件.

  • mobile:普通用户,只能访问改用户目录下文件 /var/Mobile

mobile 用户在自己的目录下可以创建文件,在根目录下没有权限:

image.png

root 用户就可以的, 就测试了

2.5 修改用户密码
  • root 用户可以修改所有用户的密码。

  • passwd 命令修改密码:

  • passwd 用户名

  • 输入两次新密码,确认修改。因为是登录状态所以不用输入原始密码。

ps: root 用户修改 mobile 用户密码:


~ ssh

iPhone-XS-Max:~ root# passwd mobile

Changing password for mobile.

New password:

Retype new password:

iPhone-XS-Max:~ root#

复制代码

一般不推荐修改密码,直接配置免密登录就好了。如果修改密码后忘记了那么重新安装就好了。

2.6 密钥保存验证

通过 1.3 SSH 登录过程我们知道在首次登录的时候会提示验证公钥的 hash 值,并且保存公钥到 ~/.ssh 目录下的 known_hosts 中,那么公私钥手机中也应该是有的。

进入手机 cd /etc/ssh 目录:


iPhone-XS-Max:~ root# cd /etc/ssh

iPhone-XS-Max:/etc/ssh root# ls

moduli ssh_host_dsa_key ssh_host_rsa_key sshd_config

ssh_config ssh_host_dsa_key.pub ssh_host_rsa_key.pub

iPhone-XS-Max:/etc/ssh root#

复制代码

可以看到 ssh_host_rsa_key 的公私钥。这也就验证了上面的登录过程。

image.png

对比可以看到. 如果 IP地址 改变了就无法进行访问了, 就会出现中间人攻击的提示了

2.7 免密登陆(公钥登录)
2.5.1 免密登录原理

免密码登录也称公钥登录,原理就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的直接允许登录不再要求密码。

image.png

2.5.2 免密登录配置
  1. .客户端在 ~/.ssh/ 目录下生成公私钥 ssh-keygen:

20211026084614.jpg

一路回车不设置密码(如果设置密码虽然免密登录了,但是每次都要输rsa的密码)。

  1. 拷贝公钥给 SSH 服务器:ssh-copy-id 用户名@服务器IP, 拷贝的时候需要输入 root 账户的密码

20211026084706.jpg

这个时候再登录就不需要输入密码了:


~  ssh root@192.168.2.186

iPhone-XS-Max:~ root#

复制代码

ssh-copy-id 可以通过 -i 指定文件。某些系统通过指定 -i 会无效。(虽然拷贝成功,但是验证的是 ssh-copy-id 自己生成的 key )。

3.拷贝的公钥在服务器 ~/.ssh/authorized_keys中:

image.png

image.png

在某些版本中 ssh-copy-id 不需要我们生成公钥,该命令会自己生成公私钥进行拷贝。如果遇见自己生成的 公钥 key 和和拷贝到authorized_keys 中的对不上那么很可能是这个问题。

2.8 配置快捷登录

加入我们有多台手机,或者并不想输入ip那么麻烦的去登录。在 ~/.ssh 下创建一个 config 文件,对 ssh 登录配置别名:


Host iPhone7

Hostname 172.20.10.11

User root

Port 22

复制代码

使用:


~  ssh iPhoneXsMax

iPhone-XS-Max:~ root#

复制代码
2.9 SSH其它操作
  • 删除保存的服务器地址的key:ssh-keygen –R 服务器IP地址(当SSH登录手机,手机就是服务器)

  • know_hosts 文件:用于保存SSH登录服务器所接受的key,在系统~/.ssh 目录

  • ssh_host_rsa_key.pub文件:作为SSH服务器发送给连接者的key,在系统/etc/ssh 目录中

  • config文件:在~/.ssh 目录下创建一个config文件。内部可以配置ssh登录的别名。


End

分类:
iOS
标签:
分类:
iOS
标签: