揭秘用“世界上最好的编程语言”制作的敲诈者木马

简介:

背景

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

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

  木马起始——FedEx_ID_00645987.doc.js

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

  凌乱的javascript脚本代码

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

  整理后的javascript脚本代码

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

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

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

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

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

  PHP木马分析

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

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

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

winntootsystemwindows mp empprogramappdataapplication oamingmsoffice emporarycacherecycle

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

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的加密代码其实是“两用”的,只要修改脚本中的一个参数,整个脚本立刻成为了解密脚本。可以直接将加密的文档解密回去:

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

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

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

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

POWERSHELL木马分析

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

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

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

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

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

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

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

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

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

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

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

  非PE渐成趋势

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

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

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

本文转自d1net(转载)

相关文章
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
654 7
|
监控 Java 应用服务中间件
分布式链路监控系统问题之描述Trace、Segment、Span之间的关系的问题如何解决
分布式链路监控系统问题之描述Trace、Segment、Span之间的关系的问题如何解决
211 0
|
机器学习/深度学习 算法 vr&ar
YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例
这个摘要主要涵盖了一个关于YOLO目标检测的深度学习专栏的内容概览。该专栏专注于YOLO算法的历史、前沿研究和实战应用,提供了一系列的文章,详细讲解了YOLO的改进方法,包括卷积优化、损失函数创新、注意力机制、网络结构和主干网络的更新,以及针对不同场景如红外成像、小目标检测等的应用。此外,还提供了每周多次的更新频率以保持内容的时效性,并指导读者进行论文写作和项目实现,包括具体的代码示例和实战项目,如行人检测、对象分割、姿态估计等。该专栏还涉及到面试准备和实习就业指导,帮助读者提升在图像算法领域的专业技能。
|
弹性计算 安全 Ubuntu
1Panel安装:阿里云服务器安装1Panel面板教程,超详细图文流程
阿里云服务器安装1Panel面板教程:首先远程连接ECS,执行安装命令。随后设置1Panel安装目录(默认`/opt`)、端口(默认20410)、安全入口、面板用户及密码。安装后需在安全组中开通20410端口。最后,通过`服务器IP:端口/安全入口`格式访问面板。更多细节参见完整教程。
|
安全 算法 数据安全/隐私保护
11K star!开源WAF的NO1,不花钱也能搞定安全
当我们的网站上线后首先会遇到什么,可能不一定是自己的客户,而是来自网络的攻击。 今天我们分享的开源项目,它是登顶GITHUB的开源WAF,让黑客不敢越雷池一步,并且还是国产的开源项目,它就是:雷池(SafeLine)
|
Oracle Java 关系型数据库
Java官网下载JDK21版本详细教程(下载、安装、环境变量配置)
Java官网下载JDK21版本详细教程(下载、安装、环境变量配置)
OpenCV-图像阴影调整
OpenCV-图像阴影调整
460 0
|
Android开发
微信公众号点击菜单出现白屏问题探究
1. 小米魅族等安卓手机白屏,苹果手机正常 2. 首次进入白屏,再次进入正常 3. 点击链接正常,点击菜单白屏
707 0
微信公众号点击菜单出现白屏问题探究
|
API 开发工具 开发者
如何接入公安实名认证接口
对于很多开发者来说,如何接入公安实名认证接口是一项非常重要的任务。在不同的应用场景下,都需要用户进行身份认证,而公安实名认证接口可以有效地帮助开发者完成这一任务。