- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 黑客
第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…另一种方法
您可能关注的文档
最近下载
- 附件视频监控存储升级项目要求及参数.doc VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时2课件 2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 2025年安全金融知识题库及答案.docx VIP
- 施工方案管理培训课件.docx VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时1课件2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 全新IMPA船舶物料指南(第7版)电子版.xls VIP
- 东方财富杯金融安全知识题库.docx VIP
- 2025年最新详版征信报告个人信用报告样板模板word格式新版可编辑.docx
- 孙氏太极拳(孙禄堂原著孙剑云整理).pdf VIP
- 车辆抵押借款合同范本协议(2025版).docx VIP
文档评论(0)