windows密码获取凭证

2023-10-28

目录

一,Windows HASH

hash

windows HASH简介

二,Windows认证基础

Windows本地认证

LM-HASH

LM-HASH简介

LM-HASH生成原理

Mysql数据库密码破解

1. MYSQL数据库文件类型

2. Mysql加密方式


一,Windows HASH

hash

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

windows HASH简介

Windows 加密过的密码口令,我们称之为 hash

Windows 系统使用两种方法对用户的密码进行哈希处理,它们分别是 LAN Manager(LM) 哈希和 NT

LAN Manager(NTLM) 哈希。

现在已经有了更新的 NTLMv2 以及 Kerberos 验证体系。

二,Windows认证基础

Windows的认证包括三个部分:

本地认证:用户直接操作计算机登录账户

网络认证:远程连接到工作组中的某个设备

域认证:登陆到域环境中的某个设备

Windows本地认证

  1. 用户输入密码
  2. 系统收到密码后将用户输入的密码计算成NTLM Hash
  3. 与sam数据库(%SystemRoot%\system32\config\sam)中该用户的哈希比对
  4. 匹配则登陆成功,不匹配则登陆失败

Windows本地认证采用sam hash比对的形式来判断用户密码是否正确,计算机本地用户的所有密码被加密存储在%SystemRoot%\system32\config\sam文件中,当我们登录系统的时候,系统会自动地读取SAM文件中的“密码”与我们输入的密码进行比对,如果相同,证明认证成功.

LM-HASH

LM-HASH简介

LAN Manager(LM)哈希是Windows系统所用的第一种密码哈希算法,是一种较古老的Hash,在LAN

Manager协议中使用,非常容易通过暴力破解获取明文凭据。

它只有唯一一个版本且一直用到了 NT LAN Manager(NTLM) 哈希的出现,

在 Windows XP / Windows Server 2003 之前, 它是Windows上占主导地位的密码存储算法。

从 Windows Vista / Windows Server 2008 开始,默认情况下已禁用该算法。

LM 算法是在 DES 基础上实现的,不区分字母大小写。

LM-HASH生成原理

假设用户密码为:password

  1. 将用户密码所有字符转换为大写: PASSWORD
  2. 密码长度不足14个字符将用0填充到14个字符
  3. 这14个字符将被分成两半: PASSWOR D000000
  4. 将每一半转换为位,并且每7位之后将添加一个奇偶校验位(0),因此结果为64位: 1101000011->
    1101000 0 011 ,在将这些奇偶校验位相加之后,我们将从两个预先生成的两半中获得两个密钥
  5. 分别用生成的两个密钥作为key 对 KGS!@#$% 进行DES加密: PASSWOR =E52CAC67419A9A22
    D000000 = 4A3B108F3FA6CB6D
  6. 将加密后的两组拼接在一起,得到LM HASH值: E52CAC67419A9A22 4A3B108F3FA6CB6D

使用python得到LM HASH值:

python3 -c "from passlib.hash import lmhash;print(lmhash.hash('password'))"

#coding=utf-8
import re
import binascii
from pyDes import *
def DesEncrypt(str, Des_Key):
k = des(binascii.a2b_hex(Des_Key), ECB, pad=None)
EncryptStr = k.encrypt(str)
return binascii.b2a_hex(EncryptStr)
def group_just(length,text):
# text 00110001001100100011001100110100001101010011011000000000
text_area = re.findall(r'.{%d}' % int(length), text) # ['0011000',
'1001100', '1000110', '0110011', '0100001', '1010100', '1101100', '0000000']
text_area_padding = [i + '0' for i in text_area] #['00110000', '10011000',
'10001100', '01100110', '01000010', '10101000', '11011000', '00000000']
hex_str = ''.join(text_area_padding) #
0011000010011000100011000110011001000010101010001101100000000000
hex_int = hex(int(hex_str, 2))[2:].rstrip("L") #30988c6642a8d800
if hex_int == '0':
hex_int = '0000000000000000'
return hex_int
def lm_hash(password):
# 1. 用户的密码转换为大写,密码转换为16进制字符串,不足14字节将会用0来再后面补全。
pass_hex = password.upper().encode("hex").ljust(28,'0')
#3132333435360000000000000000
print(pass_hex)
# 2. 密码的16进制字符串被分成两个7byte部分。每部分转换成比特流,并且长度位56bit,长度不
足使用0在左边补齐长度
left_str = pass_hex[:14] #31323334353600
right_str = pass_hex[14:] #00000000000000
left_stream = bin(int(left_str, 16)).lstrip('0b').rjust(56, '0') #
00110001001100100011001100110100001101010011011000000000
right_stream = bin(int(right_str, 16)).lstrip('0b').rjust(56, '0') #
00000000000000000000000000000000000000000000000000000000
# 3. 再分7bit为一组,每组末尾加0,再组成一组
left_stream = group_just(7,left_stream) # 30988c6642a8d800
right_stream = group_just(7,right_stream) # 0000000000000000
# 4. 上步骤得到的二组,分别作为key 为 "KGS!@#$%"进行DES加密。
left_lm = DesEncrypt('KGS!@#$%',left_stream) #44efce164ab921ca
right_lm = DesEncrypt('KGS!@#$%',right_stream) # aad3b435b51404ee
# 5. 将加密后的两组拼接在一起,得到最终LM HASH值。
return left_lm + right_lm
if __name__ == '__main__':
hash = lm_hash("123456")

