软件漏洞挖掘与利用实验教学目标及任务十一、egghunting技术

天天见闻 天天见闻 2023-06-24 新能源汽车 阅读: 97
摘要: 软件漏洞挖掘和利用是信息安全的关键技术,“软件漏洞挖掘与利用”的内容包括可执行文件的基础知识,shell的概念,缓冲区溢出,windows和linux系统上的软件漏洞挖掘和利用技术,SEH,包括GS和虚函数、cookie、Unicode等软件保护技术。各种逆向工具软件的使用方法包括windbg、IDA、OllyDbg、metasploit等,“软件漏洞挖掘与利用”是计算机相关和编程系统的综合类

课程教学大纲

课程名称

软件漏洞挖掘与利用

英文名称

Software vulnerability mining and utilization

总学时

3学分 / 48学时

学分

3

先修课程

数据结构、操作系统、汇编语言

适用对象

信息安全专业

开课学院

工程学院

课程简介

本课程是按高等院校信息安全专业本科四年制教学计划的要求而设置,也适应于计算机应用专业。

软件漏洞挖掘与利用是信息安全的核心技能,是高端信息安全专家所必备的、需要熟练运用的专业技能。

《软件漏洞挖掘与利用》的内容包含可执行文件的基础知识、壳的概念、缓冲区溢出、windows和linux系统中的软件漏洞挖掘与利用技术、软件保护技术如SEH、GS与虚函数、cookie、Unicode等,以及分析软件保护技术的优缺点,恶意shell编码技术,网络攻击技术,各种逆向工具软件的使用方法包括windbg、IDA、OllyDbg、metasploit等,各种脚本语言编写技术包括perl、python、ruby等。

《软件漏洞挖掘与利用》是计算机相关及编程系统的综合类知识课程,理论性较强,同时也是一门实践性很强的课程,需要通过若干个逆向工程实验,使学生通过实际操作加深逆向分析、漏洞挖掘以及利用能力的理解。

1

教学目标及任务

1. 教学目标

使学生掌握软件漏洞挖掘与利用的基本知识,掌握逆向分析、漏洞挖掘与利用的基本方法,并为学生进一步从事信息安全工作,做好知识准备。

2. 教学任务

完成48学时的教学内容和相应的实验内容。

理论教学包括12个部分:

一、可执行文件ELF和PE的格式的基本知识。

二、逆向工程的概念和原理,及其目前的常用的逆向工具,包括windbg、IDA、OllyDbg、metasploit等内容。

三、介绍加壳与脱壳的概念、工作原理和工具。

四、缓冲区溢出的概念和原理,通过实践理解缓冲区溢出的工作机理。

五、软件漏洞的概念和类型,通过2个经典软件漏洞的挖掘、分析和利用的项目,加深对软件漏洞的理解。

六、结构化异常处理机制,利用SEH实现缓冲区溢出攻击方法,及其Unicode漏洞的挖掘与利用方法。

七、分析软件保护中安全检查机制(/GS)的工作原理,并介绍绕过保护的技术。

八、软件保护中地址空间配置随机化和数据执行保护机制保护的工作原理,及其绕过保护的技术。

九、返回导向编程技术的实现原理和方法。

十、32位和64位操作系统Linux下的软件漏洞分析、挖掘和利用技术。

十一、Egg Hunting技术的原理和方法,实践完成经典软件漏洞的挖掘、分析和利用。

十二、堆喷射技术的原理和方法,实践完成经典软件漏洞的挖掘、分析和利用。

实验教学任务主要包括IDA、OllyDbg、WinDbg的使用与软件修改、破解实验、缓冲区溢出之密码破解实验、软件漏洞挖掘与攻击实验、基于SEH 的漏洞利用实验、覆盖虚函数的突破GS实验以及替换栈中和.data中Cookie的突破GS实验、ASLR和DEP保护及其Exploit实验、基于ROP技术的漏洞利用实验、32位和64位Linux下的漏洞利用实验、基于Egg Hunting技术的漏洞利用实验、基于堆喷射技术的漏洞利用实验等。

2

学时分配

软件漏洞挖掘与利用实验教学目标及任务十一、egghunting技术

3

教学内容及教学要求

第1章 执行文件格式解析

本章教学目的:较深入理解可执行文件ELF和PE的格式。

本章主要内容:本章介绍linux和window系统中的可执行文件ELF和PE的格式、原理和特征,以及分析方法。

本章重点、难点:分析和理解可执行文件注入项目。

