Hekatomb 是一个 Python 脚本,它连接到 LDAP 目录以检索所有计算机和用户信息

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/Processus-Thief/HEKATOMB

HEKATOMB项目简介

相关技术点

  • LDAP目录
  • DPAPI Blob
  • RPC

项目用途

  • HEKATOMB是一个Python脚本,可连接到LDAP目录以检索所有计算机和用户信息。
  • 它将从所有计算机中下载所有用户的DPAPI Blob。
  • 最后,它将通过RPC提取域控制器私钥,使用它来解密所有凭证。
  • 该项目用于自动化搜索和解密,以从Windows凭据管理器中恢复所有工作站中的域用户的密钥。

HEKATOMB 项目

因为域管理员权限还不够。
全部破解。
🐍



Hekatomb 是一个连接到 LDAP 目录以检索所有计算机和用户信息的 Python 脚本。
然后,它将从所有计算机下载所有用户的 DPAPI blob。
最后,它将通过 RPC 提取域控制器私钥并使用它来解密所有凭据。

ad1a1b7183001613

 

更新日志


在最新版本(V 1.5)中:
- 修复了 pip 安装时的本地包导入错误

V 1.4 :
- 修复了 LDAP 搜索限制为 1000 项
- 添加了计算机的 LDAP 过滤器,仅选择“已启用”的计算机
- 添加了一个函数来使用多线程扫描 SMB 端口以先获取 blob 和主密钥文件
- 为文件收集添加了进度条
- 添加了 2 个函数模块,以简化代码的可读性和可维护性

V 1.3 :
- 在尝试检索 blob 文件之前,将 LDAP 用户名与 SMB 用户文件夹进行比较,以更快地获取它们
- DNSTCP 选项不再使用,在 UDP 上尝试 DNS 解析,如果失败,则使用 TCP

V 1.2.1 :
- 使用 ldap3 库代替 Impacket 进行 LDAP 请求
- 修复了一个 bug,该 bug 防止使用管理员权限的外部域帐户查询信任域
- 添加了 -smb2 参数,以强制使用 SMBv2 协议(如果可用)
- LDAP 和 SMB 通信现在更难在网络上检测到

V 1.2.1 :
- 添加了 Pypi 安装

V 1.2 :
- 增加 LDAP 结果的用户或计算机提取限制(之前为 1000)
- 添加了指定要定位的用户或计算机的可能性
- 添加了将结果导出到 CSV 文件的可能性

V 1.1 :
- 通过 RPC 提取域控制器私钥
- 按计算机和用户分类凭据



这是什么鬼?


在 Windows 上,Windows 凭据管理器中保存的凭据使用 Microsoft 的数据保护 API 加密并存储为用户 AppData 文件夹中的“blob”文件。
在域外,用户的密码哈希用于加密这些“blobs”。
当您在 Active Directory 环境中时,数据保护 API 使用域控制器的公钥来加密这些 blob。
通过提取域控制器的私钥,可以解密所有 blob,因此可以恢复域中所有工作站的 Windows 认证管理器中记录的所有秘密。

Hekatomb 自动搜索 blob 并进行解密,以恢复所有域用户的秘密 ☠️

安装


从 Pypi 安装:

pip3 install hekatomb


从源代码安装:

git clone https://github.com/Processus-Thief/HEKATOMB
cd HEKATOMB
python3 setup.py install



用法


Hekatomb 使用 Impacket 语法:

usage: hekatomb [-h] [-hashes LMHASH:NTHASH] [-pvk PVK] [-dns DNS] [-dnstcp] [-port [port]] [-just-user JUST_USER] [-just-computer JUST_COMPUTER] [-md5] [-debug] [-debugmax] target

Script used to automate domain computers and users extraction from LDAP and extraction of domain controller private key through RPC to collect and decrypt all users' DPAPI secrets saved in Windows credential manager.

positional arguments:
  target                [[domain/]username[:password]@]<targetName or address of DC>

options:
  -h, --help            Show this help message and exit

authentication:
  -hashes LMHASH:NTHASH     NTLM hashes, format is LMHASH:NTHASH

authentication:
  -pvk PVK                  Domain backup keys file
  -dns DNS                  DNS server IP address to resolve computers hostname
  -port [port]              Port to connect to SMB Server
  -smb2                     Force the use of SMBv2 protocol when it is available
  -just-user [USERNAME]     Test only specified username
  -just-computer [COMPUTER] Test only specified computer
  -md5                      Print md5 hash insted of clear passwords

verbosity:
  -debug                Turn DEBUG output ON
  -debugmax             Turn DEBUG output TO MAAAAXXXX



示例

hekatomb -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug 

如何检索域备份密钥?

如果未提供域备份密钥,则脚本将通过 RPC 检索它。