拿到一台三星S6手机,有密码,怎么办?开机状态我们肯定是先用已有信息猜测最有可能的几个密码。如果不行再考虑其他方案。
进recovery看版本号,拍摄记录。
后面考题改成7.0的系统。
三种方案:
一、直接刷6.0.1工程包。
- 降级到Android 6.0系统,再刷4501 6.0.1固件。 兼容性好。
- 带工程固件的一体包。(速度快,兼容性不好)
进fastboot记录下状态,然后直接刷工程包试一下。4501刷(我手头只有个试用版的4501,所以用这个来演示),注意勾选重启和不重启的区别。
刷完以后发现连不上,其实是能连上的,但是交互速度非常慢。这里注意,9200速度慢,但是9208是没问题的,秒连。所以拿到哪一个型号看人品。我选择Hard模式来做,我拿到的就是9200。
遇到这种情况第一反应是换方案,其实这种状态下是有一种不完美的办法的,就是移除密码,因为只要一条指令,是可以实现的,但是删除了就无法恢复,会留痕,具体操作后面会讲。
我们考虑先一体包降级到6.0系统,再刷入工程包,这里特别注意降级不能进系统,否则系统数据库不兼容会被损坏。小技巧:Odin取消自动重启选项。
取数据的话,时间来得及首选抓镜像。
速度太慢。2M/秒。有毅力的也成功抓到了,但是有风险,因为按照计算的话时间是来不及的。原因在于工程固件版本和手机原始版本不一致,有一种方案速度是快的,就是刷入对应版本的带工程固件的一体包,也就是上面的第三种方案。弊端在于针对没一个包都要现做,兼容性不好。
其实还有个思路,就是如果支持外置TF卡的,可以用DD命令把镜像做到TF卡上,但是S6不支持外置TF卡,华为P9就可以,我做到内部存储给大家演示一下dd if=/dev/block/sda20 of=/storage/sdcard1/111.img,速度明显快很多。
我们继续按hard模式操作,只有美亚的工程包,怎么办?再换一个思路,直接root权限下提取数据,很快,10分钟结束,数据绝大部分也都拿到了。
现在我们拿到大部分送分题。
通讯录+已删除通讯录。
QQ聊天记录。
百度网盘。
浏览一下数据,注意几个细节:
百度网盘文件s.apk,106.7K,已经安装。以后不用专门汇报,可能是传输用的。
下面就是寻找可疑APK,常州案例。计算器
有镜像的话非常简单,直接取证软件挂起来,过滤APK文件,比对大小就能找到可疑的。
没有镜像怎么找到这个文件?两种思路
- 破解锁屏进系统。通过开机启动项和APP申请的权限来寻找。
第一步,破解锁屏密码。有的人会遇到下面这个情况。
看到这个又崩溃了。没有屏幕锁?明明是有的啊。
密码文件:
/data/system/gatekeeper.password.key
/data/system/gatekeeper.pattern.key
/data/system/locksettings.db
/data/system/locksettings.db-shm
/data/system/locksettings.db-wal
用文件浏览器打开看看,没有东西
我们手动操作。
Df 原来data分区没有自动挂载。
cat /proc/partitions
ls -l /dev/block/platform/15570000.ufs/by-name/
mount -t ext4 /dev/block/sda20 /data
现在有了,可以用工具清除还原,不知道密码文件放在哪里,不安全,还是手工来。
adb pull /data/system/gatekeeper.password.key
adb pull /data/system/gatekeeper.pattern.key
adb pull /data/system/locksettings.db
adb pull /data/system/locksettings.db-shm
adb pull /data/system/locksettings.db-wal
然后rm删除这几个文件,现在密码应该清掉了。
最开始记录的版本号就有用了,找到对应一体包(或者用官方包做一个)刷回。下载的包注意打开看,一定不能有userdata。迷你手机网
现在可以正常启动操作系统,而且没有密码。发现是韩文系统,改成中文。
打开智能管理器,发现扫一扫很可疑,需要的权限特别多,找到点开,没反应,更加可疑,这时候可以把安装文件拿出来。比对大小,一致。
找出设备上安装的第三方apk包名: adb shell pm list packages -3
依据apk包名找出apk: adb shell pm path $pkg
当然用手机助手也能把文件取出来,但是注意清理。
注意三星安全文件夹。
进系统操作有个问题,特别容易留痕。注意清理痕迹。
- 韩语环境破坏
- 调试模式未还原
- 开发者选项未还原 虽然清除设置可以清除,还是留痕。
- 残留取证APP
环境还原完成后,关机,刷入工程固件,再把5个密码文件推入,还原密码。最后在Odin刷入一体包恢复。
更好的选择,尽量不动原手机环境。
不进操作系统怎么取?在recovery环境下操作。
直接用工具浏览发现data下没数据。
跟刚刚一样需要挂载data。APP安装文件在/data/app目录下。
把所有可疑的目录下载下来,比对一下。就发现是metasploit这个包名下的base.apk有问题。
现在找到这个可疑的APK文件了。我们来分析这个APK。
在安桌模拟器里安装这个APK。果然是扫一扫。
其实最开始题目设置的类似常州遇到的,是一个能正常打开的安桌应用CPUZ,是将木马插入CPUZ程序形成的com.cpuid.cpu_z_muma.apk,并且中间经过代码混淆,分析难度较大,考核时间有限肯定完不成。
分析可疑程序最基本的是要找到与回传地址和端口。
方法1 :Wireshark抓包,APK安装在模拟器效果较好,但是还是会有很多干扰项,最好先不运行可疑程序,抓一段时间,把正常的包排除掉,然后再抓。这种方法效率比较低。
方法2:RAR解压缩,获取DEX文件,直接16进制察看DEX文件,能够看到IP和端口。也有人用GREP语法查找IP的,如果我用的是域名你就没办法了,并且不能断定这个IP就是用来连接的,给5分。tcp://103.254.211.77:1024
方法3:利用安卓抓包工具Packet Capture,可以对每个APP抓包,非常精准。给10分。
方法4:逆向APK程序。更为准确。
1、APK tools解包获取smali文件,相当于汇编很难读。Apktool d s.apk
2、用dex2jar,class.dex转换成jar文件。
3、jd-gui查看jar文件。
这样操作还是比较繁琐,不方便,用一整套的解决方案会比较好用。
Android killer讲解代码
系统自动调用:
oncreate生成窗口辅助操作
onStartCommand
一步步跟进去,可以看到重要数据是加密存放在a数组里面。经过一系列复杂的运算。时间够的话可以慢慢跟,比如考核,时间紧,可以用动态调试,而且更加直观。
利用安卓模拟器、Android Studio、APK tool设断点,动态调试。
1、选择Config->Settings->Plugins,安装ideasmali插件
2、导入APK tool解包后的文件夹,设置Android Studio,添加remote调试,端口8700。
3、在C:\Users\dell\AppData\Local\Android\android-sdk\tools目录打开monitor.bat,打开android device monitor(中转)。
4、打开project,在程序入口设个断点,然后一步步跟着看看。
5、adb connect 127.0.0.1:7555连接模拟器
6、adb shell am start -D -n com.metasploit.stage/.MainActivity
单步步入F7
单步调试F8
先在程序入口下个断点试试看。
F8三次就结束了。
结合源码分析,看看在哪里下断点比较合适。
我们发现 Payload.main比较重要
如何设置合适的断点也很重要,socket是关键。
断点下在Payload.smali文件的8860行invoke-direct {v0, v3, v2}, Ljava/net/Socket;-><init>(Ljava/lang/String;I)V 位置,F7单步跟进去就是调用socket。
最后,玩个有意思的,抓包的作用。
http://boxuntech.cn/baoming/1807005/01/
Fidder+微信。
发表评论