在内网渗透测试中,我们可以欺骗攻击网络配置和服务。这种攻击方式主要针对ARP(地址解析协议)、DHCP(动态主机配置协议)和DNS服务器配置不当造成的安全隐患。还有一种比较常见的攻击方式就是中间人攻击,他能够使我们通过监控网络流量获取敏感信息。我们可以对网络设备采取安全措施来预防攻击。但是,由于一些协议固有的弱点来进行攻击,本文就是利用LLMNR NetBIOS和WPAD机制来进行中间人攻击。
下面我们先了解一下DNS的查询过程,如图所示: 下面是在内网中dns查询的几个关键步骤: 1 文件系统中的hosts文件 配置文件地址:C:\Windows\System32\drivers\etc2 本地DNS缓存 CMD命令:ipconfig /displaydns3 向dns服务器发送dns请求 4 发送LLMNR查询 在DNS查询失败的时候使用5 发送NetBIOS-NS查询 它工作在OSI模型的会话层。NetBIOS是一个API不是一个windows操作系统之间的协议。计算机的NetBIOS名字跟电脑名字是一样的LLMNR和NetBIOS-NS是什么LLMNR (本地链路多播名称解析)和NetBIOS-NS(名称服务)是windows用于名称解析和沟通的两个组件。LLMNR是在windows vista之后版本中出现的,也算是NetBIOS-NS的延续。 LLMNR为使用IPv4、IPv6或者同时使用这两种地址的设备提供了点对点名称解析服务,可以让同一子网中的IPv4和IPv6设备不需要WINS或DNS服务器就可以解析对方的名称,而这个功能是WINS和DNS都无法完全提供的。虽然WINS可以为IPv4提供客户端-服务器以及点对点名称解析服务,不过并不支持IPv6地址。至于DNS,虽然支持IPv4和IPv6地址,但必须通过专门的服务器才能提供名称解析服务。LLMNR通过在DNS名称解析服务不可用时提供解析服务,弥补了DNS的不足。 LLMNR 协议经常在dns服务器解析不到的时候才会用到且使用的服务端口是5355 TCP/UDP,默认使用的多播服务IP地址是IPv4:224.0.0.252以及IPv6:FF02:0:0:0:0:0:1:3 比如:在内网中ping test.local,首先会去dns服务器查询,在dns服务器未找到的时候,这时查询请求就会重定向到LLMNR协议。 下图是查询时捕获的数据包: 而NetBIOS是本地网络的系统API,它有三种NetBIOS服务: 1 域名服务,使用137端口用于域名注册和域名解析 2 数据分发服务,使用138端口连接通信 3 会话服务,使用139端口面向连接通信 在dns查询失败后,LLMNR会调用NetBIOS,生成一个NetBIOS-NS数据包然后使用广播的方式发送出去。 这个看似没什么坏处的协议,我们可以利用其进行中间人攻击从而获取敏感数据,如用户名,hash等。 测试举例攻击场景模拟实现方式推荐工具: 1 https://github.com/SpiderLabs/Responder 2 msf -- https://www.rapid7.com/db/module ... lmnr/llmnr_response 3 https://github.com/byt3bl33d3r/MITMf 简要步骤1 使用Responder指定网络接口并开始监听流量 2 我们尝试连接\\filesrvr (一个不存在的主机名) 3 获取SMB-NTLMv2的哈希 4 我们已经知道了NTLMv2的哈希,这时我们既可以暴力破解也可以哈希传递来利用了。 利用WPAD什么是WPAD通常公司内网为了安全,不允许员工直接访问外网的服务,但是允许公司员工通过web代理访问外网资源,但是对于员工来说设置代理又是个麻烦事,所以通常公司使用wpad自动配置代理。 WPAD(web代理自动发现协议-Web Proxy Auto-Discovery Protocol),是客户端通过DHCP或DNS协议探测代理服务器配置脚本url的一种方式。当IE定位脚本并将脚本下载到本地之后,就可以通过该脚本来为不同的url选择相应的代理服务器。目前主流浏览器一般都支持WPAD。 WPAD是如何工作的客户端想用访问wpad.dat配置代理,在DHCP服务器没有配置wpad的情况下,回去查找以wpad命名的服务器然后寻找对应的文件,然后进行以下步骤: 1 如果DHCP服务器配置了wpad,那么直接从DHCP服务器获取wpad.dat文件然后跳到第4步,否者执行下一步 2 向dns服务器发送请求查找wpad.test.local,然后获取代理配置文件,如果成功跳到第4步,否则执行下一步 3 发送LLMNR查询wpad.test.local,如果成功跳到第4步,不成功代理设置失败 4 下载wpad.dat并且配置 在第一步中使用dns污染攻击到第二步,第二步也可以使用dns污染攻击,这种攻击模式是可以通过配置网络设备去预防的。当通过LLMNR进行查询时,该请求将通过广播发送到网络中的每个客户端。 在这一点上,攻击者可以像wpad服务器那样将他的wpad.dat文件发送给客户端。 重要的是WPAD协议内置于Windows操作系统中。 此配置可以在Internet Explorer浏览器的LAN设置部分中看到。如下图; 利用WPADResponder是中间人攻击很好的实用工具,Responder提供假的WPAD服务器并响应客户端的WPAD名称解析。然后提供假的wpad.dat下载。Responder创建一个身份验证程序,并要求客户端填写域中的账户密码。这样就可以获取到员工的帐号密码。 下面是一个wpad中间人攻击的拓扑图: 利用Responder的步骤: 1 提供假的http服务器并等待帐号密码 2 Responder伪造的登录框 3 获取的明文如下 缓解WPAD攻击的方法1 在DNS服务器上指定wpad服务器的地址 2 使用组策略设置禁止所有Internet浏览器上的“自动检测代理设置”。
from:https://mp.weixin.qq.com/s/ij4olS8GrYr7L-4LFGpQxg
|