1) Android程序调试桥(Android debug bridge , adb)
adb是一个 客户端-服务器端 程序, 其中客户端是用来操作的电脑, 服务器端是android设备。
adb 的使用涉及以下3个主要部件:
在Android终端设备上运行的adbd;
在工作站上运行的abdb;
在工作站上运行的abd客户端程序;
当在一个Android终端设备上开启了USB调试,后台程序将会运行并会对连接进行监听。运行在终端设备上的adbd和运行在工作站上的adbd之间使用本地端口5555到5585进行通信。本地的adbd客户端程序使用端口5037同本地的adbd进行通信。
2) Android屏锁
Android移动智能终端的锁屏有多种方式,目前最为主要使用的锁屏方式有三种,即字符密码锁屏,PIN密码锁屏和九宫格密码锁屏,其中字符密码锁屏因可以使用4到16位的数字或字符,形式较为复杂,因此将着重对于Android系统中锁屏进行研究并尝试破解该密码。所谓字符密码即为锁屏时通过使用26个英文字母以及10个阿拉伯数字设置锁屏密码,大大的增加了密码的复杂度。Android将密码信息保存在一个叫做password.key的文件中,该文件存放在/data/system/目录。由于直接明文保存密码不够安全,Android转向保存PIN码和密码的加盐的SHA1 hash值和MD5 hash值。
找到Android系统的密码存储位置则主要依赖于ADB工具的使用,通过对ADB工具的研究使用,找到密码的存储位置,将密码的存储文件导出。不过由于密码的存储为加密形式,因而需要用WinHex阅读相应的密码存储文件。
找到存储文件后就要对应进行破解,由于hash值加盐,字典破解方式显得异常艰难。为了破解密码,必须先获得盐(salt),然后还要花费大量时间进行暴力破解。盐(salt)是一个64比特(8字节)的随机数字的十六进制字符串表示。对于已经root过的手机,只需开启USB调试模式,拷贝出/data/system/password.key。
然后导出:
/data/data/com.android.providers.settings/databases/settings.db(SQLite数据库)的lockscreen.password_salt键值(该键值就是上面所说的“盐(salt)”)。一旦获取这两个信息,就可以开始使用hashcat等工具进行暴力破解了。
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交