NTLM协议原理分析
LM Hash 和 NTLM Hash
windows用户的密码以哈希的形式保存在SAM文件中“%SystemRoot%\system32\config\SAM”。域用户的密码以哈希的形式保存在域控的 NTDS.dit 文件中。 密码的哈希值格式如下
用域名:uid:LM哈希:NTLM哈希:::
由于LM Hash 有安全缺陷,所以Windows Vista 和 Windows Server 2008开始,默认情况下只存储 NTLM Hash,LM Hash 将不再存储。
Windows认证分类
而NTLM中继(NTLM Relay)是指在NTLM认证过程中设置中间人对HTLM认证的请求截获并转发的一种攻击行为。
在 Windows 中,最常见的两种认证体系为 NTLM 认证和 Kerberos 认证。NTLM认证就是利用 NTLM Hash 进行的认证,可以分为本地认证和网络认证。
NTLM本地认证
windows用户的密码保存在SAM文件中“%SystemRoot%\system32\config\SAM”。计算机启动时,操作系统会让winlogon.exe 程序显示登录界面(输入框),当你输入用户密码进行登录时,lsass.exe会将你输入的明文密码加密成NLTM哈希,再sam文件中的哈希进行对比,一致则登陆成功
NTLM网络认证
NTLM网络认证,即可用于工作组的认证,也可用于域环境。NTLM 有 NTLMv1 、NTLMv2 、NTLMsession v2 三个版本,目前使用最多的是NTLMv2版本。比如当我们访问同一局域网的一台主机上的SMB共享时需提供凭证后才能成功进行访问,这就涉及到NTLM网站认证。
下面介绍NTLM网络认证的原理及利用方式
NTLM认证机制
NTLM(NT LAN Manager)是一套安全协议,利用NTLM哈希进行认证。NTLM认证是一种基于Challenge/Response的验证协议
NTLM在工作组环境的认证
N在认证过程中会发送以下三种类型的消息:
TYPE 1 协商:双方确定传输协议的版本、明文用户名。
TYPE 2 质询:生成Challenge
TYPE 3 身份验证:发送Response
NTLM版本
协商会确认NTLM版本,分为:NTLM v1、NTLM v2、NTLM v2 Session,目前使用最多的是NTLM v2。NTLMv1与NTLM v2最显著的区别就是Challenge与加密算法不同,共同点就是加密的原料都是NTLM Hash,NTLM v1的Challenge有8位,NTLM v2的Challenge为16位;NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。
比如,局域网的两台主机A和主机B,暂且将主机A称为client,主机B称为server
工作组中:
当客户端要访问服务器上某个受保护的服务时,需要输入服务器的用户名和密码进行验证。此时客户端会在本地缓存一份服务器密码的NTLM hash,然后向服务器发送协商消息。
服务器收到客户端的协商信息后,生成并回复质询消息。该消息中包含了一个由服务端生成的16位随机值challenge,服务器也会在本地缓存该值。
客户端收到质询消息后,会使用步骤1中缓存的服务器的NTLM hash对Challenge进行加密生成Response,接着再生成Net-NTLM hash=Challenge+Response+用户名等,再将Net-NTLM hash封装到身份验证消息中发往服务器。
服务器在收到身份验证消息后,用自己密码的NTLM hash对Challenge进行加密生成Response2,并比较Response2与Response是否一致。如果一致,就证明客户端掌握了服务器的密码,认证成功,否则认证失败。
NTLM在域环境的认证
在域环境中,由于所有域用户的哈希值都 存储在域控制器的NTDS.dit中,服务器本身无法计算Response消息,因此需要与域控建立一个安全通道,并通过域控完成最后的认证流程。前三个步骤同工作组环境的认证
当域用户输入自己的账号和密码登录客户端主机时,客户端会将用户输入的密码转换为NTLM hash并缓存。当用户想访问域内某台服务器上的资源时,客户端会向服务器发送TYPE1 Negotiate消息
同NTLM在工作组环境中的认证
同NTLM在工作组环境中的认证
服务器收到客户端发来的TYPE 3消息后,会将消息通过 Netlogon协议转发给域控制器。
域控制器根据TYPE 3消息中的用户名获取该用户名的NTLM hash,用NTLM hash对原始的Challenge进行加密并生成Response,然后将其与TYPE 3消息中Response对比。如果一致,就证明客户端掌握了服务器密码,认证成功,否则认证失败。
服务器根据域控返回的验证结果,对客户端进行相应的回复。
NTLM协议抓包分析
实验环境工作组
主机A:192.168.125.129
主机B:192.168.125.130
主机A访问主机B的共享并成功认证时
net use \\192.168.125.130\c$ win7.com /user:administrator
可以看到整个过程分为4步
Session Setup Request, NTLMSSP_NEGOTIATE 协商
Session Setup Response, Error: STATUS_MORE_PROCESSING_REQUIRED, NTLMSSP_CHALLENGE 返回challenge
Session Setup Request, NTLMSSP_AUTH, User: \administrator 提交ntlm hash
Session Setup Response 返回认证成功
当认证失败时,整个认证过程也是4步,前三步和认证成功的过程一致,只有最后一步不一致
Session Setup Request, NTLMSSP_NEGOTIATE 协商
Session Setup Response, Error: STATUS_MORE_PROCESSING_REQUIRED, NTLMSSP_CHALLENGE 返回challenge
Session Setup Request, NTLMSSP_AUTH, User: \administrator 提交ntlm hash
Session Setup Response, Error: STATUS_LOGIN_FAILURE 返回认证失败
在认证的整个过程中,不过认证成功还是失败,都会返回challenge,前面的认证原理已经讲过。
那返回的challenge在哪里了?
如下,NTLM Server Challenge: 745d99992196a1b2,这个16位长的字符串就是challenge
Net-NTLM hash组成
Net-NTLM hash v2的格式如下
username::domain:challenge:HMAC-MD5:blob
username和domain如下所示,这里domain为NULL即为空
challenge
HMAC-MD5对应数据包中的NTProofStr
blob对应NTLM Response值中去掉NTProofStr值后剩余的后半部分,如下
所以完整的NTLMv2数据为如下,此数据为Net-NTLM hash。
username::domain:challenge:HMAC-MD5:blob
administrator:::de80d8c98d613290:2d10d365458e1d0477882e2f9ad26d12:010100000000000065bd67e73550d90172b7652a991cd25c0000000002001000410044004d0049004e002d005000430001001000410044004d0049004e002d005000430004001000610064006d0069006e002d005000430003001000610064006d0069006e002d00500043000700080065bd67e73550d90106000400020000000800300030000000000000000000000000300000a1eda9cbf6aefc8eb7eb43b5db4c6f011f5a8dbb4fd5bfa1192814b27b579fc70a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100320035002e00310033003000000000000000000000000000
然后使用hashcat即可破解
把hash放进hash.txt中,执行如下
hashcat.exe -m 5600 hash.txt pass.txt
获取出明文密码win7.com
Net-NTLM hash的利用
实战中可以通过中间人等方式截获客户端的认证请求,并获取Net-NTLM hash。红队人员可以选择对Net-NTLM hash进行暴力破解并获取客户端用户的明文密码。除了爆破外,还有另外一种利用方法,即NTLM Relay。
相关文章:
NTLM协议原理分析
LM Hash 和 NTLM Hashwindows用户的密码以哈希的形式保存在SAM文件中“%SystemRoot%\system32\config\SAM”。域用户的密码以哈希的形式保存在域控的 NTDS.dit 文件中。 密码的哈希值格式如下用域名:uid:LM哈希:NTLM哈希:::由于LM Hash 有安全缺陷,所以Windows Vist…...
SOC计算方法:电流积分+开路电压
最近小猿在学习soc的计算方法,soc的估算方法大致有五种:电流积分法、开路电压法、阻抗法、智能估算法、状态观测器。今天先给大家介绍前两种方法。 什么是SOC 电池的状态(State of Charge,SOC)是电池能够提供的电荷总…...
linux mysql启动报错处理方案
启动命令: systemctl start mysqld 一、关闭selinux setenforce 0 二、...
Qt配置VS的编译环境(以MSVC2015 64bit为例)
目录 一、原因 二、VS2015安装 三、配置套件(Kits) 一、原因 很多时候,由于VS版本切换,需要从高版本切换到低版本,或者从低版本升级到高版本,例如VS2019到VS2015,或者VS2010到VS2015。 以VS2…...
iOS 9.3.5越狱环境安装配置
前言 家里有几个iOS设备,iTouch,iPad,都老旧了,正好弄来搭建开发环境。 目标:在iOS越狱环境上搭建基本的软件,将它变成小型Unix服务器和一个能开发iOS应用的环境。 什么是iOS越狱(iOS Jailbre…...
mac电脑解决Error: command failed: npm install --loglevel error --legacy-peer-deps
使用vue create xxx创建vue3项目的时候报错。 解决步骤: 1.sudo npm cache clean --force 2.再次创建就可以成功 补充:网上搜到很多方法,都尝试失败,因为遇到需要打开.vuerc,.npmrc的情况,记录一下怎样找到文件 1. 尝…...
Java中对象的finalization机制
本篇文章我们详细介绍Java中对象的finalization机制,以及怎么使用finalize()方法,将即将被回收的对象,拉回来。1、finalization机制Java语言提供了对象终止(finalization)机制来允许开发人员提供对象被销毁之前的自定义…...
proteus光敏电阻电路的arduino仿真
虽然Fritzing0.9.10有了仿真的功能,但都是测试板,能够仿真的很有限,所以还是要借助proteus来仿真。这里,我们来实先一个简单的光明电阻的仿真电路。本篇博文,重点演示proteus仿真arduino光敏电阻,arduino采…...
MySql面试精选—慢查询如何优化
目录 1、如何界定是慢查询SQL 2、如何快速定位低效率SQL 1)查看慢SQL语句...
一款OutLook信息收集工具
OutLook 这是一款burp插件,用于Outlook用户信息收集,在已登录Outlook账号后,可以使用该 插件自动爬取所有联系人的信息 安装 在burp扩展面板加载jar即可 功能介绍 All Users 加载插件后,进入Outlook联系人面板,…...
java多线程(二一)并发协作生产者消费者设计模式
1.两个线程一个生产者一个消费者 需求情景 两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。 涉及问题 同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加…...
Win YAPI + Jenkins 实现接口自动化测试
自动化测试 传统的接口自动化测试成本高,大量的项目没有使用自动化测试保证接口的质量,仅仅依靠手动测试,是非常不可靠和容易出错的。 为了解决这个问题,使用YAPI接口自动化测试功能,只需要配置每个接口的入参和对 RE…...
【计算机视觉 自然语言处理】什么是多模态?
文章目录一、多模态的定义二、多模态的任务2.1 VQA(Visual Question Answering)视觉问答2.2 Image Caption 图像字幕2.3 Referring Expression Comprehension 指代表达2.4 Visual Dialogue 视觉对话2.5 VCR (Visual Commonsense Reasoning) 视觉常识推理…...
2023百度面试真题
【百度】面试真题: 1、SpingBoot 也有定时任务?是什么注解? 在 SpringBoot 中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的Scheduled 注解,另一个则是使用第三方框架 Quartz。 使用 Spring 中的 Sch…...
MAC(m1)-VMWare Fushion安装Windows11
镜像下载地址:登录 账号:11360XXXXX@qq.com 密码:ZXXXSXX19XX 参考:VMware fusion虚拟机安装Win10系统的详细教程_IT大力水手的博客-CSDN博客_vmware fusion安装 uefi和bios有什么区别?uefi和bios的区别详细分析 _ 电脑系统城 设置密码...
HTML与CSS简介
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 HTML与CSS简介前言一、HTML简单梳理1.HTML文件的书写规范2.常用标签介绍二、CSS简单梳理1、CSS选择器前言 页面由三部分内容组成!分别是内容(结构&am…...
基于Java开发幼儿园管理系统项目教程(附源码)
文章目录你将会学到:适合人群:课程目标:课程简介:软件架构开发环境运行截图你将会学到: 掌握市面上主流框架SpringMvc、Spring、MyBatis、SpringBoot实战开发技巧提升学员代码编码能力和实战项目编码经验熟悉企业级项…...
第一次运行vue遇到的问题
1.vue无法识别https://blog.csdn.net/weixin_61634408/article/details/1265897982.yarn serve问题https://blog.csdn.net/fangxuan1509/article/details/104711690/3.关闭控制台报错检查(每次vue-rounter必须用)vue.config,js,的module.exports 中添加l…...
Clickhouse数据去重
1. Hive去重 先以两个简单的sql启发我们的话题 select count(distinct id)from order_combine;select count(id) from (select id from order_combine group by id ) t;从执行日志当中我们可以看到二者的差异(只摘取关键部分) # distinctStage-Stage…...
精讲typescript从入门到入土
前言 TypeScript是一种由Microsoft开发的编程语言,它是JavaScript的超集,意味着它可以编写与JavaScript完全兼容的代码,并且可以扩展其功能。TypeScript的主要目标是提供类型安全性和更好的可维护性,使得开发大型复杂应用程序更加…...
typora-beta-0.11.18版本又提示过期的解决方案
很实用,所以照搬一下下面的作者的回答,省得以后再找~~~ 知乎的作者来源如下: 作者:吴小皓 链接:typora打开报错:This beta version of Typora is expired, please download and install a newer version …...
WebUI自动化测试框架搭建(二十)-优化:测试对象无法连接或出现异常时,请更新本文作为测试对象
(二十)-测试对象无法连接或出现异常时,请更新本文作为测试对象 1 测试对象说明2 源代码下载3 学生管理系统配置安装3.1 解压打开3.2 安装依赖3.3 安装mysql数据库3.4 修改项目数据库配置3.4 安装数据库连接工具Navicat3.5 导入数据库脚本4 运行学生管理系统5 系统查看1 测试…...
【FATE联邦学习】standalone版Fateboard修改配置
背景&做法 很多其他程序(比如vscode的code server)也会使用这个 127 0 0 1:8080 socket进行通信,这样就没办法远程用vscode去开发了,所以需要修改下Fateboard的socket配置。官方文档中也给出了如何修改配置 The default data…...
分享一个应急响应web日志:access.log文件分析小工具
有时做应急响应的时候,需要提取web日志如access.log日志文件来分析系统遭受攻击的具体原因,由于开源的工具并不是很好用,所以自己用Python3写了一个简单的日志分析工具。先介绍一下access.log日志access.log日志文件记录了所有目标对Web服务器…...
windows注册服务非常实用
方式一:使用Windows自带的sc命令 1、使用管理员权限打开cmd窗口 2、注册服务命令: sc create 服务名 binpath 程序所在路径 type own start auto displayname 服务显示名称 sc create redis binpath d:\tools\redis-x64-5.0.14\redis-server.exe type …...
蓝桥dfs专题
1、dfs 路径打印 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n x n 个方格。【如图1.png】所示。 按习俗,骑士要从西北角走到东南角。 可以横向或纵向移动,但不能…...
[ 网络 ] 应用层协议——HTTPS协议原理
目录 1.HTTPS是什么 2.加密技术 2.1什么是加密 2.2为什么要加密 2.3加密处理防止被窃听 3.常见的加密方式 对称加密 非对称加密 4.数据摘要&&数据指纹 5.数字签名 6.HTTPS的工作过程探究 方案1——只是用对称加密 方案2——只进行非对称加密 方案3——双方…...
http协议如何操作
、HTTP协议(超文本传输协议) 1.1、http协议是一个基于“请求与响应”模式的、无状态的应用层协议。 http协议采用URL作为定位网络资源的标识。 1.2、URL格式 http://host[:port][path] host:合法的Internet主机域名或IP地址 port:端口号…...
ESP Insights 系列文章
ESP Insights 系列 #1 | 远程查看设备信息,快速解决固件问题 ESP Insights 是一个可远程查看设备固件运行状态和日志的平台,能够帮助开发人员快速定位并解决固件问题。 ESP Insights 系列 #2 | 新增功能 最新版本优化了用户界面、修复了系统稳定性&am…...
如何提高爬虫工作效率
单进程单线程爬取目标网站太过缓慢,这个只是针对新手来说非常友好,只适合爬取小规模项目,如果遇到大型项目就不得不考虑多线程、线程池、进程池以及协程等问题。那么我们该如何提升工作效率降低成本? 学习之前首先要对线程&#…...
邢台企业做网站的公司/网络推广费用高吗
3q大战硝烟未尽,其实千千万万浏览器,大多数都是靠user agent来识别区分的。chrome提供了方便的参数,可以直接定义user agent,这样,就使pc上模拟手机浏览器变的更方便了。 谷歌Android:chrome.exe --user-ag…...
最早的做团购的网站/深圳百度竞价托管公司
今天做一个OSPF里面的DR/BDR的选举过程的实验 拓扑如下: 每台设备的配置: R1: interface Ethernet0/0 ip address 192.168.1.1 255.255.255.0 ip ospf priority 10 //配置接口的优先级为10 router ospf 1 router-id 1.1.1.1 networ…...
wordpress的标签设置/七台河网站seo
尽管前面介绍的几种动画会让觉得很好玩了,但是,不知道你是否发现,在前面说到的一系列XXXAnimation中,都有一个共同点,那就是仅仅针对两个值的目标值之间产生动画,如果使用By,将在原值和加上By后…...
怎么样模仿一个网站做简历/网络宣传策划方案
题意:给定一个n进制的竖式计算(n位数n位数n位数),相同字母表示相同的数,不同字母表示不同的数(填数游戏),保证有且仅有唯一解。 做法1:暴力虫食算暴力 做法2࿱…...
网站建设与运营推广的回报材料/中国十大教育培训机构有哪些
2019独角兽企业重金招聘Python工程师标准>>> 注意事项 1.官方申明docker还是在开发完善中,不建议在运营的产品中使用它,但是现在离正式版越来越接近了,请关注我们的博客http://blog.docker.io/2013/08/getting-to-docker-1-0/ 2.系…...
非商业组织的网站风格/代写文案的软件
1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把的时间,利用最…...