登录
|
立即注册
论坛
BBS
搜索
逆向未来技术社区
»
论坛
›
移动安全
›
IOS安全
›
帖子
IOS应用安全(九):IOS文件系统和取证
[复制链接]
5936
3
发表在
原创文章
2016-1-30 15:25:26
|
查看全部
|
阅读模式
本帖最后由 ken 于 2016-1-30 21:07 编辑
原文链接:
http://resources.infosecinstitute.com/ios-application-security-part-10-ios-filesystem-and-forensics/#article
在这篇文章,我们来学习IOS文件系统的结构和在IOS系统中有哪些重要的文件。怎样从数据库和plist文件提取数据。应用程序怎样存放它们自己的数据在他们指定的目录(sandbox)又应该怎么提取它们。
在之前的文章,我们登录设备都是使用root权限来登录的。其实IOS还提供了另一个用户权限mobile。只不过mobile拥有被root更少的权限。而在IOS系统大部分的应用程序都是使用mobile权限运行的,Cydia和一些其他应用是使用root权限的,苹果的一些内部守护进程和服务也是运行在root权限下。我们使用命令ps aux可以很清楚的看到当前运行的进程和它们的用户权限。
如下图,在终端最左端,第一列是USER,显示的是该应用程序是以什么用户权限运行的。比如在这图中我们看到Cydia以root权限运行。
/Applications/AppStore.app/AppStore
是以mobile权限运行,而一些守护进程也可能以mobile权限运行而不是root权限。如
/usr/sbin/wifid。
其他的应用程序你也可以通过Cydia来安装让它可以以root权限运行。一般越狱后的设备,root和mobile的密码默认是alpine。
http://t.cn/RbBpXB7
如果你想让你的程序可以以root权限运行。你可以在
Stack Overflow
找到答案。
ssh
连入你的设备,
来到
/Application
s目录,你可以看到.
app结尾的文件夹。这些都是安装
在你的设备的app。大部分
是IOS预装程序
。也有一些例外是通过其他途径安装的,如
Terminal app
就是通过Cydia安装
的。
这里有一点值得注意。
在
/Applications内运行的应用不会在沙盒环境运行而
在
/var/mobile/Applications运行的应用运行在
沙盒环境。
然而,除非
指定
该应用程序使用root权限,
不然还是使用默认的mobile权限运行,也就是说应用程序使用mobile权限在在沙盒环境下运行
。
http://t.cn/RbBOL3L
所有从
App Store上下载的应用都被保存在
/var/mobile/Applications/ 目录。
也包含一些使用installipa和其他源(如:Cydia)安装的程序,前面也说了,在这个目录的应用使用mobile权限在沙盒环境下运行。
http://t.cn/RbBWopb
从数据库收集信息
A
plle使用
sqlite数据库来保存
信息,
这些数据库
文件以.db或
.sqlitedb
后缀结尾。许多功能的开发
,如
Core Data, NSUserDefaults等等,它们使用更低层次的操作来
操作数据库文件。
这些数据库
通常被用来提取指定应用或者
系统
的一些数据。包括但不限于呼叫历史、在应用保存的邮件
。
使用
命令
find . -name *.db 找到所有的数据库文件,
熟悉linux命令的童鞋都知道
,这条
命令
. 代表从
当前目录开始
往下找
,包括文件夹里的文件
。
-name匹配要找的文件
名。
在这里,这条命令会从root路径开始找所有后缀为db的数据库文件。
http://t.cn/RbBHSZ7
上图
打印出了这个设备的所有的
数据库文件。
我在我的设备上安装有gmail应用,
下图这个
文件从文件名看很有可能是保存邮件的数据库,那到底是不是呢
?
http://t.cn/RbB8A9j
下面我们使用
sqlite client客户端来分析这个数据库文件,在这之前得
确认在你的设备是否已经安装sqlite
3客户端。使用命令
sqlite3 file_name来打开数据库文件。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat8.png
执行
命令
后进入sqlite的交互模式,
输入.headers on
命令,
这样我们就可以看到所有列值
的头部值。
使用
.
ta
ble来
查看
数据库中所有的表项
。
http://t.cn/RbBRcKI
有几个表项看起很有趣,如
cached_contacts
,
cached_queries
and
cached_messages
.
我们使用 select
* from
cached_messages
sql查询语句来d
ump
看看里面存放着什么数据。
http://t.cn/RbBRCNn
正如我们看到的那样,这个数据库文件存放的是email缓存。同样的,我们
也可dump所有的SMS数据,SMS数据库文件存放在
/private/var/mobile/Library/SMS。
在这个dump出来的数据里,你可以看到
text
Test message for ios security tutorial
.
SMS内容。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat11.png
另一个例子是联系人数据库,存放路径在
/var/mobile/Library/AddressBook 。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat12.png
你还可以
看呼叫历史。数据库
文件路径
/private/var/wireless/Library/CallHistory。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat13.png
使用命令行工具来查看
sqlite数据不够直观
且
花费大量时间,对此,我们有一个更好的办法,将数据库文件
导出
到你想导出的位置。如下载
Address Book Sqlite database.来查看
Address Book
数据。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat14.png
我们可以使用GUI
的sqlite客户端来分析数据库。在这里我
使用
MesaSQLite
客户端
。
http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/072913_1331_IOSApplicat15.png
举报
使用道具
回复
精彩评论
3
何须执手问年华
发表于 2016-1-30 15:53:16
|
显示全部楼层
排版乱,差评,内容少,差评,鸣人头像,好评。
举报
使用道具
回复
支持
反对
ken
发表于 2016-1-30 16:19:41
|
显示全部楼层
何须执手问年华 发表于 2016-1-30 15:53
排版乱,差评,内容少,差评,鸣人头像,好评。
还没写完呢{:4_114:}
举报
使用道具
回复
支持
反对
Rebirth
发表于 2016-1-30 17:42:12
|
显示全部楼层
这排版,我猜除了我之外不会有人从头看完{:5_117:}
举报
使用道具
回复
支持
反对
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
ken
11
主题
43
回帖
20
积分
Ta的主页
发信息
热点动态
1.
【轻量级】自动化去除签名校验工具LuckyPat
2.
【原创小工具】smali调试辅助工具[2015.1.3
3.
Unity3D逆向基础教程第一课
4.
android 逆向菜鸟速参手册完蛋版
5.
Android killer 1.3.1 个人修改版
6.
Android killer个人自制plus版
7.
自动脱壳工具drizzleDumper
8.
android killer 小插件 方便搜索资源id(更
快速回复
返回顶部
返回列表