- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络攻击的实施和技术分析
摘要:介绍了网络攻击所使用的手段,并对网络攻击的实施及其原理进行了分析,通过实验对扫描器、缓冲区溢出工具、木马程序及常用网络命令等进行综合应用,对所讨论的攻击手段都指出了其危害并提供了防范对策。
关键词:网络攻击;网络仿真;端口扫描;入侵检测
中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)13-3407-02
“网络攻击”是指任何的非授权而进入或试图进入他人计算机网络的行为。这种行为包括对整个网络的攻击,也包括对网络中的服务器或单个计算机的攻击。攻击的目的在于干扰、破坏、摧毁对方服务器的正常工作,攻击的范围从简单地使某种服务器无效到完全破坏整个网络。简单的说,对网络安全管理员来说,可能导致一个网络受到破坏、网络服务受到影响的所有行为都应称为攻击。
1 网络嗅探技术
嗅探技术是网络安全攻防技术中很重要的一种。对黑客来说,通过嗅探技术能以非常隐蔽的方式取网络中的大量敏感信息,与主动扫描相比,嗅探行为更难被察觉,也更容易操作。对安全管理人员来说,借助嗅探技术,可以对网络活动进行实时监控,并发现各种网络攻击行为。嗅探器实际是一把双刃剑。虽然网络嗅探技术被黑客利用后会对网络安全构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑客软件来完成[1]。
嗅探器最初是作为网络管理员检测网络通信的一种工具,它既可以是软件,又可以是一个硬件设备。软件嗅探应用方便,针对不同的操作系统平台都有多种不同的软件嗅探,而且和多都是免费的:硬件嗅探通常被称做协议分析器,其价格一般都很高昂。
嗅探是一种常用的收集数据的有效方法,这些数据可以是用户的账号和密码,也可以是一些商用机密数据等。内部网上,黑客要想迅速获得大量的账号(包括用户名和密码),最为有效的手段是使用“sniffer”程序。这种方法要求运行嗅探程序的主机和被监听的主机必须在同一个以太网段上,在外部主机上运行嗅探程序是没有效果的,再者,必须以root身份使用嗅探程序,才能够监听到以太网段上的数据流。
在局域网中,以太网的共享式特性决定了嗅探能够成功。因为以太网是基于广播方式传送数据的,所有的物理信号都会被传送到每一个主机节点,此外网卡可以被设置成混杂接收模式(Promiscuous),这种模式下,无论监听到的数据帧的目的地址如何,网卡都能予以接收。而TCP/IP协议栈中的应用协议大多数以明文在网络上传输,这些明文数据中,往往包含一些敏感信息(如密码、账号等),因此使用嗅探可以悄无声息地监听到所有局域网内的数据通信,得到这些敏感信息。同时嗅探的隐蔽性好,它知识“被动”接收数据,而不向外发送数据,所以在传输数据的过程中,很难觉察到它在监听[2]。
2 缓冲区溢出攻击技术
缓冲区溢出下面举例说明:
Void function(char *str)
{
Char buffer[16];
Strcpy(buffer,str);
}
Void main()
{
Char large_string[256];
Int i;
For(i=0;i=255;i++)
{large_string[i]=’A’;}
Function(large_string);
}
从上面的例子中不难看出,可以通过缓冲区溢出来改变在堆栈中存放的过程返回地址,从而改变整个程序的流程,使它转向任何攻击者想要它去的地方,这就为攻击者提供了可乘之机。攻击者利用堆栈溢出攻击最常见的方法是:在长字符串中嵌入一段代码,并将函数的返回地址覆盖为这段代码的起始地址,这样当函数返回时,程序就转而开始执行这段攻击者自编的代码了[3]。当然前提条件是在堆栈中可以执行代码。一般来说,这段代码都是执行一个Shell程序(如\bin\sh),因此当攻击者入侵一个带有堆栈溢出缺陷且具有suid_root属性的程序时,攻击者会获得一个具有root权限的Shell。这段代码一般被称为Shell Code。攻击者在要溢出的buffer前加入多条NOP指令的目的是增加猜测Shell Code起始地址的机会。几乎所有的处理器都支持NOP指令来执行null操作(NOP指令是一个任何事都不做的指令),这通常被用来进行延时操作。攻击者利用NOP指令来填充要溢出的buffer的前部,如果返回地址能够指向这些NOP字符串的任意一个,则最终将执行到攻击者的Shell Code。
由于在编写Shell Code时并不知道这段程序执行时在内存中具体的位置,所以使用一条额外的JMP和CALL指令。因为这两条指令
文档评论(0)