linux病毒通过U盘传播,一个通过U盘传播的病毒详细分析,近期抓的但是是09年的病毒...
本帖最后由 清香白莲 于 2017-8-30 10:30 编辑
1.介绍
sample_sha1:0c9dec73697f74a8657e538eef8016a515e6cbc0图标:
图标.png (2 KB, 下载次数: 11)
2017-7-15 17:40 上传
传播途径:U盘,硬盘
该样本是某个群友在自己学校打印店里抓到的虫子。VT上显示最早上传时间是2009年。样本本身是Delphi程序,但是会释放一个VB程序。程序应该是中国人编写的,程序中含有“中华人民共和国万岁”和“感动中国特别奉献”等字样。
该样本会将自己伪装成文件夹,将除C盘以外的所有磁盘的文件夹隐藏,并将自身拷贝过去,并重命名为原文件夹名的名称,同时程序运行过程中会尝试打开与自身同名的文件夹,用户很难发现自己中毒。破坏力最大的是,当样本检测到当前日期为每月的1号、10号、21号或29号时,会将磁盘(C盘除外)里的所有文件删除。
2.行为分析
2.1注册表行为:
1. 新添加键
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dongtian]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dongtian]
2. 删除值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt] "CheckedValue"=dword:00000001
3. 新添加值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] "msfsa"="C:\\windows\\avb.exe"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dongtian] "Type"=dword:00000110 "Start"=dword:00000002 "ErrorControl"=dword:00000000 "ImagePath"=“C:/Windows/System32/javasc.exe”"DisplayName"="mywinter" "ObjectName"="LocalSystem" "Description"="dfdf"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dongtian\Security]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dongtian]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dongtian\Security]
4. 改变值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL] "CheckedValue"=dword:00000001 "CheckedValue"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Hidden"=dword:00000001 ->00000002 "HideFileExt"=dword:00000000 ->00000001
2.2创建服务
服务名称:dongtian
显示名称:mywinter
描述:dfdf
可执行文件的路径: C:\windows\system32\javasc.exe
启动类型:自动
2.3释放文件
GHO.exe , javasc.exe, mscb.exe, sdafdf.exe, nasm.exe, mydat1, mydat2
3.详细分析
3.1总体分析:
这是一个Delphi程序,使用Delphi Decompiler分析。有五个响应过程:
图片2.png (28.46 KB, 下载次数: 2)
2017-7-15 17:40 上传
在IDA中分析,主程序流程很简单,CreateForm创建Form,然后Run进入消息响应循环:
图片3.png (21.21 KB, 下载次数: 2)
2017-7-15 17:40 上传
接下来对各个响应过程进行详细分析。
3.2 FormCreat
在CreateForm时进入FormCreat过程,下图是FormCreat的流程图:
图片4.png (27.98 KB, 下载次数: 1)
2017-7-15 17:40 上传
具体步骤:
①程序在开始调用ParamStr(0),获取自身进程名,比较进程名是不是javasc.exe,如果是则②,否则走③;
图片5.png (44.1 KB, 下载次数: 1)
2017-7-15 17:40 上传
图片6.png (9.45 KB, 下载次数: 1)
2017-7-15 17:40 上传
②将自身拷贝到C:\Windows下,并命名为sdafdf.exe,同时运行sdafdf.exe,之后便调用halt0()退出;
图片7.png (21.84 KB, 下载次数: 1)
2017-7-15 17:40 上传
③首先会判断与程序自己同名的文件夹是否存在,
图片8.png (12.66 KB, 下载次数: 1)
2017-7-15 17:40 上传
如果存在则会调用ShellExecuteA打开文件夹,
图片9.png (12.37 KB, 下载次数: 1)
2017-7-15 17:40 上传
无论与自己同名的文件夹是否存在,接下来都会判断C:\windows\avb.exe是否存在,如果存在,则④,否则⑧;
图片10.png (3.16 KB, 下载次数: 3)
2017-7-15 17:40 上传
④修改注册表(sub_44F3A0),然后进入⑤;
图片11.png (30.67 KB, 下载次数: 1)
2017-7-15 17:40 上传
⑤并且创建拷贝自身C:\windows\system32\javasc.exe,并在sub_44E5CC中将javasc.exe注册为服务,进入⑥;
图片12.png (16.79 KB, 下载次数: 1)
2017-7-15 17:40 上传
图片13.png (66.01 KB, 下载次数: 1)
2017-7-15 17:40 上传
⑥修改注册表不显示隐藏文件,并且修改文件夹选项也没用,删除文件夹选项中的隐藏已知文件类型的扩展名选项,删除这个键;
图片14.png (9.44 KB, 下载次数: 0)
2017-7-15 17:40 上传
(左图为正常情况下文件夹选项,右图为感染蠕虫后文件夹选项)
图片15.png (49.12 KB, 下载次数: 0)
2017-7-15 17:40 上传
图片16.png (48.83 KB, 下载次数: 0)
2017-7-15 17:40 上传
⑦接下来再次修改注册表,将avb.exe加入注册表Runonce中,之后退出;
⑧首先创建拷贝自身C:\windows\avb.exe,这里和上面拷贝方法相同,进入⑨;
⑨创建拷贝自身C:\windows\system32\javasc.exe,并在sub_44E5CC中将javasc.exe注册为服务,接下来再次修改注册表,将avb.exe加入注册表Runonce中,进入⑩;
⑩比较进程名是不是C:\windows\avb.exe,如果是则⑪,否则⑫;
⑪创建拷贝自身C:\windows\mscb.exe,并执行,之后调用halt0()退出;
⑫比较是不是C:\windows\mscb.exe,如果不是,则程序调用halt0()退出,如果是则CreateForm过程正常退出,程序继续运行,进行下面timer的响应过程。
3.3 timer4:
首先关闭计时器,然后读取资源,释放C:\windows\nasm.exe,并且运行nasm。nasm.exe的分析下文再介绍
图片17.png (30.51 KB, 下载次数: 1)
2017-7-15 17:40 上传
3.4 timer2:
首先获取当前系统时间
图片18.png (20.01 KB, 下载次数: 1)
2017-7-15 17:40 上传
然后在0x0044F2DE处,获取磁盘信息,具体获取过程:设置寄存器bl的值由0x43增加到0x5B,进行24循环,遍历C盘到Z盘,利用DiskSize判断磁盘是否存在,利用DriverType获取磁盘类型:
图片19.png (69.1 KB, 下载次数: 1)
2017-7-15 17:40 上传
获取磁盘信息结束后,会对之前获取的系统时间重新编码为年月日的形式,之后开始比较,如果当期时间为2009年3月之前,则Timer2过程就结束,并且判断当期日期是不是1号,10号,21号或29号病毒,如果是这几个日期会进行删除操作:
图片20.png (56.2 KB, 下载次数: 0)
2017-7-15 17:40 上传
删除所有文件
图片21.png (22.58 KB, 下载次数: 0)
2017-7-15 17:40 上传
3.5 Timer1:
这是该样本最重要的感染部分,首先会遍历目录,获取目录下的所有文件夹名,下图保存的是获取的文件夹信息,从123到新建文件夹均是文件夹名:
图片22.png (32.67 KB, 下载次数: 1)
2017-7-15 17:40 上传
之后设置文件夹属性,将文件夹隐藏:
图片23.png (11.11 KB, 下载次数: 1)
2017-7-15 17:40 上传
然后创建以文件夹名为名称的可执行程序,伪装成文件夹:
图片24.png (27.41 KB, 下载次数: 1)
2017-7-15 17:40 上传
其中CopyFile的第三个参数为True,表示若拷贝过去的文件路径下已存在相同文件,那么不替换文件。
3.6 timer3:
修改注册表
图片25.png (34.46 KB, 下载次数: 1)
2017-7-15 17:40 上传
3.7 nasm.exe
在timer4过程中释放了nasm.exe。nasm.exe与mscb.exe之间实现了双进程守护,两个进程彼此创建。首先在PEID中查看nasm.exe发现是VB程序,祭出VB反编译神器VB Decompiler。
图片26.png (26.1 KB, 下载次数: 2)
2017-7-15 17:40 上传
nasm.exe程序较简单,VB Decompiler反编译的结果也很清晰,基本就是源码,VB De反编译出nasm.exe程序中的函数有以下几个:
图片27.png (12.99 KB, 下载次数: 0)
2017-7-15 17:40 上传
其中Proc_403E60的作用是返回字符串“C:\Windows”,Proc_403FC0是Proc_403E60调用的一个中间过程,对字符串进行处理。
Proc_402A20利用CreateToolhelp32Snapshot、Process32First、Process32Next这三个API遍历进程,获取进程列表:
图片28.png (59.57 KB, 下载次数: 0)
2017-7-15 17:40 上传
Form_Load_403260的作用是调用Proc_403510,Proc_403510会将masb.exe文件的前0x5000字节存储为“C:\Windows\mydat1”,将后面的字节存储为“C:\Windows\mydat2”:
图片29.png (37.07 KB, 下载次数: 0)
2017-7-15 17:40 上传
三个文件属性比较:
图片30.png (34.34 KB, 下载次数: 0)
2017-7-15 17:40 上传
processhelp_Timer_4038D0会循环进程列表中有没有mscb.exe进程和heihu.exe进程。笔者研究了很久,也没找到heihu.exe程序是哪一个程序,但是如果程序检测到heihu.exe进程的存在,nasm.exe就会执行关机的shell命令:"shutdown -f -s -t 10 -c heihu error!"
图片31.png (13.62 KB, 下载次数: 1)
2017-7-15 17:40 上传
如果mscb.exe进程不存在,processhelp_Timer_4038D0会运行mscb.exe程序,但是如果processhelp_Timer_4038D0检测到C:\Windows路径下没有mscb.exe文件,则会执行existh_Timer_4038D0;existh_Timer_4038D0利用了和Proc_403510相同的手法,不过这一次是将mydat1和mydat2文件合并存储为mscb.exe程序。
至此,nasm与mscb.exe成为了守护彼此的“情侣”进程!
4.总结
本次分析的病毒,利用了各种途径让自己存活下来,虽然分析过程比较长,但是程序流程还是很清晰。该病毒将自己伪装成文件夹,通过U盘传播,利用守护进程保证自己难以被杀死,将自己注册为服务,实现了内存常驻。解压密码
linux病毒通过U盘传播,一个通过U盘传播的病毒详细分析,近期抓的但是是09年的病毒...相关推荐
- 有一个设计时钟的题目,进行详细分析(一)
先对题目要求及元器件介绍 一.要求:设计一个能实现从 00:00--23:59 计数的数字电子钟: 二.所用芯片: 1.辅助芯片:74LS00 两片,用于分频器和计数器的复位: 劲非 74LS08 两 ...
- 电脑上html文件可以删除吗,详细分析电脑c盘哪些文件可以删除
C盘作为一个特殊的盘符存在电脑里面,安装系统会自动默认在C盘,安装应用程序时,C盘也会作为首选推荐的盘符,但其实这样做会有着诸多的弊端,比如:C盘会被占据太多的空间导致电脑运行缓慢,拖慢电脑的运行速度 ...
- 用U盘安装一个Linux系统
用U盘安装一个Linux系统要分三步: 1.下载一个syslinux 和 dsl. syslinux 下载地址: [url]http://www.cn.kernel.org/pub/linux/b ...
- 键盘侠Linux干货| 使用Nginx搭建一个私人网盘
前言 使用Nginx搭建一个私人网盘 安装Nginx 增加 Nginx 官方源 cat << EOF > /etc/yum.repos.d/nginx.repo [nginx-sta ...
- linux刻录win10u盘_如何用ultraiso制作一个系统U盘?WIN10系统U盘制作图文教程
大家是不是偶尔会遇到电脑系统损坏的情况呢?你第一时间想到的是去找电脑店师傅来处理一下,但又是深夜了,怎么办?其实自己也可以解决的,前提是你有一个用于"救急"的U启动盘.今天就教你如 ...
- U盘病毒的传播途径和如何安全使用U盘
现在U盘应用的非常广泛,使用电脑的人几乎人手一个.U盘在给我们带来方便的同时,也给病毒木马的传播提供了方便.下面我将就U盘病毒的传播途径和如何安全使用U盘来谈谈我自己的认生,欢迎批评指正. 一.U盘病 ...
- linux导出文件夹到u盘,Linux系统放到U盘上直接在U盘上运行Linux
以下使用dos+grub4dos启动Ubuntulinux进入u盘目录,这种开启方法便于加入PE和dos工具箱制作多重启动盘. 优盘之家 1.引导dos启动 U盘之家 启动UltraISO,选择菜单& ...
- linux iso镜像怎么用u盘装,如何使用U盘安装ISO系统镜像?
禁止光盘或U盘自动运行,防范自动运行病毒办法汇总 禁止光盘或U盘自动运行: 判断U盘/移动硬盘是否被感染的方法: 当U盘/移动硬盘被系统正常识别后,请不要随意使用"双击"方式打开U ...
- win10 格式化 linux u盘,Win10怎么格式化u盘 Win10中对U盘格式化的两种常用方法
如果你的 U 盘故障或损坏,将其格式化也许能够恢复正常工作.如果你的大空间 U 盘里面有太多小文件,格式化也是将其内容清空的最佳办法,本文我们就来详细介绍 Windows 10 中对 U 盘进行格式化 ...
- 一个启动U盘装多系统引导,无需反复格式化,ISO/WIM等文件拷贝到U盘即可启动
想做一个可以有很多系统的启动U盘,把PE.linux.windows都装进去.系统启动U盘制作倒是非常简单,遍地是老毛桃.大白菜.U启通等工具,那么如何使用一个U盘装多个系统呢?找到一个非常好用的东西 ...
最新文章
- 用python快速画小猪佩奇
- 使用nmonchart把.nmon文件转换成html
- FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说...
- oracle千万级分页优化,oracle千万级数据分页存储过程优化
- C# 基础知识-02----强数据类型
- 内购订单进行二次处理_独家独到飞豹FBA亚马逊退货处理,实现二次销售不是问题...
- 西瓜书学习记录-线性模型(第三章)
- 修复steam服务器失败,steam服务器链接失败
- Unity3D学习笔记(二十五):文件操作
- Kotlin基础语法学习类和对象(一)
- django Rest Framework----认证/访问权限控制/访问频率限制 执行流程 Authentication/Permissions/Throttling 源码分析...
- endnotex8使用教程_「endnote教程」EndNote x8基础使用教程(一) - seo实验室
- MT2503处理器性能介绍,MT2503/MT2503A/MT2503D芯片资料下载
- linux授权文件夹777,服务器上如何修改文件夹777权限
- 基于ThinkPHP6搭建的后台管理系统
- Android开发规范:APP版本发布(全量发布、灰度发布)
- LeetCode刷题(python)——476. 数字的补数
- 美团后台开发笔试-数字字符
- python中strip()函数的详解
- 拿两千块钱的薪水要有一万块钱的范儿--蜗居编剧