Mysql数据库密码破解

一旦获取了网站一定的权限后,如果能够获取MySQL中保存用户数据,通过解密后,即可通过正常途径

来访问数据库;一方面可以直接操作数据库中的数据,另一方面可以用来提升权限。

MySQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中都是以明文出现的,在获取文件

读取权限后即可直接从数据库连接文件中读取

一般都包含有数据库类型,物理位置,用户名和密码等信息

1. MYSQL数据库文件类型

MYSQL数据库文件共有 frm 、 MYD 和 MYI 三种文件

".frm" 是描述表结构的文件

".MYD" 是表的数据文件

".MYI" 是表数据文件中任何索引的数据树

一般是单独存在一个文件夹中

与用户有关的一共有三个文件即 user.frm 、 user.MYD 和 user.MYI ,MYSQL数据库用户密码都保存

在 user.MYD 文件中,包括root用户和其他用户的密码。

2. Mysql加密方式

MYSQL数据库的认证密码有两种方式

MYSQL 4.1版本之前是MYSQL323加密,MYSQL 4.1和之后的版本都是MYSQLSHA1加密

MYSQL数据库中自带 Old_Password(str) 和 Password(str) 函数,它们均可以在MYSQL数据库里进

行查询,前者是 MYSQL323 加密,后者是 MYSQLSHA1 方式加密

mysql> select Password('root');
+-------------------------------------------+
| Password('root') |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+
1 row in set
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows密码获取凭证 的相关文章

  • MySQL主从、集群模式简单介绍

    目录 1 主从模式 Replication 2 集群模式 3 主从模式部署注意事项 主从模式 集群模式 都是在一个项目中使用多个mysql节点进行存储和读取数据 当单机模式部署 不满足安全性 高可用 高并发等需求的时候 就需要考虑主从模式或
  • 超详细的Git使用教程(图文)

    一 Git概述 1 1 Git历史 Git 诞生于一个极富纷争大举创新的年代 Linux 内核开源项目有着为数众多的参与者 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上 1991 2002年间 到 2002 年
  • leecode-寻找重复数字

    题目 题目 分析 哇哦 原来vector可以这样初始化 学到了 不初始化会直接报错嘞 代码 class Solution public int findDuplicate vector
  • 企业微信使用高德地图获取定位报错:INVALID_USER_SCODE(无效用户代码)

    解决方案 1 在html头部放你创建的高德安全密钥 2 完整代码如下
  • JAVA高级知识点整理

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 String字符串类 String 可变字符串 StringBuilder 可变字符串与String之间的转换 RunTime类 概述 特点 使用 Data类
  • apache beam入门之程序入口——PipelineOption

    前置章节apache beam入门宝典之初次使用 从第一章里我们看到最开始需要生成1个PipelineOption 然后才能生成1个Pipeline 而这个所谓的option用处是将可以将程序输入的args数组转成1个PipelineOpt
  • 【基于python实现UI自动化】3.0 selenium - webdriver常见8大元素定位

    python UI自动化之selenium元素定位 1 0 selenium工具介绍 2 0 selenium环境搭建 3 0 selenium元素定位 selenium常见8大元素定位 通过ID定位 通过class name定位 通过na

