蓝帽杯半决赛wp_电子取证部分
大王毕盛——电子取证
取证1
- 检材数据开始提取是今年什么时候?
- 在logs.txt中,直接找到时间:09-11 17:20
取证2
- 嫌疑人手机SD卡存储空间一共多少GB?(答案格式: 22.5)
- logs.txt中显示SD卡总空间24.32GB
取证3
- 嫌疑人手机设备名称是?(答案格式:adfer)
- 设备名称:sailfish
取证4
- 嫌疑人手机IMEI是?(答案格式:3843487568726387)
- 取证软件导入华为备份文件夹检材后找到IMEI:352531082716257
取证5
- 嫌疑人手机通讯录数据存放在那个数据库文件中?(答案格式:call.db)
- 在所有数据库文件中搜索到contacts.db
取证6
- 嫌疑人手机一共使用过多少个应用?(答案格式:22)
- 在日志中看到一共使用过100个应用,填的100
取证7
- 测试apk的包名是?(答案格式:con.tencent.com)
- 取证软件中看到apk目录安装名
取证8
- 测试apk的签名算法是?(答案格式:AES250)
- jadx反编译后去签名文件找:SHA256withRSA
取证9
- 测试apk的主入口是?(答案格式:com.tmp.mainactivity)
- 去清单文件找LUANCH,结果为com.example.myapplication.MainActivity
取证10
- 测试apk一共申请了几个权限?(答案格式:7)
- 取证分析一共三个permission,即三个权限
取证11
- 测试apk对Calllog.txt文件内的数据进行了什么加密?(答案格式:DES)
- Base64.encodeToString,即Base64加密
取证12
- 10086对嫌疑人拨打过几次电话?(答案格式:5)
- 在文件里搜索Calllog.txt,Base64解密
- 找10086的通话记录,发现是2次
取证13
- 测试apk对短信记录进行了几次加密?(答案格式:5)
- 短信加密的函数中,先进行了AES加密,后进行了Base64加密,因此是2次。
取证14
测试apk对短信记录进行加密的秘钥是?(答案格式:slkdjlfslskdnln)
加密密钥是通过JNI调用so层函数得到的,直接使用frida-hook主动调用jni函数获取返回值
function main() { Java.perform(function () { var libJniTest_addr = Module.findBaseAddress("libmyapplication.so") console.log("libJniTest 地址:", libJniTest_addr); if (libJniTest_addr) { var func_sayHello_addr = Module.findExportByName("libmyapplication.so", "Java_com_example_myapplication_MainActivity_Getkey"); console.log("Java_com_jwxdxnx06_myJNI_sayHello 地址:", func_sayHello_addr); // 主动调用 //创建新函数,参数1:函数地址,参数2:返回值类型,参数3:函数参数类型 var func = new NativeFunction(func_sayHello_addr, 'pointer', ['pointer']) // 通过Java.vm获得env var retVal = func(Java.vm.getEnv()) var ret = Java.vm.getEnv().getStringUtfChars(retVal, null).readCString(); console.log(ret) } }) } setTimeout(main)
上面为Frida主动调用脚本
取证15
- 嫌疑人在2021年登录支付宝的验证码是?(答案格式:3464)
- 在Cyberchef中先Base64解码,然后做一次AES即可得到结果
- Key是取证第14题的结果,IV根据init函数可知是AES的结果
- 最后Hex解密得到明文,分析明文发现就一个支付宝验证码:9250
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 h3110w0r1d's Blog!