mimipenguin是一个免费、开源、简单但是强大的shell/python 脚本,用来从当前Linux桌面用户转储登录凭证(用户名和密码),并且已在不同的Linux发行版中测试过。
另外,它还支持如:VSFTPd(活跃的FTP客户端连接)、Apache2(活跃的/旧的HTTP基础认证会话,但是这需要Gcore),还有openssh-server(活跃的 SSH 链接,需用sudo命令)。重要的是,它逐渐被移植到其他语言中,以支持所有可想到的以后可以利用的情况。
mimipenguin是如何工作的?
要理解mimipenguin是如何工作的,你需要知道所有或者大多数的Linux发行版会在内存中存储大量的重要信息, 如:凭据、加密密钥以及个人数据。
尤其是用户名和密码是由进程(运行中的程序)保存在内存中,并以明文形式存储较长时间。mimipenguin在技术上利用这些在内存中的明文凭证 - 它会转储一个进程,并提取可能包含明文凭据的行。
然后,通过以下内容的哈希值来尝试计算每个单词的出现几率:/etc/shadow、内存和 regex 搜索。一旦找到任何内容,它就会在标准输出上打印出来。
在Linux中安装mimipenguin
我们将使用git来克隆mimipenguin仓库,因此如果你还没安装,那么首先在系统上安装git。
$ sudo apt install git #Debian/Ubuntu systems
$ sudo yum install git #RHEL/CentOS systems
$ sudo dnf install git #Fedora 22+
接着像这样在你的家目录(或者其他任何地方)克隆mimipenguin目录:
$ git clone https://github.com/huntergregal/mimipenguin.git
下载完成后,进入并如下运行mimipenguin:
$ cd mimipenguin/ $ ./mimipenguin.sh
注意:如果你遇到下面的错误,那就使用sudo命令:
Root required - You are dumping memory...
Even mimikatz requires administrator
在Linux中转储登录密码
从上面的输出中,mimipenguin向你提供了桌面环境的用户名和密码。
另外,还可以如下运行python版脚本:
$ sudo ./mimipenguin.py
注意有时gcore可能会阻塞脚本(这是gcore中一个已知问题)。
未来更新
下面是将会被添加到mimipenguin的功能:
- 提升总体效率
- 添加更多支持以及其他的凭据位置
- 包括支持非桌面环境
- 添加LDAP的支持
mimipenguin的Github仓库:https://github.com/huntergregal/mimipenguin
同样,请查阅:
- 如何在Linux中用密码保护一个vim文件
- 如何在Linux中生成/加密/解密随机密码
- 如何在RHEL/CentOS/Fedora 中用密码保护GRUB
- 在CentOS 7中重置/恢复忘记的root用户账号密码
在下面的评论栏中分享你关于这个工具的额外想法或者对Linux中内存中明文凭据的问题。
(责任编辑:安博涛)