AD 提权-NTLM 中继攻击(诱导认证)
我醉欲眠卿且去,明朝有意抱琴来。
导航
0、前言
NTLM 中继攻击的流程主要分为三个步骤:触发认证、中继攻击、后利用。其中,
- 触发认证又分为:主动强制认证、被动诱导认证;
- 中继攻击又包括:委派、ADCS 证书申请、影子凭证 等;
- 后利用 则根据 中继攻击 的不同,利用的方式亦有所不同。
主动强制认证常见的几个漏洞是:PeitiPotam、PrinterBug、DFSCoerce、ShadowCoerce、PrivExchange、Coercer。其中 PeitiPotam 漏洞无需提供域账户便可被检测和利用,因此它也是本文主要被使用的一种强制认证方法。
被动诱导认证:UNC 路径、恶意文档(Word、PDF)、图标文件(desktop.ini、scf 文件)、系统命令。
在这篇文章中,我们将 基于被动诱导认证 去探讨有关中继攻击的几种中继类型。例如,
- SMB 转 SMB:触发认证的是 SMB 协议,中继攻击使用的也是 SMB 协议。
- SMB 转 LDAP:触发认证的是 SMB 协议,但中继攻击使用的却是 LDAP 协议。
- SMB 转 HTTP:触发认证的是 SMB 协议,但中继攻击使用的却是 HTTP 协议。
- HTTP 转 SMB:触发认证的是 HTTP 协议,但中继攻击使用的却是 SMB 协议。
- HTTP 转 LDAP:触发认证的是 HTTP 协议,但中继攻击使用的却是 LDAP 协议。
以上最常见的中继类型是 SMB 转 SMB 和 SMB 转 LDAP,而有关 HTTP 相关的中继场景似乎都不太常见。
1、实验环境
- 域名 - skylark.com
- 主域控 - DC2012 - Windows 2012 R2 Standard - 192.168.56.50
- 备域控 - DC2013 - Windows 2012 R2 Standard - 192.168.56.51
- 域主机 - Win10 - Windows 10 专业版(22H2) - 192.168.56.14
- 域主机 - Win7 - Windows 7 旗舰版(SPK1) - 192.168.56.13
- Kali - 192.168.56.20
- 普通域用户 - user
- 域管理员用户 - admin

可以看到,在这个域环境中,主备域控均已开启 SMB 签名,而域主机均已关闭 SMB 签名。
注意:本实验中的所有 Windows 机器均未安装 CVE-2019-1040 漏洞的补丁,因此后文中 SMB 转 LDAP/HTTP 时 impacket-ntlmrelayx 工具的 --remove-mic 功能可被正常使用。
为了便于后文的说明,特需对各角色的称呼进行规范说明。例如:从 A 触发的认证凭证,经由 kali 转发被中继到了 B,那么 A 被称为触发者,B 被称为受害者,kali 则被称为攻击者。
2、SMB 转 SMB
在 NTLM 中继攻击的流程中,认证协议由 SMB 转 SMB 的成功,需要受害者机器的 SMB 签名处于关闭状态才行,而触发者机器的 SMB 签名状态开关与否都无所谓。
示例一:域主机触发去攻击域控

结果:失败!由于被攻击的域控主机(DC2012)的 SMB 签名处于开启状态,因此必定会失败。
示例二:域控触发去攻击域主机

结果:成功!由于被攻击的域主机(Win10)的 SMB 签名处于关闭状态,因此会成功。
注:如果对域控使用强制认证去攻击域主机,那么是否会成功呢?
测试实验未能成功,但认证提示的消息显示是成功的,只是会报
DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied错误。该错误应该是权限不足的错误,而非服务不提供的错误。毕竟在上面示例二中使用诱导认证的时候是成功的,那说明 Win10 机器所提供的功能是有的,只是这个强制认证的账户(机器账户)权限太小。个人猜测:在域环境下,只有机器自身的机器账户才拥有对自己机器的最高权限(SYSTEM),而其他机器账户哪怕是域控的机器账户,在非本机的机器看来,那就是一个普通的机器账户,不具备什么权限。【但主备域控之间好像比较特殊,互相的机器账户拥有对对方机器的最高权限。】
示例三:域控之间的触发和攻击

结果:失败!由于被攻击的域控主机(DC2012)的 SMB 签名处于开启状态,因此必定会失败。
示例四:域主机之间的触发和攻击

结果:成功!由于被攻击的域主机(Win10)的 SMB 签名处于关闭状态,因此必定会成功。
3、SMB 转 LDAP
在 NTLM 中继攻击的流程中,认证协议由 SMB 转 LDAP 的成功,与触发者和受害者机器上的 SMB 签名状态无关,但和目标机器是否安装了 CVE-2019-1040 漏洞的补丁息息相关,若未打补丁则此时只需在攻击者 kali 的 impacket-ntlmrelayx 命令中添加 --remove-mic 选项即可顺利进行中继。【出厂默认未安装此补丁的系统:Server 2016 及更早、部分 Win10 及更早】
示例一:域主机触发去攻击域控


