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 中内存中明文凭据的问题。
(题图:Pixabay,CC0)