逆向环境搭建

提高工作效率的工具

  • 1.Alfred:便捷搜索
  • 2.XtraFinder:增强型Finder
  • 3.iTerm2:完爆Terminal
  • 4.Go2Shell:从Finder快速定位到命令行工具

Mac远程登录到iPhone

  • 1.作用:用Mac终端命令操作iPhone
  • 2.连接:使用OpenSSH远程登录
    • A.在iPhone上通过Cydia安装OpenSSH工具(软件源:http://apt.saurik.com)
    • B.首先保证Mac和iPhone在同一局域网下
    • C.在Mac终端输入 ##ssh 账户名@服务器主机地址##
    • D.初始密码是alpine,密码可以在OpenSSH里面查看
    • E.登录成功以后就可以使用终端操控iPhone
    • F.退出登录的命令是 exit
  • 3.iOS账户,iOS下有两个常用账户Root Mobile
    • Root:最高权限账户
    • Mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的软件,
    • 登录mobile的命令就是 ssh [email protected]
    • root和mobile的初始密码都是alpine

SSL OpenSSL

  • OpenSSH OpenSSL很容易弄混
  • OpenSSH的加密就是通过OpenSSL完成的

SSH的版本

  • 1.一共两个版本
    • SSH-1
    • SSH-2
  • 2.现在用的比较多是SSH-2,客户端和服务端SSH版本保持一致才能进行通信。
  • 3.查看SSH版本
    • 客户端:/etc/ssh/ssh_config
    • 服务端:/etc/ssh/sshd.config

SSH通信过程

  • 1.建立安全链接
  • 2.客户端认证
  • 3.数据传输

1.建立安全链接

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


    image.png
  • 2.如果客户端并无服务器的公钥信息,就会询问是否链接服务器


    image.png

在建立安全链接的过程中,如果报错:服务器的身份信息发生变更

image.png
  • 1.如果确定要链接此服务器,删掉之前的服务器公钥信息就行 ssh-keygen -R 服务器IP地址
  • 2.或者直接打开known_hosts文件删除服务器的公钥信息就行 vim ~/.ssh/known/hosts

SSH客户端的认证方式

  • 1.SSH-2提供了两种客户端认证方式。
    • A.基于密码的客户端认证(使用账号,密码即可认证)
  • 2.基于密钥的客户端认证
    • A.免密码认证
    • B.安全的认证方式
      SSH-2会先进行密钥认证,如果认证失败,才会进行账号密码认证

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

image.png
  • 1.在客户端生成一对相关联的密钥(key pair):一个公钥(Public Key),一个私钥(Private Key)
    命令:SSH-keygen
    • A.一路敲回车即可
    • B.OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
    • C.生成的公钥 ~/.ssh/id_rsa.pub
    • D.生成的私钥 ~/.ssh/id_rsa
  • 2.把客户端生成的公钥内容追加服务器的授权文件(~/.ssh/authorized_keys)尾部
    命令:ssh-copy-id root@服务器地址
    • A.需要输入root账户的登录密码
    • B.ssh-copy-id会自动把客户端的/.ssh/id_rsa.pub追加到服务器的/.ssh/authorizes_keys尾部
  • 3.第二步中使用ssh-copy-id root@服务器地址进行操作,其实还有一种手动操作将 公钥->授权文件尾部
    • A.复制客户端的公钥到服务器的某个路径
      命令:scp ~/.ssh/id_rsa.pub root@服务器地址
      scp是secure copy的缩写,是基于SSH登录进行安全的文件拷贝命令,把一个文件安全的拷贝到另一个主机上
      上面的命令将客户端的/.ssh/id_rsa.pub拷贝到服务器的地址
    • B.SSH登录服务器
      命令:ssh root@服务器地址(需要输入root用户的登录密码)
    • C.在服务器创建.ssh文件夹
      命令:mkdir .ssh
    • D.追加公钥内容到授权文件底部
      命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
      -E.删除公钥
      命令:rm ~/id_rsa.pub

文件权限问题

如果配置了免密码登录以后,还是需要输入密码,需要在服务器端设置文件权限,以下数字代表不同的权限信息,不做过多解释,可自行百度

    1. chmod 755 ~
  • 2.chomd 755 ~/.ssh
  • 3.chomd 644 ~/.ssh/authorized_keys

22端口

  • 1.端口就是设备对外提供服务的窗口,每个端口都有端口号(范围是0~65535,共2^16个)
  • 2.有些端口号是保留的,已经规定了用途,例如:
    • A.21端口提供FTP服务
    • B.80端口提供HTTP服务
    • C.22端口提供SSH服务
    • D.更多端口号详情
  • 3.iPhone默认使用22端口进行SSH通信,采用的是TCP协议


    image.png

通过USB进行SSH登录

  • 1.默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式SSH登录到iPhone,要求iPhone连接Wifi


    image.png
  • 2.为了加快传输速度,也可以通过USB连接的方式进行SSH登录
    • A.Mac上有一个usbmuxd,他可以将Mac数据通过USB传输到iPhone
    • B.usbmuxd路径:/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd


      image.png

usbmuxd使用指南1

  • 1.下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)地址
  • 2.将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
    • A.cd ~/Documents/usbmuxd-1.0.8/python-client
    • B.python tcprelay.py -t 22:10010
    • C.加上 -t 是为了能够同时支持多个SSH连接


      image.png
  • 3.注意事项:要想保持端口映射状态,不能终止此命令行
  • 4.不一定要10010端口,只要不是保留端口就可以

usbmuxd使用指南2

  • 1.端口映射完毕后,以后如果想跟iPhone的22端口进行通信,直接跟Mac本地的10010端口通信就可以了
  • 2.新开一个终端页面,SSH登录到本地的10010端口(以下二选一)
    • A.ssh root@localhost -p 10010
    • B.ssh [email protected] -p 10010
    • C.localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址
  • 3.usbmuxd会将本地10010的端口的TCP协议数据,通过USB连接转发到iPhone的22端口
  • 4.远程copy文件也可以直接跟Mac本地的10010端口通信
    A. scp -P 10010 ~/.Desktop/1.txt root@localhost:~/test
    B.将Mac上的/.Desktop/1.txt文件,拷贝到iPhone的/test目录下
    C.scp的端口号参数是大写的 -P

sh脚本文件

  • 1.我们可以将经常执行的一系列终端命令放入sh脚本文件中(shell),然后执行脚本文件


    image.png
  • 2.可以通过sh,bash,source命令来执行sh脚本文件
    A.sh,base
    1.当前shell环境会启动一个子线程来执行脚本文件,执行过后会返回父进程的shell环境
    2.例如执行cd指令时,在子线程中会进入cd的目录,但在父进程中环境并没有更改,也就是说并没有改变目录
    B.source
    1.在当前的环境中执行shell脚本文件
    2.执行cd会跳转到cd的目录
    3.source可以用一个“.”代替比如 . test.sh


    image.png

你可能感兴趣的:(逆向环境搭建)