三星考题讲解

拿到一台三星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+微信。