一个可怕的现状:我在网络安全领域工作多年,从事大范围的渗透和红队服务。是的,与我刚开始进行渗透测试时一样,在“午餐前”获得Domain Admin仍然是很容易的事情。
早在2013年9月,SpiderLabs就撰写了一篇题为“ SpiderLabs在您的内部网络上获得域管理员的五大方法”的文章。本文是为向原文致敬,并续写一个非官方的“第二部分”。
Netbois和LLMNR命名投毒(Netbios and LLMNR Name Poisoning)
我希望我能说Netbios / LLMNR并不像2013年那么流行。但绝大多数安全评估中,评估者都可获得NTLMv1和NTLMv2哈希值并恢复为可用凭据。为了辅助破解捕获的Hash值,现在有了像hate_crack这样的高级框架来协助完成密码暴力破解工作。
我个人使用一个常见单词表(破解成功率很高),这个单词表由“ uniqpass ”(原文链接上不去,这里提供一个互联网档案馆的链接),以及hashcat的best64规则集组成。但很多时候,系统会强制要求复杂密码。这时除了暴力破解一些hash值,没有别的选择。
Responder,可以说是与mitm投毒和欺骗相关事项的首选工具。它仍然由Laurent Gaffie积极维护中。
Inveigh由原生Windows .NET编写,是Responder的兄弟(Unix/Linux下Python编写)。
Inveigh的核心是一个.NET数据包嗅探器,它侦听并响应LLMNR / mDNS / NBNS请求,同时还捕获通过Windows SMB服务传入的NTLMv1 / NTLMv2身份验证尝试。
这两款中间人工具都旨在协助在Windows系统进行渗透测试的渗透测试人员、红队人员。
中继攻击(Relay attacks)
Responder中的新工具MultiRelay由Laurent Gaffie维护,该工具为无缝的SMB中继攻击而设计。
我个人更喜欢使用impacket中的工具来满足中继和其他渗透测试需求。我发现Impacket的工具在大多数unix上都可靠和稳定,并可在Mac OS上原生运行。与其他免费的开源工具相比,它们在主机上执行时会留下相对较小的取证痕迹(如果您担心这些噪音、希望隐蔽或不得不抵挡蓝队)。
为了下面这些例子的使用,让我们预先安装impacket 。
SMB中继解释
该模块用于执行最初由cDc发现的SMB Relay攻击。它接收一个进行中继目标的参数,为每个接收到的连接选择下一个目标并尝试中继凭证。此外,如果指定参数,它将首先对连接到我们的客户端进行身份验证。
它实现了Hook了部分函数的SMB服务器与HTTP服务器以及smbclient的部分功能。它可以在任何LM兼容级别上工作。阻止这种攻击的唯一方法是强制执行服务器SPN检查或签名。
如果目标系统开启了强制签名并且有一个机器账号,这个模块将会尝试使用NETLOGON(CVE-2015-0005)进行Session Key 的收集。
如果针对目标的身份验证成功,则客户端同样身份验证成功,并且将会与本地SMB服务器简历有效连接。用户可以针对需要设置本地SMB服务器。一种选择是配置一些共享文件,使受害者认为他连接到了正确的SMB服务器。以上操作都是通过smb.conf文件或以编程方式完成的。
NTLM中继说明
NTLM身份验证是基于挑战 – 响应的协议。挑战 – 响应协议使用共享密钥(在这种情况下为用户密码)来验证客户端。服务器发送一个挑战,客户端对这个挑战进行回应。如果挑战与服务器计算的挑战匹配,则认证成功。NTLM身份验证是一个复杂的协议,这里只是简单的介绍了下它如何工作。有兴趣详细了解可以看:http://davenport.sourceforge.net/ntlm.html>
ntmlreayx和随机选择的目标↑
SMBRelay和较新的攻击都利用SMB签名,允许特权用户通过SMB / NTLM身份验证机制进行身份验证。
- 注意不同网络上的Windows主机列表中包含的目标很重要。我的一个很好的窍门是以随机方式创建非签名SMB主机的目标列表(It is important to note that the targets contained in the list of Windows hosts on different networks. A nice trick of mine is to create your target lists of non smb signed hosts in a randomized fashion)
- 下面的这种情况的主机,让我能够加速的获得域管理员:域管理员允许域用户以本地管理员权限访问那些本地密码与域密码相同的SQL Server(The host below, which expedited me getting domain admin allowed domain users local admin access to a SQL server that shared the same local admin password with a Domain Controller)
默认情况下,如果不指定要执行的二进制文件,ntlmrealyx将运行secretsdumps。
管理员散列↑
成功完成NTLM中继后,您会在执行ntmrelayx的目录中找到名为“IP_samhashes”的HASH文件。
使用这个管理员散列,我用臭名昭着的pass-the-hash技术使用了impacket的wmiexec.py获得了域管理员权限。
域控制器的Shell权限↑
mitm6 + ntlmrelayx + pth = Domain Amin↑
在上面的场景中,我能够将凭证从一个网络转发到另一个网络,并检索到可以通过wmiexec.py传递的管理员HASH。这个特定的本地管理员HASH让我可以在不破解密码的情况下获得域管理员,甚至事先拥有有效的域用户帐户。
MS17-010
nmap -Pn -p445 – open – max-hostgroup 3 – smb-vuln-ms17-010 script
ETERNALBLUE,ETERNALCHAMPION,ETERNALROMANCE和ETERNALSYNERGY是2017年4月14日由Shadow Brokers组织发布的多个方程式组织的漏洞和exploits中的四个。WannaCry / WannaCrypt是一个利用ETERNALBLUE漏洞的勒索软件程序,EternalRocks是一种使用7个方程式组织漏洞的蠕虫。Petya是一个勒索软件程序,首先使用Microsoft Office中的漏洞CVE-2017-0199,然后通过ETERNALBLUE传播。
2018年的“8067”↑
Kerberoasting
我已经使用称为Kerberoasting的攻击方法在Active Directory域环境中多次成功提权。Tim Medin在SANS Hackfest 2014上发表了这种技术,从那以后,已经有很多关于攻击细节的精彩文章和会议讲座和利用不同技巧编写的工具(在本文底部的参考链接)。
Microsoft的Kerberos实现方式可能有点复杂,但对其进行攻击是利用它对旧版Windows客户端的传统Active Directory支持、使用的加密类型和用于加密和签名Kerberos tickets的密钥材料。
实质上,当一个域帐户被配置为在域环境中运行服务(例如MS SQL)时,域将使用服务主体名称(SPN)将该服务与登录帐户相关联。当用户希望使用特定资源时,他们会收到一个使用正在运行该服务的帐户的NTLM哈希签名的Kerberos票据。
下面的例子来自mubix的网站
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。利用你的想象力,在午餐前利用mitm6的力量获得域管理员!
mitm6欺骗↑
ntlmrelayx的用法
mitm6设计上是与ntlmrelayx一同使用。您应该依次运行这些工具,在这种情况下,它会欺骗DNS,导致受害者连接到HTTP和SMB连接到ntlmrelayx。为此,您必须确保使用该-6
选项运行ntlmrelayx ,这会使其同时监听IPv4和IPv6。要获取WPAD的凭据,请指定WPAD主机名进行欺骗-wh HOSTNAME
(由于DNS服务器是mitm6,本地域中的任何不存在的主机名都将起作用)。如果您怀疑受害者没有修补MS16-077漏洞,您也可以使用-wa N
参数尝试进行多次对WPAD文件本身进行身份验证的提示。
mitm6是一种利用Windows默认配置接管默认DNS服务器的渗透测试工具。它通过回复DHCPv6消息来执行此操作,向受害者提供链接本地的IPv6地址并将攻击者主机设置为默认DNS服务器。DNS服务器(mitm6)将有选择地回复攻击者选择的DNS查询,并将受害者流量重定向到攻击者机器而不是合法服务器。有关这种攻击的完整说明,请参阅我们的关于mitm6的博客 。Mitm6旨在与来自impacket的ntlmrelayx一起使用,用于WPAD欺骗和证书中继。
关于下面的引用: 这个博客的许多部分直接引用和复制下面的来源。所有功劳归于那些完成我引用的惊人工作的人。
Hack all things and be responsible !!!
参考链接
https://1337red.wordpress.com/using-a-scf-file-to-gather-hashes/
https://github.com/lgandx/Responder
https://github.com/Kevin-Robertson/Inveigh
https://github.com/purpleteam/snarf
https://github.com/fox-it/mitm6
https://www.blackhillsinfosec.com/a-toast-to-kerberoast/
https://www.fox-it.com/en/insights/blogs/blog/inside-windows-network/
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