「Windows逆向工程师」学习技能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
「Windows逆向工程师」学习技能
大多数安全从业者对「Web安全工程师」比较熟悉,但是对「Windows逆向工程师」这个职业却了解甚少,总体归纳起来可能主要有如下几点:需要的系统底层技能较多,自学学习难度系数比较大,并且往往在入门后无法深入研究下去。本文将在coolsmurfs大牛的引领下让大家轻松掌握「Windows逆向工程师」的学习思路和整体进阶路线。
职位描述:参与漏洞挖掘、分析和利用技术研究;分析当月高危漏洞原理和利用技巧,撰写相关技术总结文档;挖掘浏览器、Office、Adobe Reader、flash等客户端软件以及网络协议常见漏洞;研发相应的漏洞挖掘和分析的一体化框架平台;恶意程序分析以及其他程序内部实现逻辑分析;对公司其他部门提供技术支持。written by: coolsmurfs
职位要求:熟悉x86/x64系列汇编语言、C/C++语言,能熟练读懂汇编代码;有较好的逆向功底,熟练使用IDA、Windbg、Ollydbg、Immunity Debugger、Bindiff等分析工具以及Metasploit等渗透测试工具;至少掌握一门编程语言,包括C/C++/Python/Ruby/Perl/JavaScript;熟悉浏览器、Office、Adobe以及Flash等软件内部工作原理以及相应软件漏洞分析与利用技术优先;熟悉操作系统的相关安全机制,掌握绕过漏洞缓解措施的基本方法;熟悉windows系统安全,掌握
windows核心编程优先;熟悉漏洞挖掘和分析相关技术、工具以及平台,如Fuzzing测试,补丁比较、符号执行技术等。能够流畅的阅读漏洞方面的英文资料,具备较强的漏洞学习和理解能力;熟悉技术文档的写作、PPT制作、具备基本的工作汇报能力;学习能力强、富有团队精神、有责任心和进取能力;written by: coolsmurfs学习路线:漏洞相关概念
熟悉基本概念和原理(二进制漏洞基本原理、漏洞类型、漏洞利用方法、常见漏洞挖掘、shellcode编写)。
通过关键字(栈溢出、堆溢出、整数溢出、UAF、double-free、shellcode)进行Google/SecWiki等了解基本概念;阅读《Q 版本缓冲区溢出》《0day漏洞挖掘》等书籍,学习二进制漏洞形成的基本原理和基本的利用方法,并进行实践操作;学习《加密与解密》中部分章节,熟悉Windows系统的重要数据结构、函数传参方法以及PE文件结构等基础知识。written by: coolsmurfs
熟悉相关的工具和平台使用
熟悉IDA、WinDbg、Ollydbg、Immunity Debugger、Bindiff,Metasploit等常见的漏洞分析调试和集成平台使用;
了解这些工具的使用背景和用途,可以通过Google/SecWiki 等搜索了解。下载安装相应的工具和搭建相应的平台。学习这些工具的功能和基本使用方法,收集有用的工具插件(如mona、idapython)。教程可以通过Google或者SecWiki上搜
索。学习常见工具的插件和脚步编写方法,如WinDbg插件编写、IDC和IDApython脚步编写、od脚本编写,具体可以Google相关教程。熟悉Metasploit渗透工具的使用,重点熟悉漏洞模块选择、查看、配置利用以及shellcode导出配置等功能,并利用Metasploit进行实践。具体教程可以Google:如Metasploit教程待基本工具都熟悉后将相关工具做成一个工具箱。written by: coolsmurfs
漏洞样本分析
掌握基本的漏洞原理和利用思路后开始分析分析各种类型的漏洞并撰写分析报告。
通过搜索引擎各大漏洞披露平台(exploit-db、CVE、binvul 等)搜集历年爆出来的比较经典的各种类型的二进制漏洞进行整理归类,并同时搜集相应的漏洞分析教程。根据漏洞描述搭建相应的漏洞调试分析环境,利用Metasploit生成样本来进行漏洞重现,并根据漏洞分析报告自己调试分析。待调试分析完成并掌握了漏洞触发的原因和相应的利用方法后,认真总结,并撰写自己的调试分析报告。根据Metasploit中生成样本的ruby源码和调试过程的分析,自己尝试编写漏洞poc并进行验证。各个类型的漏洞分析3-5个,总结各种类型的漏洞的形成机理并及时进行归纳总结。written by: coolsmurfs
高级漏洞利用技术
学习掌握现在的主流高级漏洞利用技术,了解操作系统以及编译器的各种漏洞利用缓解和保护措施以及相应的绕过方法。
了解现在操作系统以及编译器的漏洞利用缓解和保护措施,如GS、DEP、ALSR、CFI等。学习掌握针对这些缓解保护措施的基本方法,如SEH利用、堆喷射、ROP导向编程等。学习掌握一些针对特定应用程序的高级利用技术:如IE脚步引擎高级利用技术、office漏洞利用绕过ALSR、office漏洞利用堆喷射、Flash高级漏洞利用技术。通过一些在线扫描网站平台如malwr、VirusTotal、widespread kits等搜集一些在真实环境中使用的样本(推荐通过阅读一些安全公司的分析报告并获取相关样本的MD5值然后搜索下载),分析这些在野外使用的样本中的各种高级漏洞利用技术并进行总结。关注一些安全峰会的分享议题(如BlackHat等),对其中涉及到漏洞利用的高级技术进行学习和研究。written by: coolsmurfs 漏洞挖掘平台使用掌握主流的漏洞挖掘方法Fuzz测试以及各个Fuzz测试平台的使用。熟悉Fuzz
测试的基本原理,了解主流的Fuzz测试平台,如Peach-fuzz,AFL等。搭建Peach-fuzz测试框架,熟悉Peach-fuzz的使用范围,熟悉Peach-Fuzz的各个模块的基本工作原理,掌握Peach-pit语法规则。阅读peach-pit的模板,以简单的文档格式为基础,参照编写相应的Peach-pit文件并对目标软件进行
Fuzz测试。了解AFL的基本工作原理,掌握AFL的基本使用方法,下载安装Windows平台的winafl,熟悉其使用,并利用其对Windows平台下的非开源软件进行Fuzz测试。在熟练使用以上Fuzz测试平台的基础上,阅读工具源码,对其工作原理进行更深层次的了解,并在此基础上根据自己需要开发定制化的工具。熟悉掌握其他Fuzz测试框架或者平台。written by: coolsmurfs
关注安全动态、安全社区与安全会议
关注相关的安全社区和安全大牛,掌握行业最新的安全资讯和安全发展动态。
收集国内外与安全相关的站点并及时整理制作浏览器书签,每天定期抽时间查看,了解行业的最新动态和新时间。如(SecWiki-安全维基、Freebuf、看雪论坛、Binvul二进制安全、吾爱破解;收集整理常见的漏洞披露平台制作成浏览器书签,如exploit-db、CVE、Protekresearchlab,及时关注最新漏洞,对于感兴趣的或者重要的漏洞都去实际分析调试一下。