可以看到,当在域主机(Win10)上分别以域管理员 admin 和普通域用户 user 的身份去触发中继认证时,admin 触发的攻击在域控上新建了一个特权账户,而 user 触发的攻击却只是在当前工作目录下转储了一些域中的信息。
结果:成功!
示例二:域控之间的触发和攻击

结果:成功!
4、SMB 转 HTTP
在 NTLM 中继攻击的流程中,认证协议由 SMB 转 HTTP 的成功,与触发者和受害者机器上的 SMB 签名状态无关,但和目标机器是否安装了 CVE-2019-1040 漏洞的补丁息息相关,若未打补丁则此时只需在攻击者 kali 的 impacket-ntlmrelayx 命令中添加 --remove-mic 选项即可顺利进行中继。【出厂默认未安装此补丁的系统:Server 2016 及更早、部分 Win10 及更早】
关于 SMB 转 HTTP 的示例,可参考《AD 提权-NTLM 中继攻击(强制认证)》这篇文章中有关“ADCS 证书申请”部分的利用。
5、HTTP 转 SMB
在 NTLM 中继攻击的流程中,认证协议由 HTTP 转 SMB 的成功,要求受害者机器上的 SMB 签名处于关闭状态才行,而触发者机器的 SMB 签名状态开关与否都无所谓。
示例一:域主机触发去攻击域控

浏览器访问网址所弹出的登录窗口,填写的是域用户的账户,也是被中继的凭证,该中继凭证和当前登录环境的用户无关。

结果:失败!由于被攻击的域控主机(DC2012)的 SMB 签名处于开启状态,因此必定会失败。
示例二:域控触发去攻击域主机

结果:成功!由于被攻击的域主机(Win10)的 SMB 签名处于关闭状态,因此会成功。
示例三:域控之间的触发和攻击

结果:失败!由于被攻击的域控主机(DC2012)的 SMB 签名处于开启状态,因此必定会失败。
示例四:域主机之间的触发和攻击

结果:成功!由于被攻击的域主机(Win10)的 SMB 签名处于关闭状态,因此会成功。
6、HTTP 转 LDAP
在 NTLM 中继攻击的流程中,认证协议由 HTTP 转 LDAP 可顺利进行,和 SMB 签名和 CVE-2019-1040 漏洞的补丁无关。
示例一:域主机触发去攻击域控

结果:成功!
示例二:域控之间的触发和攻击

结果:成功!
7、杂项
- 被中继凭证的权限,决定了它是否可以在受害者机器上进行一些高权限的操作。例如,如果被中继的凭证只是个普通域用户,那么就自然不能够在域控上创建委派账户、转储用户哈希这些需要高权限才能做的事情。
- 在 HTTP 转 SMB/LDAP 的中继过程中,浏览器中访问 kali 时,弹出的登录框中需要填写域用户的账户密码才行。
- impacket-ntlmrelayx 的 --remove-mic 选项似乎只有在 SMB 转 LDAP/HTTP 时才会被用到,其它时候并不需要。
- 通过 SMB/HTTP 转 LDAP 成功执行时会创建一个拥有 Replication-Get-Changes-All 特权的用户,利用该用户配合 impacket-secretsdump 可成功转储域中所有用户的哈希。

