在Windows环境中利用Responder工具窃取NTLMv2哈希
在Windows环境中利用Responder工具窃取NTLMv2哈希
翻译自:https://github.com/incredibleindishell/Windows-AD-environment-related/tree/master/Responder
翻译:lipss
校对:看雪翻译小组 一壶葱茜
responder 下载地址:
该工具有向LLMNR和NBT-NS请求进行欺骗的能力。
LLMNR(Link-Local Multicast Name Resolution,链路本地多播名称解析)协议是一种基于DNS包格式的协议。它可以将主机名解析为IPv4和IPv6的IP地址。这样用户就可以直接使用主机名访问特定的主机和服务,而不用记忆对应的IP地址。该协议被广泛使用在Windows Vista/7/8/10操作系统中。
该协议的工作机制很简单。例如,计算机A和计算机B同处一个局域网中。当计算机A请求主机B时,先以广播形式发送一个包含请求的主机名的UDP包。主机B收到该UDP包后,以单播形式发送UDP的响应包给主机A。由于整个过程中,都是以UDP方式进行,主机A根本不能确认响应主机B是否为该主机名对应的主机。这就造成欺骗的可能。
假设我们已连接到Windows Active Directory环境,当网络中任何一台计算机尝试使用LLMNR或NBT-NS请求来解析目标计算机时,Responder假装为目标计算机。当受害者计算机尝试登录到攻击者计算机时,Responder就可以捕获受害者计算机用户的NTLMv2哈希。
文章基于例子讨论两种攻击方式。
- 1、捕获NTLMv2哈希并使用“Hashcat”密码破解工具破解。
- 2、使用Responder和Multirelay.py脚本执行中转NTLMv2哈希到“已禁用SMB签名”的计算机。如果中转成功,在目标计算机上将获得shell访问权限。
捕获NTLMv2哈希值
通过使用参数-I指定机器的以太网接口来运行Responder,这个例子中使用的接口是eth0。
python Responder.py -I <Interface_card_name>
命令是:
python Responder.py -I eth0

Responder监听模式将是这样的

如果网络中的任何用户试图访问共享哪个机器没有IP或用户类型共享名称不正确,该机器将触发LLMNR请求到网络,Responder将通过说我是那台机器来回答该请求,请提供给我NTLMv2哈希并访问资源。

这里,用户“box1”(机器IP 192.168.56.101)正在尝试访问名称为“pwned68”的共享。当机器触发LLMNR请求时,Responder响应该请求并从域“DC2”捕获用户“box1”的NTLMv2哈希值。
现在,我们需要破解此哈希以获取纯文本密码。“Hashcat”是执行最快的hashcracking的绝佳工具。它支持CPU / GPU散列破解,并支持多种哈希格式。
Hahcat官方下载网站是:
- <https://hashcat.net/hashcat/>
下载一个好的密码字典,这里有<https://hashkiller.co.uk/downloads.aspx>
运行hashcat并等待,如果运气好的话。

获取纯文本密码后,我们可以使用此密码登录Windows域上的其他计算机,以查看我们是否可以在其他计算机上访问任何敏感信息。
在网络中的计算机上访问Shell
Responder还有一些其他工具允许攻击者通过转发NTLMv2 哈希来执行攻击,例如获取对网络中机器的shell访问权限。这里条件是,如果捕获哈希的用户在目标机器上具有“administrator”访问权限,则捕获的哈希可以帮助我们获得shell访问。普通域用户哈希不会帮助我们在机器上获得shell访问权限。在我给出的案例中,其中一个管理员用户试图访问一个不存在的共享,Responder投毒成功,然后Multirelay.py脚本使用捕获的NTLMv2哈希登录到Windows域网络的一部分机器。
设置此项,在“Responder.conf”文件中进行更改。 打开Responder.conf文件并将SMB和HTTP的值设置为“Off”,以便Responder不捕获哈希值,但Multirelay.py执行任务。

现在运行RunFinger.py脚本来识别网络中已将“SMB signing”设置为“False”的HOST计算机,因为我们只能对那些没有将“SMB signing”设置为“True”的计算机执行攻击。该脚本位于Responder的”tools“目录中,首先进入该目录。RunFinger.py脚本需要IP范围,它将检查活动主机是否启用了SMB签名。运行RunFinger.py脚本的命令是:
- python RunFinger.py -i IP_Range
Example:
- python RunFinger.py -i 192.168.56.100-200

脚本的输出将是这样的:

在我的例子里,只有2台机器在线。一个是域控制器机器,第二个是“Windows 7”,它是Windows域的一部分。具有IP 192.168.56.101的计算机未启用SMB签名。因此,我们可以尝试对这台机器执行NTLMv2哈希转发。在发现机器之后,让我们设置responder和multirelay.py脚本以获得未启用“SMB signing”的机器上的访问权限。运行下面提到的命令,在2个不同的终端中启动Responder和Multirelay.py脚本
在第一个终端中,运行responder
python Responder.py -I <interface_card>
在第二个终端中,运行Multirelay.py
python MultiRelay.py -t <target_machine_IP> -u ALL

这两个脚本都是这样的:

如果Domain中的任意管理员用户尝试访问不存在的/拼写错误的共享,Responder将向被响应的机器投毒(发出伪造请求)。Multirelay.py将通过捕获NTLMv2哈希完成剩余的工作,并将它们关联到目标机器。成功的中转将让我们在目标机器上访问shell(在我的例子中是Windows 7)

一旦我们获得shell访问权限,我们也可以执行其他工作,其中一个正在加载“Mimikatz”,它可以执行诸如转储当前登录用户的纯文本密码/哈希或从SAM文件中获取本地用户哈希等任务。

== [[Greetz to]] == -
zero cool, code breaker ica, root_devil, google_warrior, INX_r0ot,Darkwolf indishell, Baba, Silent poison India, Magnum sniper, ethicalnoob Indishell, Local root indishell, Irfninja indishell, Reborn India, L0rd Crus4d3r, cool toad, Hackuin, Alicks, Gujjar PCP, Bikash, Dinelson Amine, Th3 D3str0yer, SKSking, rad paul, Godzila, mike waals, zoo zoo, cyber warrior, shafoon, Rehan manzoor, cyber gladiator, 7he Cre4t0r, Cyber Ace, Golden boy INDIA, Ketan Singh, Yash, Aneesh Dogra, AR AR, saad abbasi, hero, Minhal Mehdi, Raj bhai ji, Hacking queen, lovetherisk, D2 and rest of TEAM INDISHELL
--[[Love to]]--
My Father,Ritu Tomer Rathi,cold fire hacker, Mannu, ViKi, Ashu bhai ji, Soldier Of God, Bhuppi, Gujjar PCP, rafay baloch Mohit, Ffe, Ashish, Shardhanand, Budhaoo, Jagriti, Salty, Hacker fantastic, Jennifer Arcuri, Don(Deepika kaushik) and all lovely people around the world ❤️
在Windows环境中利用Responder工具窃取NTLMv2哈希的更多相关文章
- windows环境中利用NMake工具编译连接C++源代码
这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章. 最近在写代码的时候,需要通过命令的方式来执行生 ...
- Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息
Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器 ...
- Windows环境下利用github快速配置git环境
在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的win ...
- 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...
- 如何在windows环境中搭建apache+subversion(ZT)
我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...
- 在VS2103环境中集成Doxygen工具
自己已将学习了两三次了吧,差不多这次该总结一下: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C.C++.Java.Objective-C和IDL语言,部分支持P ...
- Neo4j 第一篇:在Windows环境中安装Neo4j
图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...
- 番外篇1:在Windows环境中安装JDK
他山之石,可以攻玉!欢迎关注我的微信公众号 本文作为构建第一个Java程序的番外篇一,跟大家探讨下在Windows下怎么安装JDK.由于本人没有Mac,因此如果是Mac的同学,请自行百度哦! 读前预览 ...
- 在Windows环境中学习Linux
如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个 ...
随机推荐
- 《Gogoing》Alpha版使用说明
前言: Gogoing是由我们山药蛋团队利用课余时间,基于安卓安卓系统开发完成.该软件针对于我们大学生没有赚钱能力,却又渴望外面的世界,该软件的核心理念的是“穷”游.为当代的大学生提供一个景点推荐或者 ...
- Spark 实践——音乐推荐和 Audioscrobbler 数据集
本文基于<Spark 高级数据分析>第3章 用音乐推荐和Audioscrobbler数据 完整代码见 https://github.com/libaoquan95/aasPractice/ ...
- Week1个人作业
关于教材的疑问 阅读的教材<构建之法> 1第一章中提到:“软件企业=软件+商业模式”,这样的结构是否过于简单,尤其是在互联网+时代 2.在进行单元测试的时候,怎么做到100%覆盖 3.个人 ...
- python + opencv 环境配置
1.python 2.7.10 2.numpy 1.8.1 3.opencv2.4.8 4.OpenCV目录 ...\opencv\build\python\2.7" 下 "cv2 ...
- [转帖]Windows10七大版本区别在哪?
Windows10七大版本区别在哪? http://os.51cto.com/art/201804/570132.htm 一.Windows10家庭版 对于绝大多数用户来说,最后可能获得的应该就是Wi ...
- php 中的 “!=”和“!==”
!==是指绝对不等于,比如,$a = 2, $b=”2″ 那么,$a!==$b成立,可是$a!=$b不成立:
- 一本通1639Biorhythms
1639:Biorhythms 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 原题来自:POJ 1006 人生来就有三个生理周期,分别为体力.感情和智力周期 ...
- Eclipse Job
Job可以我们基于Eclipse的Java程序中,我们有很多种方式提供多任务的实现.熟悉Java的朋友立即会想到Java的Thread类,这是Java中使 用最多的一个实现多任务的类.Eclipse平 ...
- 【刷题】BZOJ 4946 [Noi2017]蔬菜
Description http://www.lydsy.com/JudgeOnline/upload/Noi2017D2.pdf Solution 网上大部分都是并查集写法,但是有大神写了非并查集写 ...
- 【Luogu4609】建筑师(第一类斯特林数,组合数学)
[Luogu4609]建筑师(组合数学) 题面 洛谷 题解 首先发现整个数组一定被最高值切成左右两半,因此除去最高值之后在左右分开考虑. 考虑一个暴力\(dp\) ,设\(f[i][j]\)表示用了\ ...