解密 CryptBot 窃密软件

news2024/9/22 13:26:00

CryptBot 是一种针对 Windows 操作系统进行信息窃取的恶意软件,在 2019
年被首次发现。它旨在窃取失陷主机的敏感信息,例如浏览器凭据、加密货币钱包、浏览器 Cookie、信用卡信息与屏幕截图等。

image.png-420.9kB恶意软件简介

沙盒动态分析

样本启动时会创建一个进程,该进程与大量文件系统事件与注册表事件相关。

image.png-25kB进程信息

T1555.003

CryptBot 会从常见的浏览器 Chrome、Firefox 和 Edge 窃取信息,

image.png-58.4kB窃取
Firefox 浏览器数据

要检测对存储在浏览器中的个人数据的访问,可以使用:process_name NOT (“chrome.exe”, ”firefox.exe”, “msedge.exe”, “opera.exe”)ANDfile_access (%LOCALAPPDATA%\MICROSOFT\EDGE\USER DATA\,%APPDATA%\Roaming\Mozilla\Firefox\,%LOCALAPPDATA%\Local\Google\Chrome\User Data\*%LOCALAPPDATA%\AppData\Local\Opera Software\Opera Stable*)

T1518

CryptBot 通过“UNINSTALL”注册表树检查系统中已安装的软件:

image.png-58.8kB检查已安装的软件

要检测访问已安装软件列表,可以使用:reg_key is (“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall”)ANDoperation read

T1082

CryptBot 会收集系统信息,包括操作系统安装日期、计算机名称、密钥、CPU 信息:

image.png-151.1kB收集系统信息

要检测读取系统安装日期,可以使用:reg_key is (“HKLM\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION”)ANDreg_name is (“INSTALLDATE”)ANDoperation read

T1071.001

CryptBot 将收集到的操作系统信息和个人数据发送到 C&C 服务器:

image.png-186.9kB回传数据

要检测连接到 C&C 服务器,可以使用:network connectAND(domains are (“sginiv12[.]top” or “bytcox01[.]top”)OR (ip == “23[.]217.138.108” and port==80))

回传数据是通过 HTTP 协议发送的,上传的文件名是随机生成的,但接收路径总是 gate.php 页面。

image.png-269.6kB回传流量

Suricata 也对此进行了告警:

image.png-312.5kB恶意流量告警

要检测恶意流量,可以使用:network sendANDhttp_verb is “POST” AND location is “gate.php”ANDhttp_content includes (“form-data”, “name=\”files[]\””, “filename”)

T1074.001

第一次在 %APPDATA%目录中启动恶意软件时,会创建一个空目录标记 0D445946B53E9551。该目录允许恶意软件确定之前是否启动过。如果
CryptBot 发现曾经在该主机上启动过,它将立即停止工作。

image.png-157kB标记目录

收集的各种信息会存储在 %TEMP%目录的临时文件中:

image.png-97kB临时文件

例如,其中一个文件就是有关用户名与密码的信息,并且以 base64 格式进行存储。

image.png-379.1kB收集的信息

T1070.004

CryptBot 运行完时,会使用 CMD.EXE 在短暂延迟后删除自身:

image.png-47.5kB删除自身

调试分析

通过 DIE 查看,软件认为该样本文件并未加壳:

image.png-89.3kB静态查看是否存在加壳

通过 Process Hacker 查看进程内存,在一个可读可写可执行的区域内发现了 PE 文件头:

image.png-799.1kB进程转储

PE 文件头也是 Shellcode 的起始位置,恢复寄存器后获取 ImageBase 并将控制权转交给入口点:

image.png-64.6kB反汇编

调试发现,该区域是使用 VirtualAlloc 函数分配的。将 Payload 写入其中并进行异或解密:

image.png-294kB异或解密

解密的密钥存储在 .rdata 段中:

image.png-77.7kB解密密钥

静态分析

通过静态分析确认,恶意软件配置信息位于 .data 段中并且使用异或加密。

image.png-91.1kB密钥与配置

通过 CyberChef 与密钥可以对配置进行解密:

image.png-135.1kB配置解密

