说明一下:
域内用户枚举工具使用说说:
Kerbrute
pyKerbrute
MSF模块的使用
域内用户名枚举原理分析:
域内用户枚举攻击防御:
流量检测:
日志层面:
说明一下:
- 域环境或者内网环境下,可以在没有域环境有效凭证得情况下,枚举出域内存在得用户名,并且对其进行密码喷洒攻击,以此获取到域内有效得凭证。
域内用户枚举工具使用说说:
Kerbrute
下载地址
https://github.com/ropnop/kerbrute/releases
- Kerbrute是一款使用Go语言编写的域内用户名枚举和密码喷洒工具,域内用户名枚举。
- 命令如下:
- kerbrute_windows_amd64.exe userenum --dc ip -d xxx.com user.txt
相关参数如下:
- userenum:用户枚举模式。
- --dc:指定域控IP。
- -d:指定域名。
- user.txt:用户名字典文件,里面的用户名可不加域名后缀。
使用Kerbrute工具进行用户名枚举,指定的城控IP为想要枚举域IP,指定的域名为XXX.com,枚举的用户名字典为user.txt文件.
- 备注: 这里说明一下: 用户字典可以在github上进行搜索可以搜索出很多相关字典。
- 可以看到枚举出有效域用户名 administrator 等等一些
pyKerbrute
- pyKerbrute 是一款使用Python编写的域内用户名枚举和密码枚举的喷洒工具。
- 这个工具通过TCP和UDP 两种模式进行工作。
- user.txt 中用户名格式不需要加域名后缀。
执行命令如下:
- python2 EnumADUser.py 192.168.1.89 xie.com user.txt udp
- python2 EnumADUser.py 192.168.1.89 xie.com user.txt tcp
MSF模块的使用
使用MSF下的auxiliary/gather/kerberos_enumusers模块也可以进行域内用户名枚举
- use auxiliary/gather/kerberos_enumusers
- set domain xie.com
- set rhost 192.168.1.88
- set user_file /tmp/user1.txt
- run
域内用户名枚举原理分析:
- 在字典中含有域内用户凭证,在通过Wireshark抓包,可以看到多个域Kerberos协议相关的数据包,均是AS的步骤包。
- 前两个包是用户administrator的枚举,从AS -ERP包可以返回状态是
- 用户存在且启用状态 - KDC_ERR_PREAUTH_REQUIRED-(需要额外的预认证)。
- error-code: eRR-C-PRINCIPAL-UNKNOWN (6)。
- 不存在这个用户
- NT Status: STATUS_ACCOUNT_DISABLED (0xc0000072)。
- 禁用状态
域内用户枚举攻击防御:
- 那么在防守端,我们如何针对域用户枚举攻击进行检测和防御。
-
流量检测:
- 可以通过检测同一个IP在短时间内是否发送大量的AS-REQ 包来判断。如果同一个IP在短时间发送大量的AS-REQ包则可判断是异常。 如一秒30次。
-
日志层面:
- 默认情况下域内用户名枚举不会对不存在用户名发起AS-REQ包产生的任何日志,所以日志不太好检测。
写文章不易 点个赞吧~ 哈哈