Kekeo的使用

admin 2024年4月19日18:41:13评论3 views字数 4310阅读14分22秒阅读模式
Kekeo的使用
Kekeo的使用
Kekeo的使用
Kekeo的使用
Kekeo的使用

如果大家想参加《域渗透攻防》的培训课程,可以参见助你弯道超车,《域渗透攻防》培训课程来啦!

本文部分节选于《域渗透攻防指南》,购买请长按如下图片扫码。

Kekeo的使用

kekeo的使用

Kekeo是MimiKatz的作者Benjamin用C语言写的针对Kerberos协议进行攻击的工具。它可以发起Kerberos请求,并将请求的票据导入内存中,从而模拟针对Kerberos协议各个阶段发起攻击,以方便安全研究员进行研究和学习。然而由于种种原因,并且其功能其实也没有Rubeus工具强大,导致Kekeo并没有很大范围的被使用。以下简要的讲述Kekeo的一些简单用法,本文的目的是希望大家对Kekeo工具有一个简单的了解。

项目地址:https://github.com/gentilkiwi/kekeo

以下是以KekeoV2.1版本为实验,如图:

Kekeo的使用

Kekeo提供的模块

Kekeo提供了多个模块供大家使用,不同模块有不同的功能。

1

standard标准模块

standard标准模块是Kekeo默认的模块,其提供的一些简单的功能。

如图所示,输入任意一个不存在的命令,这里输入的是 ? ,然后会提示在标准模块中并未提供 ?的功能,接着会列举出standard标准模块中提供的一些命令。

Kekeo的使用

如下,是这些standard标准命令的解释:

  • exit:退出

  • cls:清屏

  • answer:回答关于生命、宇宙和一切的终极问题

  • coffee:打印一个咖啡

  • sleep:睡眠时间为一毫秒

  • log:打印日志到文件

  • base64:转换文件input/output base64的支持

  • version:显示版本

  • cd:切换目录

  • localtime:查看当前时间

这些standard标准命令几乎都不常用,但是需要提一点就是base64命令。

base64命令用于input/output对于base64的支持,如下:

#查看base64的支持base64#input 支持base64base64 /input:on#output 支持base64base64 /output:on#input 不支持base64base64 /input:off#output 不支持base64base64 /output:off

如图所示,可以看到,通过on/off切换input/output对于base64的支持。

Kekeo的使用

2

其它模块

除了standard标准模块外,Kekeo提供的其他模块才是重点。如下图,输入任意一个不存在的命令xx::xx,这里输入的是aa::bb,然后会提示aa模块并未发现,接着会列举出Kekeo提供的一些模块如图所示。

Kekeo的使用

如下,是Kekeo提供的一些模块:

  • standard:标准模块

  • tgt:TGT模块

  • tgs:TGS模块

  • exploit:攻击模块

  • misc:杂项模块

  • kerberos:Kerberos包模块

  • smb:小型SMB模块

  • ntlm:NTLM模块

  • tsssp:TSSSP模块

其中最常用的便是tgt和tgs模块,以下会演示这两个模块的一些用法。

Kekeo的使用

申请TGT认购权证

Kekeo使用tgt模块申请TGT认购权证,可以使用明文或者密码哈希进行认证。可以将票据导出成文件,也可以将票据直接导入到当前的内存中。

将TGT认购权证导入到内存中后,想请求什么服务,系统就会自动利用该TGT认购权证请求指定服务的ST服务票据。

如当dir域控或者dcsync哈希的时候,会自动请求对应的ST服务票据。

  • dir请求的服务是cifs服务。

  • mimikatz的dcsync请求的服务是ldap服务。

1

明文密码请求

Kekeo支持使用明文密码请求TGT认购权证。以下演示Kekeo自动导入票据和通过mimikatz手动导入票据。

01

Kekeo自动导入票据

如下命令,使用administrator的明文密码请求TGT认购权证,并自动导入到内存中;票据导入到内存中,即可访问高权限服务了。

#明文密码申请TGT认购权证并导入到内存中tgt::ask /user:administrator /domain:xie.com /password:P@ssword1234 /ptt 

如图所示,未导入票据之前,是无法通过dir命令访问域控和mimikatz的DCSync功能导出域内哈希的。

Kekeo的使用

导入票据之后,即可通过dir命令访问域控和通过mimikatz的DCSync功能导出域内哈希。如图所示:

Kekeo的使用

02

使用mimikatz手动导入票据

如下命令,使用administrator的明文密码请求TGT认购权证,并生成为kirbi结尾的票据,此时不导入内存中。

#明文密码申请TGT认购权证,此时会生成一个kirbi结尾的票据tgt::ask /user:administrator /domain:xie.com /password:P@ssword1234#使用mimikatz导入kirbi结尾的票据mimikatz.exe "kerberos::ptt [email protected][email protected]" "exit"

如图所示,以administrator身份申请一张TGT认购权证,可以看到生成了票据文件[email protected][email protected]

