在 Windows 环境中使用 Responder 窃取 NTLMv2 哈希并利用
Responder工具
Responder下载地址: https://github.com/lgandx/Responder
Responder工具可以污染LLMNR和NBT-NS请求。
首先假设连接到Windows活动目录环境(Windows Active directory),当网络上的设备尝试用LLMNR和NBT-NS请求来解析目的地机器时,Responder就会伪装成目的地机器。当受害者机器尝试登陆攻击者机器,responder就可以获取受害者机器用户的NTLMv2哈希值。
在demo攻击中,讨论了2种攻击。
- 获取NTLMv2哈希值,并使用Hashcat密码破解工具。
- 使用Responder和Multirelay.py脚本,脚本负责执行NTMLMv2哈希值中继到SMB签名未启用的机器上。如果中继成功,就可以访问目标机器。
获取NTLMv2哈希
运行Responder,用参数-l
指定机器的以太网接口,示例中是eth0
命令为:
python Responder.py -I <Interface_card_name>
比如
python Responder.py -I eth0
Responder监听模式:
如果网络上的用户需要访问没有IP或用户类型分析名的share,机器会触发到网络的LLMNR请求,responder会回答说它是该机器,访问该资源需要提供NTLMv2 hash。
这里,用户 box1(IP192.168.56.101
)尝试访问名为pwned68
的共享分区。当机器触发LLMNR请求时,Responder会响应该请求并从域名DC2获取用户box1的NTLMv2哈希值。
现在需要破解哈希值来获取明文密码。Hashcat是执行哈希破解最快的工具,支持CPU/GPU哈希破解和多种哈希格式。Hashcat官方下载地址为:https://hashcat.net/hashcat/ 。
密码词典下载地址:https://hashkiller.co.uk/downloads.aspx 。
在获取了明文密码后,就可以用该域名哎登陆Windows域名上的其他机器来尝试是否可以访问其他机器上的敏感信息。
获取shell访问权限
Responder是少有的可以通过中继NTLMv2哈希来获取网络中机器的shell访问权限。获取哈希值可以帮助攻击者获取shell访问权限。正常的Domain用户哈希并不能帮助获取shell访问权限。但admin用户尝试访问也有的share,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的范围来检查现有的HOSTS的SMB signing
是否启用。运行RunFinger.py
脚本的命令为:
python RunFinger.py -i IP_Range
示例:
python RunFinger.py -i 192.168.56.100-200
脚本输出结果:
这里只有3个机器。其中一个是域名控制器机器,另一个是Windows域中的Windows 7主机。IP为192.168.56.101
的机器SMB Signing
未启用。因此可以对该机器进行NTMLv2哈希中继攻击。在发现了这些机器后,可以设置responder和multirelay.py
脚本来访问SMB Signing
未启用的机器。运行下面的命令可以开启Responder和Multirelay.py:
在第一个终端上,开启responder:
python Responder.py -I <interface_card>
在第二个终端上,运行Multirelay.py
脚本:
python MultiRelay.py -t <target_machine_IP> -u ALL
两个脚本的动作如下:
域中的admin
用户会尝试访问不存在的share,responder会污染响应消息。Multirelay.py
会通过获取NTLMv2哈希值来完成其他动作,并与目标机器相关联。成功中继后就可以获取目标机器上的shell访问权限。
在获取shell权限后,就可以执行加载Mimikatz这样的动作了。
https://github.com/incredibleindishell/Windows-AD-environment-related/tree/master/Responder
在 Windows 环境中使用 Responder 窃取 NTLMv2 哈希并利用相关推荐
- 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)
离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...
- Microsoft Windows 环境中NLS_LANG的正确设置 (文档 ID 1577370.1)
Microsoft Windows 环境中NLS_LANG的正确设置 (文档 ID 1577370.1) 适用于: Oracle Database - Enterprise Edition - 版本 ...
- windows环境中,pm2不是内部或外部命令的解决方案
windows环境中,pm2下载成功后却显示不是内部或外部命令解决方法 一开始遇见这种情况很是头疼,百度了很多pm2下载成功却显示不是内部命令的原因,结果都不尽人意,没有解决:于是我就在想安装成功后不 ...
- Windows环境中运行.dll文件
Windows环境中运行.dll文件 安装dotnet-sdk 1.官网下载自己所需要的sdk版本https://dotnet.microsoft.com/zh-cn/download/dotnet ...
- windows环境中利用NMake工具编译连接C++源代码
这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章. 最近在写代码的时候,需要通过命令的方式来执行生 ...
- windows环境中安装php的redis扩展及ThinkPhp5使用redis缓存
1.windows环境安装php的redis扩展,请先查看当前php的环境,使用命令: echo phpinfo(); 查看当前PHP版本信息,我本地的是 PHP7.2 NTS VC15,所以我选择的 ...
- fmm3d在windows环境中的编译使用过程
本文章主要主要记录fmm3d在windows环境下的编译过程. fmm3d主要由make工具进行编译.由于原来的程序是在linux系统中运行的,因此在windows系统中,需要将对应的编译命令转换为w ...
- Neo4j 第一篇:在Windows环境中安装Neo4j
图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...
- Adaptec by PMC 8系列产品在Windows环境中的性能表现(一)
Adaptec RAID 81605ZQ vs.LSI MegaRAID 9361-8i -展示Windows环境中高原生端口数目带来的性能优势 简介 Adaptec 的8系列12Gb/s PC ...
最新文章
- OpenCV | OpenCV:sift,SURF 特征提取
- android 启动app过程,Android P APP冷启动过程全解析(之四)
- Spring Context 你真的懂了吗?
- UGUI的优点新UI系统四 开源
- Spring Boot微服务中Chaos Monkey的应用
- 课程第一天内容《基础交换 一 》
- c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast
- vue 扫码页面限制区域_Vue.js 单页面多路由区域操作的实例详解
- oracle 等待原因查找,oracle等待事件相关查询
- 国家网络安全事件应急预案,你需要知道哪些重点
- 人大金仓数据库sql语句_数据库SQL语句大全——最常用的SQL语句
- [转载] Python中NumPy简介及使用举例
- python论文参考文献5篇_毕业论文参考文献
- 政考网:怎样考取公务员上岸?
- 虚拟机没有显示ip地址
- 那些让我印象深刻的bug--05
- java.io.NotSerializableException错误解决方法
- Win10+Ubuntu18.04 双系统安装遇到的问题记录
- 前端文件下载兼容方案(兼容主流浏览器,包括IE与Safari)
- 【Linux】Nvidia显卡驱动安装教程