本章参考文献:

本章思考题:说明ELF文件格式和PE文件格式的异同之处?

1.1 实践目的

1.2 实践环境

1.3 名词解释

1.4预备知识

1.4.1 ELF文件格式

1.4.2 PE文件格式

1.5 实践操作及步骤

1.5.1 任务一:可执行文件注入

1.5.2 任务二:可执行文件感染

第2章 逆向工程及其工具

本章教学目的:理解逆向工程原理及其逆向工具的使用。

本章主要内容:本章介绍IDA、windbg、OllyDbg、metasploit等工具的使用方法及调试技巧。

本章重点、难点:理解和掌握逆向工具软件的原理。

本章参考文献:

本章思考题:分析IDA、OllyDbg、Immunity、WinDbg、 GDB及EDB-debugger几款工具各自的特点和优势。

2.1 实践目的

2.2 实践环境

2.3 名词解释

2.4预备知识

2.4.1 逆向工程

2.4.2 汇编语言

2.4.3 逆向工具

2.5 实践操作及步骤

2.5.1 任务一:用IDA修改贪吃蛇

2.5.2 任务二:用IDA破解RE50

2.5.3 任务三:用OllyDbg破解TraceMe

2.5.4 任务四:Elfcrackme2逆向分析

2.5.5 任务五:用WinDbg分析代码

第3章 加壳与脱壳

本章教学目的:理解加壳与去壳的原理,以及掌握常用的加壳与去壳方法。

本章主要内容:本章介绍加壳的原理和技术,以及查壳、脱壳的方法和工具的使用。

本章重点、难点:理解和掌握自定义加壳程序及调试脱壳。

本章参考文献:

本章思考题:

1.软件加壳对软件有什么保护作用。

2.软断点和硬断点访问的区别是什么?

3.1 实践目的

3.2 实践环境

3.3 名词解释

3.4预备知识

3.4.1 加壳技术

3.4.2 加壳及相关软件

3.4.3 查壳软件

3.4.4 脱壳及其方法

3.5 实践操作及步骤

3.5.1 任务一:加壳操作

3.5.2 任务二:工具脱壳

3.5.3 任务三:自定义加壳程序及脱壳

3.5.4 任务四:调试脱壳

第4章 缓冲区溢出

本章教学目的:理解缓冲区溢出的工作原理以及如何利用和防范溢出漏洞。

本章主要内容:本章介绍缓冲区溢出的工作原理和防范措施,利用脚本语言实现软件的缓冲区溢出发掘和利用。

本章重点、难点:掌握缓冲区溢出的工作原理,利用脚本语言实现字符串处理和网络编程。

本章参考文献:

本章思考题:

1.为什么程序中的缓冲区漏洞甚至可能造成服务器信息的丢失?这个漏洞利用流程是什么样的?

2.如何尽量规避缓冲区溢出漏洞?

3.分析任务二中“push esp-ret”指令的作用(在地址0x71A22B53上设置断点)。

4.1 实践目的

4.2 实践环境

4.3 名词解释

4.4预备知识

4.4.1 Exploit

4.4.2 程序的内存布局

4.4.3 栈溢出

4.4.4 缓冲区溢出防范及常见漏洞函数4.5 实践操作及步骤

4.4.5 Metasploit

4.4.6 Perl语言

4.5 项目实现及步骤

4.5.1任务一:逆向分析pwnme

4.5.2 任务二:Windows漏洞服务器

第5章 漏洞挖掘和利用

本章教学目的:了解常见软件漏洞及其原理,掌握常见的软件漏洞挖掘与利用方法。

本章主要内容:本章介绍软件漏洞的原理和类别,软件漏洞挖掘与利用的实现。

本章重点、难点:软件漏洞挖掘与利用的分析和调试。

本章思考题:

1.shellcode为何有时会不执行?

2.为防范栈溢出攻击,在编写程序时应注意什么?

5.1 实践目的

5.2 实践环境

5.3 名词解释

5.4预备知识

5.4.1 漏洞简介

5.4.2 系统漏洞

5.4.3 漏洞类别

5.5 项目实现及步骤

5.5.1 任务一:软件漏洞挖掘及利用

第6章 异常处理机制及其Exploit

本章教学目的:理解和掌握SEH原理及其突破GS方法,以及基于Unicode的漏洞挖掘与利用方法。

本章主要内容:介绍SEH的工作原理,包括异常处理例程、异常的回调函数、SEH 链,Unicode软件对漏洞挖掘与利用的影响和解决方案