Kekeo的使用

然后使用mimikatz将该票据导入到内存中,即可使用该票据了。

如图所示,可以看到在mimikatz将票据导入内存前是无法访问域控AD01的,导入票据之后,即可以访问AD01。

Kekeo的使用

2

密码哈希请求

Kekeo也支持使用密码哈希请求TGT认购权证。如下命令,使用administrator的密码哈希请求TGT认购权证。

#密码哈希申请TGT认购权证并导入到内存中tgt::ask /user:administrator /domain:xie.com /ntlm:33e17aa21ccc6ab0e6ff30eecb918dfb /ptt#密码哈希申请TGT认购权证,此时会生成一个kirbi结尾的票据tgt::ask /user:administrator /domain:xie.com /ntlm:33e17aa21ccc6ab0e6ff30eecb918dfb

如图所示,使用密码哈希申请的TGT认购权证,然后直接导入到内存中,此时不会生成以.kirbi结尾的票据文件。票据导入到内存中后,即可访问高权限服务了。

Kekeo的使用
Kekeo的使用

申请ST服务票据

Kekeo使用tgs模块申请ST服务票据,需要提供一张TGT认购权证。因此,需要先使用Kekeo请求一张TGT认购权证,然后再使用tgs模块用该TGT认购权证请求指定服务的ST服务票据。可以将请求的ST服务票据导入内存中或者导出成票据文件。

1

首先请求TGT认购权证

首先,使用Kekeo请求一张TGT认购权证如图所示。

#明文密码申请TGT认购权证,此时会生成一个kirbi结尾的票据tgt::ask /user:administrator /domain:xie.com /password:P@ssword1234
Kekeo的使用

2

请求ST服务票据

接着用上一步请求的TGT认购权证即可请求指定服务的ST服务票据了!这里需要注意的是我们平常请求的CIFS服务的票据,只能用于dir这种操作,而不能使用mimikatz的DCSync功能。要想使用mimikatz的DCSync功能,需要请求LDAP服务。

01

请求CIFS服务

如下命令,用上一步得到的TGT认购权证请求AD01的CIFS服务的ST服务票据。

tgs::ask /tgt:[email protected][email protected] /service:cifs/AD01.xie.com /ptt

如图所示,可以看到,未请求ST服务票据之前,无法访问AD01的CIFS服务,导入ST服务票据之后,即可访问AD01的CIFS服务了。

Kekeo的使用

并且由于请求的的CIFS服务的票据,因此无法使用mimikatz的DCSync功能导出域用户哈希。

如图所示,可以看到使用mimikatz的DCSync功能导出域用户哈希时报错。

Kekeo的使用

02

请求LDAP服务

如下命令,用上一步得到的TGT认购权证请求AD01的LDAP服务的ST服务票据。

#请求访问ad01.xie.com的ldap服务的ST服务票据,并导入到内存中tgs::ask /tgt:[email protected][email protected] /service:ldap/AD01.xie.com /ptt#通过mimikatz的DCSync功能导出域用户哈希mimikatz.exe "lsadump::dcsync /domain:xie.com /user:krbtgt /csv" "exit"

如图所示,可以看到,未请求ST服务票据之前,无法通过mimikatz的DCSync功能导出域用户哈希,导入ST服务票据之后,即可使用mimikatz的DCSync功能导出域用户哈希。

Kekeo的使用

并且由于请求的是LDAP服务的票据,因此无法使用dir功能访问域控。

如图所示,可以看到使用dir访问域控AD01时提示权限拒绝。

Kekeo的使用
Kekeo的使用

约束性委派攻击

Kekeo工具只支持约束性委派攻击,而不支持基于资源的约束性委派攻击。以下是使用Kekeo工具进行约束性委派攻击。

#使用machine$账号申请一个TGT认购权证tgt::ask /user:machine /domain:xie.com /password:root#使用上一步的TGT认购权证,利用S4U协议,以administrator@xie.com用户身份申请一张访问cifs/AD01.xie.com服务的ST服务票据,并导入到内存中tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/AD01.xie.com /ptt

攻击者创建了一个机器账号machine$,密码为root,如图所示:

Kekeo的使用

并且配置了machine$机器账号到指定cifs/AD01.xie.com服务的约束性委派,如图所示:

Kekeo的使用

现在使用Kekeo工具利用machine$机器账号进行约束性委派攻击,获得域控AD01的权限,如图所示。

Kekeo的使用
Kekeo的使用
END -

非常感谢您读到现在,由于作者的水平有限,编写时间仓促,文章中难免会出现一些错误或者描述不准确的地方,恳请各位师傅们批评指正。如果你想一起学习AD域安全攻防的话,可以加入下面的知识星球一起学习交流。

Kekeo的使用
Kekeo的使用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月19日18:41:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Kekeo的使用https://cn-sec.com/archives/2671859.html

发表评论

匿名网友 填写信息