CryKeX特性
1. 跨平台
2. 大略实用

3. 交互性强
4. 兼容性/可移植性强
5. 运用程序独立
6. 进程封装/注入
依赖条件
1. Unix-理论上说,该工具可在任何基于Unix的操作系统平台上正常事情。
2. BASH-支持所有脚本的运行。
3. Root权限(可选项)
限定条件
1. 仅支持AES和RSA密钥
2. 目前对Firefox浏览器的支持暂不完美
3. 不支持磁盘加密(LUKS)以及PGP/GPG
4. 须要适当的用户权限以及内存授权
事情机制
基本上说,该工具会探求某些类似密钥的数据,并通过剖析其内存架构(C数据类型)来判断目标数据(密钥)的有效性。在此之前,我们也对DRAM的加密密钥安全问题进行了谈论,感兴趣的同学可以阅读下面给出的文章。【参考文献一】【 参考文献二】
CryKeX可以导出目标进程的实时内存数据,然后从中探求出可能存在的密钥信息,全体过程中内存映射并不会发生改变。工具脚本不仅能够向正在运行的进程中注入命令,而且还可以封装新的进程(通过单独启动进程后再进行注入来实现)。这样一来,该工具险些就可以从目标系统中的任意进程/代码中提取密钥了。
当然了,系统内核会对内存访问等行为进行限定,这也就意味着你在进行操作的过程中须要一定的高等权限。
Linux磁盘加密(LUKS)利用了反取证技能来缓解这类安全问题,但是我们仍旧有可能从一段完全的内存中提取出密钥。
Firefox浏览器利用了一些类似的内存管理机制,因此当前版本的CryKeX可能无法从Firefox浏览器中提取出密钥数据。除此之外,对付PGP/GPG也是一样的(不适用)。
如何利用
安装依赖:
sudoapt install gdb aeskeyfind rsakeyfind || echo 'have you heard about sourcecompiling?'
针对openSSL AES密钥的交互示例:
opensslaes-128-ecb -nosalt -out testAES.enc
输入一个密码两次,然后在命令终止运行之前输入一些文本:
CryKeX.shopenssl
末了,按下组合键Ctrl+D三次来检讨结果。
OpenSSLRSA密钥的交互示例:
opensslgenrsa -des3 -out testRSA.pem 2048
提示输入密码:
CryKeX.shopenssl
验证:
opensslrsa -noout -text -in testRSA.pem
从SSH中提取密钥:
echo'Ciphers aes256-gcm@openssh.com' >> /etc/ssh/sshd_configssh user@serverCryKeX.shssh
从OpenVPN中提取密钥:
echo'cipher AES-256-CBC' >> /etc/openvpn/server.confopenvpnyourConf.ovpnsudo CryKeX.sh openvpn
TrueCrypt/VeraCrypt也同样会受到影响:选择VeraCrypt中的“veracrypt”文件,利用密码“pass”进行加载,然后运行下列命令:
sudo CryKeX.sh veracrypt
基于Chromium的浏览器(多谢Google…):
CryKeX.shchromiumCryKeX.shgoogle-chrome
虽然我们的工具不适用于Firefox,但Tor浏览器Bundle可能会受到影响(由于其隧道机制):
CryKeX.shtor
除此之外,你还可以利用下列命令封装进程:
aptinstall libssl-devgcc-lcrypto cipher.c -o cipherCryKeX.shcipher wrap cipher
把稳事变
欢迎大家对本程序进行测试,也欢迎有能力的同学贡献自己的代码。