Windows密码的网络认证---基于挑战响应认证的NTLM协议

一,网络认证NTLM协议简介

        在平时的测试中,经常会碰到处于工作组的计算机,处于工作组的计算机之间是无法建立一个可信的信托机构的,只能是点对点进行信息的传输。

        举个例子就是,主机A想要访问主机B上的资源,就要向主机B发送一个存在于主机 B上的一个账户,主机B接收以后会在本地进行验证,如果验证成功,才会允许主机A进行相应的访问。

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

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

  • 协商,这个是为了解决历史遗留问题,也就是为了向下兼容,双方先确定一下传输协议的版本等各种信息。
  • 质询,这一步便是Challenge/Response认证机制的关键之处,下面会介绍这里的步骤。
  • 验证,对质询的最后结果进行一个验证,验证通过后,即允许访问资源。

二,基本的流程

认证成功

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

        接着会在本地查询是否存在这样的一个用户,如果存在,将会生成一个16位的随机字符,即challenge,然后用查询到的这个usernameNTLM hash和challenge进行加密,生成challenge1,将challenge1存储在本地,并将 challenge传给client;

        当client接收到challenge时,将发送的username所对应的NTLM hash对challenge进行加密即response,并 response发送给server;

        server在收到response后,将其与challenge1进行比较,如果相同,则验证成功;

        如果不相同,则验证失败;

认证失败

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

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

三,NTLM协议v1v2区别

NTLM v1

  • 安全性较低:NTLM v1的认证过程相对简单,安全性较低。它容易受到中间人攻击和重放攻击等。
  • 认证机制:在NTLM v1中,客户端首先向服务器发送一个包含用户名(以明文形式)和挑战消息的请求。服务器接收到这个请求后,会用自己的密钥对这个挑战消息进行加密,并发送给客户端作为响应。客户端随后会用自己的密钥对挑战消息进行加密,并将这个加密后的消息发送给服务器进行验证。

NTLM v2

  • 增强的安全性:相较于NTLM v1,NTLM v2提供了更强的安全性。它引入了对响应消息的额外加密层,使得攻击者更难破解。
  • 改进的认证机制:在NTLM v2中,客户端和服务器之间的挑战和响应过程更加复杂。除了挑战消息外,还引入了目标信息(如服务器名称和域名)和时间戳,这些都被加入到加密计算中。这增加了攻击者伪造有效响应的难度。
  • 兼容性:尽管NTLM v2提供了更强的安全性,但它仍然需要与旧的系统和应用程序兼容。因此,许多现代Windows系统同时支持NTLM v1和v2,但默认情况下可能更倾向于使用v2进行认证。

四,抓包测试

实验环境:

server2019:192.168.20.153

server2008:192.168.20.154

在2019这个机器上已经安装wireshark;

在2008上已经存在一个管理员用户,为Administrator用户;

密码为com.1234;

使用下面的命令进行网络连接;

net use \\192.168.20.154 /u:Administrator com.1234

使用wireshark进行抓包;

接下来分析抓到的数据包;

接下来根据NTLMv2格式,找出各个字段对应的值;

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

10号数据包发送username和password;

11号返回challenge;

12号返回response的数据包;

username:Administrator
domain:ADMIN

challenge:afa477384221e315

NTProofStr:24f00e683ff25a2163601ccc751ba732
rsponse:24f00e683ff25a2163601ccc751ba732010100000000000063af3e97b02edb0160c9af9d01a6f7c20000000002000a00410044004d0049004e0001001400530045005200560045005200320030003000380004001200610064006d0069006e002e0063006f006d000300280053006500720076006500720032003000300038002e00610064006d0069006e002e0063006f006d0005001200610064006d0069006e002e0063006f006d000700080063af3e97b02edb0106000400020000000800300030000000000000000100000000200000219d0a74dcdbdf803b0712aab3af7d3cc94960eaaf5d459b1e46bd5c4a0793fd0a001000000000000000000000000000000000000900260063006900660073002f003100390032002e003100360038002e00320030002e00310035003400000000000000000000000000

接下来构造NTLMv2格式;

Administrator::ADMIN:afa477384221e315:24f00e683ff25a2163601ccc751ba732:010100000000000063af3e97b02edb0160c9af9d01a6f7c20000000002000a00410044004d0049004e0001001400530045005200560045005200320030003000380004001200610064006d0069006e002e0063006f006d000300280053006500720076006500720032003000300038002e00610064006d0069006e002e0063006f006d0005001200610064006d0069006e002e0063006f006d000700080063af3e97b02edb0106000400020000000800300030000000000000000100000000200000219d0a74dcdbdf803b0712aab3af7d3cc94960eaaf5d459b1e46bd5c4a0793fd0a001000000000000000000000000000000000000900260063006900660073002f003100390032002e003100360038002e00320030002e00310035003400000000000000000000000000

在kali中使用命令进行爆破;(拥有一个强大的字典)

john --format=netntlmv2 1.txt --wordlist=rockyou.txt

这样就得到了账户的密码;

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

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

相关文章

北斗有源终端|智能5G单北斗终端|单兵|单北斗|手持机

