窃密恶意软件Raccoon最新样本Stealer v2分析
Raccoon 是一个恶意软件家族,2019 年来一直在地下犯罪论坛中以恶意软件即服务的身份进行售卖。2022 年 7 月,该恶意软件家族发布了 C
语言编写的新版本 Raccoon Stealer v2,打破了以往使用 C++ 开发的传统。
Raccoon 是一个信息窃密恶意软件,能够从浏览器窃取例如密码、Cookie 和自动填充数据等隐私信息。特别的,攻击者对加密货币钱包也很感兴趣。
主要区别
Raccoon v2 也是一种窃密类恶意软件,2022 年 7 月 3 日被在野首次发现,使用 C 语言与汇编语言编写而成。
新版本 Raccoon 有一些新功能,但数据窃密机制与老版本仍然相同:
所有字符串都使用 base64+RC4 加密
WinAPI 函数的动态加载
放弃了对 Telegram API 的依赖
其中,恶意软件获取 C&C 服务器列表的方式发生了重大变化。Raccoon Malware v1 滥用 Telegram 来获取 C&C
服务器列表,而新版本已经放弃该方式。转而使用通过受攻击者控制的服务器的硬编码 IP 地址来获取 C&C 服务器列表,再下载后续恶意软件。
调试信息
分析的样本(0cfa58846e43dd67b6d9f29e97f6c53e)带有完整的调试信息,可以查看其编译日期为 2022 年 5 月 26 日
13:58:25,如下所示:
调试头文件
Raccoon Stealer v2 还通过动态解析 API 名称来隐藏攻击意图,窃密程序使用 LoadLibraryW 与 GetProcAddress
来解析每个必要的函数,如下所示。
动态解析
API
DLL 文件命和 WinAPI 函数的名称,都以明文形式存储在二进制文件中。加载的 DLL 文件包括:
kernel32.dll
Shlwapi.dll
Ole32.dll
WinInet.dll
Advapi32.dll
User-32.dll
Crypt32.dll
Shell32.dll
Raccoon v1 未使用动态解析,所以使用加壳技术来逃避检测,而 Raccoon v2 就直接以未加壳的方式进行投递。下图显示了 Raccoon v1
使用的 DLL 文件:
导入表
一旦函数完成解析,恶意软件就开始对字符串进行解密。首先对 base64 编码进行解码,然后使用密钥 edinayarossiya进行 RC4
解密。所有字符串都使用解密函数 string_decryption() 进行解密,如下所示:
字符串解密
旧版本的 Raccoon Stealer 只加密硬编码的 IP 地址,不加密其他字符串。而 Raccoon v2
将所有纯文本字符串都进行加密。Raccoon v1 的几个明文字符串如下所示:
Raccoon
v1 明文字符串
在对 Raccoon v2 样本字符串进行手动解密后,可以得到以下明文字符串:
Raccoon
v2 明文字符串
Raccoon
v2 明文字符串
C&C 服务器的 IP 地址保存在恶意软件中,使用相同的方式进行解密,但密钥为
59c9737264c0b3209d9193b8ded6c127。恶意软件通信的 IP 地址为
hxxp://51.195.166.184/,解密如下所示:
解密
C&C 服务器地址
加密的字符串可以使用 CyberChef 等工具进行解密,如下所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S5TCzeYT-1677499214414)(https://image.3001.net/images/20220802/1659409353_62e893c99e583643eb9cd.png!small)]Raccoon
v2 C&C 服务器 IP 地址
这种技术在两个版本的恶意软件中都十分常见,在 Raccoon v1 中如下所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LACMRCC5-1677499214415)(https://image.3001.net/images/20220802/1659409354_62e893ca3b56f07fdefd7.png!small)]Raccoon
v1 C&C 服务器 IP 地址
完成所有字符串的解密后,恶意软件会联系 C&C 服务器进行检查并下载恶意 DLL 文件。
泄露数据之前的检查
执行恶意软件核心功能前,会对环境进行检查。例如,通过获取互斥量的句柄(8724643052)查看是否在计算机上已经存在运行实例等。
这样确保同时只能运行一个恶意软件实例,下图显示了 Raccoon v2 互斥量的检查与创建。
Raccoon
v2 互斥
下图为 Raccoon v1 中互斥量的检查与创建:
Raccoon
v1 互斥
检索匹配进程 Token 是否为 S-1-5-18,确定以 SYSTEM 身份运行,如下所示:
Raccoon
v2 枚举进程 Token
如果以 SYSTEM 用户身份运行,使用 fun_CreateToolhelp32Snapshot 进行进程的枚举。下图显示了调用
enumerate_processes() 函数进行进程枚举的过程:
进程枚举
进程枚举
主机指纹
恶意软件会对主机环境进行指纹识别,利用:
RegQueryValueExW 获取机器 ID
GetUserNameW 获取用户名
下图显示了恶意软件通过 RegQueryKeyExW 和 RegQueryValueExW 函数从注册表项
SOFTWAREMicrosoftCryptography 中获取机器 ID。
获取机器
ID
下图使用 GetUserNameW 函数获取用户名:
获取用户名
用户名缓冲区
完成后,将机器 ID 与用户名等信息回传给 C&C 服务器。为此,恶意软件会创建一个字符串保存这些数据。缓冲区中构建的数据结构如下所示:
指纹信息
紧接着在后面附加 RC4 加密密钥,整体结构为 machineId=<MachineGuid>|<UserName>&configId=<RC4 key>。
命令与控制
C&C 通信完全通过 HTTP 协议进行,恶意软件首先解密获取 C&C 服务器的 IP 地址列表(存储在 local_3c 中)。分析的样本文件只包含一个
IP 地址,就只联系一个 IP 地址,如下所示:
C&C
通信
缓冲区中的
URL
请求头
恶意软件检查是否存在响应,如果没有响应,恶意软件就会立刻退出,因为恶意软件的数据泄露需要 C&C 服务器的响应进行触发。下图中可以看到,这部分功能与
ExitProcess() 函数一同出现:
验证响应
Raccoon v1 依靠 Telegram Bot API 获取 C&C 服务器列表,但 Raccoon Malware v2 使用 5 个硬编码 IP
地址,放弃了对 Telegram 的依赖。
数据泄露
撰写文章时,C&C 服务器的 IP 地址已经失效,无法分析相关流量数据。
服务器失效
只能根据之前的监测数据进行分析,恶意软件下载了其他恶意 DLL 文件。
下载的
DLL 文件
恶意软件使用 SHGetFolderPathW 函数获取 C:\Users\\AppData 路径并追加
Local,将此目录作为存储被窃信息的位置,再回传到 C&C 服务器。
存储路径
网络安全工程师企业级学习路线
这时候你当然需要一份系统性的学习路线
如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

相关文章:
窃密恶意软件Raccoon最新样本Stealer v2分析
Raccoon 是一个恶意软件家族,2019 年来一直在地下犯罪论坛中以恶意软件即服务的身份进行售卖。2022 年 7 月,该恶意软件家族发布了 C 语言编写的新版本 Raccoon Stealer v2,打破了以往使用 C 开发的传统。 Raccoon 是一个信息窃密恶意软件&a…...
足球俱乐部管理系统
技术:Java、JSP等摘要:网站是一种主要的渠道。人们通过互联网快速、准确的发布信息、获取信息。而足球俱乐部是足球职业化、专业化的一个标志,是足球运动员以足球谋生时,所被聘用的机构,应运时代发展,规模、…...
2023上半年数学建模竞赛汇总(比赛时间、难易程度、含金量、竞赛官网)
1、美国大学生数学建模竞赛等级:国家级是否可跨校:否竞赛开始时间:2月17日~2月21日综合难度:⭐⭐⭐⭐ 竞赛含金量:⭐⭐⭐⭐⭐竞赛官网:https://www.comap.com/2、MathorCup高校数学建模挑战赛---大数据竞赛…...
【python学习笔记】:PHP7 Null合并运算符
在PHP7,一个新的功能,空合并运算符(??)已被引入。它被用来代替三元运算并与 isset()函数功能结合一起使用。如果它存在并且它不是空的,空合并运算符返回它的第一个操作数;否则返回第二个操作数。 示例 <?php// fetch the value of $_…...
数据结构与算法——3.时间复杂度分析1(概述)
前面我们已经介绍了,研究算法的最终目的是如何花费更少的时间,如何占用更少的内存去完成相同的需求,并且也通过案例演示了不同算法之间时间耗费和空间耗费上的差异,但我们并不能将时间占用和空间占用量化。因此,接下来…...
FPGA学习之日常工作复位电路
最近一个多月没有写博客了,然后最近工作中也遇到一个复位信号的问题。问题是这样的,关于外部复位信号,之前我们的处理方式都是通过PLL产生的Lock信号作为内部的复位信号。但是由于换到A54上面没有IP核,所以只有不用PLL,…...
【洛谷 P1177】【模板】快速排序 题解(快速排序+指针)
【模板】快速排序 题目描述 利用快速排序算法将读入的 NNN 个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C 选手请不要试图使用 STL,虽然你可以…...
Pthon--自动化实用技巧篇--文件目录处理
为什么要讲这一篇,主要是因为这个在自动化测试框架或者脚本的编写的时候会用到,还是比较方便的。看上述两个函数。getcwd()、chdir()。使用 os.getcwd() 函数获得当前工作目录。使用 os.chdir()函数改变当前工作目录。所以在用chdir()函数的时候别忘记指…...
想招到实干派程序员?你需要这种面试法
技术招聘中最痛的点其实是不精准。技术面试官或CTO们常常会向我们吐槽: “我经常在想,能不能把我们项目中的代码打印出来,作为候选人的面试题的一部分?” “能不能把一个Bug带上环境,让候选人来试试怎么解决…...
cesium常见操作:鼠标点击获取对象
目录 一、viewer.scene.pick(获取Cartesian2) 二、 viewer.scene.pickPosition(获取Cartesian3) 三、viewer.scene.drillPick(穿透拾取,获取所有对象) 四、viewer.scene.globe.pick…...
【玩转c++】git的安装和使用以及可视化处理
本期主题:git的安装和使用(windows环境)博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题 小编的能力有限,出现错误希望大家不吝赐1.两个工具介绍第一个工具git,链接gitee或者github等代码托…...
第三阶段02-Mybatis框架
Mybatis框架 Mybatis框架是目前最流行的数据持久层框架, 使用Mybatis框架可以帮助程序员自动生成JDBC代码, 程序员只需要通过注解或xml配置文件提供需要执行的SQL语句,以及对象和表的映射关系, Mybatis框架会根据此映射关系和SQL自动生成出JDBC代码,从而提高开发效率 Mybatis框…...
基于超像素的多视觉特征图像分割算法研究
0.引言 背景: 经典聚类算法:Kmeans、FCM 现有问题: 1)现有算法大都是基于单一的视觉特征而设计的,eg:基于颜色特征的分割。 2)没有考虑像素周围的空间信息;分割结果:多噪…...
mysql的三大日志
摘自https://blog.csdn.net/chuige2013/article/details/123027580 一. 初步认识 binlog二进制日志 redolog undolog 二. binlog binlog记录写入行操作 作用 1)、主从复制:在Master端开启binlog,然后将binlog发送到各个Slave端,S…...
API接口及社区电子商务化的解释
API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现数据传输的安全,…...
[蓝帽杯 2021]One Pointer PHP
知识点:php 数组整型溢出,open_basedir 绕过分析 利用数组整型溢出绕过,因为PHP 会对溢出的数字处理为 float 类型。 <?php include "user.php"; if($userunserialize($_COOKIE["data"])){$count[$user->count]…...
【JAVA】xxl-job服务搭建
xxl-job服务搭建 1.下载xxl-job项目 https://github.com/xuxueli/xxl-job 2.数据库表创建 3.修改配置 注意:这是两个项目,一个是xxl-job前台,一个是xxl-job执行器,找到这两个项目得配置文件,修改配置。 配置文件地址…...
毕业设计 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计
基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2心率检测电路设计2.3 TFT2.4寸彩屏电路设计3、部分代码展示3.1 ADC初始化3.2 获取ADC采样值3.3 LCD引脚初始化3.3 在LCD指定位置显…...
【10k~30k的区别】=== 功能测试、自动化测试、性能测试的区别
按测试执行的类型来分:功能测试、自动化测试、性能测试 1.功能测试 功能测试俗称点点点测试。初级测试人员的主要测试任务就是执行测试工程师所写的测试用 例,记录用例的执行状态及bug情况。与开发人员进行交互直到bug被修复。 功能测试理论…...
《MySQL学习》 索引失效的三种特殊情况
一.条件字段使用函数 explain select * from bpm_proc_instance bpi where CREATED_AT > 2022-06-01 CREATED_AT 字段建立了索引,此时explain分析的结果表明能使用到索引 但如果我们对 CREATED_AT 字段使用函数 explain select * from bpm_proc_instance bpi w…...
OpenClaw对接GLM-4.7-Flash:模型版本管理指南
OpenClaw对接GLM-4.7-Flash:模型版本管理指南 1. 为什么需要关注模型版本管理 上周我在调试一个自动化文档处理流程时,遇到了一个奇怪的现象:同样的OpenClaw脚本,前一天还能完美运行的文档摘要功能,第二天突然开始输…...
SOLIDWORKS Simulation实战:带孔矩形板拓扑优化全流程解析(附避坑指南)
SOLIDWORKS Simulation实战:带孔矩形板拓扑优化全流程解析(附避坑指南) 在机械设计领域,轻量化与结构强度往往是一对矛盾体。如何在保证零件功能的前提下最大限度减少材料使用?拓扑优化技术给出了完美答案。作为SOLIDW…...
全基因组序列比对工具mVISTA的保姆级使用指南:从文件准备到结果解读
全基因组序列比对工具mVISTA的保姆级使用指南:从文件准备到结果解读 在基因组学研究领域,序列比对是揭示物种间进化关系、识别保守区域和功能元件的基础操作。mVISTA作为一款专门用于全基因组序列比对的在线工具,凭借其直观的可视化界面和强…...
避坑指南:Dify知识库数据清洗的5个常见错误与正则表达式优化技巧
避坑指南:Dify知识库数据清洗的5个常见错误与正则表达式优化技巧 在企业级知识库构建过程中,数据清洗环节往往成为影响LLM问答质量的关键瓶颈。许多团队投入大量资源进行知识库建设后,仍面临"清洗了数据但召回率低"的困境。本文将揭…...
RBD_Timer:嵌入式轻量级多定时器时间轮调度框架
1. RBD_Timer 库深度解析:面向嵌入式实时系统的轻量级多定时器管理框架1.1 问题根源:Arduino 原生delay()与中断阻塞对实时性的破坏在 Arduino 生态中,delay()函数被广泛用于实现时间等待逻辑。然而其底层实现本质是忙等待(busy-w…...
零基础手写大模型
从零搭建大模型:零基础学习实现职业经济跃迁指南 引言 在人工智能重塑全球产业格局的今天,“大模型”已不再仅仅是科技巨头的专利,而是成为了数字经济时代新的“电力”与“石油”。对于广大职场人士、创业者及寻求转型的个体而言࿰…...
Git提交时Personal Access Token权限不足:如何正确配置workflow scope
1. 为什么Git提交会提示Personal Access Token权限不足? 最近在团队协作中遇到一个典型问题:当开发者尝试推送包含.github/workflows目录的代码到GitHub仓库时,系统突然报错refusing to allow a Personal Access Token to create or update w…...
魔兽世界游戏插件开发从入门到实战:工具详解与效率提升指南
魔兽世界游戏插件开发从入门到实战:工具详解与效率提升指南 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 作为魔兽世界玩家,你是否曾想过通过自定义插件提…...
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流 在内容创作领域,音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作,还是智能设备的语音交互,一个稳定、个性化的语音合成系统都…...
用Mermaid Live Editor 5分钟搞定技术图表:从零开始的完整实战指南
用Mermaid Live Editor 5分钟搞定技术图表:从零开始的完整实战指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid…...
