freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

记一次靶场域场景之域渗透-NTLM中继攻击思路
2021-12-01 10:52:00

本环境是蛇矛实验室基于"火天网演攻防演训靶场"进行搭建,通过火天网演中的环境构建模块,可以灵活的对目标网络进行设计和配置,并且可以快速进行场景搭建和复现工作。

背景

在公司网络或者业务网络中,便于管理和共享,越来越多的用户选择使用域来代替工作组,在功能便捷的同时,也衍生出越来越多的关于域安全的相关问题。

由于真实的域环境通常分布在多个物理地域,涉及到大量的服务器、终端,网络设备的配置,构建真实的域环境做实验难度较大,利用火天网境的NFV支持、路由协议支持和强大的虚拟化仿真能力,我们可以轻松的构建出大规模基于广域网的域环境进行攻防的效能评估以及安全问题的复现验证。

NTLM中继

攻击者充当客户端的服务器,并充当服务器的客户端。他从客户端消息中提取NTLM身份验证Blob,并将其放入服务器的修改后的消息中,反之亦然。最后,他可以根据需要使用经过身份验证的会话。

为了使这种攻击奏效,必须处于中间人的位置。攻击者可以使用传统的欺骗技术(ARP,DNS,LLMNR和Netbios等)来实现,也可以通过漏洞或滥用功能(打印机漏洞,Juicy Potato等)触发与攻击者计算机的连接来实现。

NTLM中继已在多种攻击中使用和重用过:

打印机漏洞:一种从Windows Server触发SMB连接的好方法(与无约束的委托结合起来特别方便);

PrivExchange:如何从任何用户的交换邮箱升级到域管理员;

断开MIC:如何绕过完全保护继电器;

这些攻击中继了以下协议:

SMB→SMB(打印机漏洞)

HTTP→LDAP(PrivExchange)

SMB→LDAPS(删除MIC)

SMB中继

原理:

对于SMB协议,客户端在连接服务端时,默认先使用本机的用户名和密码hash尝试登录,所以可以模拟SMB服务器从而截获其它PC的net-ntlm hash。而作为中继的机器必须要有域管理员权限或本地管理员权限,且被中继的机器要关闭smb签名认证,本文按利用子域控做中继

除了中继smb协议,还可以中继LDAP,从域内内收集更多的信息,包括用户、他们的组成员、域计算机和域策略;中继IMAP,Exchange 服务器上的 IMAP 支持 NTLM 身份验证,若Exchange启用 NTLM 身份验证,可以登录用户的邮箱。这些可以用来进一步的扩大危害。

中继即让客户端连接到攻击者模拟的SMB,其实最关键的是先拿到net-ntlm hash,若是域管的hash,就可以拿到域内的任意主机权限。NTLM 身份验证被封装在其他协议中,但是无论覆盖的协议是什么,消息都是相同的,比如SMB、HTTP(S)、LDAP、IMAP、SMTP、POP3 和 MSSQL,就是说NTLM 支持多种协议。HTTP 进行身份验证的客户端会在“ Authorization”标头中发送 NTLM 身份验证消息。

本文我们将讨论2种攻击。

1.获取NTLMv2哈希值,并使用破解工具破解。

2.使用Responder和Multirelay.py脚本,脚本负责执行NTMLMv2哈希值中继到“已禁用SMB签名”的机器上。如果中继成功,就可以访问目标机器。

方法1

环境

关闭SMB签名认证的子域控(服务端):http://DC2.sh.rangenet.cn(192.168.10.3)

子域控下的主机(客户端):DC3. http://sh.rangenet.cn(192.168.10.4)

攻击机kail(88.88.88.100)

下载链接:https://github.com/lgandx/Responder

域控需配置

运行 gpedit.msc

依次点击计算机配置>Windows设置>安全设置>本地策略>安全选项

1638327682_61a6e5820e2c398c2bb2d.png!small?1638327728797

Responder开启WPAD(自动发现协议,利用DNS 查找一个名为 WPAD 的主机名,如果不能通过上面描述的 LLMNR)后,当目标浏览网站时强制使用NTLM hash认证,而且主机重启时也能抓到NTLM hash。

加-F参数即可开启WPAD抓取 hash,此时用户浏览网站Net-NTLM hash就被获取。

python Responder.py -I eth0 -v -F

1638327716_61a6e5a4c02fa5b7f849f.png!small?1638327762820