配置中可以看到 CryptBot 的目标是什么。

自动化配置解密

研究人员实现了自动提取解密的[脚本](https://github.com/anyrun/blog-
scripts/blob/main/Extractors/CryptBot/CryptBot.py?utm_source=anyrunblog&utm_medium=article&utm_campaign=cryptbot&utm_content=script),执行结果如下所示:

image.png-89kB脚本提取结果

Yara 规则rule CryptBot_ShellCode{meta:author = "Any.Run"SHA256 = "183f842ce161e8f0cce88d6451b59fb681ac86bd3221ab35bfd675cb42f056ac"date = "2023-01-19"description = "Detect CryptBot shellcode in memory"strings: s h e l l c o d e = 4 D 5 A 4552 E 8000000005883 E 8095005 [ 4 ] F F D 0 C 3 c o n d i t i o n : u i n t 16 ( 0 ) ! = 0 x 5 A 4 D a n d u i n t 16 ( 0 ) > 0 a n d shellcode = { 4D 5A 45 52 E8 00 00 00 00 58 83 E8 09 50 05 [4] FF D0 C3 }condition:uint16(0) != 0x5A4D anduint16(0) > 0 and shellcode=4D5A4552E8000000005883E8095005[4]FFD0C3condition:uint16(0)!=0x5A4Danduint16(0)>0andshellcode in (0x20…0x50)}rule CryptBot_Config {meta:author = "Any.Run"SHA256 = "183f842ce161e8f0cce88d6451b59fb681ac86bd3221ab35bfd675cb42f056ac"date = "2022-01-19"description = "Detect CryptBot configuration in memory"strings: s 1 = " C o o k i e s E d g e " s1 = "CookiesEdge" s1="CookiesEdge"s2 = "ChromeDB<><>" s 3 = " E d g e D B < > < > " s3 = "EdgeDB<>_<>" s3="EdgeDB<><>"s4 = "ChromeExt<><>" s 5 = " H i s t o r y C h r o m e < > < > " s5 = "HistoryChrome<>_<>" s5="HistoryChrome<><>"s6 = "EdgeExt<><>" s 7 = " C o o k i e s F i r e f o x < > < > " s7 = "CookiesFirefox<>_<>" s7="CookiesFirefox<><>"s8 = "HistoryOpera<><>" s 9 = " C o o k i e s O p e r a < > < > " s9 = "CookiesOpera<>_<>" s9="CookiesOpera<><>"s10 = "FirefoxDB<><>" s 11 = " C o o k i e s C h r o m e < > < > " s11 = "CookiesChrome<>_<>" s11="CookiesChrome<><>"s12 = "HistoryFirefox<><>" s 13 = " H i s t o r y E d g e < > < > " s13 = "HistoryEdge<>_<>" s13="HistoryEdge<><>"s14 = "DesktopFolder<><>" s 15 = " C h r o m e D B F o l d e r < > < > " s15 = "ChromeDBFolder<>_<>" s15="ChromeDBFolder<><>"s16 = "ExternalDownload<><>" s 17 = " S c r e e n F i l e < > < > " s17 = "ScreenFile<>_<>" s17="ScreenFile<><>"s18 = "MessageAfterEnd<><>" s 19 = " H i s t o r y F i l e < > < > " s19 = "HistoryFile<>_<>" s19="HistoryFile<><>"s20 = "FirefoxDBFolder<><>" s 21 = " P a s s w o r d F i l e < > < > " s21 = "PasswordFile<>_<>" s21="PasswordFile<><>"s22 = "WalletFolder<><>" s 23 = " D e l e t e A f t e r E n d < > < > " s23 = "DeleteAfterEnd<>_<>" s23="DeleteAfterEnd<><>"s24 = "EdgeDBFolder<><>" s 25 = " I n f o F i l e < > < > " s25 = "InfoFile<>_<>" s25="InfoFile<><>"s26 = "CookiesFile<>"condition:7 of them}

IOC

12d20a973f8cd9c6373929ae14efe123> 7f277f5f8f9c2831d40a2dc415566a089a820151> 183f842ce161e8f0cce88d6451b59fb681ac86bd3221ab35bfd675cb42f056ac> http://sginiv12[.]top/gate.php> http://bytcox01[.]top/gesell.dat

