- 在线时间
- 786 小时
- 信用度
- 4244
- 最后登录
- 2024-8-29
- 注册时间
- 2007-3-7
- 精华
- 5
- 阅读权限
- 200
- UID
- 2
|
1楼
发表于 2007-5-24 18:46:34
|
查看: 2690 |
回复: 0
[color=#ff0000]为什么叫W32/Polipos?
[/color] 通[color=black]过分析,病毒作者在病毒代码中留下了"Win32.Polipos v1.2 by Joseph."的字样,并且这个字符串没有被病毒代码所使用,估计是病毒作者自己起的名字,我们姑且就叫这个病毒为W32/Polipos.v12吧。
[color=#ff0000]我中毒了吗?[/color]
如果你的计算机注册表中有如下键,恭喜你,你染毒了
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\{1DF41E2A-DA21-0412-829E-240A8C38F7A1}
[color=#ff0000]目前那些反病毒产品能检测到它?[/color]
尽管这个病毒流传时间不短了,但在我所知道的全球的反病毒产品中,目前只有Fortinet和Dr.web能检测到它。
[color=#ff0000]我们应该通过这个病毒反思什么?[/color]
我们可以推测,这样的病毒样本,知名的反病毒厂家应该都收到了(尽管病毒潜伏得很好,还是会有意外让细心的用户发现它的,不然我也看不到这个样本了)。AVER们为什么采取了沉默呢?
一阵一阵的招摇着新的技术,向用户嘀嘀咕咕着“新的安全威胁”,然而,被忽略的“老技术”一出击,居然让他们集体失语了。
这个病毒没有被他们检测和宣传,并不是这个病毒传播不够广泛,从这个病毒的一个服器上的信息来看,感染者应该已经遍及全球了,可怕的是染毒者并没有觉察,这些计算机还在运行着。对这个病毒是这样的现状——流传而不能检测,那还有多少这样的病毒呢?不得而知!
他们口中的“老技术”并不老,而是运用这样的技术的病毒少了,或者说能够运用这样的技术的病毒制造者少了。当病毒制造者们了解了反病毒的脆弱点后,他们可能会更多的投入精力去研究这些病毒技术,我们本就不厚实的病毒防御
体系将会面临怎样的尴尬境地呢?你可以试想,穿着变形外衣的寄生型病毒穿梭于我们的网络中,网关产品要么牺牲吞吐量检测他们,让网络变得非常的迟缓,要么放弃检测他们,自己当个稻草人。而桌面产品就不用说了,从来就没有过一款能够很好对付变形病毒的产品。
希望反病毒界能少一些浮躁,踏实一些。
[b]概述[/b]
根据我们捕获这个样本的时间来看,这个病毒应该至少存在了快一个月了。而根据对病毒的分析,这个病毒不会是一个旧有的病毒,这个版本的最早出现时间可能在去年低,或者今年初期,这只是一个推测,病毒代码中曾经出现过使用数字‘2006’为一个积存器赋值,并且从前后代码看不出其实际用意。另外,病毒代码对CPU类型进行检测,会检测是否为P4的CPU。
跟病毒相关的一台网络[b]服务器[/b]目前运行良好,没有受到打击(在全球大多数国家,故意传播病毒都是违法的)这说明这个病毒潜伏得很好,没有相关的管理机构发觉。目前,这台服务器仍然在不停得给染毒计算机提供其他染毒计算机的信息。如果我们访问这个页面,每次访问可以获取40台活动的染毒计算机的IP和开启的后门端口,并且没次刷新,你会获得完全不同的40台染毒机器的IP,这说明,目前,染毒的计算机非常多,并且他们的主人都还不知道已经染毒了。
这个病毒给我们展示了被我们忽略的传统病毒技术的威力。通过用户上报给多家反病毒厂家这么长时间后,反病毒厂家的反映来看,反病毒技术存在着一些脆弱的地方,这类病毒甚至可以给现在的病毒安全防护以致命的打击。
下面我们就来看看它大致是怎么做的。
[b]变形、加密[/b]
看到的样本,PE头除了被增加一个新节外,病毒没有对它做其他的修改。没有修改入口,也没有修改入口的代码。而是修改了一处或多处API调用的代码,通过这样的方式获得运行权。如果我们找的了病毒入口,你会发现你看到的代码和高级语言编译器编译的代码很象(病毒作者成功的使用了这样的变形技术,他能生成大多数的指令,并且让这些指令的相互结构看起来象高级语言编写的一样)
整个变形解密段都是又这样的代码构成,它们中有复杂的函数调用关系,有的对解密有用,而有的没用,如果你尝试从病毒入口静态分析下去,将会是一件非常艰辛的工作。
变形解密段在解密的时候,大致结构如下:
a call b
b call c
c call a
当然调用层有可能更多,它通过这样的调用关系,形成一递归调用,在其中的一个函数中有退出条件,解密后的数据是放在栈里面的。
如果你要通过动态调试来处理这个,需要注意选好断点处。
变形解决密段解密完后,会把栈里的部分数据拷贝到当前节中的某个位置,然后通过通过call e?x这样的指令转移过去(这里,是不会再反回了),并且用参数把栈里面的数据的地址传递下去。
进入变形解密后的代码,我们通常以为,解密结束了,事实上Polipos不是这样的,还有更多的工作在后面。病毒会在接下来的代码中执行两次简单的解密过程(xor data), 解密完成后,我们能够看到病毒主题代码的装载头(Loader)了。这里,病毒会用一个很普通的手段获取Kernel32.dll的地址,接下来获取API地址。Polipos获取API地址的方法以前曾经有病毒使用过,给分析工作会带来一些麻烦
它预先把要使用的API名字计算出一个32位的值,类似计算CRC32或HASH值,存在病毒体里,这样我们就无法看到API的名字了。病毒在获取API地址的时候,会先对KERNEL32.DLL(或其他DLL)的引出函数名进行同样的计算,然后对比,如果一样就,就使用这个API的地址,否则,计算下一个。
病毒在这里获取了用于在堆中分配内存的API,然后分配内存(0x129C0),把病毒主体代码再次进行解密,并存入到分配好的内存中。然后才进入主体代码中运行。
[b]感染
[/b] 病毒对内存的感染
病毒会把病毒代码通过远程注入的方式注入到系统进程中去,实现对内存的感染。
对文件的感染
病毒感染文件的方式比较新颖,对文件合格性检测、对文件的感染数据的准备、对文件进行感染等过程的串接,是通过多线程来实现的,比如,病毒对要感染的文件合格性检测完毕后,会给一个相对偏移到一个全局变量中,然后通知另一个线程去运行这段代码,由这段代码完成部分工作。
病毒在可感染文件的选择上下了很大的工夫:
1、不感染可能会导致感染后出错的文件,比如,节对齐有问题,或者文件的节名不在预料之中的(这就可能是带壳的文件等),甚至检测了被感染文件的名字,排除了部分系统文件(比如长驻内存的文件),包括对OVERLAY都进行了仔细的检查。
2、不感染可能的安装文件,或者反病毒厂家的文件,如文件名中包括如下字串,他会避免感染:
'{','}','$','temp'
'norton','mcafee','anti','tmp','secure','upx','forti','scan'
'zone labs','alarm','symantec','retina','eeye','virus','firewall'
'spider','backdoor','drweb','viri','debug','panda','shield'
'kaspersky','doctor','trend micro','sonique','cillin','barracuda'
'sygate','rescue','pebundle','ida','spf','assemble','pklite','aspack'
'disasm','gladiator','ort expl','process','eliashim','tds3','starforce'
'safe',27h,'n',27h,'sec','avx','root','burn','aladdin'
'esafe','olly','grisoft','avg','armor','numega','mirc','softice'
'norman','neolite','tiny','ositis','proxy','webroot','hack','spy','iss'
'pkware','blackice','lavasoft','aware','pecompact','clean','hunter'
'common','kerio','route','trojan','spyware','heal','alwil','qualys'
'tenable','avast','a2','etrust','spy','steganos','security','principal'
'agnitum','outpost','avp','personal','softwin','defender','intermute'
'guard','inoculate','sophos','frisk','alwil','protect','eset','nod32'
'f-prot','avwin','ahead','nero','blindwrite','clonecd','elaborate','slysoft'
'hijack','roxio','imapi','newtech','infosystems','adaptec','swift sound'
'copystar','astonsoft','gear software','sateira','dfrgntfs','vtf','tb','dbg'
'f-','nav','pav','mon','rav','nvc','fpr','dss','ibm','inoc','scn','pack'
'vsaf','vswp','fsav','adinf','sqstart','mc','watch','kasp','nod','setup'
因为这些软件可能会有自校验,病毒感染他们容易被发现。 3、尽可能感染有运行机会大的程序,比如.SCR,比如优先感染HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths下列出的文件,优先感染如下目录的文件:
':\program files'
':\windows'
':\win98'
':\win98se'
':\winxp'
':\win2000'
':\winnt'
':\winme'
4、感染资源开销不大,不象一些傻冒病毒不停的感染,疯狂的感染。它的感染过程考虑的系统资源开销,不会让用户感觉出来。
由此我们可以看出,病毒作者对病毒“潜伏的重要性”理解的非常深刻。
反调试
病毒会关闭SOFTICE的服务。并且,因为病毒利用了多线程协作的机制,在调试状态下,不会表现出真实的功能,不会按正常的执行序列走。
反反病毒
这个病毒会删除某几种反病毒软件的病毒库(可能是因为这些反病毒软件能检测到它的早期版本,猜测而已)
网络功能
这部分只是大致分析了一下,病毒似乎是在协同许多机器在共同处理一些事务。病毒会打开后门端口等待外部的连接,同时也会通过服务器获取网络上其他活动的染毒机器的IP和端口进行连接、通讯(当然,中毒的机器在病毒运行的时候都会让服务器知道自己在线,开启了哪些端口。
病毒作者有能力写出这样结构的病毒,也完全有能力写出很隐蔽的、进行网络传播、自动更新的病毒来。
[b]稳定的病毒[/b]
病毒的稳定性极高,几乎对所有的函数,所有涉及到内存、文件访问的代码都做了异常保护,能够保证在出错的情况下,能够正常执行回去。
另外,病毒代码中包含有自杀代码,满足一些条件后可能会自杀。
有谬误之处请不吝赐教。
代码大概有10000多行。出于安全考虑,不附贴病毒代码以及样本。
----------
再来看一篇来自XFOCUS的文章:
[b]P2P-Worm.Win32.Polipos.a 蠕虫公告[/b]
Author: killer (killer<2>xfocus.org)
Date:2006-4-22
一、病毒描述:
近日,一种新的P2P蠕虫现身网络,该蠕虫不仅仅依靠P2P网络(Gnutella)传播,而且该蠕虫病毒没有实体文件,感染Windows可执行程序,采用EPO(Entry-Point Obscuring)技术对抗启发式扫描,不修改原文件入口点,病毒自带多态/变形引擎,确保每一次感染文件后病毒体均不相同。
二、病毒行为:
1、感染后的载体文件运行后,病毒代码将插入除下列列表的所有系统活动进程:
csrss
dumprep
drwtsn32
smss
spoolsv
ctfmon
...
2、启动可执行文件感染模块进行感染。
3、启动P2P网络感染模块感染。
4、删除部分反病毒产品的相关程序和文件:
antivir.dat
lguard.vps
...
5、不感染大多数的反病毒产品文件、EXE Packer主程序,和包括如下字符串的文件:
anti
ida
retina
virus
firewall
debug
root
hunter
hack
webroot
iss
proxy
disasm
...
注:自解压的包裹文件被感染后(包括安装程序)将遭到病毒覆盖。
三、清除办法:
目前大多数[b]杀毒[/b]厂商对此病毒尚无有效处理方案,今日卡巴斯基的升级中,已经包含了对该病毒的检测,遗憾的是,由于该病毒的加密变形引擎,使得卡巴斯基检测到病毒后采用的临时清除方案是删除染毒文件。
这对于重要的文件感染了病毒后将是个灾难,在杀毒厂商没有提供有效处理方案之前,强烈建议用户开启反病毒产品的监控,预防病毒传播到本机。
对于已经感染的重要程序文件,可以采用手动恢复的办法临时处理:
1、利用PE工具删除病毒增加的区段,同时进行PE校验和修复。
2、利用调试工具载入该文件,定位到调用病毒区段代码,结合上下文代码进行手动代码修复,例:
被病毒破坏的代码:
010061DC . FF75 08 PUSH DWORD PTR SS:[EBP+8]
010061DF E8 2FDD0500 CALL 002.01063F13
010061E4 . 01EB ADD EBX,EBP
010061E6 . 32E8 XOR CH,AL
修复代码:
010061DC |. FF75 08 PUSH DWORD PTR SS:[EBP+8]
010061DF |. FF15 E8130001 CALL DWORD PTR DS:[<&USER32.DefWindowProcW>] ; \DefWindowProcW
010061E5 |. EB 32 JMP SHORT 01006219
010061E7 |> E8 551B0000 CALL 01007D41 ; Case 401 (WM_USER+1) of switch 01006006
--------
刚刚也在其他反病毒厂商的网站上找了一下关于这个蠕虫的资料,不过发觉似乎分析报告都不是很详细,呵呵,相信国内的反病毒厂商们也在加紧分析,争取能够查杀所有的变种
[color=#0000ff]2006.4.25 16:35[/color]更新:
AVP昨天晚上的库更新名字为[url=http://www.viruslist.com/en/weblog?discuss=184898904&return=1][color=#ff9b0d]P2P-Worm.Win32.Polip.a[/color][/url]
Dr.Web3.20的库已经可以查了:[url=http://info.drweb.com/show/2815/en][color=#ff9b0d]Dr.Web Anti-virus protects peer-to-peer networks from a dangerous polymorphic Win32.Polipos [/color][/url]
[color=#0000ff]2006.4.26 12:00[/color]更新:
国内厂商对此蠕虫的反映:
毒霸:[url=http://db.kingsoft.com/news/report/2006/04/26/81605.shtml][color=#ff9b0d]http://db.kingsoft.com/news/report/2006/04/26/81605.shtml[/color][/url]
KV:[url=http://daishuo.blogchina.com/4948725.html][color=#ff9b0d]P2P-Worm.Win32.Polipos.a的查杀原理(初步)[/color][/url]
[color=#0000ff]2006.5.5 18:00[/color]更新:
Mcafee提供的清除和修复工具:[url=http://vil.nai.com/vil/stinger/polipstinger.asp][color=#ff9b0d]McAfee AVERT(r) Labs Stinger for W32/Polip[/color][/url][/color]
许月 前几日 挂 BT中了 ..
等他来 发一些 介绍把 |
|