iOS逆向環境以及經常使用命令行(逆向一)

1、環境介紹

越獄環境:iPhone 5s iOS9.3.1vim

yueyu:~ root# uname -a安全

Darwin yueyu 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 19 13:54:53 PST 2016; root:xnu-3248.41.4~28/RELEASE_ARM64_S5L8960X iPhone6,2 arm64 N53AP Darwin網絡

一、 Drawin體系ssh

  • Darwin是一種相似unix的操做系統,他的核心XNU,XNU是一種混合式內核,結合了mach與BSD兩種內核。socket

    主流的類unix:tcp

    a、Linux 由Linus Torvalds研發的,表明發行版本CenOS,Redhat,Ubuntu,Debian,openWRT等工具

    b、Mac OS X的Intel部分操作系統

    c、freeBSD 由加州大學伯克利分校基於UNIX研發的(UNIX變種,當時若是不是與貝爾實驗室打官司,可能就不會有如今的Linux什麼事)命令行

    d、Solaris 由Sun(現爲Oracel)開發的UNIX商業版本線程

  • BSD 實如今Mach的上層,這一層提供的API 支持了POSIX標準模型。在XNU中主要實現了一些高級的API與模塊

    a、UNIX 進程模型
    == e.g fork,vfork,wait,waitpid,exec等 ==

    b、POSIX 線程模型即pthread,以及相關的同步功能
    == e.g pthread_create,pthread_mutex(線程互斥鎖)==

    c、UNIX的用戶與組管理
    ==e.g root用戶,mobile用戶,chmod等==

    d、網絡協議棧(BSD Socket API),符合POSIX 模型
    == e.g socket();bind(); listen();accept();connect(); gethostbyname(); gethostbyaddr()等伯克利套接字API==

    e、文件系統/設備系統
    == e.g Filesystem Hierarchy Standard(文件系統層次化標準)==

  • iOS,OSI,ISO的含義

    a、iOS 蘋果公司開發的移動操做系統

    b、OSI 是Open System Interconnection的縮寫,意爲開放式系統互聯。OSI模型把網絡通訊的工做分爲7層,分別是物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。

    c、IOS是國際標準化組織。上面的OSI模型由該組織制定。通常類UNIX系統都基本符合POSIX標準和IOS C標準

    d、POSIX表示可移植操做系統接口(Portable Operating System Interface)

    e、IOS C標準,C語言標準庫接口

二、 爲何須要越獄

  • 突破iOS沙盒機制的限制(sandbox)

    沙盒是一種安全機制,爲運行中的程序提供隔離環境。沙盒在啓動的時候能夠設置運行的程序是否能夠訪問網絡、文件、目錄等

三、 Cydia - 越獄iOS的軟件管理平臺以及相關命令行

  • 首先須要安裝OpenSSH

    在Cydia中搜索OpenSSH並安裝,這樣iOS上面就能夠開啓SSH服務。SSH服務默認綁定端口號22。

  • 使用SSH命令鏈接iOS,默認登陸密碼」alpine」
  • ssh root@xx.xx.xx.xx //iOS鏈接wifi,設置中能夠看到ip地址,也能夠改爲靜態IP地址,其中xx.xx.xx.xx爲手機的ip地址,須要注意的是,此時手機與mac該處於同一網絡下。

> 在終端操做的時候,須要root權限,mac中得到root權限的命令:
> 
> su root
> 
> sudo 所需命令行
  • 使用scp命令能夠傳輸文件

    scp filename root@xx.xx.xx.xx:/tmp //拷貝本地文件到遠端

    scp root@xx.xx.xx.xx:/tmp/filename /tmp/ //從遠端拷貝文件到本地


    • 修改默認密碼

      passwd root 或者 passwd mobile

  • 安裝軟件包管理工具apt-get

    在Cydia中搜索 APT 0.6 Transitional並安裝

    • 命令介紹

      apt-get update                    【更新全部的源】
           apt-get upgrade                 【更新全部經過apt-get安裝的程序】
      
           apt-get install  packagename         【安裝軟件包】
      
           apt-get remove  packagename      【刪除軟件包,不刪除依賴包,不刪除配置文件】
      
           apt-get remove --purge packagename  【刪除該軟件包,不刪除依賴包,刪除配置文件】
      
           apt-get autoremove packagename       [刪除該軟件包,刪除依賴包,不刪除配置文件]
      
           apt-get autoremove --purge packagname    【能夠刪除全部依賴包+配置文件】
      
           apt-cache search string             【搜索含有該string字段的軟件包】
      
           apt-cache show packagename     【詳細顯示該軟件包的信息】
      
           apt-get clean                   【清除apt-get安裝的軟件包備份,能夠釋放儲存空間,不影響軟件正常使用】
  • 使用apt-get 安裝軟件包

    e.g 安裝traceroute

    apt-get install traceroute  //發現找不到軟件包
    
       //若是不知道軟件包名稱,也能夠用關鍵字搜索
       apt-cache search traceroute
    
       apt-get install  network-cmds
  • 安裝必要工具

    apt-get install  ping       //發送icmp報文,檢查網絡情況
    
       apt-get install  ps         //查看進程信息
    
       apt-get install  find       //查找文件
    
       apt-get install tcpdump     //抓包工具
    
       apt-get install top         //查看實施的進程信息
    
       apt-get install vim         //文本編輯工具
    
       apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute
  • 工具的使用

    ping www.baidu.com -c 4 -s 600
    
      ps aux
      ps -e
    
      find / -name ping       //在根目錄開始查找文件名爲ping的文件
    
      grep -r 'hello*' /tmp   //在/tmp目錄中查找包含'hello'字符的文件,-r表示包含子目錄
    
      top
      top -l 1 | head -n 10 | grep PhysMem  //顯示系統內存使用狀況
    
      tcpdump -i en0
相關文章
相關標籤/搜索