内网渗透(十九)之Windows协议认证和密码抓取-网络认证(基于挑战响应认证的NTLM协议)

news2024/9/24 9:26:15

系列文章第一章节之基础知识篇

内网渗透(一)之基础知识-内网渗透介绍和概述
内网渗透(二)之基础知识-工作组介绍
内网渗透(三)之基础知识-域环境的介绍和优点
内网渗透(四)之基础知识-搭建域环境
内网渗透(五)之基础知识-Active Directory活动目录介绍和使用
内网渗透(六)之基础知识-域中的权限划分和基本思想
内网渗透(七)之基础知识-企业常见安全域划分和结构
内网渗透(八)之基础知识-企业域中计算机分类和专业名

系列文章第二章节之内网信息收集篇

内网渗透(九)之内网信息收集-手动本地信息收集
内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息
内网渗透(十一)之内网信息收集-内网IP扫描和发现
内网渗透(十二)之内网信息收集-内网端口扫描和发现
内网渗透(十三)之内网信息收集-收集域环境中的基本信息
内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息
内网渗透(十五)之内网信息收集-域环境中定位域管理员
内网渗透(十六)之内网信息收集-powershell基础知识
内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位

系列文章第三章节之Windows协议认证和密码抓取篇

内网渗透(十八)之Windows协议认证和密码抓取-本地认证(NTML哈希和LM哈希)

注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!

Windows网络认证之基于挑战响应认证的NTLM协议

网络认证NTLM协议简介

在平时的测试中,经常会碰到处于工作组的计算机,处于工作组的计算机之间是无法建立一个可信的信托机构的,只能是点对点进行信息的传输。举个例子就是,主机A想要访问主机B上的资源,就要向主机B发送一个存在于主机B上的一个账户,主机B接收以后会在本地进行验证,如果验证成功,才会允许主机A进行相应的访问。

NTLM 协议是一种基于 挑战(Chalenge)/响应(Response) 认证机制,仅支持Windows的网络认证协议。

它主要分为协商、质询和验证三个步骤:

协商:这个是为了解决历史遗留问题,也就是为了向下兼容,双方先确定一下传输协议的版本等各种信息。

质询:这一步便是Chalenge/Response认证机制的关键之处,下面会介绍这里的步骤。

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

NTLM协议认证流程

认证成功

1、首先,client会向server发送一个username,这个username是存在于server上的一个用户

在这里插入图片描述
2、首先server会在本地查询是否存在这样的一个用户,如果存在,将会生成一个16位的随机字符,即Chalenge,然后用查询到的这个user的NTLM hash对Chalenge进行加密,生成Chalenge1,将Chalenge1存储在本地,并将Chalenge传给client。

在这里插入图片描述

3、当client接收到Chalenge时,将发送的username所对应的NTLM hash对Chalenge进行加密即Response,并Response发送给server。

在这里插入图片描述

4、server在收到Response后,将其与Chalenge1进行比较,如果相同,则验证成功

在这里插入图片描述

认证失败

1、首先,client会向server发送一个username,这个username是存在于server上的一个用户

在这里插入图片描述

2、当server接收到这个信息时,首先会在本地查询是否存在这样的一个用户,如果不存在,则直接返回认证失败

在这里插入图片描述

NTML协议v1和v2区别

NTLM V2协议,NTLMv1与NTLM v2最显著的区别就是Challenge与加密算法不同,共同点就是加密的原料都是NTLM Hash

NTLM v1的Challenge有8位,NTLM v1的主要加密算法是DES
NTLM v2的Challenge为16位,NTLMv2的主要加密算法是HMAC‐MD5

抓包分析

1、实验环境如下

机器名称IP地址账号密码
实验机器 (windows 10)192.168.41.132自己的
靶机(windows server 2008 )192.168.41.130kkk/Admin@123

2、windows 10 上 已经安装了 wireshark

在这里插入图片描述
3、使用如下命令进行远程连接,并且使用wireshark 包

net use \\192.168.41.130 /u:kkk Admin@123

在这里插入图片描述
4、前5个数据包中前四条是协商,第五个是认证的第一个数据包

在这里插入图片描述
5、第6个数据包就是返回chalenge挑战值

在这里插入图片描述
分析该数据包得到chalenge值 53fb7eb8d40cc777

在这里插入图片描述
6、第7个数据包就是返回response的数据包

在这里插入图片描述

rsponse数据如下:

