【安识译文系列】Kerberos域用户名枚举

2018-02-27 5,527

随着近年来Windows系统持续更新以及良好的维护,即使从内部测试的角度来看,从Windows环境中枚举有效的操作系统级的用户名变得越来越不可能,也不会再有RID循环从未经认证的角度向我们提供了完整的域用户列表的情况发生。

但是呢,正所谓车到山前必有路,就内部评估而言,Kerberos服务(88 / tcp)仍然为我们提供了一个与枚举域帐户名称相关的快乐狩猎场所。

质上,用户名枚举通过以下Kerberos错误代码来加以利用

用户状态

Kerberos错误

目前/已启用

KDC_ERR_PREAUTH_REQUIRED - 需要额外的预认证

锁定/禁用

KDC_ERR_CLIENT_REVOKED - 客户端凭证已被吊销

不存在

KDC_ERR_C_PRINCIPAL_UNKNOWN - 在Kerberos数据库中找不到客户端

2-840_340 .png

一些已经开发出来有一段时间但仍然十分好用工具,它使我们能够利用这些Kerberos响应来识别有效或无效的域帐户。

到目前为止,我所使用的两种工具都由Patrik Karlsson提供,第一种是独立Java工具Krbguess,第二种是nmap的krb5-enum-users NSE脚本。

Krbguess

用法:

Java –jar kerbguess.jar –r [domain] –d [user list] –s [DC IP]

krbguess1.jpg

Nmap krb5-enum-users NSE Script

用法:

Nmap –p 88 –script-args krb5-enum-users.realm=’[domain]’,userdb=[user list] [DC IP]

krbguess2.jpg

Metasploit Module: auxiliary/gather/kerberos_enumusers

像大多数渗透测试人员一样,我是Metasploit框架的重度用户。多年来一直希望能在框架内利用此功能。但是不知出于何种原因,它似乎从未实现过,所以我打算尝试一下实现这个功能。

在很大程度上依赖其他Metasploit贡献者提供的Kerberos支持,并使用ms14_068_kerberos_checksum的辅助模块作为模板,该过程的实现,实际上比我预期的要简单得多。

新的Metasploit辅助模块可以在以下位置找到:

auxiliary/gather/kerberos_enumusers

krbguess3.jpg

与前面讨论的Kerberos枚举工具一样,需要提供3个值:

  1. 域名(DOMAIN)

  2. 域控制器IP(RHOST)

  3. 用户列表(USER_FILE)

krbguess4.jpg

现在可以运行该模块以通过Kerberos服务枚举有效(和禁用/锁定)的域帐户:

krbguess5.jpg

最后,由于在rapid7中增加了bwatter-r7,任何有效的枚举用户名都存储在Metasploit数据库中,并且可以通过 creds 命令检索:

krbguess6.jpg

参考文献:

http://www.cqure.net/wp/tools/password-recovery/krbguess/

https://nmap.org/nsedoc/scripts/krb5-enum-users.html

https://www.rapid7.com/db/modules/auxiliary/admin/kerberos/ms14_068_kerberos_checksum


翻译者:安识科技吃鸡大王

本文链接:https://www.secpulse.com/archives/68628.html

翻译原文:https://www.attackdebris.com/?p=311


Tags:
评论  (2)
快来写下你的想法吧!
  • nmap更新可以 2018-02-27 14:33:01

    nmap更新的够快啊 如果里面所有nse脚本都研究透了 也很厉害 Krbguess我去下载个玩玩

  • fangge 企业认证 2018-02-28 10:02:33

    payload下载地址在哪?[em_67]

安识科技

文章数:21 积分: 43

安识科技:专业的企业安全解决方案提供商。官网:https://www.duoyinsu.com/

关注我们