0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hook App取证实战数据库解密

哆啦安全 来源:哆啦安全 作者:哆啦安全 2022-11-16 10:05 次阅读

前言

之前分析完师兄给的apk后,师兄给了下一个目标,说这是一个取证比赛的例题,涉及到密码学解密。但是因为本人这方面比较薄弱,所以在解题的时候,就用到了objection-一个基于frida的工具,动态调试的时候非常好用。

标题的FO指的就是这个objection,因为全部打出来太长了。

参考文献:<>

正文

这里本人用到的模拟器是夜神模拟器,但是这里在之后动态调试的时候遇到了一个bug,adb特别容易在调试的时候下线。网上查了一下资料,需要将目录的adb换成原生adb,nox_adb改成nox_adb_bf.这样就可以解决这个问题了。

拿到文件之后,发现有一个加密过后的db文件,还有一个apk,想来解密方法就是在这个apk当中。

2d05e3a4-6546-11ed-8abf-dac502259ad0.png

这里把apk先放到模拟器中安装。

2d3da1ae-6546-11ed-8abf-dac502259ad0.png

把apk放入android killer中,查看源码。

2d4e17aa-6546-11ed-8abf-dac502259ad0.png

可以看到db后缀名,这里进行了一个跟文件有关的操作,后续又调用了其他的类,进入该类中查看。

2d809ba8-6546-11ed-8abf-dac502259ad0.png

可以看到这里又调用了b的方法。

2d9f1ef2-6546-11ed-8abf-dac502259ad0.png

结合第一个入口文件,可以得知这里是经过了几步运算得出解密的密钥,但是因为本人这方面的知识比较薄弱,所以不准备直接解密(师兄说他是直接解的),这里用到的是objection进行调试。

2db189fc-6546-11ed-8abf-dac502259ad0.png

2dce7972-6546-11ed-8abf-dac502259ad0.png

objection是一个基于frida的工具,需要先安装frida和对应版本的server.

安装过程如下:

pip3 install objection

这里这一步会直接帮忙把frida和frida-tools安装掉,接着去把对应的frida-server安装上传至模拟器就行。

adb push frida-serverxxxxx /data/local/tmp

chmod 777 frida-server

./fridaserver

2de7d714-6546-11ed-8abf-dac502259ad0.png

这里的思路就是利用hook这个getWritableDatabase函数,然后将这个函数的参数动态打印出来就行。(因为因为经过解密函数,最后传进去的就是明文的口令).

这里先查看一下进程

frida-ps -R

2e05a492-6546-11ed-8abf-dac502259ad0.png

可以看到这里是美美亚亚目标进程。

2e25d640-6546-11ed-8abf-dac502259ad0.png

objection -g 美美亚亚 explore,对进程进行注入。

2e3b6942-6546-11ed-8abf-dac502259ad0.png

android hooking search methods getWritableDatabase.

之后再执行这个命令,找到getWritableDatabase这个函数,对其进行watch.

2e4fc4f0-6546-11ed-8abf-dac502259ad0.png

android hooking watch class_methodnet.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase --dump-args --dump-backtrace --dump-return

对这个函数进行监控。

2e69ecd6-6546-11ed-8abf-dac502259ad0.png

之后再重新调用这个app,重新加载这个函数,就会发现口令被打印出来了。

2e920fe0-6546-11ed-8abf-dac502259ad0.png

这里再用sqlitebrowser打开这个db文件利用那个口令,发现这个就是正确的。

2eb70854-6546-11ed-8abf-dac502259ad0.png

电子取证

图形化内存分析工具

取证|伪加密zip解密方法

游戏黑灰产识别和溯源取证

内存取证|Volatility大杀器

内存取证之Volatility从0到1

溯源取证|微信数据库解密教程

夺取应用程序的“制空权”:内存数据

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3799

    浏览量

    64396
  • 模拟器
    +关注

    关注

    2

    文章

    875

    浏览量

    43224

原文标题:Hook App取证实战数据库解密

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数据库加密办法

    企业对于数据的重视程度不言而喻,也衍生出了数据=资产的概念。但是数据泄漏的事件频繁发生,为了保护数据资产,企业有必要对数据库做一些针对性的措
    的头像 发表于 12-24 09:47 52次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 155次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    数据库事件触发的设置和应用

    数据库无论对于生产管理还是很多的实际应用都非常重要。小编这次聊一下数据库事件触发的应用。示例使用了postgresql和Python。
    的头像 发表于 12-13 15:14 138次阅读

    数据库数据恢复—MYSQL数据库ibdata1文件损坏的数据恢复案例

    mysql数据库故障: mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库
    的头像 发表于 12-09 11:05 154次阅读

    数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

    一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库
    的头像 发表于 10-31 13:21 225次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—通过拼接<b class='flag-5'>数据库</b>碎片恢复SQLserver<b class='flag-5'>数据库</b>

    Oracle数据恢复—异常断电后Oracle数据库报错的数据恢复案例

    Oracle数据库故障: 机房异常断电后,Oracle数据库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据
    的头像 发表于 09-30 13:31 307次阅读
    Oracle<b class='flag-5'>数据</b>恢复—异常断电后Oracle<b class='flag-5'>数据库</b>启<b class='flag-5'>库</b>报错的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—Oracle数据库文件system01.dbf损坏的数据恢复案例

    打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。
    的头像 发表于 09-21 14:25 355次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Oracle<b class='flag-5'>数据库</b>文件system01.dbf损坏的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库
    的头像 发表于 09-20 11:46 351次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>出现823错误的<b class='flag-5'>数据</b>恢复案例

    恒讯科技分析:sql数据库怎么用?

    SQL数据库的使用通常包括以下几个基本步骤: 1、选择数据库系统: 选择适合您需求的SQL数据库系统,如MySQL、PostgreSQL、Microsoft SQL Server、SQLite等
    的头像 发表于 07-15 14:40 362次阅读

    数据库数据恢复—SQL Server数据库所在分区空间不足报错的数据恢复案例

    SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。
    的头像 发表于 07-10 13:54 500次阅读

    北亚FB-C7500数据库取证分析系统#数据库取证

    数据库
    Frombyte
    发布于 :2024年07月08日 14:26:31

    数据库数据恢复—数据库所在分区空间不足导致sqlserver故障的数据恢复案例

    数据库数据恢复环境: 某品牌r520服务器,服务器中有7块SAS硬盘,这7块硬盘组建了一组2盘raid1阵列和一组5盘raid5阵列,raid1阵列存储空间安装操作系统,raid5阵列存储空间存放
    的头像 发表于 05-22 13:16 463次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—<b class='flag-5'>数据库</b>所在分区空间不足导致sqlserver故障的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—raid5阵列上层Sql Server数据库数据恢复案例

    数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区
    的头像 发表于 05-08 11:43 513次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—raid5阵列上层Sql Server<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    选择 KV 数据库最重要的是什么?

    经常有客户提到 KV 数据库,但却偏偏“不要 Redis”。比如有个做安全威胁分析平台的客户,他们明确表示自己对可靠性要求非常高,需要的不是开源 Redis 这种内存缓存,而是 KV 数据库。虽然
    的头像 发表于 03-28 22:11 701次阅读
    选择 KV <b class='flag-5'>数据库</b>最重要的是什么?

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 524次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b>恢复案例