adb push用于将文件系统的不同部分复制到工作站中进行进一步分析。除非对android终端设备具有root访问许可权,或者运行的是一个定制的只读内存(ROM),否则,运行在终端设备上的adb后台进行只能在拥有shell访问许可权的状态下运行,因此,它无法访问某些与取证更加相关的文件。但还是可以访问到一定数量的文件。
由于大多数的手机都没有root许可权(至少默认情况下),此技术显得没有什么价值。然而,这是一个非常强大的、需要很好理解的工具,也有一些场景非常适合应用此技术。这些场景包括:
注:某些使用adb的递归拉取可能在数据传输过程中失败,可能由于访问许可权问题或者其他问题。因此,对于执行命令的结果要进行密切监控,以确定是否遇到任何问题。将对一个大目录的递归拉取分解为若干个小的数据拉取也许会产生更好的结果。
1、adb push 能够指定安装目录。比如执行」adb push xxx.apk system/app」 后,xxx.apk被安装到了system/app目录下,此目录下的软体为system application。(注意,system/app是只读的,所以只有有root许可权才能push apk进去,而且在push进去的apk会把原本的apk覆盖掉。)adb push本身的意思是将文件复制到系统中的某个文件夹下,但是将apk push到system/app下并且重启手机以后会注册应用程序。
上面已经介绍到,使用adb pull帮助我们进行数据转储。我们还可以使用adb 和我们的手动技能从设备中提取一些信息。前面学到,应用程序文件存储在/data/data/[应用程序的报名]/位置。大多数应用程序都使用资料库来存储数据,我们在做渗透测试时分析本地敏感文件的存储时都会注意到/data/data/[应用程序的报名]/databases的文件夹。然后将.db文件格式的文件导出到本地用sqlite工具打开。
注:这里我们可以使用一个简单的命令行绝技来查找和复制/data/data中的所有.db文件。首先使用find命令查找所有.db文件:find . –name 「*.db」 –type f