病毒名称: Worm.Magistr.g

病毒是由C语言编写的感染型病毒,感染后缀名为EXE的32位PE可执行程序,病毒源的大小为40KB。

病毒源文件为boot.exe,由用户从U盘上提取。

病毒源文件流程:

boot.exe运行后检查自己是否在驱动器根目录下,如不是退出。

检查是否存在"C:/WINNT/linkinfo.dll",如果不存在则建立该文件。
检查驱动文件是否存在,如不存在则生成驱动文件%SystemRoot%/system32/drivers/IsDrv118.sys(加载后删除),并调用ZwSetSystemInformation加载驱动。

装载该dll,然后查找病毒调用序号为101的导出函数。

DLL流程:

DLL被装载时:

1、获得系统sfc.dll中的SfcIsFileProtected函数地址,以便在感染时调用以防止感染受系统保护的文件。
2、获取系统的linkinfo.dll(%system32%目录下)的下列导出函数,使自己导出的同名函数指向正常的linkinfo.dll中正确的函数,以便转接这些函数。

ResolveLinkInfoW
ResolveLinkInfoA
IsValidLinkInfo
GetLinkInfoData
GetCanonicalPathInfoW
GetCanonicalPathInfoA
DisconnectLinkInfo
DestroyLinkInfo
CreateLinkInfoW
CreateLinkInfoA
CompareLinkInfoVolumes
CompareLinkInfoReferents

3、检查自己是否在explorer.exe进程中,如不是则启动病毒主线程。

4、启动病毒主线程

病毒首先通过VMWare后门指令检查是否是在VMWare下运行,如果是直接重启机器,以此来防止自己在虚拟机中被运行。

生成名称为"PNP#DMUTEX#1#DL5"的互斥量,以保证只有一个实例在运行。

然后开始启动各工作线程

5、工作线程1(生成窗口和消息循环)

生成隐藏的窗口和消息循环,并通过调用RegisterDeviceNotificationA注册设备通知消息,当发现插入可移动磁盘时,向可移动磁盘写入病毒源boot.exe。

6、工作线程2(遍历并感染所有磁盘)

从"C:/"开始感染所有磁盘中后缀名为"exe"的文件。

病毒在感染时,不感染"QQ"、"winnt"和"windows"目录下的程序文件,并通过调用SfcIsFileProtected来检查是否为系统文件,如是则不感染。
同时,病毒不感染以下程序:

wooolcfg.exe
woool.exe
ztconfig.exe
patchupdate.exe
trojankiller.exe
xy2player.exe
flyff.exe
xy2.exe
大话西游.exe
au_unins_web.exe
cabal.exe
cabalmain9x.exe
cabalmain.exe
meteor.exe
patcher.exe
mjonline.exe
config.exe
zuonline.exe
userpic.exe
main.exe
dk2.exe
autoupdate.exe
dbfsupdate.exe
asktao.exe
sealspeed.exe
xlqy2.exe
game.exe
wb-service.exe
nbt-dragonraja2006.exe
dragonraja.exe
mhclient-connect.exe
hs.exe
mts.exe
gc.exe
zfs.exe
neuz.exe
maplestory.exe
nsstarter.exe
nmcosrv.exe
ca.exe
nmservice.exe
kartrider.exe
audition.exe
zhengtu.exe

7、工作线程3(禁止其它病毒、破坏卡卡助手和感染网络)

枚举进程,如果进程的程序文件名(包括目录)是如下程序(常见的病毒程序),将终止该进程

realschd.exe
cmdbcs.exe
wsvbs.exe
msdccrt.exe
run1132.exe
sysload3.exe
tempicon.exe
sysbmw.exe
rpcs.exe
msvce32.exe
rundl132.exe
svhost32.exe
smss.exe
lsass.exe
internat.exe
explorer.exe
ctmontv.exe
iexplore.exe
ncscv32.exe
spo0lsv.exe
wdfmgr32.exe
upxdnd.exe
ssopure.exe
iexpl0re.exe
c0nime.exe
svch0st.exe
nvscv32.exe
spoclsv.exe
fuckjacks.exe
logo_1.exe
logo1_.exe
lying.exe
sxs.exe

