目 录CONTENT

文章目录

Impacket工具集

Administrator
2025-07-24 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

image-xsnd.png
什么是Impacket?

Impacket是用于处理网络协议的Python类的集合。Impacket专注于提供对数据包的低级程序访问,对于某些协议(例如:SMB1-3和MSRPC,协议实现本身。数据包可以从零开始构建,也可以从原始数据中解析,面向对象的API使得处理协议的深层层次结构变得简单。图书馆提供了一组工具,作为在此库中可以做什么的示例。

Impacket 可在 Fortra 的 github 库中下载。

协议

  • 以太网,Linux“煮”捕获。

  • IP,TCP,UDP,ICMP,IGMP,ARP。

  • IPv4 和 IPv6 支持

  • NMB 和 SMB1、SMB2 和 SMB3(高级实现)。

  • MSRPC版本5,通过不同的传输:TCP,SMB / TCP,SMB / NetBIOS和HTTP。

  • Plain、NTLM 和 Kerberos 身份验证,使用密码/哈希/票/钥匙。

  • 以下MSRPC接口的部分/完整实现:EPM、DTYPES、LSAD、LSAT、NRPC、RRP、SAMR、SRVS、WKST、SCMR、DCOM、WMI

  • TDS(MSSQL)和LDAP协议实现的部分。

工具

✅ 远程命令执行

  • psexec.py:使用RemComSvc(https://github.com/kavika13/RemCom)的PSEXEC类似功能示例。

  • smbexec.py:使用RemComSvc的PSEXEC w/o类似方法。here技术在这里描述。我们的实现更进一步,实例化了本地 smbserver 来接收命令的输出。在目标机器没有可写份额的情况下,这很有用。

  • atexec.py:此示例通过任务计划程序服务在目标计算机上执行命令,并返回已执行命令的输出。

  • wmiexec.py:一个半交互式shell,通过Windows Management Instrumentation使用。它不需要在目标服务器上安装任何服务/代理。以管理员身份运行。高度隐身。

  • dcomexec.py:类似于wmiexec.py的半交互式shell,但使用不同的DCOM端点。目前支持MMC20。应用程序、ShellWindows 和 ShellBrowserWindow 对象。

🔐 Kerberos 工具

  • GetTGT.py:给定一个密码,哈希或aesKey,这个脚本将请求一个TGT并将其保存为ccache。

  • GetST.py:给定一个密码,散列,aesKey或TGT在ccache,这个脚本将请求服务票,并将其保存为ccache。如果帐户限制了授权(具有协议转换)权限,则可以使用 -impersonate switch 代表其他用户申请票证。

  • GetPac.py:此脚本将获得指定目标用户的PAC(特权属性证书)结构,该结构只是具有正常身份验证的用户凭据。它通过使用[MS-SFU]的S4USelf +用户到用户Kerberos身份验证的混合来做到这一点。

  • GetUserSPNs.py:此示例将尝试查找和获取与普通用户帐户关联的服务主体名称。输出与 JtR 和 HashCat 兼容。

  • GetNPUsers.py:此示例将尝试列出并获取具有属性“不需要Kerberos预身份验证”集(UF_DONT_REQUIRE_PREAUTH)的用户的TGT。输出与JtR兼容。

  • rbcd.py: 用于处理目标计算机的 msDS-AllowedToActOnBehalfOfForIfOfUserIdentity 属性的示例脚本。

  • ticketConverter.py:此脚本将 mimikatz 常用的 kirbi 文件转换为 Impacket 使用的 ccache 文件,反之亦然。

  • ticker.py:此脚本将从头开始创建Golden/Silver票,或基于模板(从KDC合法要求),允许您自定义PAC_LOGON_INFO结构中设置的一些参数,特别是组,ExtraSids,持续时间等。

  • raiseChild.py:此脚本通过(ab)使用Golden Tickets和ExtraSids的概念实现了森林特权升级的子域。

🔍 凭据/机密提取

  • secretdump.py:执行各种技术,从远程机器中转储秘密,而无需在那里执行任何代理。对于 SAM 和 LSA Secrets(包括缓存的 creds),我们尝试尽可能多地从注册表中读取,然后将蜂巢保存在目标系统 (%SYSTEMROOT%\Temp 目录中)并从那里读取其余数据。对于 DIT 文件,我们使用 DL_DRSGetNCChanges() 方法转储 NTLM 哈希、Plaintext 凭据(如果可用)和 Kerberos 密钥。它还可以通过使用smbexec / wmiexec方法执行的vssadmin转储NTDS.dit。脚本启动其工作所需的服务,如果它们不可用(例如:远程注册表,即使已禁用)。工作完成后,事情恢复原状。

  • mimikatz.py:用于控制由@gentilkiwi开发的远程mimikatz RPC服务器的迷你外壳。

⚔️ 中间人攻击与服务模拟

  • ntlmrelayx.py:此脚本执行NTLM中继攻击,设置SMB,HTTP,WCF和RAW服务器,并将凭据中继到许多不同的协议(SMB,HTTP,MSSQL,LDAP,IMAP,POP3等)。
    脚本可以与预定义攻击一起使用,当连接中继时(例如,通过 LDAP 创建用户)或可以在 SOCKS 模式下执行时,可以触发这些攻击。
    在此模式下,对于中继的每个连接,它将通过 SOCKS 代理多次使用。

  • karmaSMB.py:一个SMB服务器,无论指定的SMB共享和路径名如何,都可以回答特定的文件内容。

  • smbserver.py:一种 SMB 服务器的 Python 实现。允许快速设置共享和用户帐户。

🖥️ WMI

  • wmiquery.py:它允许在目标系统上发出WQL查询并获取WMI对象的描述(例如从win32_account中选择名称)。

  • wmipersist.py:此脚本创建/删除WMI事件消费者/过滤器,并在两者之间链接,以根据指定的WQL过滤器或计时器执行Visual Basic。

🧪 漏洞利用脚本

  • goldenPac.py:为 MS14-068 开发。保存金票,并在目标处启动PSEXEC会话。

  • sambaPipe.py:此脚本将利用CVE-2017-7494,通过 -so 参数上传和执行用户指定的共享库。

  • smbrelayx.py:使用SMB中继攻击为CVE-2015-0005开发。
    如果目标系统正在强制签名并提供机器帐户,则模块将尝试通过NETLOGON收集SMB会话密钥。

📁 SMB/MSRPC 协议与系统信息操作

  • smbclient.py:一个通用的SMB客户端,可让您列出共享和文件,重命名,上传和下载文件,并创建和删除目录,所有这些都使用用户名和密码或用户名和哈希组合。这是一个很好的例子,看看如何使用impacket.smb在行动。

  • addcomputer.py:允许使用 LDAP 或 SAMR (SMB) 将计算机添加到域中。

  • getArch.py:此脚本将连接到目标(或目标列表)机器/s,并收集(ab)使用记录的MSRPC功能安装的操作系统架构类型。

  • excher.py:用于通过 HTTP v2 通过 RPC 连接到 MS Exchange 的工具。

  • lookupsid.py:通过[MS-LSAT] MSRPC接口的Windows SID暴力强制器,旨在寻找远程用户/组。

  • netview.py:获取在远程主机处打开的会话列表,并跟踪它们在找到的主机上循环,并跟踪谁从远程服务器登录/退出

  • reg.py:通过[MS-RRP] MSRP接口远程注册表操作工具。这个想法是提供与REG.EXE Windows实用程序类似的功能。

  • rpcdump.py:此脚本将转储在目标处注册的RPC端点和字符串绑定列表。它还将尝试将它们与众所周知的端点列表相匹配。

  • rpcmap.py:用于监听 DCE/RPC 接口的扫描。这与MGMT接口绑定,并获得接口UUID的列表。
    如果 MGMT 接口不可用,则需要在野外看到的接口 UUID 列表,并尝试绑定到每个接口。

  • samrdump.py:从MSRPC套件与安全帐户管理器远程接口通信的应用程序。
    它列出了通过此服务导出的系统用户帐户、可用资源共享和其他敏感信息。

  • services.py:此脚本可用于通过[MS-SCMR] MSRPC接口操作 Windows 服务。
    它支持启动、停止、删除、状态、配置、列表、创建和更改。

  • smbpasswd.py:此脚本是 smbpasswd 工具的替代品,用于在 SMB 上远程更改过期密码(MSRPC-SAMR)

  • changepasswd.py:在单个位置组合功能,通过不同协议更改或重置密码。

  • net.py: Windows net.exe 命令行实用程序的 Impacket 替代品。由于RPC协议,该工具使net.exe功能从远程计算机可用。

🛢️ MSSQL/TDS

  • mssqlinstance.py:从目标主机检索 MSSQL 实例名称。

  • mssqlclient.py:一个MSSQL客户端,支持SQL和Windows身份验证(也哈希)。也支持TLS。

🧬 文件格式

  • esentutl.py:一个扩展存储引擎格式实现。允许倾销ESE数据库的目录、页面和表格(例如NTDS.dit)

  • ntfs-read.py:NTFS 格式实现。此脚本提供了一个迷你外壳,用于浏览和提取 NTFS 卷,包括隐藏/锁定内容。

  • registry-read.py:Windwows 注册表文件格式实现。它允许解析离线注册表蜂巢。

🛠️ 其他工具

  • findDelegation.py:简单的脚本,可快速列出 AD 环境中的所有委派关系(不受约束、受限、资源受限 ) 。

  • GetADUsers.py:此脚本将收集有关域用户及其相应电子邮件地址的数据。
    它还将包含一些有关上次登录和最后一个密码集属性的额外信息。

  • Get-GPPPPsword.py:此示例使用流提取和解密组策略偏好设置密码,以处理文件,而不是挂载共享。此外,它可以脱机解析GPP XML文件。

  • mqtt_check.py:简单的 MQTT 示例,旨在使用不同的登录选项。可以很容易地转换成帐户/密码暴力。

  • rdp_check.py:[MS-RDPBCGR] 和 [MS-CREDSSP] 部分实现,以达到 CredSSP 身份验证。此示例测试帐户在目标主机上是否有效。

  • sniff.py:简单的数据包嗅探器,使用pcapy库通过指定的接口监听#中的数据包。

  • snighter.py:简单的数据包嗅探器,使用原始套接字来侦听与指定协议相对应的传输中的数据包。

  • ping.py:使用 ICMP 回声和回声回复数据包的简单 ICMP ping 来检查主机的状态。
    如果远程主机向上,它应该用回声回复数据包来回复回声探头。

  • ping6.py:简单的IPv6 ICMP ping,使用 ICMP 回声和回声回复数据包来检查主机的状态。

  • DumpNTLMInfo.py:它在 NTLM 身份验证模型中转储远程主机信息,没有 SMB 协议的凭据 (1/2/3)

-.-

0

评论区