在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哈希的更多相关文章

  1. windows环境中利用NMake工具编译连接C++源代码

    这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章. 最近在写代码的时候,需要通过命令的方式来执行生 ...

  2. Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息

    Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器 ...

  3. Windows环境下利用github快速配置git环境

    在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的win ...

  4. 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析

    问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...

  5. 如何在windows环境中搭建apache+subversion(ZT)

    我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...

  6. 在VS2103环境中集成Doxygen工具

    自己已将学习了两三次了吧,差不多这次该总结一下: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C.C++.Java.Objective-C和IDL语言,部分支持P ...

  7. Neo4j 第一篇:在Windows环境中安装Neo4j

    图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...

  8. 番外篇1:在Windows环境中安装JDK

    他山之石,可以攻玉!欢迎关注我的微信公众号 本文作为构建第一个Java程序的番外篇一,跟大家探讨下在Windows下怎么安装JDK.由于本人没有Mac,因此如果是Mac的同学,请自行百度哦! 读前预览 ...

  9. 在Windows环境中学习Linux

    如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个 ...

随机推荐

  1. centos 64位 下hadoop-2.7.2 下编译

    centos 64位 下hadoop-2.7.2 下编译 由于机器安装的是centos 6.7 64位 系统  从hadoop中下载是32位  hadoop 依赖的的库是libhadoop.so 是3 ...

  2. final发布评论Ⅱ

    奋斗吧兄弟:奋斗吧兄弟团队提供了草原.水域.田地三种环境可以进行选择.功能如下:添加自定义生物功能可以增加生物种类,但是无法设置捕食关系,这里希望想办法完善.生物除了图片方式以外,还可以以文字的方式展 ...

  3. C语言入门:01.C语言概述

    一.计算机和软件常识 1.计算机运行原理 (1)硬件基本组成:硬盘.内存.CPU (2)个部件之间的运作协调(下图)

  4. meta-inf文件夹以及MANIFEST.MF文件的作用

    meta-inf相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序.扩展程序.类加载器和服务 manifest.mf文件,在用jar打包时自动生成的. META-I ...

  5. 常用的cpl 命令 运行直接打开控制台的简单方法

    转载百度百科   工作中处理 windows机器 有时候 打开 网路修改ip地址特别繁琐,所以找了下 快速打开一些简单的控制台 能提高工作效率.   (Control Panel extension) ...

  6. 【转】Mysql事务,并发问题,锁机制

    转自:http://www.cnblogs.com/fidelQuan/p/4549068.html 1.什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID,4个特点. 原子性:要不全部成 ...

  7. div文本垂直居中(div text vertical aligan)

    .box{ width: 135px;height: 84px;display: block; overflow: hidden; } .container { background:darkcyan ...

  8. c++/ boost 库常见错误及解决方法总结

    1. error LNK2019: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::sys ...

  9. logstash获取日志,时间戳相差8小时

    背景: logstash版本:2.4.9     由于logstash在获取时区的时候,默认获取的是UTC默认时间,同时elasticsearch在创建索引的时候,统一使用UTC时间,因此实际上在创建 ...

  10. Java线程总结---第一天

    线程和进程各自有什么区别和优劣: 进程是资源分配的最小单位,线程是程序执行的最小单位 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段.堆栈段和数据段,这种操 ...