在当今科技日新月异的时代,智能设备的创新与升级速度令人目不暇接。其中,智能5G终端作为连接数字世界的桥梁,正逐步渗透到我们生活的方方面面。今天,让我们聚焦于一款集尖端科技与实用功能于一身的智能5G设备——QM-L5智能5G单北斗…

如何对数据库的表字段加密解密处理?

对于表格数据的加密处理,通常涉及到对数据库中存储的数据进行加密,以保护敏感信息。 Java示例(使用AES算法加密数据库表数据) 首先,你需要一个数据库连接,这里假设你使用的是JDBC连接MySQL数据库。以下是…

【AI+教育】一些记录@2024.11.04

一、尝新 今天尝试了使用九章随时问,起因是看到快刀青衣的AI产品好用榜,里面这么介绍九章随时问:「它不是像其他产品那样,直接给你出答案。而是跟你语音对话,你会感觉更像是有一位老师坐在你的旁边,一步步…

DNS域名解析实验

准备工作 [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# mount /dev/sr0 /mnt [rootlocalhost ~]# dnf install bind -y DNS正向解析: 对主配置文件进行修改 [rootlocalhost ~]# vim /etc/named.conf 正向解析…

Jmeter参数化的4种方法 你get了吗?

1. 用Jmeter中的函数获取参数值 __Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下: KaTeX parse error: Expected group after _ at position 2: {_̲_Random(,,)},,KaTeX p…

C语言 运算符

时间:2024.11.4 一、学习内容 1、算数运算符(加、减、乘、除法和取余) 通用细节: 1.整数计算,结果一定是一个整数 2.小数计算,结果一定是一个小数 3.整数和小数计算,结果一定是一…

贝叶斯+PINN!双重热点buff叠加,轻松斩获Nature子刊!

PINN一直以来都是顶会顶刊上的大热方向,相关研究量多且质量高。最近,有关“贝叶斯PINN”的研究取得了不少突破,多项成果被Neurips、Nature子刊等录用。 事实上,这个结合方向的研究热度正逐渐上升,因为其在提高泛化能力…

Python模拟真人动态生成鼠标滑动路径

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

react-router与react-router-dom的区别

写法上的区别: 写法1: import {Swtich, Route, Router, HashHistory, Link} from react-router-dom;写法2: import {Switch, Route, Router} from react-router; import {HashHistory, Link} from react-router-dom;react-router实现了路由的核心功能 react-router-…

为数据集而生的 SQL 控制台

随着数据集的使用量急剧增加,Hugging Face 社区已经变成了众多数据集默认存放的仓库。每月,海量数据集被上传到社区,这些数据集亟需有效的查询、过滤和发现。 Dataset Monthly Creations 每个月在 Hugging Face Hub 创建的数据集 我们现在非常…

2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)

目录 大会简介 主办单位,协办单位 组委会 主讲嘉宾 征稿主题 参会方式 会议议程 重要信息 会议官网:iccvip.org 大会时间:2024年11月15日-17日 大会地点:中国 杭州 大会简介 2024年计算机视觉与图像处理国际学术会议(C…

【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加

当前内容所在位置: 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建(上篇) 4.1.1 D3 中的边距约定(中篇)4.1.2 坐标轴的生成(中篇) 4.1.2.1 比例尺的声明(中篇)4.1…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南,涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn,开发者可以快速构建现代化的 Web API…

【综合算法学习】(第十六篇)

目录 岛屿的最⼤⾯积(medium) 题目解析 讲解算法原理 编写代码 被围绕的区域(medium) 题目解析 讲解算法原理 编写代码 岛屿的最⼤⾯积(medium) 题目解析 1.题目链接:. - 力扣&#xf…

qt QTabWidget详解

1、概述 QTabWidget是Qt框架中的一个控件,它提供了一个标签页式的界面,允许用户在不同的页面(或称为标签)之间切换。每个页面都可以包含不同的内容,如文本、图像、按钮或其他小部件。QTabWidget非常适合用于创建具有多…

用ChatGPT提升工作效率:从理论到实际应用

伴人工智能技术的迅速演进,像ChatGPT这类语言模型已成为提升工作效率的关键工具。这类模型不仅具备处理海量数据的能力,还能自动化许多日常任务,从而提高决策的准确性。本文将深入探讨如何在工作中利用ChatGPT等AI工具提升效率,涵…

VScode调试

VScode只是一个代码编辑器,下面我们使用VScode调试运行在远端连接Linux服务器的代码。 打断点 编译代码,要确保已经安装gdb,可以使用指令gdb --version 来检查 GDB 是否已安装以及安装的版本,确认安装后在编译时要加上选项&…

成都睿明智科技有限公司正规吗靠谱吗?

在这个短视频风起云涌的时代,抖音电商以其独特的魅力,成为了无数商家竞相追逐的新蓝海。而在这片浩瀚的商海中,成都睿明智科技有限公司犹如一艘装备精良的航船,引领着众多企业破浪前行,探索抖音电商的无限可能。今天&a…

Web Broker(Web服务应用程序)入门教程(1)

1、介绍 Web Broker 组件(位于工具面板的“Internet”选项卡中)可以帮助您创建与特定统一资源标识符(URI)相关联的事件处理程序。当处理完成后,您可以通过编程方式构建 HTML 或 XML 文档,并将它们传输给客…