深信服科技EasyConnect vpn 0day漏洞分析与利用 - 图文
更新时间:2023-11-13 16:35:01 阅读量: 教育文库 文档下载
- 深信服科技有限公司推荐度:
- 相关推荐
深信服科技EasyConnectVpn 0day漏洞分析与利用
环境: xp sp3
浏览器: xp sp3 自带的ie6
(安装install程序,程序目录C:\\Program Files\\Sangfor\\SSL)
一、先用windbg加载poc(c:\\11.htm)
然后g运行程序,出现异常,异常情况如下: 0:000> g
(830.fb8): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=0000004a ebx=022cde82 ecx=0013e140 edx=00140000 esi=0013df00 edi=0013e140
eip=77c12332 esp=0013dea0 ebp=0013deac iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202 msvcrt!wscanf+0x6c:
77c12332 8802 mov byte ptr [edx],al ds:0023:00140000=41 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\\Program Files\\Sangfor\\SSL\\ClientComponent\\CSClientManagerPrj.dll -
然后kv 查看异常时的堆栈情况,猜测出现异常的模块CSClientManagerPrj.dll。 异常处的代码:
0:000> u msvcrt!wscanf+0x6c msvcrt!wscanf+0x6c:
77c12332 8802 mov byte ptr [edx],al //此处发生异常
77c12334 ff01 inc dword ptr [ecx] 77c12336 0fb6c0 movzx eax,al
77c12339 eb0c jmp msvcrt!wscanf+0x81 (77c12347) 77c1233b 0fbec0 movsx eax,al 77c1233e 51 push ecx 77c1233f 50 push eax
77c12340 e818c9ffff call msvcrt!_flsbuf (77c0ec5d)
使用IDA打开CSClientManagerPrj.dll,定位到偏移0x46c0处,
猜测出现异常可能是因为sprintf的问题。 二、使用OD打开poc文件
F9运行,ie弹出Active警告,暂时先不运行,在OD中Ctrl + g 定位到出现异常的代码处,地址:77c12332
当然你可以看到CSClientManagerPrj+0x46c0处的代码
不过这对后面的分析已经无关紧要了。 一直F9,执行到
77c12332 8802 mov byte ptr [edx],al
后,一直F9,会发现我们poc中的字符串被逐个放到内存上(堆栈)
一边F9一边你观察内存数据变化,在内存数据覆盖到0013ffed时,此时注意慢点执行,在执行几次F9,观察edx的值,当edx值为0014000时,出现异常(即windbg中异常时edx的值)。为什么edx = 0014000时会出现异常呢,我们看下内存
由上如图可知,140000开始3000大小的内存空间是只读属性,所有 mov byte ptr [edx],al 时发生了写异常。
由此我们可以判断漏洞形成的原因是:
因为未对字符串的长度做判断,导致在sprintf时字符串覆盖到只读区域,引发了写异常。 三、漏洞利用:
由上分析可以,造成漏洞的原因并不是字符串过长覆盖函数返回地址,而是覆盖了到了只读区域,出现内存写异常。 在F9执行
77c12332 8802 mov byte ptr [edx],al 我们可以翻看下堆栈附近的变化
可知字符串覆盖了异常栈上的异常处理链。OD产看seh链
可知覆盖的异常处理正是当前函数异常时对应的异常处理函数。 因为在xp sp3下需绕过safeseh,构造堆栈数据如下:
在调试跟踪时,发现大于7f的数据在复制到内存中时,会发生变化,即非可见字符是不能被直接存放到内存中的,猜测可能是字符在ascii ->unicode->ascii时发生了变化,所以在构造堆栈时,所有数据都必须是小于7f的即可见字符。 使用OD查找程序中No SafeSeh 的模块。
EasyConnect vpn的几个模块都是关闭SafeSeh的。使用Ollyfindaddr查找pop pop ret
查找结果很多,从中选择一个全小于7f的地址
10013439 Found:POP EDI POP ESI RETN at 0x10013439 Module: C:\\Program Files\\Sangfor\\SSL\\ClientComponent\\SSOClientPrj.dll
由于数据要小于7f,所以jmp 06 (eb 06)也不能使用了,为了能保证程序跳到我们的shellcode,这里使用jnz 06 jz 04(75 06 74 04)
Jnz 06 jz 04 0x10013439 纯字符shellcode
我们这里使用弹框计算器的shellcode,测试效果见poc.gif
正在阅读:
深信服科技EasyConnect vpn 0day漏洞分析与利用 - 图文11-13
高温天气防暑降温专项方案1104-25
文学社诗歌节活动策划书11-11
(英语试卷合集)广西南宁市2018年八年级上学期期末英语试卷(19份合集) - 图文12-02
关于氨气浓度标准的解释图文稿05-04
经济学复习资料05-17
幼儿园大班主题:动物大世界05-07
加强干部挂职轮岗交流的探索与实践04-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 漏洞分析
- 信服
- EasyConnect
- 利用
- 图文
- 科技
- 0day
- vpn
- 景观及绿化工程关键施工技术、工艺及工程项目实施的重点、难点和解决方案
- 全县政法暨平安建设工作会议上的主持词
- 国金精品课习题
- 泥水平衡顶管施工专项方案 - 图文
- 3水文勘测工理论知识试题
- 2017年啤酒行业市场发展现状报告(目录)
- 无机及分析化学(董元彦)第三章选择题及答案
- 天宁中学在教育局党委理论中心组集中学习会议上的交流发言
- 高中地理 第四章 地表形态的塑造 4.1 营造地表形态的力量
- 锅炉试题库
- 写作-句子
- 中考英语必备:50个重点句型及英汉双语例子
- 改《星星之火可以燎原》读书报告(讲稿)
- 气体的热力性质
- 中图版 七年级地理上册 第一章《地球和地图》导学案
- 全国2012年4月自学考试钢结构试题
- 江西电信现网E8-C终端恢复出厂设置方法
- 卸车工艺及操作规程 - 图文
- 四川师范大学分析化学考试试题及答案6
- 大学物理上学习指导作业参考答案