前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >内网渗透—获取Windows内Hash密码方法总结 | 美创安全实验室

内网渗透—获取Windows内Hash密码方法总结 | 美创安全实验室

原创
作者头像
数据安全
修改于 2020-08-21 09:47:11
修改于 2020-08-21 09:47:11
2.8K0
举报
文章被收录于专栏:数据库安全数据库安全

在内网渗透中,当攻击者获取到内网某台机器的控制权后,会议被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制欲环境下的全部机器。

Windows下安全认证机制

Windows下的安全认证机制总共有两种,一种是基于NTLM的认证方式,主要用在早期的Windows工作组环境中;另一种是基于Kerberos的认证方式,主要用在域环境中。

图1:NTLM认证流程图
图1:NTLM认证流程图

这里主要对NTLM的认证流程做一下说明:

1、首先在客户端中输入username,password和domain,然后客户端会把密码进行Hash后的值先缓存到本地。

2、Client将username的明文发送给DC(域控)。

3、DC会生成一个16字节的随机数,也就是挑战码(Challenge),然后再传回给Client。

4、当Client收到挑战码以后,会先复制一份,然后和缓存中的密码Hash再一同混合Hash一次,混合后的值称为response,之后Client再将challenge,response以及username一并都传给server。

5、Server端在收到client传过来的这三个值以后会把它们都转发给DC。

6、当DC接到过来的这三个值的以后,会根据username到域控的账号数据库(ntds.dit)里面找到该username对应的hash,然后把这个hash拿出来和传过来的challenge值再混合hash。

7、将混合后的hash值跟传来的response进行比较,相同则认证成功,反之,则失败,当然,如果是本地登录,所有验证肯定也全部都直接在本地进行了。

在Windows2000以后,Windows机器都用NTLM算法在本地保存用户的密码,密码的NTLM哈希保存在%SystemRoot%\System32\config\SAM文件中。Windows操作系统中的密码一般由两部分组成:一部分为LM Hash,另一部分为NTLM Hash。在Windows中,Hash的结构通常如下:

Username:RID:LM-Hash:NT-Hash

在windows2000以后的系统中,第一部分的 LM-hash 都是空值,因为LM-hash可以很容易的破解,所以windows2000之后这个值默认为空,所以第二部分的NTLM-hash才真正是用户密码的哈希值。在渗透测试中,通常可从Windows系统中的SAM文件和域控数据库的NTDS.dit文件(在域环境中,用户信息存储在NTDS.dit中)中获得所有用户的Hash。

使用PwDump工具获取密码Hash

PwDump7可以在CMD下提取出系统中的用户的密码hash,使用管理员权限直接运行该工具即可:

获取到Hash后,我们可以用破解工具来破解得到明文密码,也可以进行哈希传递攻击来横向渗透。

使用Mimikatz工具抓取Windows密码

Mimikatz是安全人员在内网渗透过程中的利器,它是由法国的一位大神研发的。攻击者可以通过Mimikatz提升进程权限注入进程读取进程内存。

Mimikatz的最大功能是可以直接读取Windows操作系统的明文密码,原理是lsass.exe是Windows系统的安全机制,主要用于本地安全和登陆策略,通常在我们登陆系统时输入密码后,密码便会存贮在lsass.exe内存中,经过wdigest和tspkg两个模块调用后,对其使用可逆的算法进行加密并存储在内存中,而Mimikatz正是通过对lsass.exe逆算获取到明文密码。

需要注意的是当目标为win10或2012R2以上时,默认在内存中禁止保存明文密码,但是我们可以通过修改注册表的方式抓取明文,输入以下命令即可:

Reg add HKLM\SYSTEM\CurrentContro

lSet\Control\SecurityProviders\WDigest /vUseLogonCredential /t REG_DWORD /d 1 /f

1、直接读取

Mimikatz读取明文密码和hash时需要管理员权限。

privilege::debug //提升至debug权限

sekurlsa::logonpasswords //抓取密码

2、Procdump+Mimikatz离线读取lsass.dmp文件

Procdump是微软官方发布的工具,可以用来将目标lsass文件导出。先在目标机器上上传Procdump,导出lsass.dmp

procdump64.exe-accepteula-ma

