Lockbit2.0勒索病毒样本分析
本帖最后由 Potato 于 2022-8-9 11:42 编辑相关阅读:
Lockbit勒索病毒家族详情
LockBit3.0勒索病毒样本分析
一、概述 此次分析的勒索病毒为Lockbit,该病毒使用PECompact进行加壳,同时使用多种反调试手段和字符串运行时解密、修改进程模块名等方式进行反分析。加密方式依旧采用常见的RSA+AES组合。
程序支持传入参数进行测试:Lockbit.exe 。
二、代码分析
Lockbit执行过程中,会创建一个名为Lockbit Ransom的隐藏窗口记录执行流程,并且注册热键shift+F1显示,F1隐藏。
1. CIS地区避过
程序通过系统用户使用语言检测并避过独立国家联合体(CIS)地区国家:
<div>2092:阿塞拜疆 - 西里尔文
</div><div>1068:阿塞拜疆语 - 拉丁语
</div><div>1067:亚美尼亚语
</div><div>1059:白俄罗斯语
</div><div>1079:格鲁吉亚语
</div><div>1087:哈萨克语
</div><div>1088:吉尔吉斯语 - 西里尔文
</div><div>2073:俄语 - 摩尔多瓦
</div><div>1049:俄语
</div><div>1064:塔吉克
</div><div>1090:土库曼斯坦
</div><div>2115:乌兹别克语 - 西里尔文
</div><div>1091:乌兹别克语 - 拉丁语
</div><div>1058:乌克兰
</div>
2. UAC Bypass & 自启动
Lockbit通过当前执行进程令牌判断当前进程令牌是否具备管理员权限。如果不具备但进程令牌属于管理员组且系统版本大于Windows XP,则使用COM接口进行提升权限重新启动进程。
然后创建互斥量Global\\{BEF590BE-11A6-442A-A85B-656C1081E04C},以保证程序单例执行。在开始加密前,为防止中途中断导致加密失败,Lockbit为自身创建注册表自启动项HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\XO1XADpO01,系统所有目标文件加密完成删除该键。 或许是出于防止自身进程被扫描,程序接着会设置当前进程对象的访问权限,禁止其他所有用户对当前进程对象的数据读取。
3. 结束指定进程&服务
启用当前进程的SeDebugPrivilege权限,然后结束指定服务及其依赖项。这些服务包括:
wrapper、DefWatch、ccEvtMgr、ccSetMgr、SavRoam、Sqlservr、sqlagent、sqladhlp、Culserver、RTVscan、sqlbrowser、SQLADHLP、QBIDPService、Intuit.QuickBooks.FCS、QBCFMonitorService、sqlwriter、msmdsrv、tomcat6、zhudongfangyu、vmware-usbarbitator64、vmware-converter、dbsrv12、dbeng8、MSSQL$MICROSOFT##WID、MSSQL$VEEAMSQL2012、SQLAgent$VEEAMSQL2012、SQLBrowser、SQLWriter、FishbowlMySQL、MSSQL$MICROSOFT##WID、MySQL57、MSSQL$KAV_CS_ADMIN_KIT、MSSQLServerADHelper100、SQLAgent$KAV_CS_ADMIN_KIT、msftesql-Exchange、MSSQL$MICROSOFT##SSEE、MSSQL$SBSMONITORING、MSSQL$SHAREPOINT、MSSQLFDLauncher$SBSMONITORING、MSSQLFDLauncher$SHAREPOINT、SQLAgent$SBSMONITORING、SQLAgent$SHAREPOINT、QBFCService、QBVSS、YooBackup、YooIT、vss、sql、svc$、MSSQL、MSSQL$、memtas、mepocs、sophos、veeam、backup、bedbg、PDVFSService、BackupExecVSSProvider、BackupExecAgentAccelerator、BackupExecAgentBrowser、BackupExecDiveciMediaService、BackupExecJobEngine、BackupExecManagementService、BackupExecRPCService、MVArmor、MVarmor64、stc_raw_agent、VSNAPVSS、VeeamTransportSvc、VeeamDeploymentService、VeeamNFSSvc、AcronisAgent、ARSM、AcrSch2Svc、CASAD2DWebSvc、CAARCUpdateSvc、WSBExchange、MSExchange、MSExchange$
结束指定进程,解除数据文件占用:
wxServer、wxServerView、Sqlservr、RAgui、supervise、Culture、RTVscan、Defwatch、sqlbrowser、winword、QBW32、QBDBMgr、qbupdate、QBCFMonitorService、axlbridge、QBIDPService、httpd、fdlauncher、MsDtSrvr、tomcat6、java、360se、360doctor、wdswfsafe、fdhost、GDscan、ZhuDongFangYu、QBDBMgrN、sqlwriter、mysqld、AutodeskDesktopApp、acwebbrowser、Creative Cloud、Adobe Desktop Service、CoreSync、Adobe CEF Helper、node、AdobeIPCBroker、sync-taskbar、sync-worker、InputPersonalization、AdobeCollabSync、BrCtrlCntr、BrCcUxSys、SimplyConnectionManager、Simply.SystemTrayIcon、fbguard、fbserver、ONENOTEM、YooIT、wsa_service、koaly-exp-engine-service、TeamViewer_Service、TeamViewer、tv_w32、tv_x64、TitanV、Ssms、notepad、RdrCEF、sam、sql、oracle、ocssd、dbsnmp、synctime、agntsvc、isqlplussvc、xfssvccon、mydesktopservice、ocautoupds、encsvc、firefox、tbirdconfig、mydesktopqos、ocomm、dbeng50、sqbcoreservice、excel、infopath、msaccess、mspub、onenote、outlook、powerpnt、steam、thebat、thunderbird、visio、winword、wordpad、bedbh、vxmon、benetns、bengien、pvlsvr、beserver、raw_agent_svc、vsnapvss、CagService、DellSystemDetect、EnterpriseClient、VeeamNFSSvc、VeeamTransportSvc、VeeamDeploymentSvc
4. 删除卷影
Lockbit通过清空回收站和删除卷影的方式清除可能的备份数据。删除卷影时,以runas方式执行以下命令:
<div>/c vssadmin delete shadows /all /quiet & wmic shadowcopy delete & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet
</div><div>/c vssadmin delete shadows /all /quiet
</div><div>/c bcdedit /set {default} recoveryenabled No
</div><div>/c bcdedit /set {default} bootstatuspolicy ignoreallfailures
</div><div>/c wbadmin DELETE SYSTEMSTATEBACKUP
</div><div>/c wbadmin DELETE SYSTEMSTATEBACKUP -deleteOldest
</div><div>/c wmic SHADOWCOPY /nointeractive
</div><div>/c wevtutil cl security
</div><div>/c wevtutil cl system
</div><div>/c wevtutil cl application
</div>
5. 用户RSA密钥对生成
Lockbit运行后会为用户生成一对RSA-2048公私钥,然后使用内置于程序中的攻击者RSA-2048公钥对用户私钥进行加密,加密结果大小为0x500字节。病毒会将该结果写入注册表键HKCU\SoftWare\LockBit\full,而未被加密的用户公钥则会被写入到HKCU\SoftWare\LockBit\Public。如果Lockbit由于某些原因中止重启,将直接从两个注册表中读取密钥数据,从而保证每台机器仅一对密钥。
6. 搜索文件进行加密
在开始搜索可加密文件前,程序会先将未挂载的非系统使用的固定磁盘、可移动磁盘进行挂载,从’Z’递减作为挂载盘符,已彻底地加密机器上的数据。
搜索文件时,程序主要对三种目标进行枚举:
(1) 对本地ip列表逐个尝试连接,访问其文件;
(2) 网络资源枚举;
(3) 本地磁盘枚举。
不过程序对于目录/文件的过滤方式都是相同的。会避过以下文件夹:
<div>$windows.~bt
</div><div>intel
</div><div>msocache
</div><div>$recycle.bin
</div><div>$windows.~ws
</div><div>tor browser
</div><div>boot
</div><div>system volume information
</div><div>perflogs
</div><div>google
</div><div>application data
</div><div>windows
</div><div>windows.old
</div><div>appdata
</div><div>Windows nt
</div><div>Msbuild
</div><div>Microsoft
</div><div>All users
</div><div>mozilla
</div><div>Microsoft.NET
</div><div>microsoft shared
</div><div>Internet Explorer
</div><div>common files
</div><div>opera
</div><div>Windows Journal
</div>
根据文件后缀避过的文件类型包括:
.theme、.icns、.lock、.rdp、.lnk、.ico、.hlp、.sys、.idx、.ini、.dll、.reg、.mp3、.key、.ics、.msu、.ps1、.spl、.msc、.rom、.bat、.wpx、.drv、.shs、.hlp、.bin、.rtp、.prf、.hta、.mod、.cpl、.mpa、.ocx、.nls、.com、.msp、.msi、.adv、.ani、.exe、.cmd、.386、.lockbit、.diagcfg、.diagcab、.diagpkg、.msstyles
避过如下文件名:
<div>Restore-My-Files.txt
</div><div>ntldr
</div><div>ntuser.dat.log
</div><div>bootsect.bak
</div><div>autorun.inf
</div><div>thumbs.db
</div><div>iconcache.db
</div>
以下文件类型将被标记(extflag),加密阶段将对被标记文件进行整体分段加密。
<div>.rar
</div><div>.zip
</div><div>.7z
</div><div>.ckp
</div><div>.dacpac
</div><div>.db
</div><div>.db-shm
</div><div>.db-wal
</div><div>.db3
</div><div>.dbf
</div><div>.dbc
</div><div>.dbs
</div><div>.dbt
</div><div>.dbv
</div><div>.frm
</div><div>.mdf
</div><div>.mrg
</div><div>.mwb
</div><div>.myd
</div><div>.ndf
</div><div>.qry
</div><div>.sdb
</div><div>.sdf
</div><div>.sql
</div><div>.sqlite
</div><div>.sqlite3
</div><div>.sqlitedb
</div><div>.tmd
</div>
7. 文件加密方式
加密文件时使用一个IO完成端口专门进行数据处理,每个文件处理时传递的数据为0x40068字节,结构及偏移量如下:
<div>+0x00: struct _OVERLAPPE
</div><div>++0x00:Internal
</div><div>++0x04:InternalHigh
</div><div>++0x08:Offset(文件偏移值低位)
</div><div>++0x0C:OffsetHigh(文件偏移值高位)
</div><div>++0x10:hEvent
</div><div>+0x14:0
</div><div>+0x18:文件原始大小LowPart
</div><div>+0x1C:文件原始大小HighPart
</div><div>+0x20:文件对象句柄hFile
</div><div>+0x24:数据处理指令,初始为4
</div><div>1: 对读取数据片段进行AES CBC加密,并修改IV为加密数据尾部16字节,下一指令为5(extflag为1)或者2(extflag为0或是文件已读取至尾部);
</div><div>2: 文件重命名,关闭当前文件句柄,等待下一个文件处理;
</div><div>3: 无操作,在写入勒索信文件时被指定;
</div><div>4: 生成解密相关的尾部数据,追加于文件尾部,下一步指令6;
</div><div>5: 继续读取原文件数据片段,下一指令1;
</div><div>6: 从原文件头部开始读取数据片段到缓冲区,下一步指令1;
</div><div>+0x28:已加密数据长度LowPart,初始为0
</div><div>+0x2C:已加密数据长度HighPart,初始为0
</div><div>+0x30:extflag(0/1),是否命中指定后缀名
</div><div>+0x34:文件读写缓冲区(0x40000字节)
</div><div>+0x40034:AES128密钥Key,16字节随机值
</div><div>+0x40044:AES128初始IV,16字节随机值
</div>
其中extflag即为之前在后缀名匹配时被标记的指定类型的文件,主要包含数据库、压缩包等常见的重要数据文件类型。
加密方式主要是两种:
(1) 分段加密整个文件,extflag为1时或是文件大小不大于0x40000字节(256KB)时,每次读写位置增加指定偏移量(根据文件大小计算,大于0x40000),然后加密该位置的256KB内容;
(2) 部分加密,extflag为0且文件大于256KB,加密文件头部256KB。
文件加密算法使用AES128的CBC模式。每个文件的密钥Key和IV都重新随机生成。对于支持AES-NI指令集的,使用AES-NI指令进行加密,以提高执行速度;否则,仍按传统代码方式进行计算。Lockbit将解密和文件验证所需的数据追加于文件尾部,包含如下信息:
[*] 源文件尾部16字节的头部数据,数据字节数为 (16 - filesize % 16) % 16,例外是当extflag为0且文件大于256KB时,常为0;
[*]由用户RSA-2048公钥加密的AES密钥Key和IV共32字节,加密后结果0x100字节;
[*]经过攻击者RSA公钥pk_attacker加密后的sk_user(用户RSA私钥),数据共0x500字节;
[*]pk_attacker前16字节
以只加密文件头部256KB的方式为例,文件加密流程和加密后文件结构如下图:
8. 勒索信释放 & 桌面背景修改
Lockbit在每隔被加密的目录下释放一封勒索信Restore-My-Files.txt,文件全部加密完成后,程序在桌面释放hta文件LockBit-note.hta,并为其创建注册表启动项,然后运行,弹出勒索窗口以提醒用户。
Restore-My-Files.txt
All your important files are encrypted!
Any attempts to restore your files with the thrid-party software will be fatal for your files!
RESTORE YOU DATA POSIBLE ONLY BUYING private key from us.
There is only one way to get your files back:
1) Through a standard browser(FireFox, Chrome, Edge, Opera)
| 1. Open link http://lockbit-decryptor.top/?A57BE5697721472BBA04A09A2749C839
| 2. Follow the instructions on this page
2) Through a Tor Browser - recommended
| 1. Download Tor browser - https://www.torproject.org/ and install it.
| 2. Open link in TOR browser - http://lockbitks2tvnmwk.onion/?A57BE5697721472BBA04A09A2749C839
This link only works in Tor Browser!
| 3. Follow the instructions on this page
###Attention! ###
# lockbit-decryptor.top may be blocked. We recommend using a Tor browser to access the site
# Do not rename encrypted files.
# Do not try to decrypt using third party software, it may cause permanent data loss.
# Decryption of your files with the help of third parties may cause increased price(they add their fee to our).
# Tor Browser may be blocked in your country or corporate network. Use https://bridges.torproject.org or use Tor Browser over VPN.
# Tor Browser user manual https://tb-manual.torproject.org/about
LockBit-note.hta
桌面背景
9. 自我删除
执行如下命令实现自我删除。
/C ping 127.0.0.7 -n 3 > Nul & fsutil file setZeroData offset=0 length=524288<\path\to\Lockbit.exe> & Del /f /q<\path\to\Lockbit.exe>
IOC
HASH
0f890d99d7a89506db76866f4a93b771
既然这些密钥都能拿到,请问这个能解吗?我中了这个毒,用“360解密大师1.0.2.1590” 执行,提示未发现任何被加密文件。请问是要如何操作? 我这里也中了这样差不多的病毒 所以,电脑系统语言改成独联体国家的语言,或者资料全部存放在避开的文件夹下 是不是可以免受勒索病毒加密了
页:
[1]