参考来源

[AnyRun](https://any.run/cybersecurity-blog/cryptbot-infostealer-malware-
analysis/)

x01[.]top/gesell.dat

参考来源

[AnyRun](https://any.run/cybersecurity-blog/cryptbot-infostealer-malware-
analysis/)

最后

分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

在这里插入图片描述

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k。

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取

有了这些基础,如果你要深入学习,可以参考下方这个超详细学习路线图,按照这个路线学习,完全够支撑你成为一名优秀的中高级网络安全工程师:

高清学习路线图或XMIND文件(点击下载原文件)

还有一些学习中收集的视频、文档资源,有需要的可以自取:
每个成长路线对应板块的配套视频:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,需要的可以【扫下方二维码免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/799255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是SD NAND存储芯片

前言 大家好&#xff0c;我们一般在STM32项目开发中或者在其他嵌入式开发中&#xff0c;经常会用到存储芯片存储数据。今天我和大家来介绍一款存储芯片&#xff0c;我这里采用&#xff08;雷龙&#xff09; CS创世 SD NAND 。 SD NAND介绍 什么是SD NAND&#xff1f;它俗称贴…

Linux安装部署Nacos和sentinel

1.将nacos安装包下载到本地后上传到linux中 2.进入nacos的/bin目录,输入命令启动nacos [rootlocalhost bin]# sh startup.sh -m standalone注:使用第二种方式启动,同时增加日志记录的功能 2.2 startup.sh文件是不具备足够的权限,否则不能操作 给文件赋予执行权限 [rootlocalh…

记录Selenium自动化测试过程中接口的调用信息

上一篇博客&#xff0c;我写了python自动化框架的一些知识和粗浅的看法&#xff0c;在上一篇中我也给自己提出一个需求&#xff1a;如果记录在测试过程中接口的调用情况&#xff1f;提出这个需求&#xff0c;我觉得是有意义的。你在测试过程中肯定会遇到一些莫名其妙的问题&…

怎样计算一个算法的复杂度?

分析一个算法主要看这个算法的执行需要多少机器资源。在各种机器资源中&#xff0c;时间和空间是两个最主要的方面。因此&#xff0c;在进行算法分析时&#xff0c;人们最关心的就是运行算法所要花费的时间和算法中使用的各种数据所占用的空间资源。算法所花费的时间通常称为时…

51单片机--红外遥控

文章目录 红外遥控的介绍硬件电路NEC编码外部中断红外遥控实例代码 红外遥控的介绍 红外遥控是一种无线、非接触控制技术&#xff0c;通过使用红外线来传送控制信号。它具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点&#xff0c;因此被广泛应用于各种电子…

数据库的分库分表shell脚本

通过嵌套循环实现 #! /bin/bashback_user"-uroot -pRoot12345." back_dir/backup/one #获取数据库名 mysql ${back_user} -N -e show databases | grep -Ev sys|mysql|information_schema|performance_schema > dbswhile read dbname do[ -d ${back_dir}/$dbnam…

openEuler 22.03 LTS系统搭建局域网上网代理服务器

生产网环境的一个痛点就是与外网隔离&#xff0c;内网的服务器如果需要进行补丁升级或者下载更新软件&#xff0c;比较困难&#xff0c;本文讲解在生产网中能访问公网的openEuler 22.03 LTS系统服务器上搭建代理服务器&#xff0c;供内网其它服务器连接公网&#xff0c;同时介绍…

海尔设计借助亚马逊云科技生成式AI,实现端到端的云上工业设计解决方案

海尔创新设计中心&#xff08;以下简称海尔设计&#xff09;成立于1994年&#xff0c;目前拥有400多名设计师&#xff0c;为海尔智家旗下七大品牌全球的所有产品提供设计创新和模式探索。亚马逊云科技为海尔设计提供了四个完整的云上解决方案&#xff0c;全面替代自有机房&…

Java019-1——面向对象的三大特性

