简介 

LLMNR&NBT-NS 欺骗攻击是一种经典的内部网络攻击,然而由于一方面了解它的人很少,另一方面在Windows中它们是默认启用的,所以该攻击到现在仍然是有效的。在本文中,我们首先为读者解释什么是LLMNR&NBT-NS攻击,然后介绍如何通过该攻击进行渗透测试,最后,给出针对该漏洞的防御措施。

什么是LLMNR和NetBIOS名称服务器广播?

当DNS名称服务器请求失败时,Microsoft Windows系统就会通过链路本地多播名称解析(LLMNR)和Net-BIOS名称服务(NBT-NS)试图在本地进行名称解析。

LLMNR和Netbios NS广播有什么问题吗?

当DNS名称无法解析的时候,客户端就会将未经认证的UDP广播到网络中,询问它是否为本地系统的名称。 事实上,该过程是未被认证的,并会广播到整个网络,从而允许网络上的任何机器响应并声称是目标机器。

什么是LLMNR / NBT-NS中毒攻击?

通过侦听LLMNR和NetBIOS广播,攻击者可以伪装成受害者(客户端)要访问的目标机器,从而让受害者乖乖交出相应的登陆凭证。在接受连接后,攻击者可以使用Responder.py或Metasploit等工具将请求转发到执行身份验证过程的流氓服务(如SMB TCP:137)。 在身份验证过程中,受害者会向流氓服务器发送用于身份认证的NTLMv2哈希值,这个哈希值将被保存到磁盘中,之后就可以使用像Hashcat或John Ripper(TJR)这样的工具在线下破解,或直接用于 pass-the-hash攻击。

在Windows中,LLMNR和NBT-NS是默认启用的,并且了解这种攻击的人很少,所以我们可以在内部渗透测试中利用该攻击来收集凭据。为此,我们可以在使用其他攻击手段进行测试的过程中,可以让Responder.py一直运行着。

Linux和苹果用户是否受该攻击的影响?

是的,Linux和苹果客户端也使用类似的协议,即多播DNS(mDNS),该协议会监听TCP:5353端口。有关mDSN的更多信息,请参阅mDNS的维基百科页面。

典型的LLMNR / NetBIOS名称服务器攻击

下图显示了用户因为无法解析服务器名称而遭受这种攻击的典型场景。

攻击过程详解

1. 用户发送不正确的SMB共享地址\\ SNARE01

2. DNS服务器响应\\SNARE01 - NOT FOUND

3. 客户端进行LLMNR / NBT-NS广播

4. 响应者告诉客户端它是SNARE01并接受NTLMv2哈希值

5. 响应者将错误发送回客户端,因此最终用户如果不是精于此道的话,通常不会引起警觉

实例:使用Kali&Responder.py

先克隆项目

git clone https://github.com/sdfzy/Responder.git

运行Responder.py,使用您的本地接口和IP地址,具体如下所示:

python Responder.py -i 192.168.210.145 -I eth0

这样就可以启动Responder.py了:

Responder.py运行后,我们模拟一个用户键入错误的SMB服务器名称,比如使用SNARE01而不是SHARE01。

下面,从客户端计算机输入错误SMB服务器名称:

注意:实验室环境中的客户端计算机是Windows 2008 Server R2

在客户端广播不正确的服务器名称的几秒钟时间内,Responder.py就完成了对这个广播请求的应答,并将NTLMv2哈希值写入了硬盘。

最后一步是破解NTLMv2哈希值,这一步成功与否取决于目标环境中的密码策略的复杂性,这可能需要等待一些时间。 当密码策略是已知的,或者怀疑密码安全性较高的时候,ocl-hashcat将是离线破解的上上之选。由于在测试实验室环境中我们故意使用了不安全的密码,因此这里使用john来破解NTLMv2哈希值:

如何保护网络免受LLMNR / NBT-NS中毒攻击

好消息是:这种攻击是相当容易预防的。注意,为此需要禁用LLMNR和NetBIOS名称服务,如果您只禁用LLMNR的话,则Windows将无法解析的名称转移到NetBIOS名称服务器以进行解析。

禁用NetBIOS名称服务

似乎没有办法使用GPO来禁用NetBIOS名称服务(如果你知道的话,请在回复中告诉我们!),其手册说明如下所示。

1. 请依次打开:控制面板\网络和Internet \网络连接

2. 右键单击网络接口,选择属性,双击“Internet Protocol Version 4 TCP/IPv4”

3. 在下一个屏幕上,单击高级,然后选择WINS选项卡

4. 单击“Disable NetBIOS over TCP/IP”旁边的单选按钮

具体操作,请参阅下面的屏幕截图:

禁用LLMNR

幸运的是,您可以使用GPO来禁用LLMNR,具体如下所示:

1. Start => Run => gpedit.msc

打开“Local Computer Policy”=>“Computer Configuration”=>“Administrative Templates”=>“Network”=>“DNS Client”

2. 单击“Turn Off Multicast Name Resolution”,并将其设置为“Enabled”

小结

