解密 CryptBot 窃密软件
2023-2-1 17:23:24 Author: www.freebuf.com(查看原文) 阅读量:6 收藏

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 的目标是什么。

自动化配置解密

研究人员实现了自动提取解密的脚本,执行结果如下所示:

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

Yara 规则

rule CryptBot_ShellCode{meta:author = "Any.Run"SHA256 = "183f842ce161e8f0cce88d6451b59fb681ac86bd3221ab35bfd675cb42f056ac"date = "2023-01-19"description = "Detect CryptBot shellcode in memory"strings:$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 in (0x20..0x50)}
rule CryptBot_Config {meta:author = "Any.Run"SHA256 = "183f842ce161e8f0cce88d6451b59fb681ac86bd3221ab35bfd675cb42f056ac"date = "2022-01-19"description = "Detect CryptBot configuration in memory"strings:$s1 = "CookiesEdge"$s2 = "ChromeDB<>_<>"$s3 = "EdgeDB<>_<>"$s4 = "ChromeExt<>_<>"$s5 = "HistoryChrome<>_<>"$s6 = "EdgeExt<>_<>"$s7 = "CookiesFirefox<>_<>"$s8 = "HistoryOpera<>_<>"$s9 = "CookiesOpera<>_<>"$s10 = "FirefoxDB<>_<>"$s11 = "CookiesChrome<>_<>"$s12 = "HistoryFirefox<>_<>"$s13 = "HistoryEdge<>_<>"$s14 = "DesktopFolder<>_<>"$s15 = "ChromeDBFolder<>_<>"$s16 = "ExternalDownload<>_<>"$s17 = "ScreenFile<>_<>"$s18 = "MessageAfterEnd<>_<>"$s19 = "HistoryFile<>_<>"$s20 = "FirefoxDBFolder<>_<>"$s21 = "PasswordFile<>_<>"$s22 = "WalletFolder<>_<>"$s23 = "DeleteAfterEnd<>_<>"$s24 = "EdgeDBFolder<>_<>"$s25 = "InfoFile<>_<>"$s26 = "CookiesFile<>"condition:7 of them}

IOC

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

参考来源

AnyRun


文章来源: https://www.freebuf.com/articles/network/356284.html
如有侵权请联系:admin#unsafe.sh