lsass.exe lsass.dmp

将目标机上的lsass.dmp下载到本地后,执行Mimikatz导出lsass.dmp里面的密码和hash:

sekurlsa::minidump 目录\lsass.dmp //将导出的lsass.dmp载入到Mimikatz中

sekurlsa::logonpasswords full //获取密码

3、通过SAM和System文件抓取密码和Hash

首先利用注册表命令将目标机的sam或者system文件导出

reg save hklm\sam sam.hive

reg save hklm\system system.hive

然后将目标机上的sam.hive和system.hive下载到本地,利用Mimikatz读取sam和system文件获取NTLMHash:

token::elevate

lsadump::sam

Windows密码破解方法

1、ophcrack在线破解

再通过以上工具获取到密码Hash后,我们需要对其进行破解,以得到明文密码。Ophcrack网站https://www.objectif-securite.ch/en/ophcrack提供了在线Hash破解服务,我们将得到的NTLM Hash输入到第一个查询框内,点击GO即可进行破解,小于14位的密码一般在几分钟内就可以破解完成:

图2:ophcrack在线破解
图2:ophcrack在线破解

2、ophcarck工具破解

Ophcrack是一款Windows密码哈希值破解工具,在它的官网为我们提供了几十GB的哈希表。彩虹表下载地址:

https://ophcrack.sourceforge.io/tables.php

图3:ophcarck工具破解
图3:ophcarck工具破解

防范措施

1、更新补丁

微软为了防止用户的明文密码在内存中泄露,发布了KB2871997补丁,关闭了Wdigest功能。Windows Server 2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server 2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。

2、关闭Wdigest Auth

如果无法更新补丁,需要手动关闭Wdigest Auth,在CMD中输入以下命令:

reg add HKLM\SYSTEM\CurrentControlSet\

Control\SecurityProviders\WDigest /vUseLogonCredential /t REG_DWORD /d 0 /f // 关闭Wdigest Auth

需要将UseLogonCredential的值设为0,然后注销当前用户,重新登陆即可。

