freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

一次野外偶遇窃密的浣熊RaccoonStealer v2样本分析报告
2022-09-15 21:32:18
所属地 浙江省

前言

Raccoon Stealer v2是一款在地下黑客论坛售卖的信息窃取器,通过恶意软件即服务 (MaaS)模式运营,用户购买订阅后可轻松进行配置并进行分发传播,一般通过伪装的破解软件下载站进行传播。

样本运行流程图

image

样本IOCs

hash

名称: PA$$w0rds_1234__SetupMain7--A4.rar
大小: 6350190 字节 (6201 KiB)
MD5: 916062da2e31a30e6f1ec0edc33dd4e9
SHA1: b34300a38b0329ec9b3d303ddf670a3b6d154d6b
SHA256: 1ce1ef40bf1a6edc429a326be3bccb9385d0dd4ccfb00c07972f64d232066b8a

名称: Setup.exe
大小: 761512960 字节 (726 MiB)
MD5: 7949b59a91d6c4b6bc005c7222d00829e
SHA1: 8aa525197f8ad4f0a2c5f0a549ed5ff9334d331b

名称: Setup.exe(去除无用字节)
大小: 6538240 字节 (6385 KiB)
MD5: 657b3c0142ba7bea31c0618d38cb8a04
SHA1: 73ee1fe9a79c48460fb5fa9d10a09338b9e48669
SHA256: 7ff22cd1d3e1c8d7bf2628da60c905bd6bef4733b0d4e68e862e1598268d2481

名称: 36141266339446703039.bin
大小: 2834432 字节 (2768 KiB)
MD5: 24967c5d930081488e15e735d3d40d0c
SHA1: 080e2d4f2065d326d8842e4ca9a02ed76e74f4d5
SHA256: 1324ad52820961a29ef6aea13e5bb21d1bbd2169045abc61c711424f196d11f2

名称: RaccoonStealerV2
大小: 56832 字节 (55 KiB)
MD5: 0cfa58846e43dd67b6d9f29e97f6c53e
SHA1: 19d9fbfd9b23d4bd435746a524443f1a962d42fa
SHA256: 022432f770bf0e7c5260100fcde2ec7c49f68716751fd7d8b9e113bf06167e03

url

恶意下载站

hxxps://licenseprokeys[.]com/
hxxps://tradecracked[.]com/
hxxps://fancracked[.]com/

通信URL

