Tips +1
工具介绍
转储当前 Linux 桌面用户登录密码的工具。改编自流行的 Windows 工具 mimikatz 背后的想法。此已分配CVE-2018-20781 (https://cve.mitre.org/cgi-bin/ cvename.cgi?name=CVE-2018-20781)。有趣的是,它在 GNOME Keyring 3.27.2 之后仍未得到修复,并且自 3.28.0.2-1ubuntu1.18.04.1 起仍然有效。
利用条件
- root 权限
支持系统
- Kali 4.3.0(滚动)x64 (gdm3)
- Ubuntu 桌面 12.04 LTS x64(Gnome 密钥环 3.18.3-0ubuntu2)
- Ubuntu 桌面 14.04.1 LTS x64(Gnome 密钥环 3.10.1-1ubuntu4.3、LightDM 1.10.6-0ubuntu1)
- Ubuntu 桌面 16.04 LTS x64(Gnome 密钥环 3.18.3-0ubuntu2)
- Ubuntu 桌面 16.04.4 LTS x64(Gnome 密钥环 3.18.3-0ubuntu2、LightDM 1.18.3-0ubuntu1.1)
- 乌班图18
- XUbuntu 桌面 16.04 x64(Gnome 密钥环 3.18.3-0ubuntu2)
- Archlinux x64 Gnome 3(Gnome 密钥环 3.20)
- OpenSUSE Leap 42.2 x64(Gnome 密钥环 3.20)
- VSFTPd 3.0.3-8+b1(活动 FTP 客户端连接)
- Apache2 2.4.25-3(活动/旧 HTTP BASIC AUTH 会话)[Gcore 依赖项]
- openssh-server 1:7.3p1-1(活动 SSH 连接 - sudo 使用)
MimiPenguin 正在慢慢移植到多种语言,以支持所有可能的利用后场景。 KINGSABRI 建议使用下面的路线图来跟踪各种版本和功能。 “X”表示完全支持,“~”表示完全支持。表示具有已知错误的功能。
特征 |
.sh |
.py |
GDM 密码(Kali 桌面、Debian 桌面) |
~ |
X |
Gnome 密钥环(Ubuntu 桌面、ArchLinux 桌面) |
~ |
X |
LightDM(Ubuntu 桌面) |
X |
X |
VSFTPd(活动 FTP 连接) |
X |
X |
Apache2(主动 HTTP 基本身份验证会话) |
~ |
~ |
OpenSSH(活动 SSH 会话 - Sudo 使用) |
~ |
~ |
原理分析
首先,要列出可能保存相关凭据的进程,可以看到python给出的这个几个进程
/*
gdm-password
gnome-keyring-daemon GNOME密码也就是图形登录的账号密码
lightdm LIGHTDM账户密码,基本上与GNOME一致
vsftpd 文件服务FTP账户密码
sshd 连接SSH服务的账户密码
apache2 起HTTP服务的账户密码
*/
0x01 读取进程内存:在这些进程的内存中尝试dump口令,那么需要dump进程内存,原理是打开/proc/pid/maps文件,对其中的内容做一些处理,然后得出一个读取大小。根据这个大小读取/proc/pid/mem文件中的内容,处理后作为原始数据。
0x02 读取明文密码:然后根据不同进程的一些凭据字符串附近的特征字符串,进行定位,或者利用正则进行匹配,取出凭据所在的内存部分,提取到凭据明文。
0x03 读取hash,利用正则表达式,在内存部分原始数据中读取到hash值,然后打开/etc/shadow进行匹配,匹配到对应的账户名称。
0x04 散列值对比,利用计算hash的方法,对明文密码进行hash计算,与发现的hash比较,从而验证明文密码。
下载安装
项目地址:https://github.com/huntergregal/mimipenguin
- 要构建 C 变体版本,只需在项目的根目录中运行make
- 要构建带有调试打印的调试二进制文件,请运行make debug
- 构建静态链接的二进制文件运行make static
使用示例
原文始发于微信公众号(贝雷帽SEC):利用mimipenguin抓取密码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论