一、封装性 将类的某些信息隐藏在类内部&#xff0c;不允许外部程序直接访问&#xff0c;而是通过该类提供的方法来实现对隐藏信息的操作和访问。&#xff08;这里说的信息就是类中的属性和方法&#xff09; 1.1、封装性的体现 想要通过代码体现封装性之前&#xff0c;需要先…

2019年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

写作&#xff1a;第56&#xff5e;57小题&#xff0c;共65分。其中论证有效性分析30分&#xff0c;论说文35分。 56&#xff0e;论证有效性分析 分析下述论述中存在的缺陷和漏洞&#xff0c;选择若干要点&#xff0c;写一篇600字左右的文章&#xff0c;对论证的有效性进行分析…

【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码

文章目录 前言运行效果截图导入requests库获取集数音频ID的链接提取音频ID和名称循环处理每个音频完整代码分点讲解 结束语 前言 本文介绍了如何使用Python中的requests库来获取音频文件并保存到本地。在这个例子中&#xff0c;我们使用了喜马拉雅平台上的一个API接口来获取音频…

保存Windows锁屏壁纸

原链接 1. 点击爱心 我保存过了,所以没有爱心了. 2. 打开本地文件夹 用户改成自己的 C:\Users\86186\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 3. 复制这些文件到其他目录 我这个不知道咋的,操作完文件夹过1会就被…

Leetcode——404 左叶子之和

404. 左叶子之和 难度简单&#xff08;虽然简单 但是我用递归做时 还是有点坑的&#xff09; 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子…

【第一阶段】varval类型推断

Val 可读不可改 代码示例&#xff1a; 不可改&#xff1a; fun main() {//val可读不可改val name:String"kotlin"//不可改 此时会报错 报错打印信息&#xff1a;Val cannot be reassignedname"java" }可读&#xff1a; fun main() {//val可读不可改val…

QT第三讲

蜡笔小新闹钟 需求&#xff1a; 实现 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTime> //时间类 #include<QTimerEvent> //事件处理类 #include<QtTextToSpeech> //文本转语音类 #include<QMessageBox> /…

Evol-Instruct:让LLM将指令改写的更复杂

Evol-Instruct方法出自论文 WizardLM: Empowering Large Language Models to Follow Complex Instructions &#xff0c;也是利用大模型生成指令的方法&#xff0c;它可以生成相对复杂和多样的指令数据集。 对应的github&#xff0c;但是目前只开源LLM部分的代码&#xff0c;如…

如何直接关闭使用3306端口的进程

要直接关闭使用3306端口的进程&#xff0c;你可以按照以下步骤进行操作(以关闭占领3306端口MySQL服务为例)&#xff1a; 获取占用3306端口的进程ID&#xff08;PID&#xff09;。在终端中执行以下命令&#xff1a; sudo lsof -i :3306查找输出中的进程ID&#xff08;PID&…

MyBatis-Plus自动填充

文章目录 一、前言二、MyBatis-Plus自动填充功能实现2.1、实体类上增加注解2.2、自定义填充类编写 一、前言 我们在建表的时候&#xff0c;所有的表都会有create_id&#xff08;创建人id&#xff09;、create_time&#xff08;创建时间&#xff09;、update_id&#xff08;更新…

2022.09.17【读书笔记】丨生物信息学与功能基因组学(第十三章 蛋白质结构预测 下)

目录 蛋白质结构预测三种方法同源建模(比较建模)穿线法从头预测&#xff08;ab initio&#xff09;基于假设推荐策略 精度与方法选择Alphafold2相关信息 蛋白质结构预测 三种方法 同源建模(比较建模) 建模4步骤 1.模板选择和确定折叠构象 通过blast或delta-blast搜索同源蛋白…

8 个线程池最佳实践和坑!使用不当直接生产事故!!

这篇文章我会简单总结一下我了解的使用线程池的时候应该注意的坑以及一些优秀的实践。拿来即用&#xff0c;美滋滋&#xff01; 1、正确声明线程池 线程池必须手动通过 ThreadPoolExecutor 的构造函数来声明&#xff0c;避免使用Executors 类创建线程池&#xff0c;会有 OOM …