在内网中拿下DC的五种常用方法

2019-04-04 约 3455 字 预计阅读 7 分钟

声明:本文 【在内网中拿下DC的五种常用方法】 由作者 wing 于 2019-02-03 09:59:00 首发 先知社区 曾经 浏览数 1438 次

感谢 wing 的辛苦付出!

前言

我有一个骚想法:这么多年来,我一直从事安全方面的工作,提供了很多的渗透测试服务和红队服务。
我一开始做渗透的时候也能很快拿到DC权限。

2013年9月,Spider Labs写了一篇文章,标题是通过SpiderLabs在内网中拿到DC的五种方法
这篇文章就当作是它的后续吧。

Netbios和LLMNR名称中毒

虽然说Netbios/LLMNR并不像2013年那样普及,但是绝大多数的测试都会导致安全评估人员获得NTLMv1和NTLMv2哈希并恢复成可用的凭据。
现在有一些高级框架可以进行暴力破解,例如hate_crack
我自己的话使用一些自己搜集的常用字典就很容易成功破解:uniqpass 和常见hashcat规则集best64,但遇到复杂的密码,就没办法了。

Responder,可以说是首选用来进行中间人攻击的工具。它仍由Laurent Gaffie维护。
Inveigh,它是基于Unix/Linux 下 python版本的Responder,可以运行在原生的Windows上。
Inveigh的核心是一个.NET数据包嗅探器,它监听并响应LLMNR/mDNS/NBNS请求,同时还通过Windows SMB服务抓取NTLMv1/NTLMv2的身份验证数据包。
在windows环境中,这两种中间人工具包适用于渗透测试人员和red team,

重放攻击

较新的中间人重放工具主要由Laurent Gaffie维护,专门为SMB重放攻击制作的。

我个人更喜欢impacket的工具,用于重放攻击和其他渗透测试需求。我发现Impacket的工具在大多数unix上都是可靠而且稳定的,并且可以在Mac OS上本地运行。与其他免费开源工具相比,其他工具在主机上执行时会留下相对较小的痕迹(如果担心被发现或者对抗蓝队)。

SMB重放攻击解释

smbrelayx.py

这个模块是最初由cDc发现的SMB中继攻击而开发的。
它接收目标列表,对于收到的每一个连接,它选择要通信的目标并尝试重放凭证。 除此之外,如果指定,它将首先针对连接到我们的客户端进行身份验证。
然后通过调用SMB和HTTP Server,hook一些函数然后使用smbclient的一部分来实现。
它应该适用于任何LM兼容级别。
阻止此攻击的唯一方法是强制让服务器进行SPN检查或者检查签名,然后SMB重放攻击就GG。

如果客户端身份验证成功以及针对本地smbserver设置的有效连接。 用户可以设置本地smbserver功能。 一种选择是使用你希望受害者认为他连接到的是有效SMB服务器的文件,然后来设置共享。
这些操作都是通过smb.conf文件或以编程方式完成的。

NTLM重放攻击解释

ntlmrelayx.py

NTLM身份验证是一种基于challenge-response 的协议。 challenge-response协议使用共同的密钥,在这种情况下:用用户的密码去验证客户端。 服务器发送一个challenge,客户端回复此challenge的响应。 如果challenge与服务器计算的challenge相匹配,则接受身份验证。 NTLM身份验证是一种复杂的协议,这里解释的是简化。 可以在http://davenport.sourceforge.net/ntlm.html找到非常好的详细描述。

ps:倾旋的博客讲的很详细:

质询的完整过程:
1.客户端向服务器端发送用户信息(用户名)请求

2.服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”, 使用登录用户名对应的NTLM Hash加密Challenge(16位随机字符), 生成Challenge1。同时,生成Challenge1后,将Challenge(16位随机 字符)发送给客户端。

3.客户端接受到Challenge后,使用将要登录到账户对应的NTLM Hash加密Challenge生成Response,然后将Response发送至服务器端。

其中,经过NTLM Hash加密Challenge的结果在网络协议中称之为Net NTLM Hash。

验证: 服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认证通过。

SMBRelay和较新的攻击都利用了SMB签名,允许高权限用户通过SMB/NTLM身份验证机制进行身份验证。

记得注意不同网络上的Windows主机列表中包含的目标。
我有一个很好的技巧是以随机方式创建非smb签名主机的目标列表。

这些主机,可以让我更快的获取到域管理员允许域用户本地管理员访问与域控制器并且共享的是相同本地管理员密码的SQL服务器。

默认情况下,如果未指定要执行的二进制文件,则ntlmrealyx将运行secretsdumps。

成功完成NTLM重放后,您将在执行ntmrelayx的目录中找到名为IP_samhashes的哈希文件。