病毒通过修改卡卡助手的驱动"%system32%/drivers/RsBoot.sys"入口,使该驱动在加载时失败。

枚举网络资源,并尝试对网络资源中的文件进行感染。

枚举并尝试向局域网中计算机的隐藏共享文件夹"%s//IPC$"、"C$"等写入名称为"setup.exe"的病毒源文件,尝试连接时使用"Administrator"作为用户名,并使用下列密码尝试。

password1
monkey
password
abc123
qwerty
letmein
root
mypass123
owner
test123
love
admin123
qwer
!@#$%^&*()
!@#$%^&*(
!@#$%^&*
!@#$%^&
!@#$%^
!@#$%
asdfgh
asdf
!@#$
654321
123456789
12345
admin

8、工作线程4(修改host文件并下载)
备份host文件为host.txt,并下载文件代替。
查找系统html文件的关联程序,启动并注入dll以便穿过防火墙的拦截。
尝试连接以下地址并下载文件
http://top.cn372*****rg/c.asp
http://top.cn37****rg/top.dat

9、工作线程5(监视并禁止其它病毒)

通过调用驱动获得新生成的进程,如果进程的文件是指定程序(见工作线程3),终止该进程

驱动:

该驱动加载后首先通过替换 SDT 的中的函数地址挂钩
ZwSaveKey
ZwQueryDirectoryFile
ZwClose
ZwEnumerateKey
ZwLoadDriver
...
等 API 来保护病毒的注册表键值不被发现和修改,并隐藏病毒文件(boot.exe, linkinfo.dll, nvmini.sys等),
以及禁止一些安全软件的驱动加载。

然后,驱动创建一个名为 DL5CProc 的设备。用户进程可以通过 ioctl = 25270860 来获得最后一个创建进程的进程 ID。
这个进程 ID 是通过调用 PsSetCreateProcessNotifyRoutine 得到的通知获得。

该驱动还会通过 PsSetLoadImageNotifyRoutine 设置映像加载通知,如果加载的映像文件在以下子目录中:
COMMON FILES, WINDOWS/SYSTEM32, WINNT/SYSTEM32
并且名为:
DLLWM.DLL
WININFO.RXK
RICHDLL.DLL
WINDHCP.DLL
DLLHOSTS.DLL
NOTEPAD.DLL
RPCS.DLL
RDIHOST.DLL
RDFHOST.DLL
RDSHOST.DLL
LGSYM.DLL
RUND11.DLL
MDDDSCCRT.DLL
WSVBS.DLL
CMDBCS.DLL
UPXDHND.DLL
该驱动会通过修改物理内存修改模块入口是这些模块返回失败,无法成功加载。这些动态库多是一些盗密码的
病毒以及Worm.Viking的动态库,所以被 Magister 感染的系统不会再感染这些病毒。

被感染的文件:

病毒感染文件时,会将原文件最后一个节增大,将病毒代码写入被感染文件的代码节,修改入口点指向病毒代码并保存原来的入口点地址,然后将被覆盖的原来文件的代码、病毒的dll、sys文件压缩保存在文件最后一个节中增大的地方。被感染的文件运行时,病毒代码先被运行,释放C:/WINNT/linkinfo.dll和%SystemRoot%/system32/drivers/IsDrv118.sys并加载,然后调用linkinfo.dll的序号为101的函数。病毒代码最后会恢复原文件被覆盖的代码并跳回原文件的入口开始运行原来的文件。