1638327723_61a6e5ab749d395a8e9f0.png!small?1638327769857

访问攻击机,输入子域的域管理员账号密码

1638327732_61a6e5b4d077421650e2b.png!small?1638327778977


Kail成功获取net-NTLM hash

如果网络中的任何用户试图访问共享哪个机器没有IP或用户类型共享名称不正确,该机器将触发LLMNR请求到网络,Responder将通过说我是哪台机器来回答该请求,请提供给我NTLMv2哈希并访问资源

1638327743_61a6e5bfde001569913eb.png!small?1638327790177

这里,用户“administrator”(机器IP 192.168.10.4)正在尝试访问88.88.88.100的共享分区。

当机器触发LLMNR请求时,Responder响应该请求并捕获用户“administrator”的NTLMv2哈希值

在获得明文密码后,我们可以登录到Windows域上的其他计算机,来确定我们是否可以在其他计算机访问任何敏感信息。

DCSYNC中继

原理

在域环境中,不同域控制器(DC)之间,每 15 分钟都会有一次域数据的同步。当一个域控制器(DC 1)想从其他域控制器(DC 2)获取数据时,DC 1 会向 DC 2 发起一个 GetNCChanges 请求,该请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。DCSync 就是利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口向域控发起数据同步请求。

DCSync 是域渗透中经常会用到的技术,其被整合在了 Mimikatz 中。在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。

2015 年 8 月,Benjamin Delpy(神器 Mimikatz 的作者)和 Vincent Le Toux 发布了新版本的 Mimikatz,新增加了 DCSync 功能。该功能可以模仿一个域控制器,从真实的域控制器中请求数据,例如用户的哈希。该功能最大的特点就是不用登陆域控制器,即可远程通过域数据同步复制的方式获得域控制器上的的数据。

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

在默认情况下,只有 Administrators、Domain Controllers 和 Enterprise Domain Admins 组内的用户有权限使用 DCSync,但我们可以对域内普通用户添加 ACL (Access Control List) 实现普通用户也能调用 DCSync 功能。

利用条件:

获得以下任一用户的权限:

Administrators组内的用户

Domain Admins组内的用户

Enterprise Admins组内的用户

域控制器的计算机帐户

利用 DCSync 导出域内哈希

当我们获取相应的权限后,可以利用 DCSync 功能导出域内用户的哈希值。其原理就是利用 DRS (Directory Replication Service)协议通过 IDL_DRSGetNCChanges 从域控制器复制用户哈希凭据。获得了域内用户的哈希后可以进一步利用。

子域下的主机 192.168.10.4

通过 Mimikatz

导出域内所有用户hash

mimikatz.exe privilege::debug "lsadump::dcsync /domain:http://sh.rangenet.cn/all /csv" exit

导出指定用户Hash

mimikatz.exe privilege::debug "lsadump::dcsync /domain:http://sh.rangenet.cn/user:administrator /csv" exit

1638327818_61a6e60a6ba89ce3c75d3.png!small?1638327864393

利用DCSync权限维持

利用DCSync对普通用户添加ACE,用于修改ACL(Access Conotrol list),让普通用户也有获取到域管理员密码hash的权限

登录http://DC2.sh.rangenet.cn的普通用户sh

没有权限查看域管理员密码hash

1638327825_61a6e611b12d6f821094e.png!small?1638327871773

添加ACE

powershell Add-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose

使用域管理员账号密码打开powershell

1638327836_61a6e61c0f01ae57a39ab.png!small?1638327882642

使用sh成功获取域管理员密码hash

直接打开mimikatz,不要点击管理员身份打开

1638327841_61a6e621db73601437032.png!small?1638327888092

删除ACE

powershell Remove-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose

使用域管理员账号密码打开powershell

1638327858_61a6e632f31ac4c878763.png!small?1638327905445

至此,sh域内普通用户,以获得获取域管理员Adiministrator的密码hash的权限

1638327868_61a6e63cc9e1731a1e14c.png!small?1638327915393

丈八网安蛇矛实验室成立于2020年,致力于安全研究、攻防解决方案以及靶场仿真复现等相关方向。团队核心成员均由从事安全行业10余年经验的安全专家组成,团队目前成员涉及红蓝对抗、渗透测试、逆向破解、病毒分析、工控安全以及免杀等相关领域。

# 黑客 # 企业安全 # 网络安全技术 # 环境搭建 # 场景搭建
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录