随机推荐

  • [开发过程]<c#上位机>关于.net6

    水下机器人 c 上位机 根据官方文档进行学习开发 1 了解 net6 简而言之 就是稳定强悍 跨设备 简单上手 资源丰富 强 Announcing NET 6 The Fastest NET Yet NET Blog NET 6 is no
  • java类的参考文献,太完整了!

    一面 先是问了问项目 然后就开始问一些问题 1 每个请求耗时100ms 机器的配置是4核8G 问要达到10000TPS需要多少台机器 没答上来 问了问是IO密集型还是CPU密集型 然后面试官说我想得太复杂了 2 怎么实现网页的自动跳转 答3
  • 将json文件解析存储到MySQL数据库

    PostMapping test public Object test RequestParam file MultipartFile file 将JSON解析为Java对象也称为从JSON反序列化Java对象 ObjectMapper o
  • Spring Cloud 2.x之整合工作流Activiti

    工作流在项目中非常常用 这里先来看两张图 第一张 第二张 对以上两张图进行说明 假设这两张图就是华谊兄弟的请假流程图 图的组成部分 人物 范冰冰 冯小刚 王中军 事件 动作 请假 批准 不批准 工作流 Workflow 就是 业务过程的部分
  • LLVM 环境搭建

    LLVM相关 环境搭建 PC VMware Workstation 下载 https www vmware com go getworkstation win KEY ZC3WK AFXEK 488JP A7MQX XL8YF 可自行网上查
  • Vue中使用qrcode实现渲染生成二维码中间添加自定义logo-demo

    效果 安装 npm i qrcode 使用 import QRCode from qrcode 具体生成过程
  • Mac OS X下Maven的安装与配置

    Mac OS X 安装Maven 下载 Maven 并解压到某个目录 例如 Users robbie apache maven 3 3 3 打开Terminal 输入以下命令 设置Maven classpath vi bash profil
  • 小程序打开速度慢是服务器原因吗,网页打开速度慢的原因以及解决方法

    现在大多数企业都会选择做自己的官方网站 网站的作用更像一张互联网上的企业名片 客户能否选择你 在于网站的质量 网站质量的好与坏 主要取决于网站的流量 而影响网站流量最核心的因素就是网站打开速度 那么今天就来给大家分享一下 网页打开速度慢的原
  • CTFHUB-布尔盲注

    布尔盲注 页面回显的结果只有两种 true 和 false true false 常用函数 count x 返回统计的数量 length str 返回str字符串的长度 ascii str 返回字符串str的最左面字符的ASCII代码值 s
  • vue3-实战-06-管理后台-品牌管理模块开发

    目录 1 品牌列表 1 1 需求图 1 2 定义接口和数据类型 1 3 请求接口和渲染数据 2 新增和修改品牌 2 1 需求原型分析 2 2 dialog开发 2 3 请求接口封装 2 4 图片上传组件开发 2 5 新增 修改品牌信息 3
  • pb中计算两个时间的分钟_利用Power BI中的两个函数,灵活计算各种占比!

    计算个体占总体的比例是一个很常见的分析方式 它很简单 就是两个数字相除 但是当需要计算的维度 总体的范围发生动态变化时 如何灵活且快速的计算出各种占比 还是需要动一点心思的 本文就通过 DAX 中的 ALL 和 ALLSELECTED 函数
  • Qt中的信号和信号槽(一)

    目录 1 信号和槽概述 信号和槽的关系 2 标准信号槽使用 标准信号 槽 示例 3 自定义信号槽使用 自定义信号 自定义槽 示例 1 信号和槽概述 信号和槽是一种事件驱动的通信机制 广泛应用于Qt框架的事件处理 GUI编程 网络通信等方面
  • pytorch计算模型参数量报错:size mismatch for module.conv1.weight: copying a param with shape torch.Size([16, 3

    错误 RuntimeError Error s in loading state dict for DataParallel size mismatch for module conv1 weight copying a param wit
  • FIO使用说明(最详细最全的参数说明)

    这个文档是对fio 2 0 9 HOWTO文档的翻译 fio的参数太多了 翻译这个文档时并没有测试每一个参数的功能和使用方法 只有少量参数做了试验 大部分的参数采用的是根据字面翻译或是个人理解的翻译 必然有些出入 先发出来 以后有使用的时候
  • 迁移学习花式Finetune方法大汇总

    如果觉得我的算法分享对你有帮助 欢迎关注我的微信公众号 圆圆的算法笔记 更多算法笔记和世间万物的学习记录 迁移学习广泛地应用于NLP CV等各种领域 通过在源域数据上学习知识 再迁移到下游其他目标任务上 提升目标任务上的效果 其中 Pret
  • JS之arguments、arguments.callee、caller介绍

    arguments 调用函数时产生的 保存实参 arguments callee 被调用时指向函数自身 caller 指向调用某函数的那个函数 下面通过一段代码说明它们的用处 function A n console log argumen
  • 线程同步之Volatile

    编译器优化 c 编译器会在不改变我们的意图的情况下做一些优化 比如 a 1 a 2 编译器编译之后 可能就只剩下第二行了 再比如 a 1 b a 编译器优化后 可能会把第二行优化成b 1 再比如 a m b n 编译器生成IL时 有可能会改
  • APP安全(一)-防二次打包(C、C++签名校验)

    前言 由于Android系统的开放性 开发出来的APP很容易被逆向 修改代码逻 加入广告 病毒等二次打包后发布 对开发者和用户造成一定的损失 因此我们的APP运行过程中需要进行签名校验 以及使用加解密算法对数据进行处理 从而保证访问服务端的
  • 开源自动化测试框架httprunner4.x的学习-2

    使用教程 接口自动化 1 如何安装 以我正在使用的v4 3 0为例 pip install httprunner 4 3 0 安装完成后检查一下 hrp v 看到如下版本信息就说明安装成功 2 创建脚手架 执行命令hrp startproj
  • windows密码获取凭证

    目录 一 Windows HASH hash windows HASH简介 二 Windows认证基础 Windows本地认证 LM HASH LM HASH简介 LM HASH生成原理 Mysql数据库密码破解 1 MYSQL数据库文件类