美文网首页ios逆向breakiOS
03-iOS逆向工程使用SSH通过WiFi远程登录越狱iPhon

03-iOS逆向工程使用SSH通过WiFi远程登录越狱iPhon

作者: hejunbinlan | 来源:发表于2018-01-24 16:54 被阅读140次
    前提
    • 需要在iPhone上安装OpenSSH(SSH的开源实现)
      在Cydia中搜索OpenSSH并安装,这样iPhone上就可以开启SSH服务。SSH服务默认绑定端口号22。
    • Mac和iPhone需要在同一局域网下,比如连接到同一个WIFI中。
    使用步骤
    Mac终端连接iPhone

    命令: ssh 账户名@服务器主机IP

    • 在iOS中,有2个常用的账户:root、mobile;
    • 这里服务器为iPhone,IP通过系统设置->无线局域网->IP地址中查找;
    • 苹果给iOS账号默认登录密码为:alpine;
    • 清除某服务器ssh公钥信息,公钥信息存储在~/.ssh/known_hosts
      清除命令:ssh-keygen -R [服务器主机IP]


      image.png
    修改初始密码

    命令:passwd 用户名
    然后输入两边新密码


    image.png
    SSL与OpenSSL&SSH与OpenSSH
    SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    OpenSSL

    OpenSSL 是一个SSL密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。简单来说就是SSL的免费开源实现。
    绝大部分HTTPS请求等价于:HTTP + OpenSSL。

    SSH

    SSH(Secure Shell 安全外壳协议),由 IETF 的网络小组(Network Working Group)所制定;SSH 是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
    SSH协议一共2个版本:SSH-1和SSH-2
    现在用的比较多的是SSH-2,客户端和服务端版本要保持一致才能通信。

    查看SSH版本(查看配置文件的Protocol字段)
    客户端:/etc/ssh/ssh_config
    服务端:/etc/ssh/sshd_config

    OpenSSH

    OpenSSH是SSH协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
    OpenSSH的加密就是通过OpenSSL完成的。

    SSH通讯过程

    SSH的通信过程可以分为3大主要阶段

    1. 建立安全连接
    • 在建立安全连接过程中,服务器会提供自己的身份证明。


      image.png
    • 如果客户端还没有保存服务器端的公钥信息,建立连接前会询问是否连接此服务。


      image.png
    • 如果服务器的身份信息发生了变更,在连接过程中会遇到以下错误:


      image.png

      如果确定要连接此服务器,需要删除掉之前的服务器的公钥再连接即可。
      方式一:使用命令删除:ssh-keygen -R 服务器IP地址
      方式二:直接打开~/.ssh/known_hosts找到服务器IP地址对应的公钥信息直接删除并保存即可。

    2. 客户端认证

    SSH2提供了2种常用的客户端认证方式

    • 基于密码的客户端认证
      连接时提示用户输入密码进行认证。

    • 基于密钥的客户端认证
      免密码认证,是最安全的一种认证方式。
      注意SSH2默认会优先尝试“密钥认证”,如果认证失败才会尝试密码认证。
      认证流程如下:


      image.png

    具体流程如下:

    1. 在客户端生成一对相关联的密钥对(Key Pair):一个公钥(Public Key)和一个私钥(Private Key)
      使用命令:ssh-keygen
      一路敲回车键(Enter)即可
      OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
      生成的公钥:~/.ssh/id_rsa.pub
      生成的私钥:~/.ssh/id_rsa
    2. 把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部
    • 方式一:直接使用ssh-copy-id完成
      命令:
      ssh-copy-id [-i identity_file] 用户名@服务器主机地址
      选项:
      -i:指定公钥文件
      ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。需要输入用户的登录密码。
      实例:
      ssh-copy-id root@192.168.10.80
      不指定公钥文件默认会将客户端~/.ssh/id_rsa.pub的内容自动追加
      到服务器~/.ssh/authorized_keys尾部。
      ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.80
      将客户端指定的公钥文件自动最佳到服务器~/.ssh/authorized_keys尾部

    • 方式二:
      先将客户端的公钥文件拷贝到服务器中,然后再将公钥内容追加到授权文件中。
      1)复制客户端的公钥到服务器某路径
      scp ~/.ssh/id_rsa.pub root@服务器主机地址:~
      scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上。
      上面的命令行将客户端的~/.ssh/id_rsa.pub公钥文件拷贝到服务器
      ~目录中。
      2)SSH登录服务器
      ssh root@服务器主机地址
      需要输入root用户的登录密码
      3)在服务器~目录下创建.ssh文件夹
      mkdir .ssh
      4)追加公钥内容到授权文件尾部
      cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
      5)删除公钥
      rm ~/id_rsa.pub

    • 方式三:直接通过iFunBox进行操作。

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

    相关文章

      网友评论

        本文标题:03-iOS逆向工程使用SSH通过WiFi远程登录越狱iPhon

        本文链接:https://www.haomeiwen.com/subject/qtduaxtx.html