http[:]//94[.]131[.]106[.]116/
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/nss3[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/msvcp140[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/vcruntime140[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/mozglue[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/freebl3[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/softokn3[.]dll
hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/sqlite3[.]dll
hxxp://94[.]131[.]106[.]116/3f9bef70525fd0873fc9acf8b6babce9
hxxp://172[.]86[.]75[.]189//36141266339446703039[.]bin

恶意代码分析

传播途径

某天闲逛的时候搜索了一些关键词xxxx crack(搜索结果中基本都是用于传播恶意软件的网站):
image
随手点进了第一个网站后:
image
下载链接点击下载链接下载:
image
下载链接的跳转过程一共跳转了7次:

0->hxxps://href[.]li/?hxxps://wqervf56kl[.]click/?i=PeStudio-Pro-9-43-Crack---License-Key-Free-Download-2022&u=1663076111&t=16
1->hxxps://wqervf56kl[.]click/?i=PeStudio-Pro-9-43-Crack---License-Key-Free-Download-2022&u=1663076111&t=16
2->hxxps://href[.]li/?hxxps://nhgfr7yh[.]click/Mt1JWxKprFcGNv67jDX0TqmUlgEL9s5/16/PeStudio-Pro-9-43-Crack---License-Key-Free-Download-2022
3->hxxps://nhgfr7yh[.]click/Mt1JWxKprFcGNv67jDX0TqmUlgEL9s5/16/PeStudio-Pro-9-43-Crack---License-Key-Free-Download-2022
4->hxxps://iplogger[.]org/Wersty-TM2poy-PASSw0rds_1234__SetupMain7--A4
5->hxxps://www[.]mediafire[.]com/file/p99280jcivm6732/PA$$w0rds_1234__SetupMain7--A4.rar/file
6->hxxps://download2338[.]mediafire[.]com/ixn681qdyafg/p99280jcivm6732/PA%24%24w0rds_1234__SetupMain7--A4.rar

其中查询可知href[.]li为一款的网站重定向小工具:
image
跳转到nhgfr7yh[.]click页面给出了一个链接让我们复制并下载:
image
我们查看iplogger[.]org发现是一个短链接生成网站,并且此链接已经被拉入黑名单,但是下载链接还是可以正常下载:
image
www[.]mediafire[.]com是一个文件存储和共享应用,并且无需注册就可以上传文件并分享:
image
我们查看下载的压缩包大小为6.05MB:
image
我们使用密码1234解压后,发现Setup.exe竟然足足有726MB大小,并且这个图标和应用名和我下载的软件也货不对板。
image
目前我认为还没有这么强大的压缩算法吧,那就只有一个原因这个PE文件肯定附加了很多重复的无意义字节,我们使用010Editor打开PE文件查看,果然PE文件尾部使用了大量的0x30填充,此技术主要是增大PE文件大小防止AV或EDR上传沙箱分析。
image
我们去除PE尾部的0x30后PE文件缩小为6.23 MB,此PE文件是使用Visual Studio 2019链接器版本14.29( 1929 (versions 16.10 + 16.11))编译的32位PE文件,使用了VMProtect 3.6.0加壳。
image
代码都被VM了,直接上传样本到沙箱分析:
image

流量分析

上传沙箱分析后发现威胁情报标签显示此样本来自于Raccoon Stealer家族,查看样本产生的流量特征和公开的威胁情报对比可以确定此样本应该是Raccoon Stealer v2。
image
首先第一个POST请求中使用的User-Agent为mozzzzzzzzzzz,发送的数据为machineId=90059c37-1320-41a4-b5'8d-2b75a9850d2f|admin&configId=0dcbeb99ec1adc5c2b2b94dc1e3fd2c4
image
C2返回的数据中返回了明文配置文件,libs_开头的为要下载的dll,ews_开头的为浏览器扩展数据窃取配置,wlts_开头的为数字货币加密钱包数据窃取配置,xtntns_开头的为密码管理软件数据窃取配置,grbr_Desktop为要窃取的文件路径和文件类型,ldr_为下一阶段的payload。

libs_nss3:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/nss3.dll
libs_msvcp140:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/msvcp140.dll
libs_vcruntime140:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/vcruntime140.dll
libs_mozglue:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/mozglue.dll
libs_freebl3:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/freebl3.dll
libs_softokn3:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/softokn3.dll
ews_meta_e:ejbalbakoplchlghecdalmeeeajnimhm;MetaMask;Local Extension Settings
ews_tronl:ibnejdfjmmkpcnlpebklmnkoeoihofec;TronLink;Local Extension Settings
libs_sqlite3:hxxp://94[.]131[.]106[.]116/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/sqlite3.dll
ews_bsc:fhbohimaelbohpjbbldcngcnapndodjp;BinanceChain;Local Extension Settings
ews_ronin:fnjhmkhhmkbjkkabndcnnogagogbneec;Ronin;Local Extension Settings
wlts_exodus:Exodus;26;exodus;*;*partitio*,*cache*,*dictionar*
wlts_atomic:Atomic;26;atomic;*;*cache*,*IndexedDB*
wlts_jaxxl:JaxxLiberty;26;com.liberty.jaxx;*;*cache*
wlts_binance:Binance;26;Binance;*app-store.*;-
wlts_coinomi:Coinomi;28;Coinomi\Coinomi\wallets;*;-
wlts_electrum:Electrum;26;Electrum\wallets;*;-
wlts_elecltc:Electrum-LTC;26;Electrum-LTC\wallets;*;-
wlts_elecbch:ElectronCash;26;ElectronCash\wallets;*;-
wlts_guarda:Guarda;26;Guarda;*;*cache*,*IndexedDB*
wlts_green:BlockstreamGreen;28;Blockstream\Green;*;cache,gdk,*logs*
wlts_ledger:Ledger Live;26;Ledger Live;*;*cache*,*dictionar*,*sqlite*
ews_ronin_e:kjmoohlgokccodicjjfebfomlbljgfhk;Ronin;Local Extension Settings
ews_meta:nkbihfbeogaeaoehlefnkodbefgpgknn;MetaMask;Local Extension Settings
sstmnfo_System Info.txt:System Information: 
|Installed applications:
|
wlts_daedalus:Daedalus;26;Daedalus Mainnet;*;log*,*cache,chain,dictionar*
wlts_mymonero:MyMonero;26;MyMonero;*;*cache*
wlts_xmr:Monero;5;Monero\\wallets;*.keys;-
wlts_wasabi:Wasabi;26;WalletWasabi\\Client;*;*tor*,*log*
ews_metax:mcohilncbfahbmgdjkbpemcciiolgcge;MetaX;Local Extension Settings
ews_xdefi:hmeobnfnfcmdkdcmlblgagmfpfboieaf;XDEFI;IndexedDB
ews_waveskeeper:lpilbniiabackdjcionkobglmddfbcjo;WavesKeeper;Local Extension Settings
ews_solflare:bhhhlbepdkbapadjdnnojkbgioiodbic;Solflare;Local Extension Settings
ews_rabby:acmacodkjbdgmoleebolmdjonilkdbch;Rabby;Local Extension Settings
ews_cyano:dkdedlpgdmmkkfjabffeganieamfklkm;CyanoWallet;Local Extension Settings
ews_coinbase:hnfanknocfeofbddgcijnmhnfnkdnaad;Coinbase;IndexedDB
ews_auromina:cnmamaachppnkjgnildpdmkaakejnhae;AuroWallet;Local Extension Settings
ews_khc:hcflpincpppdclinealmandijcmnkbgn;KHC;Local Extension Settings
ews_tezbox:mnfifefkajgofkcjkemidiaecocnkjeh;TezBox;Local Extension Settings
ews_coin98:aeachknmefphepccionboohckonoeemg;Coin98;Local Extension Settings
ews_temple:ookjlbkiijinhpmnjffcofjonbfbgaoc;Temple;Local Extension Settings
ews_sollet:fhmfendgdocmcbmfikdcogofphimnkno;Sollet;Local Extension Settings
ews_clover:nhnkbkgjikgcigadomkphalanndcapjk;CloverWallet;Local Extension Settings
ews_polymesh:jojhfeoedkpkglbfimdfabpdfjaoolaf;PolymeshWallet;Local Extension Settings
ews_neoline:cphhlgmgameodnhkjdmkpanlelnlohao;NeoLine;Local Extension Settings
ews_keplr:dmkamcknogkgcdfhhbddcghachkejeap;Keplr;Local Extension Settings
ews_terra_e:ajkhoeiiokighlmdnlakpjfoobnjinie;TerraStation;Local Extension Settings
ews_terra:aiifbnbfobpmeekipheeijimdpnlpgpp;TerraStation;Local Extension Settings
ews_liquality:kpfopkelmapcoipemfendmdcghnegimn;Liquality;Local Extension Settings
ews_saturn:nkddgncdjgjfcddamfgcmfnlhccnimig;SaturnWallet;Local Extension Settings
ews_guild:nanjmdknhkinifnkgdcggcfnhdaammmj;GuildWallet;Local Extension Settings
ews_phantom:bfnaelmomeimhlpmgjnjophhpkkoljpa;Phantom;Local Extension Settings
ews_tronlink:ibnejdfjmmkpcnlpebklmnkoeoihofec;TronLink;Local Extension Settings
ews_brave:odbfpeeihdkbihmopkbjmoonfanlbfcl;Brave;Local Extension Settings
ews_meta_e:ejbalbakoplchlghecdalmeeeajnimhm;MetaMask;Local Extension Settings
ews_ronin_e:kjmoohlgokccodicjjfebfomlbljgfhk;Ronin;Local Extension Settings
ews_mewcx:nlbmnnijcnlegkjjpcfjclmcfggfefdm;MEW_CX;Sync Extension Settings
ews_ton:cgeeodpfagjceefieflmdfphplkenlfk;TON;Local Extension Settings
ews_goby:jnkelfanjkeadonecabehalmbgpfodjm;Goby;Local Extension Settings
ews_ton_ex:nphplpgoakhhjchkkhmiggakijnkhfnd;TON;Local Extension Settings
ews_Cosmostation:fpkhgmpbidmiogeglndfbkegfdlnajnf;Cosmostation;Local Extension Settings
ews_bitkeep:jiidiaalihmmhddjgbnbgdfflelocpak;BitKeep;Local Extension Settings
ews_stargazer:pgiaagfkgcbnmiiolekcfmljdagdhlcm;Stargazer;Local Extension Settings
ews_clv:nhnkbkgjikgcigadomkphalanndcapjk;CloverWallet;Local Extension Settings
ews_jaxxlibertyext:cjelfplplebdjjenllpjcblmjkfcffne;JaxxLibertyExtension;Local Extension Settings
ews_enkrypt:kkpllkodjeloidieedojogacfhpaihoh;Enkrypt;Local Extension Settings
ews_gamestop:pkkjjapmlcncipeecdmlhaipahfdphkd;GameStop Wallet;Local Extension Settings
ews_xds:aholpfdialjgjfhomihkjbmgjidlcdno;Exodus Web3 Wallet;Local Extension Settings
xtntns_authenticatorcc:bhghoamapcdpbohphigoooaddinpkbai;Authenticator.cc;Sync Extension Settings
xtntns_keepassxc_browser:oboonakemofpalcgghocfoadofidjkkk;KeePassXC Browser;Local Extension Settings
xtntns_keepassTusk:fmhmiaejopepamlcjkncpgpdjichnecm;KeePass Tusk;Local Extension Settings
xtntns_bitwardenEx:nngceckbapebfimnlniiiahkandclblb;Bitwarden;Local Extension Settings
xtntns_microsoftAfL:fiedbfgcleddlbcmgdigjgdfcggjcion;Microsoft Autofill Local;Local Extension Settings
xtntns_microsoftAfS:fiedbfgcleddlbcmgdigjgdfcggjcion;Microsoft Autofill Sync;Sync Extension Settings
grbr_Desktop:%USERPROFILE%\Desktop\|*.txt|*recycle*,*windows*|25|1|1|files
grbr_Documets:%USERPROFILE%\Documents\|*.txt|*recycle*,*windows*|25|1|1|files
ldr_1:hxxp://172[.]86[.]75[.]189/36141266339446703039[.]bin|%APPDATA%\|exe
token:3f9bef70525fd0873fc9acf8b6babce9

从C2下载sqlite3.dll,流量中可以看到下载的PE文件:
image
从c2获取的7个dll中,freebl3.dll,mozglue.dll,softokn3.dll,nss3.dll有Mozilla有效签名,msvcp140.dll,vcruntime140.dll有Microsoft有效签名,其中sqlite3.dll为MinGW编译无数字签名:
image
3个连续的POST请求使用的User-Agent为rqwrwqrqwrqw,向C2发送了大量明文数据,我们可以看到其中第一个POST请求发送收集到的系统数据System Info.txt,主要内容为本机的操作系统版本和基本硬件信息还有本机安装的软件。
image
第二个POST请求可以看到发送的是cookies.txt和passwords.txt,收集到的数据是chrome浏览器登陆的账号密码数据和cookies:
image
第三个POST请求发送的是passwords.txt,主要就是本机Firefox浏览器保存的登陆网站对应的账号密码:
image
我们查看最后一个GET请求发现36141266339446703039.bin为一个PE文件:
image
我们使用DIE工具查看发现此PE文件为使用Visual Studio 2019编译的并使用ENIGMA5.x版本加壳的32位程序:
image
通过沙箱分析36141266339446703039.bin有创建计划任务进行持久化的操作:
image
我们查看部分XMl文件内容,计划任务每隔5分钟会运行XML中的prevhost.exe,根据公开的威胁情报显示此程序功能为剪贴板劫持:
image
查询94[.]131[.]106[.]116的威胁情报发现有2个恶意样本使用了此IP进行通信:
image
查询172[.]86[.]75[.]189的威胁情报,发现了多个下载样本也是加了Enigma壳:
image

代码分析

由于样本都是加了强壳对代码进行VM,于是这里我寻找到了未加壳的样本进行分析,可以看到编译的连接器版本也是14.29,而且此样本是使用纯汇编编写所以样本大小只有55.5KB。
image
首先分析第一个函数,主要通过LoadLibraryW和GetProcAddress函数组合动态获取函数地址:
image
获取注册表和网络还有字符串加解密相关函数地址:
image
字符串使用了Base64编码加RC4加密方式,RC4密钥为edinayarossiya
image
我们使用CyberChef随意解密一个字符串可以看到是一个格式化字符串:
image
字符串解密完成会将一部分字符串转为宽字符:
image
接着又解密了加密字符串,此处RC4使用的密钥为59c9737264c0b3209d9193b8ded6c127
image
使用CyberChef解密字符串,可以看到此字符串为C2的URL:
image
接着使用GetUserDefaultLocaleName函数获取用户默认语言环境:
image
StrStrIW函数对比当前默认语言环境是否为ru。
image
使用OpenMutexW打开互斥体8724643052
image
如果存在互斥体则退出进程,不存在则创建互斥体。
image
接着获取进程的运行权限是否为S-1-5-18(SECURITY_LOCAL_SYSTEM_RID)
image
通过获取注册表SOFTWARE\\Microsoft\\Cryptography的MachineGuid作为被感染主机的唯一ID。
image
获取MachineGuid:
image
接着获取了本机用户名:
image
收集完数据拼接字符串,拼接成的格式为:machineId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx|username&configId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx其中的configId为第二次解密字符串使用的RC4密钥
image
然后发送第一次POST请求,如C2存活会返回明文的配置文件,配置文件中包含了要窃取的指定数据:
image
解析配置信息的libs字段从C2下载dll:
image
发送get请求下载dll并使用WriteFile函数保存到本地:
image
收集基本系统信息并格式化发送POST请求到C2:
image
接下来的主要逻辑就是解析配置文件,根据配置文件窃取对应的数据并发送到C2:
image
我们查看Chromium浏览器窃取函数,首先遍历硬盘查找User Data目录,基于Chromium开发的浏览器默认的数据保存目录一般都在User Data目录下,比如说chrome浏览器的数据存储在C:\Users\username\AppData\Local\Google\Chrome\User Data,如果存在User Data目录则解密相关数据库并使用sqlite3的sql语句查询数据。
image
从Local State文件读取encrypted_key字段用于解密登录密码,后续解密数据并使用sqlite3语句查询数据:
image
Login Data是用于保存Chromium浏览器登录账号密码信息的sqlite3数据库,sqlite3查询chrome浏览器登录密码:
image
Chromium浏览器的密码加密方式,版本号80之前的可直接使用CryptUnprotectData函数解密,如果80之后的版本密码会有v10开头的标志,解密需要使用Local State文件的中的encrypted_key字段的Aes密钥进行解密。
image
打开Network文件夹Cookies数据库文件使用sqlite3 sql语句查询Chromium浏览器cookies:
image
sqlite3 sql语句查询Chromium浏览器autofill数据(自动填充账号密码):
image
打开Web Data数据库文件并使用sqlite3 sql语句查询Chromium器信用卡信息和付款凭证:
image
解析配置文件ews_字段窃取指定浏览器插件的数据,ews_meta_e:ejbalbakoplchlghecdalmeeeajnimhm;MetaMask;Local Extension Settings
image
遍历硬盘窃取配置文件中指定浏览器插件的数据:
image
获取需要用到的nss3.dll和sqlite3.dll导出函数地址:
image
针对mozilla firefox浏览器用于保存数据的Profiles文件夹进行数据窃取:
image
打开cookies.sqlite数据库文件并使用sqlite3 sql语句查询mozilla firefox浏览器cookies:
image
读取logins.json文件并解密获取账号密码:
image
打开formhistory.sqlite数据库并使用sqlite3 sql语句查询,此数据库中记录着通过 Firefox 搜索框搜索的历史以及在网站填写过的表单:
image
遍历搜索查找wallet.dat文件:
image
解析配置文件中的grbr_字段,窃取对应路径下的指定文件,配置文件的内容如下grbr_Desktop:%USERPROFILE%\Desktop|*.txt|*recycle*,*windows*|25|1|1|files
image
解析配置文件tlgrm_字段,窃取telegram的指定文件数据:
image
解析配置文件ldr_字段,下载配置文件的payload到指定目录下并运行配置信息如下所示ldr_1:hxxp://172[.]86[.]75[.]189/36141266339446703039[.]bin|%APPDATA%|exe
image
如果存在则从C2下载下一阶段的payload并使用ShellExcuteW运行:
image
通过分析未加壳的样本,可以推断出这和现在活跃传播的加壳样本都为RaccoonStealer v2版本并且代码没有太多更改,加壳样本的配置文件中多了xtntns_字段用于窃取密码管理软件的数据,后续的更新可能会增加更多数据的窃取功能并且有可能会增加勒索等功能。

总结

RaccoonStealer v2通过伪装破解软件下载站,针对搜索引擎的SEO关键词优化达到广泛传播实现信息窃取,并且使用了VMProtect、Themida、ENIGMA等强壳进行代码VM等保护,使用附加大量重复字节膨胀PE文件大小防止被上传沙箱分析等等,尽量不要下载使用破解软件请多支持官方正版软件,不然碰到RaccoonStealer v2这种类型的恶意软件得不偿失。

# 数据窃取 # 逆向分析 # 流量分析 # RaccoonStealer # 窃密的浣熊
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录