[PHP是世界上最好的语言] 不信你看这款PHP写的敲诈者木马

FreeBuf   发布时间:2016-06-25 15:27:23   作者:佚名   我要评论
有个笑话:女的说,你们能让论坛上的人吵起来,我就做你女朋友。男的发了一句话:PHP是世界上最好的语言。瞬间论坛就炸锅了,女的说好吧,我同意了,咱们去吃饭吧。男的:不!我一定要说服他们PHP必须是世界上最好的语言。今天揭秘一个“最好的语言”编写的木马

有个笑话:女的说,你们能让论坛上的人吵起来,我就做你女朋友。男的发了一句话:PHP是世界上最好的语言。瞬间论坛就炸锅了,女的说好吧,我同意了,咱们去吃饭吧。男的:不!我一定要说服他们PHP必须是世界上最好的语言。今天揭秘一个“最好的语言”编写的木马——敲诈者木马。

背景

你永远叫不醒一个装睡的人。但,快递小哥可以!

虽说是一句戏言,但确实多少反映出了快递在大家心中的重要性。如果你收到一个带有快递公司发来的电子邮件通知,你会不会也希望快点打开看看是不是哪个朋友给你寄了什么东西等着你去取呢?最近我们就收到了这样的一个带有“快递单号”的电子邮件附件。唯一有些水土不服的就是——在中国用FedEx的确实并不很多……大写的PITY……

图片1.png

木马起始——FedEx_ID_00645987.doc.js

这个所谓的doc文档,其实是一个javascript脚本,而脚本的内容……好乱……

图片2.png

凌乱的javascript脚本代码

经过简单的解密和格式整理,给大家呈现了一个比较漂亮的脚本格式如下:

图片3.png

整理后的javascript脚本代码

脚本主要功能就是循环下载并执行木马。脚本中供提供了5个域名供下载(域名作用为备份,如果前面的域名可以下载,则不再尝试后面的域名):

图片4.png

脚本通过给URL传递不同参数的方式,获取不同的文件(返回状态码200且返回内容大于1000字节即判断为下载成功)。

图片5.png

最终木马获取如下文件(p.s. 根据后续实测,这五个文件仍在服务端不定期更新,本文仅描述文章撰写时下载到的样本行为):

图片6.png

图片7.png

如上表所示,脚本下载到本地的5个文件实际上被分成了3组:a1.exe和a2.exe各自独立运行;a.exe、php4ts.dll和a.php则同为一组。必须三个文件同时存在,脚本才会执行该木马,而且还会再执行完第三组之后打扫一下战场——删除掉木马文件并且修改注册表值用于关联被加密的文件:

图片8.png

根据VT的扫描结果来看,54家全球主流杀软中有12款产品可以检出该木马:

图片9.png

PHP木马分析

其实这个木马最先引起我们兴趣的是后面下载的这三个一组的文件。之所以引起我们的兴趣,是因为根据我们的记录:a.exe和php4ts.dll其实都是人畜无害的合法程序。实际上,a.exe是PHP Thread Safe CGI(PHP线程安全通用网管接口),而php4ts.dll则是这个接口程序运行所必须导入的一个动态库文件:

图片10.png

把话说的通俗点,这两个程序其实就是一个php脚本的解释器。他们被下载下来的唯一目的——就是让a.php可以执行。所以就让我们看看这个a.php吧:

图片11.png

代码逻辑并不复杂,脚本会遍历C盘到Z盘的所有盘符下的文件,并跳过含有以下字符串的目录:

\winnt\boot\system\windows\tmp\temp\program\appdata\application\roaming\msoffice\temporary\cacherecycle


查找以下这些扩展名的文件:

zip|rar|r00|r01|r02|r03|7z|tar|gz|gzip|arc|arj|bz|bz2|bza|bzip|bzip2|ice|xls|xlsx|doc|docx|pdf|djvu|fb2|rtf|ppt|pptx|pps|sxi|odm|odt|mpp|ssh|pub|gpg|pgp|kdb|kdbx|als|aup|cpr|npr|cpp|bas|asm|cs|php|pas|class|py|pl|h|vb|vcproj|vbproj|java|bak|backup|mdb|accdb|mdf|odb|wdb|csv|tsv|sql|psd|eps|cdr|cpt|indd|dwg|ai|svg|max|skp|scad|cad|3ds|blend|lwo|lws|mb|slddrw|sldasm|sldprt|u3d|jpg|jpeg|tiff|tif|raw|avi|mpg|mp4|m4v|mpeg|mpe|wmf|wmv|veg|mov|3gp|flv|mkv|vob|rm|mp3|wav|asf|wma|m3u|midi|ogg|mid|vdi|vmdk|vhd|dsk|img|iso


打开每一个符合扩展名要求的文件,读取前1024字节并和密钥做循环异或加密。加密完成后再将修改后的文件加上一个.crypted扩展名——万事大吉。

只是让我们很疑惑的是——虽然php这世界上最好的语言(好吧,这只是个梗),但木马作者是如何用php在这么一段并不算长的代码中实现不对称加密的敲诈者代码的?

细读代码之后恍然大悟——并没有实现……这段代码的加密方式采用了对称加密算法,准确的说是循环异或加密。更加“人道主义”的是——这个php的加密代码其实是“两用”的,只要修改脚本中的一个参数,整个脚本立刻成为了解密脚本。可以直接将加密的文档解密回去:

图片12.png

所以说世界已经这么乱了,不对称加密的敲诈者满天飞的今天,对称加密敲诈者能不能就不要来添乱了?

当然,也并不是说这个脚本就人畜无害了——对称加密没有密钥想解开依然很麻烦,虽然我们这里拿到密钥了,但上面已经说了:木马作者再服务端依然持续更新着木马的内容,并且木马运行后会自删除,所以说虽然是对称加密,但依然有可能因为找不到加密时的密钥导致依然很难解开文件(难,但并非无解)……

但这都不是重点,重点是木马在加密完文件之后给出的敲诈信息:

图片13.png

相对于那些动辄两三个比特币的敲诈者木马来说,0.40290个比特币虽然有零有整的程度令人发指,但确实也算是价钱厚道了。但你所谓的“RSA-1024”是什么鬼?明明就是个简单的循环异或加密好么!不要假装自己是高大上的不对称加密好么!WTF……

POWERSHELL木马分析

然后我们再来说说两个独立运行的powershell木马。虽然a1.exe与a2.exe是各自独立运行的,但因为他们的行为基本相同,所以我们这里合并为一个来做统一说明。

样本首先会执行注入功能:

图片14.png

之后对线程做恢复以便执行注入后的代码:

图片15.png

