iOS逆向-day2:逆向环境搭建-SSH 安全连接(上)

简介: 1、SSH与OpenSSH简介2、Mac远程登录到iPhone3、iOS下的2个常用账户:root、mobile4、SSL和OpenSSL5、建立安全连接与服务器公钥的保存和变更6、SSH-客户端认证7、SSH-远程拷贝-文件权限8、22端口9、通过USB进行SSH登录10、usbmuxd-使用11、利用sh脚本设置快捷方式12、Mac连接iPhone终端的中文乱码问题

一、SSH与OpenSSH简介



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


image.png


提示:sniffer 是嗅探器以及抓数据包软件

  • 1.2、OpenSSH简介
  • OpenSSH 是 SSH 协议的免费开源实现
  • 可以通过OpenSSH的方式让Mac远程登录到iPhone


二、Mac远程登录到iPhone



  • 2.1、Mac远程登录到iPhone的简介
  • 我们经常在Mac的终端上,通过敲一些命令行来完成一些操作



image.png

  • OS和Mac OS X都是基于Darwin(苹果的一个基于Unix的开源系统内核),所以iOS中同样支持终端的命令行操作(在逆向工程中,我们经常会通过命令行来操纵iPhone)
  • 为了能够让Mac终端中的命令行能作用在iPhone上,我们得让Mac和iPhone建立连接



image.png

2.2、Mac使用OpenSSH远程登录iphone的前提


image.png


image.png

image.png

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


image.png


2.3、使用OpenSSH远程登录 的 使用步骤 - (Mac充当客户端,iPhone充当服务器)

  • <1>、SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi
  • <2>、在Mac的终端输入ssh 账户名@服务器主机地址,如下是以root权限登录的,其中的 192.168.3.73是手机的IP地址,这里的服务器是手机


ssh root@192.168.3.73


手机的IP地址的查看方式,要和电脑在同一个WiFi下


image.png


<3>、初始密码 alpine


image.png

image.pngimage.png


  • <4>、登录成功后就可以使用终端命令行操作iPhone,如:退出登录命令是exit,也可以使用快捷键:control+d


三、iOS下的2个常用账户:root、mobile (初始登录密码都是alpine)


image.png

3.1、root:最高权限账户,$HOME是 /var/root

提示:$HOME是 登录用户的路径,查看方式如下


image.png


  • 3.2、mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是 /var/mobile


  • 3.3、修改一下root和mobile用户的登录密码(登录root账户后,分别通过passwd、passwd mobile完成),使用root用户登录,登录成功后命令如下


image.png


四、SSL和OpenSSL



  • 分析:我们在安装 OpenSSH的时候可以看到先安装的是OpenSSL


image.png

  • 4.1、SSL:Secure Sockets Layer的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密
  • 4.2、OpenSSL:SSL的开源实现;绝大部分HTTPS请求等价于:HTTP + OpenSSL


提示1:OpenSSH的加密就是通过OpenSSL完成的


image.png


五、建立安全连接



  • 5.1、SSH的版本
  • SSH协议一共2个版本:SSH-1 与 SSH-2(现在用的比较多的是SSH-2,客户端和服务端版本要保持一致才能通信)
  • 查看SSH版本(查看配置文件的Protocol字段)
  • 客户端:/etc/ssh/ssh_config
  • 服务端:/etc/ssh/sshd_config
  • 举例:以电脑作为客户端与越狱手机作为服务器查看各自对应的SSH版本
  • 电脑作为客户端查看SSH版本


image.png

image.png

越狱手机作为服务器端查看SSH版本


image.png


  • .2、SSH的通信过程可以分为3大主要阶段:建立安全连接、客户端认证、数据传输
  • 5.3、建立安全连接
  • <1>、在建立安全连接过程中,服务器会提供自己的身份证明(也就是公钥)



image.png

  • 提示:~/.ssh/known_hosts路径下存储 服务器的公钥等其他的信息,在第一次存储后,第二次客户端再登录服务器就不再需要验证身份
  • 如果客户端并无服务器端的公钥信息,就会询问是否连接此服务器,如下图:我们在第一次登录的时候一般都会提示


image.png

  • <2>、解释下:在建立安全链接的过程中,~/.ssh/known_hosts所保存的服务器公钥以及其他信息,也就是上图中的:字符串 (把服务器发过来的公钥利用加密计算出来的一个字符串)
  • <3>、服务器身份信息变更(也就是同一个服务器,但是服务器的公钥发生了变化,也可以说本地的存储的公钥与服务器的不一样),解决办法:删除掉同一个 IP 的信息,下面以 IP:192.168.3.73 为例



image.png

  • 1)、cd ~/.ssh
  • (2)、vim know_hosts
  • (3)、让光标停留在192.168.3.73行,按 dd 即可删除
  • (4)、esc,shift+;,wq输入回车键 保存推出;
  • (5)、再次进行连接服务器ssh root@192.168.3.73;
  • (6)、重新提示要不要连接


提示:快捷方式:ssh-keygen -R 服务器IP地址,如和上面一样的效果:ssh-keygen -R 192.168.3.73


  • <4>、验证客户端存储的 公钥 与 服务器的公钥是否一致


image.png

目录
相关文章
|
Java 数据库连接 网络安全
JDBC常用特性-SSH隧道连接
JDBC常用特性-SSH隧道连接
|
网络安全 开发工具 git
配置本地环境以管理Git多账户SSH连接的方法
通过以上步駟设置后, 您可以轻松管理多個 Git 账户并且根据不同项目需求切换 SSH 密匙进行版本控制操作。
1598 20
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
3066 6
|
Unix Linux Shell
指定端口-SSH连接的目标(告别 22 端口暴力破解)
本文介绍了 SSH 命令 `ssh -p 44907 root@IP` 的含义与使用方法,包括命令结构拆解、完整示例及执行过程详解,帮助用户安全地远程登录服务器。
1874 0
|
网络安全 数据安全/隐私保护 开发者
诊断并修复SSH连接Github时遇到的"connection closed"错误。
解决"connection closed"错误往往是一个排除法的过程。需要从基础的网络检查做起,逐步过渡到深入的配置和服务端日志审查。每一步都应当仔细验证,确保不遗漏可能导致连接问题的任何细节。在执行以上步骤后,大多数SSH连接问题可以得到解决。如果所有步骤都未能解决问题,可能需要寻求更专业的技术支持,或者在GitHub社区寻找是否有其他开发者遇到并解决了类似的问题。
1651 0
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
1383 0
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
2443 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
安全 Linux 网络安全
CentOS 8下SSH连接超时与“无法加载主机密钥”错误的排查与修复
在CentOS 8系统中,宝塔面板提示“出错了,面板运行时发生错误”,导致插件无法正常显示。同时,SSH连接超时,修复面板功能失效。通过VNC连接排查,发现SSH服务安装和配置问题频发,最终通过重装SSH、调整权限并重新生成主机密钥文件解决问题,成功恢复SSH连接。
1556 16
|
网络安全 数据安全/隐私保护 C++
VS Code 的SSH连接不成功问题分析与解决
VS Code 的SSH连接不成功问题分析与解决
|
网络安全 数据安全/隐私保护
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
5142 0