3d00ee8a5618f85651098b8005883d5c0101000000000000f790f7af9b92d8019cba65f5e39a1ea90000000002000e00
42004d002d00320030003000380001000e0042004d002d00320030003000380004000e0042004d002d00320030003000
380003000e0042004d002d00320030003000380007000800f790f7af9b92d80106000400020000000800300030000000
0000000001000000002000009906b326309f0ba76eb46b2271795e5d12df73e87035391df48f0fad1ce073380a001000
000000000000000000000000000000000900260063006900660073002f003100390032002e003100360038002e003400
31002e003100330030000000000000000000

7、接下来得到NTLMv2 数据,NTLMv2格式如下:

username::domain:challenge:HMAC‐MD5:blob
username:对应数据包中 user name
domain:对应数据包中的 Domain name
HMAC‐MD5:对应数据包中的NTProofStr
blob:数据库包中rsponse去掉HMAC‐MD5的值

在这里插入图片描述
8、最终的到HTLNv2如下:

kkk:::53fb7eb8d40cc777:3d00ee8a5618f85651098b8005883d5c:0101000000000000f790f7af9b92d8019cba65f5
e39a1ea90000000002000e0042004d002d00320030003000380001000e0042004d002d00320030003000380004000e00
42004d002d00320030003000380003000e0042004d002d00320030003000380007000800f790f7af9b92d80106000400
0200000008003000300000000000000001000000002000009906b326309f0ba76eb46b2271795e5d12df73e87035391d
f48f0fad1ce073380a001000000000000000000000000000000000000900260063006900660073002f00310039003200
2e003100360038002e00340031002e003100330030000000000000000000

9、使用hashcat 破解密码

hashcat ‐m 5600
kkk:::53fb7eb8d40cc777:3d00ee8a5618f85651098b8005883d5c:0101000000000000f790f7af9b92d8019cba65f5
e39a1ea90000000002000e0042004d002d00320030003000380001000e0042004d002d00320030003000380004000e00
42004d002d00320030003000380003000e0042004d002d00320030003000380007000800f790f7af9b92d80106000400
0200000008003000300000000000000001000000002000009906b326309f0ba76eb46b2271795e5d12df73e87035391d
f48f0fad1ce073380a001000000000000000000000000000000000000900260063006900660073002f00310039003200
2e003100360038002e00340031002e003100330030000000000000000000 1.txt ‐‐force

10、使用hashcat破解得到密码

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

尚医通(十一)医院模拟系统接口

目录一、第三方医院系统简介及运行二、上传医院接口1、数据分析2、添加service接口3、添加repository接口4、添加controller接口5、添加帮助类6、图片base64说明7、base64码通过http传输问题三、查询医院接口1、添加service方法2、添加controller四、上传科室接口1、添加科室基…

C语言学习笔记(二): 简单的C程序设计

