第9章网络攻击技术.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章网络攻击技术资料

主要内容 侦查 扫描 获取访问权限 保持访问权限 消除入侵痕迹 拒绝服务攻击 概述 网络攻击技术是一把双刃剑。对攻击者而言,它是攻击技术,对安全人员来说,它是不可缺少的安全防护技术。 对系统的攻击和入侵,都是利用软件或系统漏洞进行。 大多数情况下,恶意攻击者使用的工具和安全技术人员是相同的,这意味着安全人员必须了解攻击者使用的工具和手段 一次完整的网络攻击包含的基本步骤 9.1 侦查 侦查也被称为踩点,目的是发现目标 通过踩点主要收集以下可用信息: 网络域名 内部网络 外部网络 目标所用的操作系统 9.2 扫描 扫描主要是指通过固定格式的询问来试探主机的某些特征的过程,而提供了扫描功能的软件工具就是扫描器。 “一个好的扫描器相当于数百个合法用户的账户信息”。 分为端口扫描和漏洞扫描 端口扫描 扫描端口的主要目的是判断目标主机的操作系统以及开放了哪些服务。 端口是由计算机的通信协议TCP/IP协议定义的。 计算机之间的通信,归根结底是进程间的通信,而端口则与进程相对应。 端口分类: 熟知端口(公认端口):由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,端口号一般为0~1023。表9-2和表9-3列出了常见的熟知端口。 一般端口:用来随时分配给请求通信的客户进程。 用三次握手建立 TCP 连接 扫描方法 全TCP连接 这种扫描方法使用三次握手,与目标计算机建立标准的TCP连接。 很容易被目标主机发觉并记录。 半打开式扫描 扫描主机自动向目标计算机的指定端口发送SYN数据段,表示发送建立连接请求,如果目标计算机的回应TCP报文中SYN=1,ACK=1,则说明该端口是活动的,接着扫描主机传送一个RST给目标主机拒绝建立TCP连接,从而导致三次握手过程的失败。 由于扫描过程中全连接尚未建立,所以大大降低了被目标计算机的记录的可能性 FIN扫描 发送一个FIN=1的TCP报文到一个关闭的端口时,该报文会被丢掉,并返回一个RST报文。但是,如果当FIN报文发到一个活动的端口时,该报文只是简单的丢掉,不会返回任何回应。 扫描没有涉及任何TCP连接部分,因此,这种扫描比前两种都安全,可以称之为秘密扫描。 第三方扫描 代理扫描”,这种扫描是控制第三方主机来代替入侵者进行扫描 更加隐蔽 漏洞扫描 在各种各样的软件逻辑漏洞中,有一部分会引起非常严重的后果,我们把会引起软件做一些超出设计范围事情的bug称为漏洞。 为了防范这种漏洞,最好的办法是及时为操作系统和服务打补丁。所谓补丁,是软件公司为已发现的漏洞所作的修复行为。 漏洞扫描通常通过漏洞扫描器来执行。漏洞扫描器是通过在内部放置已知漏洞的特征,然后把被扫描系统特征和已知漏洞相比对,从而获取被扫描系统漏洞的过程。 漏洞扫描只能找出目标机上已经被发现并且公开的漏洞 扫描器X-Scan 流光 9.3 获取访问权限 缓冲区溢出 SQL注入攻击 缓冲区溢出 缓冲区溢出就好比是把2升的水倒入1升的水罐中,肯定会有一部分水流出并且造成混乱。 声明一个在内存中占10个字节的字符串: Char str1[10]; 编译器为缓冲区划分了10个字节大小的空间,从str1[0]到str1[9],每个都分别占用一个字节的空间。 那么,执行下列语句: Strcpy(str1, AAAAAAAAAAAAAAAAAAAAAA); 则会造成缓冲区溢出。因为strcpy这个函数根本就不会检查后面的字符串是否比str1所分配的空间要大。 如果溢出的数据为B,则可能: 溢出实例 #include?stdio.h #define?PASSWORD?1234567 int?verify_password?(char?*password) { ??int?authenticated; ??char?buffer[8];?? ??authenticated=strcmp(password,PASSWORD); ??strcpy(buffer,password);? ??return?authenticated; } 输入了正确的密码“1234567”之后才能通过验证 函数verify_password()里边申请了两个局部变量:int?authenticated和char?buffer[8]。当verify_password()被调用时,系统会给它分配一片连续的内存空间,这两个变量就分布在那里(实际上就叫函数栈帧) 输入包含8个字符的错误密码“qqqqqqqq”,那么buff[8]所拥有的8个字节将全部被“q”的ASCII码0x71填满,而字符串的结束标志NULL刚好写入了authenticated变量并且值为0 于是

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档