Windows系统散列值获取分析与防范
LM Hash && NTLM Hash
Windows操作系统通常使用两种方法对用户的明文进行加密处理,在域环境中,用户信息存储在ntds.dit中,加密后为散列值。Windows操作系统中的密码一般由两部分组成,一部分为LM Hash,另一部分为NTLM Hash。在Windows操作系统中,Hash的结构通常如下:
username:RID:LM-HASH:NT-HASH
LM Hash的全名为“LAN Manager Hash”,是微软为了提高Windows操作系统的安全性而采用的散列值加密算法,其本质为DES加密算法。LM Hash的生成原理在这里就不再赘述(密码不足14字节将用0补全)。尽管LM Hash较容易被破解,但为了保证系统的兼容性,Windows只是将LM Hash禁用了。LM Hash明文密码被限定在14位以内,也就是说,如果要停止使用LM Hash,将用的密码设置为14位以上就可以了。如果LM Hash被禁用了,攻击者通过工具抓取的LM Hash通常为"aad3b435b51404eeaad3b435b51404ee"(表示LM Hash为空值或者被禁用了)
NTLM Hash是微软为了提高安全性的同时保证兼容性而设计的散列加密算法。NTLM Hash是基于MD4加密算法进行加密的。
一.单机密码抓取与防范
要想在Windows操作系统中抓取散列值或明文密码,必须将权限提升至System。本地用户名、散列值和其他安全验证信息都保存在SAM文件中。lsass.exe进程用于实现Windows的安全策略(本地安全策略和登录策略)。可以使用工具将散列值和明文密码从内存中的lsass.exe进程或SAM文件中导出。
在Windows操作系统中,SAM文件的保存位置是C:\Windows\System32\config。该文件是被锁定,不允许复制。在渗透测试中,可以采用传统方法,在关闭Windows操作系统之后,使用PE盘进入文件管理环境,直接复制SAM文件,也可以使用VSS等方法进行复制。
1.GetPass
打开GetPass工具所在的目录。运行该程序后,即可获得明文密码。
2.PwDump7
在命令行环境中运行PwDump7程序,可以得到系统中所有账户的NTLM Hash
3.QuarksPwDump
在命令行环境中输入“QuarksPwDump.exe --dump-hash-local”,导出三个用户的NTLM Hash

4.通过SAM和System文件抓取密码
(1)导出SAM和System文件
无工具导出SAM文件,命令如下

通过reg的save选项将注册表中的SAM、System文件导出到本地磁盘
(2)通过读取SAM文件和System文件获得NTLM Hash

(3)运行Cain读取SAM文件

(4)使用mimikatz直接读取本地SAM文件,导出Hash信息
通过远程下载目标及的SAM文件,然后通过在本机运行mimikatz来获取HASH,
privilege::debug //提升权限
token::elevate //将权限提升至System
lsadump::sam //获取本地SAM文件,获得NTLM Hash

5.使用mimikatz在线读取SAM文件
在mimikatz目录下打开命令行环境,输入以下命令,在线读取散列值及明文密码
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"

6.使用mimikatz离线读取lsass.dmp文件
(1)导出lsass.dmp文件


(2)使用Procdump导出lsass.dmp文件

(3)使用mimikatz导出lsass.dmp文件中的密码散列值


加载成功

导出散列值
7.使用powershell对散列值进行Dump操作
NiShang的Get-PassHashs.ps1脚本可用于导出散列值
以管理员权限打开Powershell环境,进入Nishang目录,将Get-PassHashes.ps1脚本导入,命令如下
Import-Module .\Get-PassHashes.ps1
Get-PassHashes

8.使用Powershell远程加载mimikatz抓取散列值和明文密码

未完,,,,,,,
Windows系统散列值获取分析与防范的更多相关文章
- BLOB或TEXT字段使用散列值和前缀索引优化提高查询速度
1.创建表,存储引擎为myisam,对大文本字段blob使用MD5函数建立一个散列值 create table t2(id varchar(60), content blob, hash_value ...
- 关于同一密码使用generate_password_hash生成不同的密码散列值
在python的 werkzeug.security 库中有两个函数generate_password_hash与check_password_hash用于对密码明文生成散列值以及检查密码是否与提供的 ...
- java 散列运算浅分析 hash()
文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列 ...
- Windows 系统判断MD5 值的办法
Linux 系统的文件要传到Windows系统里面,传输过程中网络不稳定,为了判断文件是否完整传输,所以就用md5的方式判断是否同一个文件 Linux系统 [root@augusite ~]# md5 ...
- Windows系统中使用WMI获取远程服务器的信息
使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...
- 在Windows系统下搭建ELK日志分析平台
简介: ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索 ...
- os.system('cmd')在linux和windows系统下返回值的差异
今天,用os.system('cmd')分别在windows和linux平台上执行同一ping命令,命令执行失败时返回码不同,windows为1,而linux下返回为256,如下: linux下: & ...
- Shiro入门学习之散列算法与凭证配置(六)
一.散列算法概述 散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据,常见的散列算法如MD5.SHA等,一般进行散列时最好提供一个salt(“盐”),什么意思?举个栗子 ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(散列Hash类型数据操作)
本文版权归博客园和作者本人共同所有,转载和爬虫请注明本系列分享地址:http://www.cnblogs.com/tdws/p/5815735.html 上一篇文章的不合理之处,已经有所修改. 今天分 ...
随机推荐
- leetcode 1021. 删除最外层的括号
问题描述 有效括号字符串为空 ("")."(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的 ...
- BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2
BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2 XSS的题目没怎么做过,比赛基本上也没有(=_=),总结下今天做的两题 都是看赵总视频现学现做的,这里附上学习 ...
- [STM32F4xx 学习] SPI小结
一.STM32F4xx系列的SPI特点: 1. 支持全双工的3线SPI模式(即SCK, MISO, MOSI) 2. 支持单工2线传输,同时数据线可以设置成单向或者双向模式 3. 8-bit, 16- ...
- 【记录一个问题】golangci-lint.exe中,盘符大写就会执行出错
golangci-lint.exe版本为1.31.0 执行:golangci-lint.exe run d:\source\github.com\ahfuzhang\go_xxx_server\src ...
- cesium流动纹理
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 之 ...
- 记录ABAP开发的日常——SAP_PO开发同步接口案例
前言:在项目中遇到任务PO接口,需求是SRM发送采购订单信息给SAP,SAP根据信息调用BAPI同步数据,在此作为案例记录. 本次接口采用的协议是SOAP,当然也有其他的协议比如REST等等,在此不做 ...
- 2021年SpringBoot面试题200道及答案
https://blog.csdn.net/yanpenglei/article/details/120822218 https://blog.csdn.net/ldb987/article/deta ...
- echart的x轴或y轴区间标签如何从大到小排列
1.有时候我们做echart时,从后台接收返回回来的数据,没有按顺序排列,这里我遇到的是区间的值,看图 我这里是处理好了的,一开始,50-100这个区间在数组的最后一列,也就是在150-200后面的这 ...
- golang中接口对象的转型
接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型) 如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true 配合if...el ...
- macOS Monterey 12.12.2 (21D49) 正式版 ISO、IPSW、PKG 下载
本站下载的 macOS Monterey 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装. 2022 年 1 月 27 日,m ...