数据的表现形式 常量 在C语言中常量有以下几种: 整型常量: 0,-1,100实型常量: 小数形式(12.12);指数形式(12.1e312.110312.1\times 10^312.1103)字符常量: 普通字符(’a’,’Z’,’#’);转义字符(’\n’…

nacos 集群搭建

1、单节点nacos搭建 ------------------------> 跳转单节点搭建 2、nacos 集群 搭建 请注意本次演示在win上进行,在linux 或 k8s,过程类似 2.1 将nacos,copy成三份 2.2 修改nacos配置信息 如下图,需要修改两个配置文件&am…

ansible的部署与命令模块

目录 一、ansible的概述 1、ansible简介 2、ansible特点 3、官方网站 4、ansible的模块组成 5、ansible的工作机制 二、ansible部署 1、ansible的安装 三、ansible的命令行模块 1、command模块 2、shell模块 3、cron模块 4、user模块 5、group模块 6、copy模块 7…

千锋教育+计算机四级网络-计算机网络学习-03

目录 UDP编程准备 字节序概述 如何判断自己主机上的大小端方式 大小端重点 大小端所需函数 htonl函数 ntohl函数 htons函数 ntohs函数 地址转换函数 inet_pton函数 inet_ntop函数 UDP编程准备 字节序概述 字节序概念 是指多字节数据的存储顺序,一个字节是…

浏览器缓存是如何提升网站访问速度的

提升速度,降低负载 浏览器访问一个页面时,会请求加载HTML、CSS和JS等静态资源,并把这些内容渲染到屏幕上。 对浏览器来说,如果页面没有更新,每次都去请求服务器是没有必要的。所以,把下载的资源缓存起来&…

快速傅里叶算法(FFT)快在哪里?

目录 前言 1、DFT算法 2、FFT算法 2.1 分类 2.2 以基2 DIT(时间抽取) FFT 算法为例 2.2.1 一次分解 2.2.2 多次分解 参考 前言 对信号分析的过程中,为了能换一个角度观察问题,很多时候需要把时域信号波形变换到频域进行分…

有什么免费好用的全球天气api?

简单介绍几个,选你觉得合适的就行。(下面推荐的国内外的都有,访问速度会有些差别) 高德天气 API -天气查询-API文档-开发指南-Web服务 API | 高德地图API知心天气 API -HyperData 数据产品简介 心知天气和风天气 API -和风天气开…

AI_News周刊:第一期

2023.02.06—2023.02.12 关于ChatGPT的前言: 在去年年末,OpenAI的ChatGPT在技术圈已经火了一次,随着上周它的二次出圈,ChatGPT算得上是人工智能领域的一颗明星,它在聊天机器人领域有着不可忽视的影响力。其准确、快速…

webpack.config.js哪里找?react项目关闭eslint监测

目录 webpack.config.js哪里找? react项目关闭eslint监测 webpack.config.js哪里找? 在React项目中,当我们需要修改一些配置时,发现找不到webpack.config.js,是我们创建的项目有问题吗,还需新创建项目的项…

【html】模仿C站动态发红包界面,css+div+js实现布局和交互(适合入门)

最近有些小伙伴咨询博主说前端布局好难,其实都是熟能生巧! 模仿C站动态发红包界面,cssdiv实现布局,纯javascript实现交互效果 目录 1、界面效果 2、界面分析 2.1、整体结构 2.2、标题 2.3、表单 2.4、按钮 3、代码实现 3.…

【Kafka】【七】主题和分区的概念

主题和分区的概念 主题Topic 主题-topic在kafka中是⼀个逻辑的概念,kafka通过topic将消息进⾏分类。不同的topic会被订阅该topic的消费者消费。 但是有⼀个问题,如果说这个topic中的消息⾮常⾮常多,多到需要⼏T来存,因为消息是…

Spring Security in Action 第十二章 OAuth 2是如何工作的?

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获&#…

实战打靶集锦-005-HL

**写在前面:**记录一次曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 浏览器访问4.2 目录枚举4.3 探查admin4.4 探查index4.5 探查login5 公共EXP搜索6. 再次目录枚举6.1 探查superadmin.php6.2 查看页面源代码6.3 base64绕过6.4 构建反弹…

JointBERT代码复现详解【下】

BERT for Joint Intent Classification and Slot Filling代码复现【下】 链接直达:JointBERT代码复现详解【上】 四、模型训练与评估 Trainer training:梯度更新evaluate:评估序列标注任务如何得到预测结果、评估函数 1.初始化准备 def …

【Unity3D】Shader常量、变量、结构体、函数

1 源码路径 Unity Shader 常量、变量、结构体、函数一般可以在 Unity Editor 安装目录下面的【Editor\Data\CGIncludes\UnityShader】目录下查看源码,主要源码文件如下: UnityCG.cgincUnityShaderUtilities.cgincUnityShaderVariables.cginc 2 Shader 常…

大数据技术架构(组件)33——Spark:Spark SQL--Join Type

2.2.2、Join Type2.2.2.1、Broadcast Hash Join (Not Shuffled)就是常说的MapJoin,join操作在map端进行的。场景:join的其中一张表要很小,可以放到Driver或者Executor端的内存中。原理:1、将小表的数据广播到所有的Executor端,利用collect算子…

微信小程序 数据绑定 Mustache语法怎么使用?

1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据、 在页面对应的 .js 文件中。把数据定义到data对象中即可 在WXML文件中使用{{}}两个花括号加变量名称进行调用 以上使用方法,下面我么来实操 Mustache语法主要使用场景如下: 文本内容绑定 组件属性绑定…

Service

目录 文章目录目录本节实战1、Service1.Service概念2.Service存在的意义3.Pod与Service的关系2、三种IP3、定义 Service4、kube-proxy1.iptables2.ipvsiptables vs ipvs5、Service常见类型1.ClusterIP2.NodePort3.LoadBalancer4.ExternalName5.externalIPs6、Endpoints 与 Endp…

Java基础常见面试题(三)

String 字符型常量和字符串常量的区别? 形式上: 字符常量是单引号引起的一个字符,字符串常量是双引号引起的若干个字符; 含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算;字符串常量代表一个地址值…