本章重点、难点:利用逆向工具调试分析SHE和Unicode,理解和掌握漏洞挖掘与利用技术。

本章参考文献:

本章思考题:

1.描述SEH的作用,及其安全隐患?

2.Unicode编码对缓冲区攻击的有什么影响?如何实现Unicode编码下的缓冲区攻击?

6.1 实践目的

6.2 实践环境

6.3 名词解释

6.4预备知识

6.4.1 SEH原理

6.4.2 Unicode编码

6.5 项目实现及步骤

6.5.1 任务一:SEH机制分析

6.5.2 任务二:Soritong软件漏洞及利用

6.5.3 任务三:Xion软件漏洞及利用

第7章 GS保护及其Exploit

本章教学目的:理解和掌握GS机制,以及虚函数原理及其突破GS的方法。

本章主要内容:本章介绍windows软件保护机制,GS缓冲区安全检查,以及绕过GS检查机制的方法,包括覆盖虚函数、替换栈和数据段中的Cookie等技术。

本章重点、难点:理解GS缓冲区安全检查、虚函数、Cookie等概念。

本章参考文献:

本章思考题:

1.为什么虚函数能绕过GS和safeSEH保护。

2.在任务四中,实验其他的shellcode(=176字节的),或设置更大的缓冲区buff的内存空间,测试更大size的shellcode。12.1 windows软件保护机制

7.1 实践目的

7.2 实践环境

7.3 名词解释

7.4预备知识

7.4.1 GS机制原理

7.4.2 虚函数及其对抗GS

7.5 项目实现及步骤

7.5.1 任务一:GS机制分析

7.5.2 任务二:利用加载模块之外的地址绕过safeseh和GS

7.5.3 任务三:虚函数分析

7.5.4 任务四:覆盖虚函数突破GS

7.5.5 任务五:替换栈和.data中的Cookie

第8章 ASLR和DEP保护及其Exploit

本章教学目的:了解DEP和ASLR原理,掌握在DEP保护或ASLR保护下溢出的方法。

本章主要内容:本章介绍DEP和ASLR的工作原理,讲解在DEP和ASLR保护下的软件漏洞利用方法。

本章重点、难点:理解和掌握DEP和ASLR的工作原理 。

本章参考文献:

本章思考题:

1.DEP和ASLR如何防御缓冲区攻击。

2.在WinDbg中,调试并分析关闭进程DEP的攻击过程。

3.使用Kali虚拟机中Meterpreter服务器,验证BlazeDVD进程的缓冲区溢出漏洞(参见第5章任务一实验步骤)。

8.1 实践目的

8.2 实践环境

8.3 名词解释

8.4预备知识

8.4.1 DEP

8.4.2 ASLR

8.4.3 Byakugan

8.5 项目实现及步骤

8.5.1 任务一:关闭进程的DEP

8.5.2 任务二:BlazeDVD漏洞及利用

第9章 返回导向编程

本章教学目的:了解返回导向编程原理,掌握利用返回导向编程技术绕过DEP保护的溢出方法。

本章主要内容:介绍Linux和Windows的返回导向编程技术,基于rop技术实现软件漏洞的利用方法。

本章重点、难点:利用rop技术构造有效的shellcode。

本章参考文献:

本章思考题:尝试只从Vulnserver的essfunc.dll模块中寻找gadgets,构造不受系统重启影响的攻击脚本。

9.1 实践目的

9.2 实践环境

9.3 名词解释

9.4预备知识

9.4.1 ROP技术

9.4.2 Linux中ROP技术

9.4.3 Windows中ROP技术

9.5 项目实现及步骤

9.5.1 任务一:RM-MP3 Converter漏洞及利用

9.5.2 任务二:Vulnserver漏洞及利用

第10章 Linux Exploit

本章教学目的:理解并掌握操作系统Linux下的Exploit技术。

本章主要内容:本章介绍了linux软件保护机制,包括DEP和ASLR防护等,利用Ret2libc和ROP等技术绕过保护机制的方法。

本章重点、难点:理解linux系统中的DEP和ASLR防护技术,以及Ret2libc和ROP的使用方法。

本章思考题:

1.比较Windows系统和Linux系统中的DEP/NX和ASLR机制。

2.分析32位和64位操作系统中ROP技术的区别和联系。

3.调试任务二中的level_db.c代码,进一步理解ret2libc绕过NX的技术。

10.1 实践目的

10.2 实践环境

10.3 名词解释

10.4预备知识