- 机器账户只能新建机器账户,而域用户不仅可以创建机器账户也可以新建机器账户。这也就是为什么在 NTLM 中继攻击时,主动强制认证新建的特权账户都是机器账户而不是域用户的原因。因为主动强制认证所中继的凭证基本都是目标系统的系统机器账户,即带
$的主机名同时也是 SYSTEM 账户。 - 强制认证,所中继的账户都是机器账户,因此只能够利用其对一些机器账户进行委派或证书请求的功能;触发认证,所中继的账户一般都是域用户,所以其支持的攻击手法很多,基本上强制认证支持的它都支持。【当然所触发的域账户的权限也决定着此种中继方式可使用的攻击功能,如果触发的凭证是域管理员,那么此时可使用的功能也肯定很多。】
AD 提权-NTLM 中继攻击(诱导认证)的更多相关文章
- Potato(邪恶土豆)–windows全版本猥琐提权
工作原理: Potato利用已知的Windows中的问题,以获得本地权限提升,即NTLM中继(特别是基于HTTP > SMB中继)和NBNS欺骗.使用下面介绍的技术,它有可能为一个非特权用户获得 ...
- 内网渗透 day5-msf本地提权(windows)
msf本地提权 目录 1. 利用uac提权 1 2. 绕过uac认证 2 3. 利用windows本地提权漏洞进行提权 4 1. 利用uac提权 前提与目标机建立会话连接 seach local/as ...
- 结合NTLM中继和Kerberos委派攻击AD
0x00 前言 在上个月我深入演讲了无约束委派之后,本文将讨论一种不同类型的Kerberos委派:基于资源的约束委派.本文的内容基于Elad Shamir的Kerberos研究,并结合我自己的NTLM ...
- 20165230田坤烨网络对抗免考报告_Windows系统提权
目录 KERNEL EXPLOITATION 服务攻击: DLL劫持 攻击 不安全的服务权限 探测 unquoted path未被引号标记的路径 探测 攻击 服务注册表键 探测 攻击 Named Pi ...
- Meterpreter提权详解
0x01 Meterpreter自动提权 1.生成后门程序 我们在kali的命令行下直接执行以下命令获得一个针对windows的反弹型木马: msfvenom -p windows/meterpr ...
- 滥用DNSAdmins权限进行Active Directory提权
0x00 前言 除了在实现自己的DNS服务器功能之外,Microsoft还为该服务器实现自己的管理协议以便于管理与Active Directory域集成.默认情况下,域控制器也是DNS服务器; 大 ...
- Windows提权总结
当以低权用户进去一个陌生的windows机器后,无论是提权还是后续做什么,第一步肯定要尽可能的搜集信息.知己知彼,才百战不殆. 常规信息搜集 systeminfo 查询系统信息 hostname 主机 ...
- windwos提权漏洞CVE-2023-21746复现(LocalPotato)
0x01 漏洞原理 LocalPotato攻击是一种针对本地认证的NTLM反射攻击. Windows NTLM 在进行身份验证时存在漏洞,允许拥有低权限的本地攻 击者通过运行特制程序将权限提升至 SY ...
- 内网安全之:MS14-068 Kerberos 域用户提权漏洞
内网安全之:MS14-068 Kerberos 域用户提权漏洞 目录 内网安全之:MS14-068 Kerberos 域用户提权漏洞 0 漏洞说明 (MS14-068:CVE-2014-6324) 1 ...
- 小白日记23:kali渗透测试之提权(三)--WCE、fgdump、mimikatz
WCE windows身份认证过程 http://wenku.baidu.com/view/cf2ee127a5e9856a56126017.html #特例在登陆的目标服务器/系统,有一个w摘要安全 ...
随机推荐
- 适合Java程序员的Go入门笔记
0.背景 3年java开发背景(因此这篇文章的特点是:比较适合java程序员doge),业余时间有了解过一些go,如今加入字节团队主要技术栈是go,此篇主要结合go语言圣经和团队内go项目,总结一些基 ...
- 你常用哪些工具来分析 JVM 性能?
常用的 JVM 性能分析工具 JVM 性能分析工具主要用于监控.调试和优化 Java 程序的性能,尤其是在垃圾回收.内存泄漏.线程调度等方面.以下是一些常用的 JVM 性能分析工具: 1. jvisu ...
- 2025dsfz集训Day4:BFS及其优化
DAY4: BFS及其优化 \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特别感谢 此次课的主讲 - Kwling BFS 广度优 ...
- 60个 Linux C/C++ 实战小项目,挑战年薪30万+
大家好啊!我是小康. 最近公众号后台收到好多小伙伴的私信: "小康哥,我已经把<C++ Primer>啃完了,Linux 环境也玩得差不多了,但就是不知道该做啥项目练手...&q ...
- ragflow k8s部署详细过程
一.概述 ragflow官方提供的安装方式是docker-compose方式部署的,单机运行. k8s部署方式,暂未提供. 不过我们可以通过工具,结合docker-compose.yaml,来推演出对 ...
- 2K star!三分钟搭建企业级后台系统,这款开源Java框架绝了!
2K star!三分钟搭建企业级后台系统,这款开源Java框架绝了! "LikeAdmin Java是基于Spring Boot + Mybatis Plus + Vue 3的快速开发平台, ...
- 【工具】FFmpeg|压缩视频,500MB变25MB(有损,支持 Windows、Linux、macOS 各个平台)
参考: 如何将一分钟长的1080p视频压缩至5MB以内?-知乎-滔滔清风 近期HEVC扩展备用安装方法-B站-悲剧天下 总共三个步骤,安装FFmpeg.运行指令.打开视频. 亲测 500MB 变 25 ...
- 通过Java写入数据到Excel表格
在数据处理与管理领域,Excel 凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具.在 Java 开发过程中,常常需要将不同类型的数据,如文本.数值.数组以及 DataTable 数据写入 ...
- Flex布局-margin 妙用技巧
在 flex 布局 中, 通过对子项设置 margin-auto; 的方式去吃掉剩余空间, 这种小技巧在很多时候能极大简化我们的布局哦. 单元素水平垂直居中 如果父容器是 flex, 要实现元素水平垂 ...
- MCP 实践系列:看热点、蹭热点,创作与摸鱼两手抓!
连续工作累死人,身心疲惫时,总得有那么一点时间给自己松口气.每当这个时候,我总喜欢偷偷摸摸地看看新闻,整理一下逐渐疯狂的思维.毕竟,谁说程序员就只能埋头写代码?谁规定了只能死磕在堆积如山的bug中? ...