从暴力枚举用户到获取域所有信息

红蓝对抗 2019-11-10

我们在进行内网渗透中,会遇到存在 windows 域环境的情况,当我们获得一个内网主机权限之后,这个主机可能没有加入域,我们无法直接通过在这个主机上获取域中的相关信息,这是如何进行域渗透呢?

我们可以通过钓鱼、欺骗、信息收集、密码猜解等方式获取一个域中普通用户的权限,下面先看一下如何暴力枚举域中的用户名。

暴力枚举用户名

我们在对域中信息一无所知的情况下,也没有域中的主机权限,也没有域中用户的账户信息,那么我们可以通过使用字典的方式枚举域中的账户名称。

对于用户名枚举需要对根据以下错误信息来辨别用户名是否正确:

img

下面推荐几个工具来完成这个工作。

krbguess

下载地址:

http://www.cqure.net/tools/krbguess-0.21-bin.tar.gz

枚举命令如下:

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

img

Nmap krb5-enum-users NSE Script

使用方法:

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

img

Metasploit 的模块:

模块信息如下:

auxiliary/gather/kerberos_enumusers

img

使用这个模块我们需要提供三个参数:

1、域名(Domain)

2、域控 IP(RHOST)

3、用户字典(USER_LIST)

img

输入 run 运行之后的结果如图:

img

在运行完成之后会将结果保存在 metasploit 的数据库中,输入命令 creds即可查看存在的用户。

img

枚举用户凭证

可以使用 Metasploit 的 auxiliary/scanner/smb/smb_login 来枚举用户的密码凭证,使用帮助如下:

img

img

获取域中用户信息

经过上面的操作,我们可能已经获得了一个或者若干域用户凭证,在这种情况下,我们就不需要在像之前那样采用暴力枚举的方式来获取用户信息来,我们可以采用光明正大的方式使用域中用户的身份去域数据库中搜索我们想要的数据。

我们要做的几个目标如下:

1、获取用户账户

2、获取用户权限信息(例如 domain admin 组或者远程桌面管理组)

3、枚举域密码策略

4、获取进一步的攻击途径

下面介绍几个可以满足上面需求的工具。

windapsearch

工具下载地址:

https://github.com/ropnop/windapsearch

这个工具是用 python 写的可以通过域控的 LDAP 服务查询用户、组和计算机信息,使用命令如下:

windapsearch --dc-ip [IP_ADDRESS] -u [DOMAIN]USERNAME -p [PASSWORD] -U

-U参数的意思获取域中的所有用户,例如:

windapsearch --dc-ip 192.168.5.1 -u mydomainops -p Pa55word -U | grep cn: | cut -d " " -f 2

我们可以使用 grep 和 cut 清理一些信息,结果如下:

img

使用 -da参数可以获取 domain admins 组中的成员:

windapsearch –dc-ip 192.168.5.1 -u mydomainops -p Pa55word --da | grep cn: | cut -d " " -f 2

img

使用 -m参数可以获取远程桌面组的成员:

windapsearch --dc-ip 192.168.5.1 -u mydomainops -p Pa55word -m "Remote Desktop Users" | grep CN=

img

PowerView

这个工具大家都不陌生,使用的人挺多的,作者博客:

http://www.harmj0y.net/blog

我们需要在没有加入域的主机上使用 runas/netonly建立一个由域用户启动的 powershell 会话:

runas /netonly /user:mydomainop powershell

我们需要在弹出的框中输入密码:

img

现在我们已经安装好了 PowerSploit,路径如下:

C:WindowsSystem32WindowsPowerShellv1.0ModulesPowerSploit-dev

我们导入 PowerSploit 模块:

Import-module .PowerSploit.psd1

我们使用下面的命令导出域用户:

Get-DomainUser -Domain mydomain.test -DomainController 192.168.5.1 | findstr samaccountname

img

使用下面的命令导出 domain admins组成员:

Get-DomainGroupMember -identity "Domain Admins" -Domain mydomain.test -DomainController 192.168.5.1 | findstr MemberName

img

使用下面的命令导出远程桌面管理组的成员:

Get-DomainGroupMember -identity "Remote Desktop Users" -Domain mydomain.test -DomainController 192.168.5.1 | findstr MemberName

img

我们还可以使用当前用户的身份查询他可以访问的共享列表:

Find-DomainShare -CheckShareAccess -Domain mydomain.test -DomainController 192.168.5.1

img

RSAT(微软远程服务管理工具)

Microsoft RSAT 的目的是让管理员可以通过远程来管理 Windows 服务器,这个工具的使用与上面的类似,首先创建一个域中普通用户权限的 powershell 会话,然后执行下面的命令获取域密码策略:

Get-ADDefaultDomainPasswordPolicy -Server 192.1685.5.1

img

我们也可以使用 RAST 的界面程序,使用 runas 启动:

runas /netonly /user:mydomainops mmc

下面我们用这种方式来增加主机或用户到域中:

img

img

将域控制器实例改为我们的目标:

img

我们下面看看在域中的用户信息:

img

参考链接

https://www.offensive-security.com/metasploit-unleashed/smb-login-check/

https://www.attackdebris.com/?p=311

https://www.attackdebris.com/?p=470


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论