登录
|
立即注册
首页
Portal
每日签到
版块
BBS
逆向技术
无聊
搜索
呵呵呵呵
逆向未来技术社区
»
版块
›
移动安全
›
IOS安全
›
帖子
IOS应用安全(九):IOS文件系统和取证
[复制链接]
5080
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
排版乱,差评,内容少,差评,鸣人头像,好评。
还没写完呢
举报
使用道具
回复
支持
反对
Rebirth
发表于 2016-1-30 17:42:12
|
显示全部楼层
这排版,我猜除了我之外不会有人从头看完
举报
使用道具
回复
支持
反对
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
ken
11
主题
54
帖子
20
积分
Ta的主页
发信息
热点动态
1.
Android killer个人自制plus版
2.
Android killer 1.3.1 个人修改版
3.
Arm汇编转换器修改版
4.
跟着鬼哥学so修改,六,实例第三篇
5.
安卓逆向工具JEB3.0来了!
6.
跟着鬼哥学so修改,四,实例第一篇
7.
APK Permission Remover|APK权限修改器去签
8.
一款轻量级App查壳工具(秒查)
快速回复
返回顶部
返回列表