小白博客 CryKeX:Linux内存加密密钥提取工具

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_config

ssh user@server

CryKeX.shssh

从OpenVPN中提取密钥:

echo'cipher AES-256-CBC' >> /etc/openvpn/server.conf

openvpnyourConf.ovpn

sudo CryKeX.sh openvpn

TrueCrypt/VeraCrypt也同样会受到影响:选择VeraCrypt中的“veracrypt”文件,使用密码“pass”进行加载,然后运行下列命令:

sudo CryKeX.sh veracrypt

基于Chromium的浏览器(多谢Google…):

CryKeX.shchromium CryKeX.shgoogle-chrome

虽然我们的工具不适用于Firefox,但Tor浏览器Bundle可能会受到影响(由于其隧道机制):

CryKeX.shtor

除此之外,你还可以使用下列命令封装进程:

aptinstall libssl-dev gcc-lcrypto cipher.c -o cipher CryKeX.shcipher        wrap        cipher

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

Linux下部署SSH登录时的二次身份验证环境记录(利用Google Authenticator)

一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全。为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器)...

5349
来自专栏快乐八哥

Angular企业级开发(9)-前后端分离之后添加验证码

1.背景介绍 团队开发的项目,前端基于Bootstrap+AngularJS,后端Spring MVC以RESTful接口给前端调用。开发和部署都是前后端分离。...

38210
来自专栏虚拟化云计算

qemu-libvirt-磁盘加密

# qemu-img convert -f qcow2 -O qcow2 -o encryption template.img encry.qcow2

4168
来自专栏听Allen瞎扯淡

在公司内网如何更新IntelliJ的插件

最近小伙伴们更新IntelliJ后,发现没法安装或者更新插件了,每次尝试在线安装时总会提示SSL错误。特别是要玩Scala的小伙伴更是抓狂,因为本身Intell...

3142
来自专栏情情说

单点登录与权限管理本质:cookie安全问题

继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,c...

41913
来自专栏小白安全

SQL注入 上传绕过安全狗

一,绕过安全狗上传可执行脚本 附上php上传脚本源码,此源码未对上传文件类型做校验 <?php         move...

4977
来自专栏程序员宝库

SSH 登录流程分析

本文首发于 https://jaychen.cc 作者:jaychen(https://segmentfault.com/u/chenjiayao) 写一篇短文...

4888
来自专栏云计算教程系列

给你CVM服务器加把锁,如何使用SSH密钥

SSH或安全shell是用于管理服务器和与服务器通信的加密协议。使用Ubuntu服务器时,您可能会将大部分时间花在通过SSH连接到服务器中。

1514
来自专栏Esofar 开发日记

快速签发Let's Encrypt证书指南

本文仅记录给自己的网站添加“小绿锁”的动手操作过程,不涉及HTTPS工作原理等内容的讲解,感兴趣的同学可以参考篇尾的文章自行了解。

1275
来自专栏FreeBuf

如何使用Airgeddon找回WiFi密码

前言: 找回WiFi密码的工具很多,但是arigeddon却很少有人介绍,原理虽然和aircrack-ng类似,但是着实比它强大多了,而且跟新后功能更加强大,使...

2966

扫码关注云+社区