首页
社区
课程
招聘
[原创]逆向病毒nvmini.sys--编译通过--源码
发表于: 2008-3-9 09:47 34090

[原创]逆向病毒nvmini.sys--编译通过--源码

2008-3-9 09:47
34090
收藏
免费 7
支持
分享
最新回复 (34)
雪    币: 47147
活跃值: (20415)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
用驱动的病毒很可怕,还好有sudami
2008-3-9 09:55
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
嘿嘿,感谢kanxue老大~~
-------------------------------------
下面是病毒的完整症状:

病毒名称: 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
mailto:!@#$^&*()
mailto:!@#$^&*(
mailto:!@#$^&*
mailto:!@#$^&
mailto:!@#$^
mailto:!@#$
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的函数。病毒代码最后会恢复原文件被覆盖的代码并跳回原文件的入口开始运行原来的文件。



2008-3-9 10:07
0
雪    币: 134
活跃值: (84)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
很强,正是我需要的。呵呵,学习了。
2008-3-9 10:46
0
雪    币: 260
活跃值: (102)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
强悍啊,学习了。
2008-3-9 10:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好厉害的病毒,谢谢楼主,学习了。
2008-3-9 11:58
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
7
强悍 学习
2008-3-9 12:10
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
8
很好很强大……驱动看得我天花乱坠的……
2008-3-9 12:26
0
雪    币: 471
活跃值: (4013)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
再学习一下最近的磁带机病毒就更可怕了
2008-3-9 12:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
5ms? 不是说clock int是55ms一次么?
2008-3-9 13:13
0
雪    币: 479
活跃值: (25)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
设置成5ms,实际应该是55ms执行一次吧
2008-3-9 20:33
0
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
12
不错,向大牛学习
2008-3-9 22:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这东西好深傲啊,,不知道,我什么时候能学会啊
2008-3-9 22:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
强.,学习中
2008-3-9 23:41
0
雪    币: 332
活跃值: (30)
能力值: ( LV12,RANK:460 )
在线值:
发帖
回帖
粉丝
15
大三!年轻,有为......
可惜我已经快30的人了
2008-3-10 21:32
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
与熊猫相比,还多了一个驱动,变态的病毒,变态的作者.
2008-3-11 10:40
0
雪    币: 250
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大三
2008-3-17 21:37
0
雪    币: 154
活跃值: (80)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
1个系统线程不断回写注册表的服务项.很暴力,不过hook一些更底层的操作注册表的函数
* ObXXXX之类的,就可以防止了;
为什么如此暴力的重复回写方法杀毒软件都抗衡不了呢?我机器上的sde41.sys就一直未能清除,有没有什么简单的方法干掉它呢?
2008-3-30 09:11
0
雪    币: 230
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
厉害~!厉害~!厉害~!
2008-3-30 19:04
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
20
由于大3了,压力很大,专业的原因,也没多少业余时间来学内核,所以逆的很粗糙,不过功能都大致实现了.

强悍! 多多向兄弟学习了~
2008-3-30 19:27
0
雪    币: 224
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
如果中国的大学生都像你这样,中国真的就牛了,我也该下岗了
2008-4-18 10:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
不错,努力学习中。谢谢
2008-5-6 01:59
0
雪    币: 69
活跃值: (342)
能力值: ( LV9,RANK:550 )
在线值:
发帖
回帖
粉丝
23
强.,学习中!!
2008-5-13 20:57
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
年龄不是距离。。。。
2008-5-15 16:45
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PSj
25
羡慕啊。。。。。我
2008-5-15 19:58
0
游客
登录 | 注册 方可回帖
返回
//