Worm.Magistr.g相关推荐

  1. 2017年上半年信息安全工程师上午选择题及解析

    ●分析者能够选择密文并获得相应明文的攻击密码的类型属于(  ). A.仅知密文攻击B.选择密文攻击型C.已知密文攻击D.选择明文攻击 参考答案:B 试题解析:攻击密码的类型及攻击者可拥有的攻击资源如下 ...

  2. 信息安全工程师----五天修炼(第五章 5.2恶意代码)

    第五章 5.2恶意代码 恶意代码是指没有作用却会带来危险的代码. 恶意代码特点如下: 恶意的目的 本身是计算机程序 通过执行发生作用 恶意代码命名规则 恶意代码命名一般格式:恶意代码前缀.恶意代码名称 ...

  3. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

  4. 小心QQ信息中的网址传播维金Worm.Win32.Viking.ix/Worm.Viking.pg

    endurer 原创 2007-03-17 第1版 QQ收到信息: /--- 她寂寞,她孤独,她讨厌男人,她需要男人,请点击 hxxp://www.b**b**a*imm.info与她视频点对点做爱! ...

  5. 续:遭遇www.6781.com劫持浏览器和Worm.Snake.a等

    endurer 原创 2006-12-08 第1版 昨天继续帮那位遭遇www.6781.com劫持浏览器和Worm.Snake.a等的网友处理. 见:遭遇www.6781.com劫持浏览器和Worm. ...

  6. 遭遇Worm.Win32.Viking,Worm.Win32f.ysv,Trojan.PSW.Win32.OnlineGames等

    遭遇Worm.Win32.Viking,Worm.Win32f.ysv,Trojan.PSW.Win32.OnlineGames等 endurer 原创 2007-07-30 第1版 刚才," ...

  7. 剿灭“隐形刺客”——Desktop.ini维金(Worm.Viking.m)病毒的变种

    剿灭"隐形刺客"--Desktop.ini维金(Worm.Viking.m)病毒的变种 套用一句笑话,在编程界,我中毒中的最多,在病毒界,我"消毒"消得最多.很 ...

  8. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  9. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

最新文章

  1. c语言的256个字符,C语言版 256点FFT算法
  2. 别再说你不会!kafka延迟队列
  3. 沈阳航空航天大学 计算机学院 罗,沈阳航空航天大学计算机学院院长率队来校交流考察...
  4. SpringBoot项目启动提示:An attempt was made to call the method org.apache.coyote.AbstractProtocol.setAccept
  5. storm apache_Apache Storm的实时情绪分析示例
  6. 清空缓存的命令_超详细的mysql数据库查询缓存原理解析、涉及命令、流程分析等...
  7. C++新特性探究(9.1):functor仿函数探究
  8. Zookeeper、Hadoop、Sqoop、Mahout、HBase整合安装
  9. WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案...
  10. java 导出Excel 转图片地址为图片
  11. 测试计划和测试计划模板
  12. QQ查看撤回的语音消息,slk 文件转 mp3
  13. 创业管理:创业者的十八般武艺——1.2 创业者素质体系(1)
  14. 国密算法简介及电子印章相关标准
  15. 组播MAC地址和各类IP地址
  16. 基于 HTML5 WebGL 的 3D 水泥工厂生产线
  17. 微信服务号自定义菜单添加扫码功能
  18. 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。
  19. 简单粗暴认识jieba(结巴)
  20. 服务数据对象简介(Java 环境中的下一代数据编程)

热门文章

  1. NS3仿真 csma和RIPv2(附源码)
  2. 云计算实训总结_云计算·实训报告书.doc
  3. Hadamard和Rademacher
  4. (零二)Flask有手就行——动态路由
  5. 浮点数的二进制表示(IEEE 754标准)
  6. 两数之和(Python + Java)
  7. html制作图像画廊,基于HTML5的超酷图片画廊-Juicebox Lite
  8. 如何使用Apache POI删除行和去除合并单元格-20220530
  9. 软件测试webtours飞机票bug档案,LoadRunner使用MercuryWebTours订机票的问题
  10. 安卓开发-基础知识补习2