Microsoft System RPC 漏洞挖掘
更新时间:2023-05-08 08:31:01 阅读量: 实用文档 文档下载
MSRPC Fuzzing with SPIKE 2006
Dave Aitel
d41444d184254b35eefd341f
概览
?Fuzzing 简介
?MSRPC快速简介和相关协议?MSRPC fuzzing的历史和这些技术的缺点?Immunity‘s专注于MSRPC fuzzing ?MSRPC的未来(and hence, of MSRPC fuzzing)
什么是Fuzzing?
?我们所有人都从把小字符串变成大字符串中获益
?Fuzzing所做的就是通过特殊的方法来对应用程序进行输入
–主要的好处: 没有误报. 你通过fuzzing找到
的所有bug都是可重现的(虽然它可能无法利用)
–主要的麻烦: 速度很慢
为什么要fuzz?
?即便有安全公告或二进制比较工具,相对逆向工程而言,fuzzing更容易找到bug
?Fuzzing能找出通过二进制或源代码分析难以发现的bug
?A generalized fuzzer for a bug will tell you if a patch is good enough to cover edge cases or if it has an edge case that is still vulnerable
什么是fuzz的最好方法??Non-fault-injection approach
–我们不直接注射数据到程序的API中,因为它将导致误报
?例如绕过验证,对输入进行有效性检查等?Fuzzing专注于发现可利用的漏洞–这不是关于QA –只是关注我们感兴趣的,即
整数溢出和缓冲区溢出
哪种类型的应用程序适合
fuzzing
?暴露在网络上的应用程序
–所有DCE-RPC!
?闭源应用程序
?看起来没有经过代码审核的应用程序
?难于获取的应用程序
?相对复杂的应用程序
–对复杂的应用程序进行审计将花费大量的金钱!
Fuzzing Mindset ?There's a certain magic to a good fuzzer since there is no guarantee it will find anything
?Fuzzers将花费相当长的时间
–例如几周, 几个月
?当你开始开发一个fuzzer时,你要相信自己不是在浪费时间
?大家看不起fuzzer
Fuzzers的问题?Tokenization is rarely perfect
?容易错失私有扩展
?Problem itself is exponential
?一般只有在找到一些潜在的bugs后才能吸引blackhat
?But does give you a good initial indication of the “stance”of the application
怎么打造fuzzer ?Tokenization
?产生正常的流量
?产生异常的流量
?检测和分析问题
?分析fuzzer的质量
Tokenization
?分解网络协议为常量(not fuzzed)和变量(fuzzed)
?类型
–字符串, 整数, 大小, 二进制块
?通常常量都是头字符串,协议常量,网络交互的响应等
?Over-tokenization 将使你的fuzzer变得很慢
?Under-tokenization 将使你的fuzzer发现不了任何东西
产生正常流量
?阅读和分解RFC‘s 或其它可读的协议描述
–fuzzing协议中没有实现的部分通常只会浪费你的时间
–将错失私有的扩展
?对协议进行逆向工程
–能够半自动完成
–If tool is flexible enough, human input can be
invaluable
?嗅探和静态分析
–Even very dumb replay-and-bit-flipping can find many bugs
?如果完成的不好,目标应用程序将忽略你的大部分流量
产生畸形?Transforming normal traffic into malformed traffic, but in a way that is likely to cause exploitable problems
?Bit-flipping is most simplistic
–For each bit we send, iterate over
sending the opposite
?改变流量中的一个部分将可能需要改变其它所有部分
–例如, 内容长度检查
Fuzzing is not Fault
Injection
?Fuzzing时你将从网络层开始测试所有层
?在fault injection时,你直接向API插入错误的数据?有许多层你是不知道的
?Fuzzing 永不产生误报
?fault injection的缺点
–需要一个调试器,它将改变程序的操作
–产生误报
SPIKE简介
?从2000年开始发布,最早的通用网络协议fuzzers 之一
–Greg的Hailstorm是另外一个类似的(注意:
它与当前的Hailstorm差别很大–之前的是一个商业的fuzzer,可用于任意协议)
?介绍唯一的基于块(block-based)的fuzzing
?包括HTTP,FTP及其它协议模块
?用底层C编写(考虑速度)
?基于GNU 许可证来发布
Block-based fuzzing ?协议基本上都由同种元素组成
?常量, 块, 变量
–
?把每个变量都用测试的字符串替换,并更新相关的sizes
?并且在每个变量的前面和后面插入测试字符串
基于块fuzzing的优势
?产生畸形流量的捷径
?Gut-feel: 找到有趣bugs
?Fuzz-streams 是可复用的
?接近原始的有效流
?能够比较容易的对被其它协议封装的协议进行fuzz
其它基于块的fuzzers ?Peach (基于Python的fuzzer)
–免费的
?d41444d184254b35eefd341f ProtoVer (同样是基于Python)–商业的
Immunity与MSRPC ?2000 –SPIKE, dcedump, ifids ?2002 –CANVAS msrpc.py (支持验证、本地管道、SMB/DCE分片)
?2003 –MSRPC 审计类
?2004 –MOSDEF集成lexx.py和yacc.py
?2005 –unmidl.py, DCEMarshall in CANVAS
?2006 –SPIKE 2006
SPIKE 2006
?用Python重写并成为CANVAS攻击框架的一部分–从包括DCE-RPC协议组的纯python网络协议库里获益
–更容易扩展和使用
?增加基于字符串和整数的概念
–A few selected fuzz-variables are used
for EVERY variable in protocol while
fuzzing
–找更隐藏的bugs
–程序变慢了(但计算机速度在提高:>)
SPIKE选择的字符串
?我们用字符B来代替A,因为当我们发现一个堆溢出问题时,Windows内存管理标志中的B往往会让程序正常的崩溃
?我们在所有长字符串前面都加上\\、\\\\和
?我们使用长度从0到2200的字符串来捕捉单字节溢出问题
?我们也会使用已知的常引发问题的特殊字符串集
为何对MSRPC应用程序进行
fuzz?
?在微软默认的应用程序中有上千个可用的MSRPC接口
–Writing Microsoft Windows exploits
isn't going out of style any time soon ?有很多厂商的MSRPC平台上进行开发–这些厂商需要快速和简单的测试他们自己的接口
?Samba needs regression testing
正在阅读:
Microsoft System RPC 漏洞挖掘05-08
2017年中国信息系统集成行业分析及发展趋势预测(目录) - 图文05-01
《纵横四海》观后感05-23
动机理论04-08
小学生关于寻访红色足迹主题征文06-14
论文 如何提高小学生的阅读能力07-05
汽车局六十年的历史烟云 - 图文01-31
支部大会通过预备党员转为正式党员的决议02-23
抓管理 降成本 增效益 促发展04-16
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 漏洞
- Microsoft
- 挖掘
- System
- RPC
- 腹部创伤症状诊疗常规
- 人教版八年级物理上册教案:第二章声现象第4节 噪声的危害和控制
- 四川省乐山市高三第二次调查研究考试理综化学试题 Word版含答案
- 辽宁省葫芦岛市第一高级中学2015_2016学年高二历史上学期期初考试试题
- 小学生健康教育主题班会完整版
- 江苏省句容市崇明片2018届九年级上学期第一次月考数学试题
- 信息与计算科学专业认识报告
- 人版六年级下册英语unit2教材第12-13页课文翻译
- 上海市房地产买卖合同编号 上海市房地产买卖合同.doc
- 【精品】中级口腔主治医师口腔医学相关专业知识模拟题2019年(1)
- 八年级语文下册 第四单元 写人记事突出中心教案(1)(新版)苏教版
- 2018年新疆师范大学教育科学学院333教育综合之中国教育史考研冲刺狂背五套题
- (完整版)队伍管理存在的问题、原因及整改对策
- 【新】高中语文第二单元置身诗境,缘景明情课下能力提升四春江花月夜新人教版选修《中国古代诗歌散文欣赏》
- (全国版)2019版高考地理一轮复习第二单元行星地球考题
- 【精品】人教版高三化学总复习练习:第七章化学反应速率和化学平衡7-2-1b(学后即练)含解析
- 美腻小萝莉Disney迪士尼沙龙公主娃娃
- 2017年北京市高级中等学校招生考试
- 《桂花雨》教学案例分析.doc
- CFG桩施工方案(25米桩长)