当前位置: 首页 > news >正文

NTLM||LM算法lsasswinlogon进程

来填坑了,这篇blog我们就来讲一下mimikatz能抓到开机的密码的原理

1.lsass&&winlogon

不知道大家有没有好奇过,我们每次开机输入密码之后,电脑又怎么知道我们是否输入正确呢?

:这就要的得益于我们的两个进程了 lsass 和 winlogon

作死的可以试一下吧你们电脑的这两个关掉,看你电脑崩不崩就完事了

下面是正经的:我们来讲一下电脑开机的原理!!

当然,这是在Windows的一些早期电脑的图片,现在的Windows一般不会将密码保存在内存中

我们输入密码验证开机密码如下

  1. 先运行winlogon.exe程序,并且获取用户的密码,传给lsass.exe进程
  2. 然后lsass进程再对传来的密码进行加密和 C://windows/system32/config下的SAM文件对比
  3. 如果一样,则登录成功,否则则登录失败

而 Mimikatz的sekurlsa模块用于从lsass.exe进程中提取各种凭据信息,包括NTLM哈希、Kerberos票据等。这使得攻击者能够获取用户的凭据,从而进行后续攻击!

但是对于win11,做法可不太一样

2.Mimikatz抓取Win11的密码,但是NTLM

对于一些Win10的版本以及Win11 你会发现,就算以管理员身份敲上这行代码,也是抓不到的

ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list

 你会收获如上报错!!但是是不是就是没有办法了呢???

那肯定不!!!道高一丈,魔高一尺        下面我就来演示一下

先以管理员身份运行mimikatz 接着输入 privilege::debug 命令 

 然后正常来说你是会看到这样的报错的

于是可以输入以下命令

token::elevate

最后一步指令,这样就能抓到了

lsadump::sam

这样就能抓到你的电脑的HTLM值了!! 不信?? 用你的python运行一下这个脚本

from Crypto.Hash import MD4
import binasciipassword = "你的电脑密码".encode("utf-16le")
md4_hash = MD4.new(password).digest()
print(binascii.hexlify(md4_hash).decode())

 看看你运行的结果和你抓到的ntlm值一不一样就是了

3.NTLM和LM的hash算法加密过程

 先说一下NTLM,这个算法直到现在的Windows版本都还在被使用

NTLM的编码可以分为以下几步

  1. 先对明文进行hex编码
  2. 再对上一步进行Unicode编码 (每两个数字之后加两个0)
  3. 再对上一步结果进行md4单向hash加密结果的16进制就是NTLM的值

虽然这么说但是我自己去试,发现结果是不一样的,很奇怪

于是我就尝试了另外一种py的脚本方法,也就是上面的py脚本

from Crypto.Hash import MD4
import binasciipassword = "admin".encode("utf-16le")   # 将字符串 "admin" 进行Unicode编码
md4_hash = MD4.new(password).digest()
print(binascii.hexlify(md4_hash).decode())    # 将二进制的 MD4 哈希值转换为十六进制,并打印出来

这样跑出来的结果就是NTLM的hash值

然后就是lm的计算过程

由于LM算法的种种弱点,如密码限制、弱密钥、单向函数等,它在安全性上存在很大的问题,因此在现代系统中已经被更安全的方法所替代。

以上就是对于相关知识的一些普及和概述了    

http://www.lryc.cn/news/297267.html

相关文章:

  • transformer剪枝论文汇总
  • 使用 Ant Design 的 Upload 组件实现图片
  • 【知识图谱--第二讲知识图谱的表示】
  • C语言---计算n的阶乘
  • 材料非线性Matlab有限元编程:初应力法与初应变法
  • QT+OSG/osgEarth编译之八十二:osgdb_obj+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_obj)
  • [office] excel求乘积的公式和方法 #媒体#笔记#经验分享
  • OpenEuler20.03LTS SP2 上安装 OpenGauss3.0.0 单机部署过程(二)
  • 从零开始手写mmo游戏从框架到爆炸(十)— 集成springboot-jpa与用户表
  • Python算法题集_两两交换链表中的节点
  • 米贸搜|Facebook在购物季使用的Meta广告投放流程
  • 前端滚动组件分享
  • 【linux开发工具】vim详解
  • Compose | UI组件(十四) | Navigation-Data - 页面导航传递数据
  • 部署一个在线OCR工具
  • 【北邮鲁鹏老师计算机视觉课程笔记】01 introduction
  • maven依赖报错处理(或者maven怎么刷新都下载不了依赖)
  • [VulnHub靶机渗透] dpwwn: 1
  • Android14音频进阶:MediaPlayerService如何启动AudioTrack 下篇(五十六)
  • Python基础篇_修饰符(Decorators)【下】
  • C#,十进制展开数(Decimal Expansion Number)的算法与源代码
  • Vue3快速上手(一)使用vite创建项目
  • 使用navicat导出mysql离线数据后,再导入doris的方案
  • re:从0开始的CSS学习之路 1. CSS语法规则
  • npm install express -g报错或一直卡着,亲测可解决
  • 机器学习11-前馈神经网络识别手写数字1.0
  • vscode wsl远程连接 权限问题
  • VED-eBPF:一款基于eBPF的内核利用和Rootkit检测工具
  • 配置ARM交叉编译工具的通用步骤
  • 相机图像质量研究(5)常见问题总结:光学结构对成像的影响--景深