virusdefs
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
赛门铁克/诺顿反病毒引擎远程Heap/Pool内存损坏漏洞分析(CVE-2016-2208) vul_wish2016-05-22共306261人围观 ,发现 9 个不明物体 漏洞
8d4fd90c-2223-4f49-931e-acb940e5e462.png
近日,Symantec和Norton产品中使用的核心杀毒引擎被曝存在高危漏洞。它在解析用aspack早期版本打包的可执行文件时会发生缓冲溢出,导致内存损坏,Windows系统蓝屏。其CVE编号为CVE-2016-2208,CNNVD编号为CNNVD-201605-423。
漏洞详情
当程序解析使用aspack早期版本打包的可执行文件时,会触发缓冲区溢出漏洞。该漏洞发生在部分数据截断时,也就是SizeOfRawData值大于SizeOfImage值时。
这是一个远程代码执行漏洞,由于Symantec使用使用过滤器驱动程序来截取所有系统I/O,因此只需要通过邮件向受害者发送文件或链接就可以利用该漏洞。
在Linux、Mac和UNIX平台上,攻击者可利用该漏洞以root权限在Symantec或Norton进程中导致远程堆溢出。在Windows平台上则会导致内核内存损坏,而由于扫描引擎被加载到内核中,使得该漏洞成为一个ring0内存损坏漏洞。
该漏洞的利用方式是通过邮件或浏览器。文章后附加的测试实例中包含创建POC的源代码,可以对安装Norton Antivirus的系统进行错误检查,或使Symantec Enterprise Endpoint服务崩溃。
testcase.txt文件是一个预先建立的二进制文件,只需要点击下载就可以触发受影响系统的内核崩溃!!!
当该文件下载到磁盘中时,Symantec会分配SizeOfImage字节的空间,并将可用数据从截断部分复制到缓冲区,导致堆或缓冲池损坏。实际上,Symantec会执行下列序列:
char *buf = malloc(SizeOfImage);
memcpy(&buf[DataSection->VirtualAddress],
DataSection->PointerToRawData,
SectionSizeOnDisk);
以上的所有值和数据都是被攻击者控制的,因此会导致彻底的溢出。由于该漏洞存在于核心的扫描引擎中,Symantec的大部分产品都受到影响:
* Symantec Endpoint Antivirus (所有平台)
* Norton Antivirus (所有平台)
* Symantec Scan Engine (所有平台)
* Symantec Email Security (所有平台)
* 以及所有其他的Symantec反病毒产品
在基于Windows的Symantec终端杀毒软件中,该漏洞运行在ccSvcHost.exe进程中以NT AUTHORITY\SYSTEM权限执行代码。在基于Windows的Norton杀毒软件中,该代码会被加载到内核中,导致内核池损坏。
使用windbg进行故障检测分析
使用!analyze –v命令进行获取详细的检测信息:
1: kd> !analyze -v
输出结果为:
PAGE_FAULT_IN_NONPAGED_AREA (50)
//错误检测代码
Invalid system memory was referenced. This cannot be protected by try-except,itmust be protected by a Probe. Typicallythe address is just plain bad or it s pointing at freed memory.
//错误原因:无效的内存被引用
Arguments:
Arg1: 9e45c000, memory referenced.
Arg2: 00000001, value 0 = read operation, 1 = write operation.
Arg3: 82a81ff3, If non-zero, the instruction address whichreferenced the bad memory
address.
Arg4: 00000000, (reserved)
//显示的参数
Debugging Details(检测详情):
WRITE_ADDRESS: 9e45c000Paged pool
//对应Arg1
FAULTING_IP:
nt!memcpy+33
82a81ff3 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
//发生错误时所执行的指令
MM_INTERNAL_CODE: 0
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
//错误类型,驱动错误
BUGCHECK_STR: 0x50
PROCESS_NAME: NS.exe
//错误所属进程
CURRENT_IRQL: 2
//对应Arg2
ANALYSIS_VERSION: 6.3.9600.17336 (debuggers(dbg).150226-1500)x86fre
TRAP_FRAME: 9abd2094 --(.trap 0xffffffff9abd2094)
ErrCode = 00000002
eax=b0849800 ebx=00010000 ecx=00001201 edx=00000000 esi=b0844ffcedi=9e45c000
eip=82a81ff3 esp=9abd2108 ebp=9abd2110 iopl=0 nv up ei pl nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010212
nt!memcpy+0x33:
82a81ff3 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
Resetting default scope
LAST_CONTROL_TRANSFER: from 82b28ce7 to 82ac4308
//错误时各寄存器的内容
使用.trap命令查看trap frame:
1: kd> .trap 0xffffffff9abd2094
ErrCode = 00000002
eax=b0849800 ebx=00010000 ecx=00001201 edx=00000000 esi=b0844ffcedi=9e45c000
eip=82a81ff3 esp=9abd2108 ebp=9abd2110 iopl=0 nv up ei pl nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010212
nt!memcpy+0x33:
82a81ff3 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
使用db命令以byte格式显示esi寄存器中的内存
1: kd> db esi
b0844ffc 54 65 73 74 696e 67 53-79 6d 61 6e 74 65 63 45 TestingSymantecE
b084500c 78 70 6c 6f 6974 54 65-73 74 69 6e 67 53 79 6d xploitTestingSym
b084501c 61 6e 74 65 6345 78 70-6c 6f 69 74 54 65 73 74 antecExploitTest
b084502c 69 6e 67 53 796d 61 6e-74 65 63 45 78 70 6c 6f ingSymantecExplo
b084503c 69 74 54 65 7374 69 6e-67 53 79 6d 61 6e 74 65 itTestingSymante
b084504c 63 45 78 70 6c6f 69 74-54 65 73 74 69 6e 67 53 cExploitTestingS
b084505c 79 6d 61 6e 7465 63 45-78 70 6c 6f 69 74 54 65 ymantecExploitTe
b084506c 73 74 69 6e 6753 79 6d-61 6e 74 65 63 45 78 70 stingSymantecExp
使用lmvm命令查看AVEX15的详细信息
1: kd> lmvm AVEX15
start end module name
a1a1f000 a1bad180 NAVEX15 (no symbols)
Loaded symbol imagefile: NAVEX15.SYS
Image path:\??\C:\Program Files\NortonSecurity\NortonData\22.6.0.142\Definitions\VirusDefs\20160506.004\NAVEX15.SYS
Image name:NAVEX15.SYS
Timestamp: Tue Oct 13 17:32:30 2015 (561DA29E)
CheckSum: 00195B98
ImageSize: 0018E180
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
该测试实例会产生如下可执行文件:
NAME RVA VSZ RAW_SZ RAW_PTR nREL REL_PTR nLINE LINE_PTR FLAGS
.data fff8 0 ffffffff 2000 0 0 0 0 0
.text fff8 0 1000 1000 0 0 0 0 0
其中包含漏洞利用的源代码。
测试实例:
testcase.txt
exploit.zip
*原文地址:project-zero,vul_wish编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)
vul_wish
vul_wish
45 篇文章
等级: 6级
||
上一篇:从安全漏洞看印度国家银行APP为何“技术落后10年”下一篇:看我如何用XSS“干掉”8/9的顶级杀软厂商
这些评论亮了
cwg2552298 (6级)Follow my own course回复
是liunx 不是inux :???:
)8(亮了
thomas 回复
@ cwg2552298 是linux不是liunx
)7(亮了
XXXX 回复
意思是WIN上不能远程执行咯。。。。。。。。。
)7(亮了
Arch Vile (3级)回复
意思是赛门还在用memcpy而不是memcpy_s?
)7(亮了
腾讯手机管家 回复
@ Arch Vile memcpy本来就有长度参数 还有memcpy_s ?
)7(亮了
发表评论已有 9 条评论
cwg2552298 (6级) Follow my own course 2016-05-22回复 1楼
是liunx 不是inux :???:
亮了(8)
thomas 2016-05-22回复
@ cwg2552298 是linux不是liunx
亮了(7)
KimJong-un 2016-05-23回复
@ thomas 没趣
亮了(6)
vul_wish (6级) 2016-05-23回复
@ cwg2552298 抱歉,手抖了
亮了(6)
a 2016-05-22回复 2楼
在inux、Mac和UNIX平台上
亮了(6)
XXXX 2016-05-22回复 3楼
意思是WIN上不能远程执行咯。。。。。。。。。
亮了(7)
Arch Vile (3级) 2016-05-22回复 4楼
意思是赛门还在用memcpy而不是memcpy_s?
亮了(7)
腾讯手机管家 2016-05-23回复
@ Arch Vile memcpy本来就有长度参数 还有memcpy_s ?
亮了(7)
煦冉 2016-06-02回复 5楼
已经修复了[挖鼻]
亮了(4)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
vul_wish
vul_wish
这家伙太懒,还未填写个人描述!
45
文章数
5
评论数
最近文章
BadTunnel:影响Win95到Win10的“超级漏洞”(CVE-2016-3213)
2016.06.15
Bolek银行木马:金融恶意软件市场的新威胁
2016.06.15
黑客利用Wi-Fi远程关闭三菱欧蓝德汽车防盗报警器
2016.06.13
浏览更多
相关阅读
赛门铁克46.5亿美元巨额收购Blue Coat,安全专家表示这不合理!赛门铁克/诺顿反病毒引擎远程Heap/Pool内存损坏漏洞分析(CVE-2016-2208)安全防护 万无一失 | 赛门铁克安全解决方案网络研讨会(开放注册中)
【BlackHat 2017】小米9号平衡车国际版存在严重安全漏洞可被攻击者远程控制雅虎紧急修复了可导致远程命令执行的SQL注入漏洞
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论