10.4.1 保护机制

10.4.2 核心转储

10.4.3 Ret2Libc技术

10.4.4 GOT表与PLT表

10.5 项目实现及步骤

10.5.1 任务一:无任何防护

10.5.2 任务二:通过ret2libc绕过NX

10.5.3 任务三:通过ret2libc绕过NX和ASLR防护

10.5.4 任务四:NX和ASLR防护中无libc

10.5.5 任务五:Linux x64系统下Exploit

第11章 Egg Hunting技术

本章教学目的:理解Egg Hunting工作原理,掌握Egg Hunting技术在Windows 和Linux环境下的使用方法。

本章主要内容:本章介绍了Egg Hunting的工作原理,以及Windows 和Linux环境下的使用方法。

本章重点、难点:在软件漏洞挖掘和利用中运用Egg Hunting技术。

本章参考文献:

本章思考题:

1.在任务一中更换一个较大的shellcode 测试,启动一个建立在TCP 上的meterpreter 会话。

2.使用GDB调试任务三的寻蛋过程。

3.在不同的系统上,寻蛋代码的表现为什么会不一样呢?

11.1 实践目的

11.2 实践环境

11.3 名词解释

11.4预备知识

11.4.1 简介

11.4.2 工作原理

11.4.3 Linux中Egg Hunting方案

11.4.4 Windows中Egg Hunting方案

11.5 项目实现及步骤

11.5.1 任务一:Eureka漏洞及其利用

11.5.2 任务二:Kolibri漏洞及其利用

11.5.3 任务三:Linux中寻蛋技术

第12章 堆喷射技术

本章教学目的:理解堆喷射技术的工作原理以及如何利用和防范溢出漏洞。

本章主要内容:本章介绍了堆喷射技术、Use-After-Free漏洞的工作原理,以及ActiveX 控件技术,ComRaider工具的使用,Java编码技术。

本章重点、难点:堆喷射过程的调试分析。

本章参考文献:

本章思考题:

1.针对IE8.0的UAF漏洞,构造不受ASLR保护影响的ROP链。

2.在任务二或任务三中测试不同的shellcode。

12.1 实践目的

12.2 实践环境

12.3 名词解释

12.4预备知识

12.4.1 堆喷射

12.4.2 ActiveX 控件

12.4.3 ComRaider工具

12.4.4 Use-After-Free漏洞

12.4.5 Java编码

12.5 项目实现及步骤

12.5.1 任务一:喷射shellcode块

12.5.2 任务二:Rspmp3ocx320sw控件漏洞利用

12.5.3 任务三:IE8.0的UAF漏洞利用

4

实验、实践内容

1. 可执行文件注入和感染,2学时。

2. 用IDA修改贪吃蛇,2学时。

3. 用IDA破解RE50和Elfcrackme2逆向分析,1学时。

4. 用OllyDbg破解TraceMe和WinDbg分析代码,1学时。

5. 加壳操作、工具脱壳、自定义加壳程序及脱壳和调试脱壳,2学时。

6. 逆向分析pwnme,2学时。

7. Windows漏洞服务器,2学时。

8. 软件漏洞挖掘及利用,2学时。

9. Soritong软件漏洞及利用,2学时。

10. Xion软件漏洞及利用,2学时。

11. 利用加载模块之外的地址绕过safeseh和GS,2学时。

12. 覆盖虚函数突破GS,2学时。

13. 替换栈和.data中的Cookie,2学时。

14. 关闭进程的DEP,2学时。

15. BlazeDVD漏洞及利用,2学时。

16. RM-MP3 Converter漏洞及利用,2学时。

17. Vulnserver漏洞及利用,2学时。

18. 通过ret2libc绕过NX和ASLR防护,2学时。

19. NX和ASLR防护中无libc,2学时。

20. Linux x64系统下Exploit,2学时。

21. Eureka漏洞及其利用,2学时。

22. Kolibri漏洞及其利用,1学时。

23. Linux中寻蛋技术,1学时。

24. 喷射shellcode块,2学时。

25. Rspmp3ocx320sw控件漏洞利用,2学时。

IE8.0的UAF漏洞利用,2学时。

5

考核方式及要求

考核方式:操作考核

成绩:平时成绩20% 实验成绩20% 操作成绩60%

参考书籍

↑ ↑ ↑点击上图查看详细图书介绍 ↑ ↑ ↑

《网络攻防技术与实战——软件漏洞挖掘与利用》

作者:孙夫雄

定价:69元

扫码优惠购书