使用impacket的wmiexec.py文件执行pass-the-hash,因为我们此时有了管理员的hash值。

在上面的场景中,我能够将凭据从一个网络重放到另一个网络,然后使用wmiexec.py进行hash传递。 这个管理员的hash让我不用再去破解密码,甚至还拥有一个高权限的账户。

MS17-010

nmap -Pn -p445 - open - max-hostgroup 3 - smb-vuln-ms17-010 script <ip_netblock>

https://isc.sans.edu/forums/diary/Using+nmap+to+scan+for+MS17010+CVE20170143+EternalBlue/22574/

445这个洞就不多说了,内网的情况下很容易利用,具体也要看目标环境。

Kerberoasting

我使用Kerberoasting这个攻击手段在Active Directory域环境中成功的提权。 Tim Medin在2014年SANS Hackfest上展示了这项技术,
从那以后,有了很多关于攻击细节的精彩文章和讨论以及不同的技术工具。

Microsoft的Kerberos实现可能有点复杂,但攻击的重点是它利用了老版Windows客户端的Active Directory支持以及所使用的加密类型以及用于加密和签署Kerberos票据的密钥材料。

实质上,当域帐户配置为在环境中运行服务(例如MSSQL)时,域中将使用服务主体名称(SPN)将服务与登录帐户相关联。
当用户希望使用特定资源时,他们会收到使用运行该服务的帐户的NTLM哈希签名的Kerberos票据。

下面是一个来自mubix's website的例子:

root@wpad:~/impacket/examples# ./GetUserSPNs.py -dc-ip 192.168.168.10 sittingduck.info/notanadmin
Impacket v0.9.15-dev - Copyright 2002-2016 Core Security Technologies

Password:
ServicePrincipalName                Name        MemberOf                                          PasswordLastSet
----------------------------------  ----------  ------------------------------------------------  -------------------
http/win10.sittingduck.info         uberuser    CN=Domain Admins,CN=Users,DC=sittingduck,DC=info  2015-11-10 23:47:21
MSSQLSvc/WIN2K8R2.sittingduck.info  sqladmin01                                                    2016-05-13 19:13:20

mitm6

Mitm6是一个非常强大的工具,用于获取和提升比较典型Windows的广播网络的权限。
当上面的手段失败时; 尝试使用smbrelay + mitm6或它的默认对应物ntlmreayx。
多思考,想办法尽快拿下DC。

ntlmrelayx:

mitm6主要与ntlmrelayx一起使用,应该互相同时运行,在这种情况下,它会欺骗DNS服务器,导致受害者连接到ntlmrelayx然后进行HTTP和SMB连接。为此,您必须确保使用-6option运行ntlmrelayx,这将使其在IPv4和IPv6上进行监听。要获取WPAD的凭据,请使用-wh HOSTNAME指定要欺骗的WPAD主机名(由于DNS服务器是mitm6,因此本地域中的任何不存在的主机名都将起作用)。或者,如果您怀疑目标没有打MS16-077的补丁,您还可以使用-wa Nparameter尝试提示WPAD文件本身的身份验证。

mitm6是一个测试工具,它利用Windows的默认配置来接管默认的DNS服务器。它通过回应DHCPv6消息,为受害者提供链路本地IPv6地址并将攻击者主机设置为默认DNS服务器来实现此目的。 DNS服务器mitm6将有选择地回复攻击者选择的DNS查询,并将受害者流量重定向到攻击者计算机而不是正常的服务器。有关攻击的完整说明,请参阅我们关于mitm6的博客。 Mitm6主要用来与impacket的ntlmrelayx一起工作,用于WPAD欺骗和凭证重放。

参考如下:
本博客的许多部分都是直接引用并从以下来源复制而来。
所有的成就都是归功于前人之上。

做一个有责任的hacker!

referer:
https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS17-010/ms17_010_eternalblue.rb
https://room362.com/post/2016/kerberoast-pt1/
https://isc.sans.edu/forums/diary/Using+nmap+to+scan+for+MS17010+CVE20170143+EternalBlue/22574
https://www.fox-it.com/en/insights/blogs/blog/inside-windows-network/
https://www.blackhillsinfosec.com/a-toast-to-kerberoast/
https://github.com/fox-it/mitm6
https://github.com/purpleteam/snarf
https://github.com/Kevin-Robertson/Inveigh
https://github.com/lgandx/Responder
https://1337red.wordpress.com/using-a-scf-file-to-gather-hashes/

原文链接:https://medium.com/@adam.toscher/top-five-ways-i-got-domain-admin-on-your-internal-network-before-lunch-2018-edition-82259ab73aaa

关键词:[‘技术文章’, ‘翻译文章’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now