freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

勒索病毒再进化:新型Awesome勒索不仅加密还留后门!
2021-02-22 14:47:17

背景概述

近日,深信服安全团队捕获到一款使用Go语言编写的勒索病毒。此次捕获的样本有勒索及后门两个功能,并且能指定目录和文件进行加密。

Go语言作为一门非常年轻的语言,简单易上手、支持多平台让其受到攻击者青睐。编译时全静态链接和独特的栈管理方式大大增加了安全人员研究分析和检测难度。

使用Go语言开发的恶意样本大都集中于后门、挖矿两大类,勒索病毒相当的罕见。

上一次发现的Go语言勒索病毒,是19年年初由好事者在Github上发布的勒索病毒源码改编而来。即便发布者声称是为了研究勒索病毒原理,但攻击者显然不这么认为,简单改写就用于勒索活动。

技术分析

该勒索病毒使用UPX3.96加壳,Go版本为1.13,符号文件已被删除。

运行界面显示该病毒可以指定目录文件进行加密或删除;

修复符号表可以确认为一款使用GO1.13编写的新勒索+后门病毒;

一、加密模块

解析输入参数argument代表加密目录和正则匹配模式,需要注意的是,在golang中,函数调用中结构体每个参数都入栈,而不是C/C++中以指针形式入栈。
如String类型在golang中以(Address, Length)结构体形式出现,导致IDA以_cdecl的方式解析成多个输入变量。

正则匹配加密指定文件:

执行加密函数main_Execute;

加密模块调用的awesomeProject_world包,发现其改写于开源GO项目SIO。

*SIO项目实现DARE2.0,用于确认密钥是否正确,密文是否被篡改等。支持AES-256 GCM以及Chacha20-Poly1305两种加密模式。

攻击者重写了密钥生成部分:

(1)使用base64硬编码密钥,解密后生成256位密钥A;

(2)使用CryptGenrandom生成256位盐B;

(3)使用硬编码密钥A和盐B进行密钥派生,生成最终加密256位密钥C,

向文件头中写入密钥C后,再进行加密;

源码中Config数据结构如下图:
根据栈上参数得到加密Version为20,CipherSuite为1(AES-256-GCM),Key为密钥C;

加密完成后,重写原文件在删除,防止数据恢复软件恢复;

文件重写为勒索提示信息(左),加密后文件(右)。

二、后门模块

开启本机49500端口进行监听,循环接受远端控制指令;

等待C2发送指令执行;

基础加固

深信服安全团队再次提醒广大用户,勒索病毒以防为主,目前大部分勒索病毒加密后的文件都无法解密,注意日常防范措施:

1、及时给系统和应用打补丁,修复常见高危漏洞;

2、对重要的数据文件定期进行非本地备份;

3、不要点击来源不明的邮件附件,不从不明网站下载软件;

4、尽量关闭不必要的文件共享权限;

5、更改主机账户和数据库密码,设置强密码,避免使用统一的密码,因为统一的密码会导致一台被攻破,多台遭殃;

6、如果业务上无需使用RDP的,建议关闭RDP功能,并尽量不要对外网映射RDP端口和数据库端口。

# 系统安全 # 勒索病毒 # 勒索病毒分析报告
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录