本帖最后由 清香白莲 于 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年的病毒...相关推荐

  1. 有一个设计时钟的题目,进行详细分析(一)

    先对题目要求及元器件介绍 一.要求:设计一个能实现从 00:00--23:59 计数的数字电子钟: 二.所用芯片: 1.辅助芯片:74LS00 两片,用于分频器和计数器的复位: 劲非 74LS08 两 ...

  2. 电脑上html文件可以删除吗,详细分析电脑c盘哪些文件可以删除

    C盘作为一个特殊的盘符存在电脑里面,安装系统会自动默认在C盘,安装应用程序时,C盘也会作为首选推荐的盘符,但其实这样做会有着诸多的弊端,比如:C盘会被占据太多的空间导致电脑运行缓慢,拖慢电脑的运行速度 ...

  3. 用U盘安装一个Linux系统

    用U盘安装一个Linux系统要分三步: 1.下载一个syslinux 和  dsl. syslinux  下载地址: [url]http://www.cn.kernel.org/pub/linux/b ...

  4. 键盘侠Linux干货| 使用Nginx搭建一个私人网盘

    前言 使用Nginx搭建一个私人网盘 安装Nginx 增加 Nginx 官方源 cat << EOF > /etc/yum.repos.d/nginx.repo [nginx-sta ...

  5. linux刻录win10u盘_如何用ultraiso制作一个系统U盘?WIN10系统U盘制作图文教程

    大家是不是偶尔会遇到电脑系统损坏的情况呢?你第一时间想到的是去找电脑店师傅来处理一下,但又是深夜了,怎么办?其实自己也可以解决的,前提是你有一个用于"救急"的U启动盘.今天就教你如 ...

  6. U盘病毒的传播途径和如何安全使用U盘

    现在U盘应用的非常广泛,使用电脑的人几乎人手一个.U盘在给我们带来方便的同时,也给病毒木马的传播提供了方便.下面我将就U盘病毒的传播途径和如何安全使用U盘来谈谈我自己的认生,欢迎批评指正. 一.U盘病 ...

  7. linux导出文件夹到u盘,Linux系统放到U盘上直接在U盘上运行Linux

    以下使用dos+grub4dos启动Ubuntulinux进入u盘目录,这种开启方法便于加入PE和dos工具箱制作多重启动盘. 优盘之家 1.引导dos启动 U盘之家 启动UltraISO,选择菜单& ...

  8. linux iso镜像怎么用u盘装,如何使用U盘安装ISO系统镜像?

    禁止光盘或U盘自动运行,防范自动运行病毒办法汇总 禁止光盘或U盘自动运行: 判断U盘/移动硬盘是否被感染的方法: 当U盘/移动硬盘被系统正常识别后,请不要随意使用"双击"方式打开U ...

  9. win10 格式化 linux u盘,Win10怎么格式化u盘 Win10中对U盘格式化的两种常用方法

    如果你的 U 盘故障或损坏,将其格式化也许能够恢复正常工作.如果你的大空间 U 盘里面有太多小文件,格式化也是将其内容清空的最佳办法,本文我们就来详细介绍 Windows 10 中对 U 盘进行格式化 ...

  10. 一个启动U盘装多系统引导,无需反复格式化,ISO/WIM等文件拷贝到U盘即可启动

    想做一个可以有很多系统的启动U盘,把PE.linux.windows都装进去.系统启动U盘制作倒是非常简单,遍地是老毛桃.大白菜.U启通等工具,那么如何使用一个U盘装多个系统呢?找到一个非常好用的东西 ...

最新文章

  1. 用python快速画小猪佩奇
  2. 使用nmonchart把.nmon文件转换成html
  3. FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说...
  4. oracle千万级分页优化,oracle千万级数据分页存储过程优化
  5. C# 基础知识-02----强数据类型
  6. 内购订单进行二次处理_独家独到飞豹FBA亚马逊退货处理,实现二次销售不是问题...
  7. 西瓜书学习记录-线性模型(第三章)
  8. 修复steam服务器失败,steam服务器链接失败
  9. Unity3D学习笔记(二十五):文件操作
  10. Kotlin基础语法学习类和对象(一)
  11. django Rest Framework----认证/访问权限控制/访问频率限制 执行流程 Authentication/Permissions/Throttling 源码分析...
  12. endnotex8使用教程_「endnote教程」EndNote x8基础使用教程(一) - seo实验室
  13. MT2503处理器性能介绍,MT2503/MT2503A/MT2503D芯片资料下载
  14. linux授权文件夹777,服务器上如何修改文件夹777权限
  15. 基于ThinkPHP6搭建的后台管理系统
  16. Android开发规范:APP版本发布(全量发布、灰度发布)
  17. LeetCode刷题(python)——476. 数字的补数
  18. 美团后台开发笔试-数字字符
  19. python中strip()函数的详解
  20. 拿两千块钱的薪水要有一万块钱的范儿--蜗居编剧

热门文章

  1. RTX客户端插件开发 for Delphi XE6 (二)
  2. 【原创】聊天机器人与自动问答技术
  3. 北斗导航 | EagleEye2000:国产激光雷达走进测绘世界
  4. 语音信号处理——视频转换音频(FFmpeg)mp4转wav
  5. 【choco 安装】chocolatey 安装步骤包管理工具
  6. 产品策划一:移动App项目研发流程及版本规划
  7. ECMAScript 面试题目
  8. latex公式及表格识别
  9. MySQL判断是否在同一天
  10. 幼儿园故事导入语案例_幼儿园活动教案导入语