本文介绍了一种经典的内部网络攻击方法,虽然这种方法由来已久,但是由于了解这种攻击的人非常少,另外由于相关设置在Windows中是默认启用的,所以到目前为止,这种攻击手段仍然行之有效。

【本文原创作者:shan66,本文属安全客原创,安全脉搏yuyang编整理发布】   

渗透测试中的LLMNR/NBT-NS欺骗攻击相关推荐

  1. 内网渗透研究:LLMNR和NetBIOS欺骗攻击分析

    目录 基础知识 LLMNR是什么? LLMNR 的工作过程 NetBIOS是什么? Windows系统名称解析顺序 LLMNR和NetBIOS欺骗攻击 攻击原理 Responder工具利用过程 针对L ...

  2. 渗透测试中常用端口及利用

    渗透测试中常用端口及利用 端口 服务 入侵方式 21 ftp/tftp/vsftpd文件传输协议 爆破/嗅探/溢出/后门 22 ssh远程连接 爆破/openssh漏洞 23 Telnet远程连接 爆 ...

  3. 如何在渗透测试中尽可能隐藏自己-proxychains4使用配置教程

    在渗透测试中,往往需要对自身电脑ip进行网络上的隐藏,如何才能快速简单的在网络扫描中简单实现匿名扫描呢? Proxychains帮助我们完成这一操作 那么 ,proxychains是什么? GNU协议 ...

  4. 渗透测试中信息收集的那些事

    渗透测试中信息收集的那些事 转载自:TideSec(知名安全团队)--VllTomFord(大佬)------https://www.cnblogs.com/OpenCyberSec/p/107941 ...

  5. 详述MySQL服务在渗透测试中的利用

    本文作者:i春秋签约作家--Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...

  6. 监控渗透测试中Certutil利用行为

    简介 Certutil.exe是作为证书服务的一部分安装的命令行程序. 我们可以使用此工具在目标计算机上执行恶意EXE文件,并获取meterpreter会话. 补充说明:在高版本操作系统中,可以通过配 ...

  7. 【3】web安全入门篇-渗透测试中常用的命令

    1.linux命令 渗透测试中常用的linux命令 上面博客提到的基本都能满足需求 2.cmd命令 常用的cmd命令 cmd命令和linux命令常用的对于web入门的萌新可以看看上面博客,多敲一敲用的 ...

  8. 浅析DNSlog在渗透测试中的实战技巧

    文章目录 前言 SSRF 盲打 XSS的盲打 XXE的盲打 SQL的盲注 RCE的盲打 总结 前言 在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起 DNS 请求,这个时候就可以通过这种方式把 ...

  9. 渗透测试中的端口利用

    渗透测试中的端口利用 我们在进行渗透测试中,一般情况下会对端口进行扫描,看看服务器中开启了哪些端口,对应的端口一般存在对应的服务,而这些服务可能存在相应的漏洞,下面就是简单结束一下端口对应服务,服务可 ...

最新文章

  1. 机房收费系统(VB.NET)——超具体的报表制作过程
  2. mysql中一个表最多能有几个auto_mysql--一个表上可以指定几个auto_increment
  3. Xamarin Andro教程搭建Xamarin Androidid开发环境(一)
  4. Unity2017.1官方UGUI文档翻译——Scrollbar
  5. ANSI和UNICODE字符串处理函数
  6. SSH与SSM的区别以及相关技术的流行度
  7. 10大热门人工智能开源工具(框架)
  8. 什么是IP地址、子网掩码、路由和网关?
  9. hihoCoder 1175 拓扑排序
  10. 算子,滤波器,卷积模板,卷积核的概念比较
  11. Introduction to Computer Networking学习笔记(二):字节顺序
  12. 电驴搜索服务器正在连接,电驴 电驴连接不上服务器-完美教程资讯
  13. 解决浏览器下载速度慢的问题
  14. 【无标题】【3D建模制作技巧分享】zbrush中如何卡硬边?
  15. 微信头像跨域问题解决
  16. C语言求CHO的相对分子质量
  17. Net2 A Graph Attention Network Method
  18. 上汽董事长称不接受与华为合作自动驾驶;曝OPPO给离职员工补发年终奖,此前遭克扣;Google Play 将启用AAB格式应用...
  19. c语言程序能运行但屏幕不显示图片,c运行程序屏幕无显示!~~请高手指点!~~~...
  20. 订阅号如何获取用户基本信息?

热门文章

  1. junit常用注解详细说明
  2. Ribbon负载均衡策略、懒加载及饥饿加载
  3. Cisco Packet Tracer 6.0之IP地址分配
  4. C语言中双感叹号的作用
  5. iphone11返回上一级手势怎么设置_iPhone11怎么返回上一级-使用教程
  6. java等级考试怎么分,2020年9月全国计算机等级考试考前必看
  7. python+selenium实现自动化连接校园网
  8. java编写的媒体播放器_BlogJava: 用Java构造自己的媒体播放器
  9. SQL 解析原理和使用场景
  10. 用qemu模拟Intel x86平台实验环境 —— 概述