《攻防技术基础》复习资料- 联系客服

发布时间 : 星期一 文章《攻防技术基础》复习资料-更新完毕开始阅读1269feda340cba1aa8114431b90d6c85ec3a8879

D.先进后出

★考核知识点: 栈溢出的概念 参见讲稿章节:4-1

附4.1.2(考核知识点解释)

被调用的子函数中写入数据的长度,大于栈帧的基址到esp之间预留的保存局部变量的空间时,就会发生栈的溢出。要写入数据的填充方向是从低地址向高地址增长,多余的数据就会越过栈帧的基址,覆盖基址以上的地址空间。

如果返回地址被覆盖,当覆盖后的地址是一个无效地址,则程序运行失败。如果覆盖返回地址的是恶意程序的入口地址,则源程序将转向去执行恶意程序。

栈的存取采用先进后出的策略,程序用它来保存函数调用时的有关信息,如函数参数、返回地址,函数中的非静态局部变量存放在栈中。栈溢出是缓冲区溢出中最简单的一种。 4、以下说法正确的是()

A.Metasploit项目最初由HD Moore在2005年夏季创立。

B.Metasploit v2版本为Metasploit从一个渗透攻击框架性软件华丽变身为支持渗透测试全过程的软件平台打下坚实的基础。

C.除了渗透攻击之外,Metasploit在发展过程中逐渐增加对渗透测试全过程的支持,包括情报搜集、威胁建模、漏洞分析、后渗透攻击与报告生成。 D. Metasploit版本都可以自动生成报告。 ★考核知识点: 对Metasploit的认识 参见讲稿章节:7-3

附7.3.1(考核知识点解释)

Metasploit是一个开源的渗透测试框架软件,也是一个逐步发展成熟的漏洞研究与渗透代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境。

Metasploit项目最初由HD Moore在2003年夏季创立,目标是成为渗透攻击研究与代码开发的一个开放资源。2004年8月,在拉斯维加斯举办的BlackHat全球黑客大会上,HD与Spoonm携最新发布的Metasploit v2.2站上演讲台,他们的演讲题目是“Hacking Like in the Movies”(像在电影中演的那样进行渗透攻击)。大厅中挤满了听众,过道中也站着不少人,人群都已经排到了走廊上。

两个屏幕上展现着令人激动的画面,左侧屏幕显示他们正在输入的MSF终端命令,而右侧屏幕展示一个正在被攻陷和控制的Windows系统。在演讲与Demo过程中,全场掌声数次响起,听众被Metasploit的强大能力所折服,大家都拥有着一致的看法:“Metasploit时代已经到来”。

Metasploit v3版本为Metasploit从一个渗透攻击框架性软件华丽变身为支持渗透测试全过程的软件平台打下坚实的基础。而2011年8月,Metasploit v4.0的发布则是Metasploit在这一发展方向上吹响的冲锋号角。

v4.0版本在渗透攻击、攻击载荷与辅助模块的数量规模上都有显著的扩展,此外还引入一种新的模块类型——后渗透攻击模块,以支持在渗透攻击成功后的后渗透攻击环节中进行敏感信息搜集、内网拓展等一系列的攻击测试。除了渗透攻击之外,Metasploit在发展过程中逐渐增加对渗透测试全过程的支持,包括情报搜集、威胁建模、漏洞分析、后渗透攻击与报告生成。 5、以下有关认证与授权的说法正确的是() A.认证和授权的功能相同

B.授权是根据不同用户的凭证来确定用户的身份。 C.授权是通过认证后确定用户的权限有哪些。

D.一般来说,单因素认证的安全强度要高于多因素认证。 ★考核知识点: 认证与授权的概念 参见讲稿章节:9-9 附9.4(考核知识点解释)

在安全领域中,认证(Authentication)和授权(Authorization)的功能不相同。认证的目的在于确定“你是谁”,即根据不同用户的凭证来确定用户的身份,而授权的目的是确定“你可以干什么”,即通过认证后确定用户的权限有哪些。最常见的身份认证方式就是通过用户名与密码进行登录。认证就是验证凭证的过程,如果只有一个凭证被用于认证,则称为单因素认证;如果有两个或多个凭证被用于认证,则称为双因素认证或多因素认证。一般来说,多因素认证的安全强度要高于单因素认证。

(二)、判断部分

1、堆空间是由低地址向高地址方向增长,而栈空间从高地址向低地址方向增长。

(√)

★考核知识点:堆、栈的概念 参见讲稿章节:2-1

附2.1.2(考核知识点解释)

栈(stack)是向低地址扩展的数据结构,是一块连续的内存的区域。栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的默认大小是2M,如果申请的空间超过栈的剩余空间时,将提示溢出。

堆(heap)是向高地址扩展的数据结构,是不连续的内存区域,堆的大小受限于计算机的虚拟内存。操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序;对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。

(1)申请方式

栈:由系统自动分配。例如,声明一个局部变量int b,系统自动在栈中为b开辟空间。

堆:需要程序员自己申请,并指明大小,在c中malloc函数,如p1 = (char *)malloc(10)。

(2)申请效率

栈由系统自动分配,速度较快,但程序员是无法控制的。

堆是由程序员分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来方便。

(3)增长方向

堆空间是由低地址向高地址方向增长,而栈空间从高地址向低地址方向增长。

2、符号溢出是使用另外的数据类型来存储整型数造成的。(×) ★考核知识点:整数溢出的概念 参见讲稿章节:4-4 附4.3(考核知识点解释)

高级程序语言中,整数分为无符号数和有符号数两类,其中有符号负整数最高位为1,正整数最高位为0,无符号整数则无此限制。常见的整数类型有8位、16位、32位以及64位等,对应的每种类型整数都包含一定的范围,当对整数进行加、乘等运算时,计算的结果如果大于该类型的整数所表示的范围时,就会发生整数溢出。

根据溢出原理的不同,整数溢出可以分为以下三类: (1)存储溢出

存储溢出是使用另外的数据类型来存储整型数造成的。例如,把一个大的变量放入一个小变量的存储区域,最终是只能保留小变量能够存储的位,其他的位都无法存储,以至于造成安全隐患。 (2)运算溢出

运算溢出是对整型变量进行运算时没有考虑到其边界范围,造成运算后的数值范围超出了其存储空间。 (3)符号问题

整型数可分为有符号整型数和无符号整型数两种。在开发过程中,一般长度变量使用无符号整型数,然而如果程序员忽略了符号,在进行安全检查判断的时候就可能出现问题。

3、主动信息收集也就是说不会与目标服务器做直接的交互、在不被目标系统察觉的情况下,通过搜索引擎、社交媒体等方式对目标外围的信息进行收集。(×) ★考核知识点:主动信息收集的概念 参见讲稿章节:8-2

附8.1.1 - 8.1.2(考核知识点解释)

信息收集又分为被动信息收集和主动信息收集。很多人不重视信息收集这一环节,其实信息收集对于渗透来说是非常重要的一步,收集的信息越详细对以后渗透测试的影响越大,毫不夸张的说,信息的收集决定着渗透的成功与否。

主动信息收集和被动信息收集相反,主动收集会与目标系统有直接的交互,从而得到目标系统相关的一些情报信息。

被动信息收集也就是说不会与目标服务器做直接的交互、在不被目标系统察觉的情况下,通过搜索引擎、社交媒体等方式对目标外围的信息进行收集,例如:网站的whois信息、DNS信息、管理员以及工作人员的个人信息等等。