白癜风可以治愈吗 http://m.39.net/pf/a_4791307.html01序言
RedlineStealer是一个运行于MaaS(恶意软件即服务)模式的信息窃取程序。该恶意软件由C#编写而成,且在地下论坛根据功能的不同以不同的价格出售。
研究人员在windows系统上通过Regsvcs.exe部署RedlineStealer。RedlineStealer通过processhollowing技术安装,RedlineStealer的装载器会在进程挂起状态时替换Regsvcs.exe进程的内容。然后RedLine的PE(可移植可执行文件)会被映射到Regsvcs进程中,并且线程上下文会被指向Stealer的入口点,通过以上操作,stealer被伪装成合法进程在系统中运行。本文主要是通过代码分析RedlineStealer所运用的技术。
02Stealer的特征
■窃取用户信息,如信用卡信息、登录数据和浏览器中自动填充表单;
■以目标电脑桌面和文档目录中的用户文件作为目标。文件抓取器专门查找加密数据,如钱包和种子相关文件;
■能够标记并窃取存储在电子账户中的信息,最多能标记10个加密电子钱包和40个电子账户浏览器扩展信息;
■对目标电脑桌面截图;
■窃取目标系统上安装的FileZillaFTP应用程序和VPN应用程序存储的用户数据信息;
■窃取Steam应用程序中的存储的特定用户数据和Discord令牌;
■能够在目标系统上执行命令和附加Payload。
03
内置配置
RedLinestealer内置配置中存在一个叫Arguments的类,Arguments包含以下字段:
RedLinestealer使用的加密方式包含base64加密和异或运算:
■先将base64解密的数据做异或运算;
■再用base64解密上一步异或运算得出来的数据;
■最后得出的数据才是被RedLinestealer用于CommandControl通信的数据。
通过base64解密出的数据的每个字符与运算结果进行异或运算(each_key_char%key.Length)
04区域检查
Redline运行前会先检测目标服务器所在地区,如下图所示:
RedLinestealer保存了一份独联体国家的列表,如果目标服务器属于列表中的任何国家,则程序终止运行。这对于独联体国家的对手国家恶意软件程序开发者来说是很常见的行为。
05CommandControlIP配置
在区域检查之后,RedLinestealer从数据包中获取C2配置。
RedLineStealer行为由参数控制,在获取到配置信息后,RedLineStealer会加载配置信息并将配置信息存储在一个叫settings的类中。
文件抓取器的配置中包含一个检查数据目录路径的方法,还包含一个用于检索目录中数据的方法。通过这两个方法,RedLinestealer会窃取所有文本文件和文档,还有包含密钥、电子账户和种子信息的文件。
Redline会窃取各种应用程序的用户数据,包括浏览器、游戏启动器和VPN应用程序。
Redline同样会窃取电子钱包数据,配置信息中包含电子钱包的名字和从相应应用程序的用户数据目录中检索到的环境变量。
06Redlinestealer的实现
Redlinestealer的核心能力通过两种模式实现:FullInfoSender和PartsSender,两者相互独立。Redlinestealer通过软件版本来确定软件所运行的模式,版本号为1的运行FullInfoSender。FullInfoSender和PartsSender之间没有功能上的区别,它们遵循完全相同的逻辑。
Redlinestealer能够执行各种操作。除了FullInfoSender和PartsSender之外,TaskResolver类还提供了命令和payload执行能力。
07动态链接
Redlinestealer拥有在程序运行时动态加载DDLs(动态链接库)去执行各种数据窃取活动的能力。Win32的API接口LoadLibraryA和GetProcAddress通过平台调用服务(P/invoke)定义。平台调用服务(P/Invoke)是公共语言基础结构(CLI)实现的一项功能,它能够通过管理代码调用本机代码。通过该服务,Redlinestealer能够在内存中加载特定的DLL模块,然后使用加载的DLL中的特殊方法去解析地址。
动态加载DDLs主要运用在两个地方,一个是Redlinestealer调取特定于浏览器的存储数据,另一个是抓取受害桌面截图。如:Redlinestealer在执行数据窃取过程中,加载bcrypt.dll执行各种密码运算操作。
Redlinestealer能够加载gdi32.dll来执行图像相关进程,这个动态链接库被恶意软件广泛运用于屏幕捕获。Redlinestealer主要运用的是GetDeviceCaps函数。
08系统信息
信息窃取软件一般通过Windows管理规范(WMI)来获得受害者的系统信息。以下为Redlinestealer需要的信息:
■用户名称;
■屏幕分辨率;
■语言和windows版本;
■CPU、GPU和内存信息;
■已安装的浏览器;
■已安装的程序;
■已安装的防病*程序;
■运行中的进程;
■可用的语言。
Redlinestealer基于收集到的信息绘制用户模型并发送给C2服务器。
09浏览器数据
Redlinestealer主要从浏览器存储数据中获取以下信息:
■Cookie;
■自动填充表单;
■存储的密码;
■存储的信用卡信息。
像其他信息窃取软件一样,Redlinestealer通过以下操作来窃取信息:
■获得浏览器中存储的SQL数据库文件;
■窃取存储在浏览器的“LocalState”文件中的解密密钥,这些密钥是用来保护用户数据目录中的数据;
■接着Redlinestealer利用解密密钥将数据库里面的数据解密;
■解密后的数据再发回C2服务器。
Redlinestealer通过构建SQL查询语句从数据库中获取数据:
10文件窃取
通过解析C2服务器配置,发现在Id10文件存储了用户桌面目录和文件目录的匹配模型。Redlinestealer根据这些信息搜索并窃取所有包含了key、wallet、seed字段的文件和所有的文本和文件。
以下函数获取Id10的值通过FileSearcher.Search方法来完成搜索。
11电子钱包和扩展
C2服务器配置信息中包含供Redlinestealer检索的电子钱包应用名,以下为目录详细内容(%AppData%):
Redlinestealer对照C2服务器配置信息中的电子钱包应用目录进行筛查,如果找到了相应的应用,Redlinestealer会将取得的“wallet.dat”文件发送给C2服务器。
Redlinestealer还会收集安装在浏览器上的电子钱包扩展程序。Redlinestealer有一个base64加密的数组将电子钱包扩展程序用“extension_folder_id
extension_name”格式存储起来。扩展程序存储的重要数据会发送给C2服务器。
12游戏启动器
Redlinestealer会检索Steam程序路径:
Redlinestealer主要着重查找包含ssfn字段的,config文件和vdf文件。文件路径是通过实例化GameLauncher类生成的。然后利用FIleScanning.Search方法搜索这些文件,生成的数据最终会发送给C2服务器。
13VPN
Redlinestealer主要