完成后,恶意代码会检测机器环境——对不知处powershell的系统安装微软的KB968930补丁(补丁相关说明:https://www.microsoft.com/en-us/download/details.aspx?id=16818),添加对powershell的支持:

图片16.png

在确保用户环境可以执行powershell之后,注册一个文件关联,在文件打开的shell command中执行一段脚本:

图片17.png

图片18.png

图片19.png

这是一段短小精悍的脚本,但系统会根据这段短小的脚本的指令,再次访问注册表去执行注册表中的另一段恶意代码:

图片21.png

通过这种方式,恶意程序将恶意代码全部保存在注册表中,而落地文件只是用于触发恶意代码的执行,本身并没有恶意代码。落在本地的文件根本没有恶意代码,这样就更容易绕开安全软件的扫描检测。

我们导出含有恶意的代码的注册表内容,如下:

图片22.png

虽然已经是落在注册表中,但显然木马作者还是不放心——依然是用了多次的加密来掩盖这段代码的行为意图。经解密,我们得到的最终执行代码正是一段powershell代码:

图片23.png

显然,虽然已经解密到最终一步,但中间的变量“$sc32”依然让人看着有些不知所云……但看到ps1代码的最后,发现其实这已经是最终代码了。最终就是将$sc32的内容全部加载带内存中执行:

图片24.png

我们把数据dump出来,发现代码会从远端下载文件到本地执行,并且还会判断一下文件是否是有效的可执行程序——典型的下载者木马:

图片25.png

非PE渐成趋势

随着安全软件的普及,木马病毒与安全软件的对抗也逐渐变成了“近身肉搏战”,大家都在钻细节,都想在对方忽略的某个小点上做单点突破——这样一来,各种脚本甚至连脚本都不算的数据文件就显现除了相对于传统PE格式木马更多的优势。

这次出现的敲诈者木马就是典型的例子——一个javascript脚本木马释放出了一个php脚本木马和两个powershell脚本木马。而powershell木马甚至都没有落成ps1脚本而是直接在注册表中存储,php木马有落地的php文件,但php脚本既然能实现对称加密的敲诈者木马,更高一级的不对称加密敲诈者木马真的还会远么?

当然,并不是说非PE就可以为所欲为了,既然是近身肉搏,安全软件的响应自然也不会处于下风——兵来将挡水来土掩,我们已经做好了战斗准备。

相关文章

  • 世界顶尖的[白帽子] 全球TOP7 漏洞猎人

    未来的互联网最重要的不是速度,不是容量,而是安全。黑客这个词很多人已经耳熟能详,虽然他们是一群神秘的人,但不能判断他们是不是好人,越厉害的往往威胁越大。其实有一
    2016-07-15
  • 商场免费WIFI安全吗 WIFI密码共享软件隐患多

    因为接触这个行业,所以在密码方面有深深的恐惧。商场里提供免费wifi,然后也提供支付宝微信支付,竟然有这么多人真的敢用着公用wifi付款买单,市场上共享wifi密码的软件层
    2016-07-14
  • 精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

    《Pokémon Go》是任天堂 Pokémon(中译名口袋妖怪、宠物小精灵、精灵宝可梦)系列目前最火的游戏,可是这款游戏在国外网友眼中手机上要的权限未免过大了,我想这篇文章你
    2016-07-12
  • 不容小觑的十大互联网恶意软件

    这篇文章主要为大家详细介绍了互联网十大恶意软件威胁,十大恶意软件有哪些,每一个恶意软件的特点,感兴趣的小伙伴们可以参考一下
    2016-06-29
  • 你真的了解虚拟专用网络吗?还是先顾着自己的隐私再说吧

    中国的互联网并不是真正开放的互联网,有时候很多人耐不住自己想要窥探外面世界的好奇心,选择用翻墙这种方式打开世界的大门,而虚拟专用网络就是看似用来帮助你混淆自己踪
    2016-06-25
  • 躲避黑客的七大高招教程

    现在电脑用户最讨厌的就是黑客,有用户问怎么才能高效的躲避黑客的入侵呢?下面小编就为大家介绍七大高招,让你的电脑时时刻刻处于安全状态
    2016-06-30
  • 网站被黑注入博彩色情页面应该怎么办

    每当出现欧洲杯、世界杯、奥运会这种比赛时,各种博彩集团使出浑身解数黑掉正常的网站,尤其是流量大的资讯类网站。百度通过内部检测发现欧洲杯期间站点被黑数量呈上升趋势
    2016-06-25
  • 你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

    很多安全专家反复提醒用户设置账户和密码时要尽可能多样化,以防被破解。黑客只要简单的使用暴力破解攻击。暴力破解攻击是指攻击者尝试所有的可能性破解用户的账户名、密码
    2016-05-26
  • 乌云漏洞平台被连锅端?互联网安全缺失的到底是什么

    还记得我们之前说过的有个白帽子提交了世纪佳缘的漏洞然后被世纪佳缘告了的事情吗?这件事情引起了国内很多白帽黑帽的关注,如今事情又发酵,中国最大的两大漏洞平台——乌
    2016-07-20

最新评论