第2章黑客技术方案.ppt

  1. 1、本文档共134页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 网络攻击 2.1 黑客 2.2 信息收集类攻击 2.3 入侵类攻击 2.4 欺骗类攻击 2.5 拒绝服务类攻击 2.1 黑客 2.2 信息收集类攻击 2.3 入侵类攻击 2.4 欺骗类攻击 欺骗策略与等级 假冒可信站点通信 假冒可信站点,同时使可信站点瘫痪 2.5 拒绝服务类攻击 2. ARP欺骗 ARP是无状态的协议,在没有请求时也可以发送应答的包。入侵者可以利用这一点,向网络上发送自己定制的包,包中包括源IP地址、目的IP地址以及硬件地址,不过它们都是伪造的。这些伪造的数据,会修改网络上主机中的ARP高速缓存。 例如,网络上有三台主机,有如下的信息: 主机名 IP地址 硬件地址 A 1 AA:AA B 2 BB:BB C 3 CC:CC 这三台主机中,B是一台被入侵者控制了的主机,它具有root权限,而A信任C。入侵者的目的就是伪装成C获得A的信任,以便获得一些无法直接获得的信息等。下面介绍入侵者利用B进行ARP欺骗的过程。通常,入侵者要使用一些ARP欺骗的工具,如send_arp。 (1)入侵者控制主机B向主机A发送一个ARP应答,ARP应答中包括:源IP地址(3)、源硬件地址(BB:BB)、目标IP地址(1)、目标硬件地址(AA:AA )。 这条应答被A接受后,就被保存到A主机的ARP高速缓存中了。 但是,由于网络上C主机也是活动的,也有可能向A发出自己的ARP应答,将A的ARP缓存改回正确的硬件地址。因此,B在进行ARP欺骗时还必须使C不能向A发送ARP应答。入侵者的办法是也向C发ARP应答,将A的硬件地址改为一个虚假的地址(不存在的硬件地址)如“DD:DD”,使得C发向A的ARP应答,根本无法受到。 2)A根据ARP缓存中的缓存记录,将发往C(3,CC:CC)的数据报文,发向了B(3,BB:BB)。 图2.10为这个过程的示意图。 入侵者为了修改以较高权限运行的程序跳转指令的地址,一般要经过如下3步。 (1)将需要执行的代码放到目标系统的内存。下面是两种常用方法: · 植入法:通过主机,将需要执行的代码(目标平台上可执行的),直接放到缓冲区。 · 利用已经有的代码:只要修改传入参数。 (2)修改返回地址。 (3)控制程序跳转,改变程序流程。下面是3种常用方法。 · 修改程序返回地址:将预先设定好的地址替换程序原来的返回地址。 · 在缓冲区附近放一个函数指针,指向入侵者定义的指令。 · 使用longjmp:C语言的setjmp/longjmp是一个检验/恢复系统,可以在检验点设定setjmp(buffer),用longjmp(buffer)恢复检验点。入侵者可以利用longjmp(buffer)跳转到预定代码。 4. 缓冲区溢出防御措施 (1)安装安全补丁。 (2)编写安全的代码:缓冲区溢出攻击的根源在于编写程序的机制。因此,防范缓冲区溢出漏洞首先应该确保在Linux系统上运行的程序(包括系统软件和应用软件)代码的正确性,避免程序中有不检查变量、缓冲区大小及边界等情况存在。比如,使用grep工具搜索源代码中容易产生漏洞的库调用,检测变量的大小、数组的边界、对指针变量进行保护,以及使用具有边界、大小检测功能的C编译器等。 (3)基于一定的安全策略设置系统:攻击者攻击某一个Linux系统,必须事先通过某些途径对要攻击的系统做必要的了解,如版本信息等,然后再利用系统的某些设置直接或间接地获取控制权。因此,防范缓冲区溢出攻击就要对系统设置实施有效的安全策略。这些策略种类很多,下面只列举几个典型措施。 · 在装有Telnet服务的情况下,通过手工改写“/etc/inetd.conf”文件中的Telnet设置,使得远程登录的用户无法看到系统的提示信息。具体方法是将Telnet设置改写为: telnet stream tcp nowait root /usr/sbin/tcpd/in.telnetd -h末尾加上“-h”参数可以让守护进程不显示任何系统信息,只显示登录提示。 · 改写“rc.local”文件。默认情况下,当登录Linux系统时系统运行rc.local文件,显示该Linux发行版本的名字、版本号、内核版本和服务器名称等信息,这使得大量系统信息被泄露。将“rc.local”文件中显示这些信息的代码注释掉,可以使系统不显示这些信息。 一种方法是在显示这些信息的代码行前加“#”: …# echo /etc/issue # echo $R/etc/issue # echo Kernel $ (uname -r)on $a $(uname -m)/etc/issue # # echo /etc/issue…另一种方法

文档评论(0)

ddf55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档