本文转自杭州美创科技有限公司(第59号),如需二次转载请咨询。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Windows下登录凭证窃取技巧
拿到一台Windows服务器权限,收集各种登录凭证以便扩大战果。本篇分享几个窃取Windows登录凭证的工具和技巧。
Bypass
2020/10/26
2K0
Windows - Hash散列值抓取方法
LM Hash(LAN Manager Hash)其本质是 DES 加密。在 Windows 2008 及开始之后默认禁用的是 LM Hash。
渗透攻击红队
2020/11/25
2K0
Windows - Hash散列值抓取方法
Windows系统安全|Windows中获取用户密码
Windows系统使用两种方法对用户的密码进行哈希处理,它们分别是 LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希。所谓哈希(hash),就是使用一种加密函数对其进行加密。这个加密函数对一个任意长度的字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串。
谢公子
2022/01/19
3K0
Windows系统安全|Windows中获取用户密码
内网学习笔记 | 密码抓取
Windows 系统一般使用两种方法对用户的密码进行加密处理,在域环境中,用户的密码信息以哈希值的密文形式存储在 ntds.dit 二进制文件中,该文件位于 %SystemRoot%\ntds\ntds.dit 路径下,由于该文件一直被活动目录访问,因此这个文件是被系统禁止读取的。
TeamsSix
2022/09/20
2.4K0
内网学习笔记 | 密码抓取
[ffffffff0x] 浅谈windows认证原理
在实战渗透中,常常存在把windows主机作为跳板以此进行横向移动的情况,其实际原理并不难。本篇来谈windows系统的认证原理,并演示抓取密码相关场景。
r0fus0d
2020/12/28
1.8K0
[ffffffff0x] 浅谈windows认证原理
内网渗透基石篇--域内横向移动分析及防御
域内横向移动技术就是在复杂的内网攻击中被广泛使用的一种技术,尤其是在高级持续威胁中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他 域内主机,扩大资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要资产)。
FB客服
2021/07/27
3K0
内网渗透基石篇--域内横向移动分析及防御
window下抓取密码总结
无论是在我们渗透测试过程中(授权的情况下)还是在自己搭建的环境中进行攻防演练,获取服务器的明文密码或这hash值这一步骤非常重要,如果抓取到的密码是整个域内服务器的通用密码,那我们就可以不费吹灰之力拿到整个域控内的所有服务器。现在抓取密码的工具差不多都是exe、图形化工具、python写的工具等。
用户1631416
2019/05/05
2.3K0
window下抓取密码总结
获取Windows系统密码凭证总结
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2024/03/06
1.2K0
获取Windows系统密码凭证总结
内网渗透之各种密码凭证窃取 - 渗透红队笔记
lsass.exe是一个系统进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略zhi。
渗透攻击红队
2020/11/25
2.8K0
内网渗透之各种密码凭证窃取 - 渗透红队笔记
内网渗透-导出HASH的多种方式
在内网渗透中当我们得到一台高权限用户的身份时,就可以抓取到当前机器上的各类密码。虽然任务要求是导出域hash的方式,但在内网渗透中,获取当前机器的hash也有可能获取到域用户的hash,因此这里也分析一下如何获取当前机器的明文密码。
亿人安全
2024/08/13
6510
内网渗透-导出HASH的多种方式
横向移动与域控权限维持方法总汇
如果找到了某个用户的ntlm hash,就可以拿这个ntlm hash当作凭证进行远程登陆了 其中若hash加密方式是 rc4 ,那么就是pass the hash 若加密方式是aes key,那么就是pass the key 注意NTLM和kerberos协议均存在PTH: NTLM自然不用多说 kerberos协议也是基于用户的client hash开始一步步认证的,自然也会受PTH影响
ConsT27
2022/02/11
1.8K0
横向移动与域控权限维持方法总汇
Windows获取密码及hash
在拿到一台 Windows 的管理员权限以后,可以通过多种方法获取 Windows 系统的明文密码或者 hash 值,这将有利于我们在内网中扩大渗透范围。
LuckySec
2022/11/02
2.9K0
Windows获取密码及hash
Mimikatz获取系统密码攻防研究
最新版下载地址:https://github.com/gentilkiwi/mimikatz/releases/download/2.1.1-20180205/mimikatz_trunk.zip
用户1631416
2020/04/08
4.2K0
Mimikatz获取系统密码攻防研究
渗透中的内网渗透
本节主要介绍当拿下一台机器后,应该做的一些信息收集,尽可能的收集密码,去尝试其他机器。
Jumbo
2020/06/18
4.3K0
渗透中的内网渗透
Windows密码凭证获取学习
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/08/11
2.1K0
Windows密码凭证获取学习
Mimikatz工具介绍
Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能
不屈的杨
2024/08/18
5640
Mimikatz工具介绍
域渗透之NTML-Hash
早期SMB协议在网络上传输明文口令。后来出现"LAN Manager Challenge/Response"验证机制,简称LM,它是如此简单以至很容易被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。Windows加密过的密码口令,我们称之为hash(中文:哈希),Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash。
陈殷
2020/03/06
4.7K0
Dumping LSASS With No Mimikatz
Mimikatz是渗透测试中常用的知名工具,它主要用于从Windows上的内存中转储凭据,作为渗透测试人员此方法对于Windows Active Directory环境中的横向和纵向权限提升非常宝贵,并且几乎用于所有内网渗透测试,由于其受欢迎程度,Mimikatz可执行文件和PowerShell脚本已被大多数防病毒(AV)解决方案检测到,这篇文章将介绍几种替代方法来实现相同的目标而无需修改Mimikatz来躲避AV的查杀,以及一些预防和检测这种攻击的方法
Al1ex
2022/09/07
1K0
Dumping LSASS With No Mimikatz
红队笔记 - 后渗透
LSASS 被配置为作为受保护进程 (PPL) 运行,您可以使用 PowerShell 进行查询。
Khan安全团队
2021/10/12
1.1K0
获取Windows明文密码的小技巧
在实战中,拿到一台Windows服务器权限,如果可以直接获取Windows明文密码的话,就可以更容易深入挖掘。本文分享几个获取Windows明文密码的技巧,简单直接且有效。
Bypass
2021/10/08
3.9K0
获取Windows明文密码的小技巧
相关推荐
Windows下登录凭证窃取技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档