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

2018-03-01 11:15:14来源:网络收集作者:ZyOng人点击

分享

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


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


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





用户状态


Kerberos错误




目前/已启用


KDC_ERR_PREAUTH_REQUIRED - 需要额外的预认证




锁定/禁用


KDC_ERR_CLIENT_REVOKED - 客户端凭证已被吊销




不存在


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






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


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


Krbguess

用法:


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



Nmap krb5-enum-users NSE Script

用法:


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



Metasploit Module: auxiliary/gather/kerberos_enumusers


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


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


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


auxiliary/gather/kerberos_enumusers



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



域名(DOMAIN)


域控制器IP(RHOST)


用户列表(USER_FILE)




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



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



参考文献:


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


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

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台