内容简介

本书是基于Windows和Linux操作系统平台编写的软件漏洞分析和利用的项目教程。本书共12章,包括可执行文件格式解析、逆向工程及其工具、加壳与脱壳、缓冲区溢出、漏洞挖掘和利用、异常处理机制及其Exploit、GS保护及其Exploit、ASLR和DEP保护及其Exploit、返回导向编程、Linux Exploit、Egg Hunting技术和堆喷射技术等。本书内容丰富,特色鲜明,实用操作性强,可作为信息安全专业、计算机及其相关专业本科生的信息安全实践教材,也可以作为计算机用户的参考书和培训教材。

在公众号书圈后台回复【9787302617020】,下载本书配套的教学资源

其他相关

电脑在哪下载软件最好 电脑在哪下载软件

作者: 天天见闻 时间:2024-03-30 阅读: 2
电脑找软件用什么下载工具好不请自来、干货分享、绝不私藏~我是明哥,前麦肯锡战略咨询顾问,埃森哲管理咨询顾问,13年职场经历,一个喜欢用思维导图架构PPT的老司机,欢迎关注我的头条号,一起成为职场精英。萝卜青菜各有所爱,每个人喜欢的软件都不相同,今天分享几个适用于上班族的软件工具。推荐一:思维导图Mindmana……...

电脑裁剪视频的软件 裁剪视频的软件

作者: 天天见闻 时间:2024-03-30 阅读: 10
有哪些裁剪完画质几乎无损的免费剪辑软件推荐手机端:我手机应用有两个常用的免费剪辑软件,分别为爱剪辑和剪映,不过我更喜欢用剪映,该软件完全免费,功能比较多,剪裁后画质几乎不变,而且没有广告水印,剪裁后视频后面带的片尾可以自己删除了比较好。电脑端:如果你是自媒体,对视频剪辑功能要求比较多,有三款比较常用的专业软件……...

视频裁剪大小尺寸的软件有哪些?推荐3款裁剪软件

作者: 天天见闻 时间:2024-03-30 阅读: 10
在数字时代,视频编辑已成为我们日常生活和工作中不可或缺的一部分。而在视频编辑过程中,裁剪视频的大小尺寸往往是必不可少的一步。为了满足这一需求,市面上涌现出了众多专业的视频裁剪软件。这些软件不仅功能强大,操作简便,而且能够精确调整视频的大小尺寸,以满足不同平台和设备的播放需求。接下来,我将为您介绍几款备受推崇的视频裁剪软件。教大家如何快速裁剪视频尺寸大小。 一、影忆 影忆作为一款简单易用、编辑功能非常丰富的软件,支持视频截取、合并、AI自动加字幕、去水印、加转场特效、加滤镜等编辑功能。影忆用来裁剪视频尺寸非常简单。下面来分享一下视频裁剪方法。...
安卓应用商店推荐知乎 安卓应用商店推荐

安卓应用商店推荐知乎 安卓应用商店推荐

作者: 天天见闻 时间:2024-03-27 阅读: 17
安卓手机应用商店哪个最好用应用宝主要就是一个安卓应用市场,但是它的综合性很强。除了下载应用和各种资源之外,还可以管理手机里的所有软件和文件。比如平时更新软件,移动软件位置啥的用它都是可以做到的。里面的软件和游戏比较全面。资源比较丰富。应用宝有电脑版,可以一键root、刷机,功能非常强大。安卓应用市场哪个最好应用……...

去水印工具免费版 去水印工具

作者: 天天见闻 时间:2024-03-27 阅读: 12
图片用什么去水印图片去水印的方法有多种,可以使用软件、在线工具,甚至是专门的去水印app。以下是一些常见的方法:1. Photoshop:使用 Photoshop 的“图章工具”或“修复画笔工具”可以去掉图片的水印。这通常需要一些技巧和练习,但如果你对 Photoshop 比较熟悉,这可以是一个非常强大的工具……...

百度文档免费下载方法 百度文档免费下载

作者: 天天见闻 时间:2024-03-27 阅读: 18
如何免费下载收费文档打开百度文库页面,在浏览器上方的地址栏里复制下文档地址。然后在文库地址里面的“http://”后面插入“wap”,然后把插入“wap”后的文档地址粘贴到浏览器地址栏里,按回车键打开就可以可以复制的文档页面了,我都是这样下载的。怎么在电脑上下载百度文库文库的文章必须注册账号才能下载,只能用浏览……...
我来说两句

年度爆文