1. 锁定目标
攻击的第一步就是要确定目标的位置,在互联网上,就是要知道这台主机的域名或者IP地址, 知道了要攻击目标的位置还不够,还需要了解系统类型、操作系统、所提供的服务等全面的资料,如何获取相关信息,下面我们将详细介绍。
2. 信息收集
如何才能了解到目标的系统类型、操作系统、提供的服务等全面的资料呢?黑客一般会利用下列的公开协议或工具来收集目标的相关信息。
(1)SNMP 协议:用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节;
(2)TraceRoute程序:用该程序获得到达目标主机所要经过的网络数和路由器数;
(3)Whois协议:该协议的服务信息能提供所有有关的DNS域和相关的管理参数;
(4)DNS服务器:该服务器提供了系统中可以访问的主机的IP地址表和它们所对应的主机名;
(5)Finger协议:用来获取一个指定主机上的所有用户的详细信息(如注册名、电话号码、最后注册时间以及他们有没有读邮件等等);
(6)ping:可以用来确定一个指定的主机的位置;
(7)自动Wardialing软件:可以向目标站点一次连续拨出大批电话号码,直到遇到某一正确的号码使其MODEM响应为止。
3. 系统分析
当一个黑客锁定目标之后,黑客就开始扫描分析系统的安全弱点了。黑客一般可能使用下列方式来自动扫描驻留在网络上的主机。
(1)自编入侵程序
对于某些产品或者系统,已经发现了一些安全漏洞,该产品或系统的厂商或组织会提供一些“补丁”程序来进行弥补。但是有些系统常常没有及时打补丁,当黑客发现这些“补丁”程序的接口后就会自己编写能够从接口入侵的程序,通过这个接口进入目标系统,这时系统对于黑客来讲就变得一览无余了。
(2)利用公开的工具
像 Internet 的电子安全扫描程序 ISS(Intemet Security Scanner)、审计网络用的安全分析工具 SATAN ( Securi Ana1ysis Tool for Auditing Network)等。这些工具可以对整个网络或子网进行扫描,寻找安全漏洞。这些工具都有两面性,就看是什么人在使用它们了。系统管理员可以使用它们来帮助发现其管理的网络系统内部隐藏的安全漏洞,从而确定系统中哪些主机需要用“补丁”程序去堵塞漏洞,从而提高网络的安全性能。而如果被黑客所利用,则可能通过它们来收集目标系统的信息,发现漏洞后进行入侵并可能获取目标系统的非法访问权。
4. 发动攻击
完成了对目标的扫描和分析,找到系统的安全弱点或漏洞后,那就是万事具备,只欠攻击了,接下来是黑客们要做的关键步骤——发动攻击。
黑客一旦获得了对你的系统的访问权后,可能有下述多种选择:
(1)试图毁掉攻击入侵的痕迹,并在受到损害的系统上建立另外的新的安全漏洞或后门,以便在先前的攻击点被发现之后,继续访问这个系统;
(2)在你的系统中安装探测软件,包括木马等,用以掌握你的一切活动,以收集他比较感兴趣的东西(不要以为人人都想偷窥你的信件,人家更感兴趣的是你的电子银行帐号和密码之类);
(3)如果你是在一个局域网中,黑客就可能会利用你的电脑作为对整个网络展开攻击的大本营,这时你不仅是受害者,而且还会成为帮凶和替罪羊。
黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影《骇客(Hacker) 》也已经开始使用骇客一词,显示出中文使用习惯的趋同。实际上,黑客(或骇客)与英文原文Hacker、Cracker等含义不能够达到完全对译,这是中英文语言词汇各自发展中形成的差异。Hacker一词,最初曾指热心于计算机技术、水平高超的电脑专家,尤其是程序设计人员,逐渐区分为白帽、灰帽、黑帽等,其中黑帽(black hat)实际就是cracker。在媒体报道中,黑客一词常指那些软件骇客(software cracker),而与黑客(黑帽子)相对的则是白帽子。
黑客是入侵别人电脑的方法有9种。
1、获取口令
这又有三种方法:
一是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大,监听者往往能够获得其所在网段的所有用户账号和口令,对局域网安全威胁巨大;二是在知道用户的账号后(如电子邮件@前面的部分)利用一些专门软件强行破解用户口令,这种方法不受网段限制,但黑客要有足够的耐心和时间;三是在获得一个服务器上的用户口令文件(此文件成为Shadow文件)后,用暴力破解程序破解用户口令,该方法的使用前提是黑客获得口令的Shadow文件。
此方法在所有方法中危害最大,因为它不需要像第二种方法那样一遍又一遍地尝试登录服务器,而是在本地将加密后的口令与Shadow文件中的口令相比较就能非常容易地破获用户密码,尤其对那些弱智用户(指口令安全系数极低的用户,如某用户账号为zys,其口令就是zys666、666666、或干脆就是zys等)更是在短短的一两分钟内,甚至几十秒内就可以将其干掉。
2、放置特洛伊木马程序
特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在Windows启动时悄悄执行的程序。
当您连接到因特网上时,这个程序就会通知黑客,来报告您的IP地址以及预先设定的端口。黑客在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改您的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
3、WWW的欺骗技术
在网上用户可以利用IE等浏览器进行各种各样的WEB站点的访问,如阅读新闻组、咨询产品价格、订阅报纸、电子商务等。然而一般的用户恐怕不会想到有这些问题存在:正在访问的网页已经被黑客篡改过,网页上的信息是虚假的!例如黑客将用户要浏览的网页的URL改写为指向黑客自己的服务器,当用户浏览目标网页的时候,实际上是向黑客服务器发出请求,那么黑客就可以达到欺骗的目的了。
4、电子邮件攻击
电子邮件攻击主要表现为两种方式:
一是电子邮件轰炸和电子邮件“滚雪球”,也就是通常所说的邮件炸弹,指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的垃圾邮件,致使受害人邮箱被“炸”,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪;
二是电子邮件欺骗,攻击者佯称自己为系统管理员(邮件地址和系统管理员完全相同),给用户发送邮件要求用户修改口令(口令可能为指定字符串)或在貌似正常的附件中加载病毒或其他木马程序(据笔者所知,某些单位的网络管理员有定期给用户免费发送防火墙升级程序的义务,这为黑客成功地利用该方法提供了可乘之机),这类欺骗只要用户提高警惕,一般危害性不是太大。
5、通过一个节点来攻击其他节点
黑客在突破一台主机后,往往以此主机作为根据地,攻击其他主机(以隐蔽其入侵路径,避免留下蛛丝马迹)。他们可以使用网络监听方法,尝试攻破同一网络内的其他主机;也可以通过IP欺骗和主机信任关系,攻击其他主机。这类攻击很狡猾,但由于某些技术很难掌握,如IP欺骗,因此较少被黑客使用。
6、网络监听
网络监听是主机的一种工作模式,在这种模式下,主机可以接受到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接受方是谁。此时,如果两台主机进行通信的信息没有加密,只要使用某些网络监听工具,例如NetXray for windows 95/98/nt,sniffit for linux 、solaries等就可以轻而易举地截取包括口令和帐号在内的信息资料。虽然网络监听获得的用户帐号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户帐号及口令。
7、寻找系统漏洞
许多系统都有这样那样的安全漏洞(Bugs),其中某些是操作系统或应用软件本身具有的,如Sendmail漏洞,win98中的共享目录密码验证漏洞和IE5漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏,除非你将网线拔掉;还有一些漏洞是由于系统管理员配置错误引起的,如在网络文件系统中,将目录和文件以可写的方式调出,将未加Shadow的用户密码文件以明码方式存放在某一目录下,这都会给黑客带来可乘之机,应及时加以修正。
8、利用帐号进行攻击
有的黑客会利用操作系统提供的缺省账户和密码进行攻击,例如许多UNIX主机都有FTP和Guest等缺省账户(其密码和账户名同名),有的甚至没有口令。黑客用Unix操作系统提供的命令如Finger和Ruser等收集信息,不断提高自己的攻击能力。这类攻击只要系统管理员提高警惕,将系统提供的缺省账户关掉或提醒无口令用户增加口令一般都能克服。
9、偷取特权
利用各种特洛伊木马程序、后门程序和黑客自己编写的导致缓冲区溢出的程序进行攻击,前者可使黑客非法获得对用户机器的完全控制权,后者可使黑客获得超级用户的权限,从而拥有对整个网络的绝对控制权。这种攻击手段,一旦奏效,危害性极大。
下载:
常见网络攻击原理
1.1 TCP SYN拒绝服务攻击
一般情况下,一个TCP连接的建立需要经过三次握手的过程,即:
1、 建立发起者向目标计算机发送一个TCP SYN报文;
2、 目标计算机收到这个SYN报文后,在内存中创建TCP连接控制块(TCB),然后向发起者回送一个TCP ACK报文,等待发起者的回应;
3、 发起者收到TCP ACK报文后,再回应一个ACK报文,这样TCP连接就建立起来了。
利用这个过程,一些恶意的攻击者可以进行所谓的TCP SYN拒绝服务攻击:
1、 攻击者向目标计算机发送一个TCP SYN报文;
2、 目标计算机收到这个报文后,建立TCP连接控制结构(TCB),并回应一个ACK,等待发起者的回应;
3、 而发起者则不向目标计算机回应ACK报文,这样导致目标计算机一致处于等待状态。
可以看出,目标计算机如果接收到大量的TCP SYN报文,而没有收到发起者的第三次ACK回应,会一直等待,处于这样尴尬状态的半连接如果很多,则会把目标计算机的资源(TCB控制结构,TCB,一般情况下是有限的)耗尽,而不能响应正常的TCP连接请求。
1.2 ICMP洪水
正常情况下,为了对网络进行诊断,一些诊断程序,比如PING等,会发出ICMP响应请求报文(ICMP ECHO),接收计算机接收到ICMP ECHO后,会回应一个ICMP ECHO Reply报文。而这个过程是需要CPU处理的,有的情况下还可能消耗掉大量的资源,比如处理分片的时候。这样如果攻击者向目标计算机发送大量的ICMP ECHO报文(产生ICMP洪水),则目标计算机会忙于处理这些ECHO报文,而无法继续处理其它的网络数据报文,这也是一种拒绝服务攻击(DOS)。
1.3 UDP洪水
原理与ICMP洪水类似,攻击者通过发送大量的UDP报文给目标计算机,导致目标计算机忙于处理这些UDP报文而无法继续处理正常的报文。
1.4 端口扫描
根据TCP协议规范,当一台计算机收到一个TCP连接建立请求报文(TCP SYN)的时候,做这样的处理:
1、 如果请求的TCP端口是开放的,则回应一个TCP ACK报文,并建立TCP连接控制结构(TCB);
2、 如果请求的TCP端口没有开放,则回应一个TCP RST(TCP头部中的RST标志设为1)报文,告诉发起计算机,该端口没有开放。
相应地,如果IP协议栈收到一个UDP报文,做如下处理:
1、 如果该报文的目标端口开放,则把该UDP报文送上层协议(UDP)处理,不回应任何报文(上层协议根据处理结果而回应的报文例外);
2、 如果该报文的目标端口没有开放,则向发起者回应一个ICMP不可达报文,告诉发起者计算机该UDP报文的端口不可达。
利用这个原理,攻击者计算机便可以通过发送合适的报文,判断目标计算机哪些TCP或UDP端口是开放的,过程如下:
1、 发出端口号从0开始依次递增的TCP SYN或UDP报文(端口号是一个16比特的数字,这样最大为65535,数量很有限);
2、 如果收到了针对这个TCP报文的RST报文,或针对这个UDP报文的ICMP不可达报文,则说明这个端口没有开放;
3、 相反,如果收到了针对这个TCP SYN报文的ACK报文,或者没有接收到任何针对该UDP报文的ICMP报文,则说明该TCP端口是开放的,UDP端口可能开放(因为有的实现中可能不回应ICMP不可达报文,即使该UDP端口没有开放)。
这样继续下去,便可以很容易的判断出目标计算机开放了哪些TCP或UDP端口,然后针对端口的具体数字,进行下一步攻击,这就是所谓的端口扫描攻击。
1.5 分片IP报文攻击
为了传送一个大的IP报文,IP协议栈需要根据链路接口的MTU对该IP报文进行分片,通过填充适当的IP头中的分片指示字段,接收计算机可以很容易的把这些IP分片报文组装起来。
目标计算机在处理这些分片报文的时候,会把先到的分片报文缓存起来,然后一直等待后续的分片报文,这个过程会消耗掉一部分内存,以及一些IP协议栈的数据结构。如果攻击者给目标计算机只发送一片分片报文,而不发送所有的分片报文,这样攻击者计算机便会一直等待(直到一个内部计时器到时),如果攻击者发送了大量的分片报文,就会消耗掉目标计算机的资源,而导致不能相应正常的IP报文,这也是一种DOS攻击。
1.6 SYN比特和FIN比特同时设置
在TCP报文的报头中,有几个标志字段:
1、 SYN:连接建立标志,TCP SYN报文就是把这个标志设置为1,来请求建立连接;
2、 ACK:回应标志,在一个TCP连接中,除了第一个报文(TCP SYN)外,所有报文都设置该字段,作为对上一个报文的相应;
3、 FIN:结束标志,当一台计算机接收到一个设置了FIN标志的TCP报文后,会拆除这个TCP连接;
4、 RST:复位标志,当IP协议栈接收到一个目标端口不存在的TCP报文的时候,会回应一个RST标志设置的报文;
5、 PSH:通知协议栈尽快把TCP数据提交给上层程序处理。
正常情况下,SYN标志(连接请求标志)和FIN标志(连接拆除标志)是不能同时出现在一个TCP报文中的。而且RFC也没有规定IP协议栈如何处理这样的畸形报文,因此,各个操作系统的协议栈在收到这样的报文后的处理方式也不同,攻击者就可以利用这个特征,通过发送SYN和FIN同时设置的报文,来判断操作系统的类型,然后针对该操作系统,进行进一步的攻击。
1.7 没有设置任何标志的TCP报文攻击
正常情况下,任何TCP报文都会设置SYN,FIN,ACK,RST,PSH五个标志中的至少一个标志,第一个TCP报文(TCP连接请求报文)设置SYN标志,后续报文都设置ACK标志。有的协议栈基于这样的假设,没有针对不设置任何标志的TCP报文的处理过程,因此,这样的协议栈如果收到了这样的报文,可能会崩溃。攻击者利用了这个特点,对目标计算机进行攻击。
1.8 设置了FIN标志却没有设置ACK标志的TCP报文攻击
正常情况下,ACK标志在除了第一个报文(SYN报文)外,所有的报文都设置,包括TCP连接拆除报文(FIN标志设置的报文)。但有的攻击者却可能向目标计算机发送设置了FIN标志却没有设置ACK标志的TCP报文,这样可能导致目标计算机崩溃。
1.9 死亡之PING
TCP/IP规范要求IP报文的长度在一定范围内(比如,0-64K),但有的攻击计算机可能向目标计算机发出大于64K长度的PING报文,导致目标计算机IP协议栈崩溃。
1.10 地址猜测攻击
跟端口扫描攻击类似,攻击者通过发送目标地址变化的大量的ICMP ECHO报文,来判断目标计算机是否存在。如果收到了对应的ECMP ECHO REPLY报文,则说明目标计算机是存在的,便可以针对该计算机进行下一步的攻击。
1.11 泪滴攻击
对于一些大的IP包,需要对其进行分片传送,这是为了迎合链路层的MTU(最大传输单元)的要求。比如,一个4500字节的IP包,在MTU为1500的链路上传输的时候,就需要分成三个IP包。
在IP报头中有一个偏移字段和一个分片标志(MF),如果MF标志设置为1,则表面这个IP包是一个大IP包的片断,其中偏移字段指出了这个片断在整个IP包中的位置。例如,对一个4500字节的IP包进行分片(MTU为1500),则三个片断中偏移字段的值依次为:0,1500,3000。这样接收端就可以根据这些信息成功的组装该IP包。
如果一个攻击者打破这种正常情况,把偏移字段设置成不正确的值,即可能出现重合或断开的情况,就可能导致目标操作系统崩溃。比如,把上述偏移设置为0,1300,3000。这就是所谓的泪滴攻击。
1.12 带源路由选项的IP报文
为了实现一些附加功能,IP协议规范在IP报头中增加了选项字段,这个字段可以有选择的携带一些数据,以指明中间设备(路由器)或最终目标计算机对这些IP报文进行额外的处理。
源路由选项便是其中一个,从名字中就可以看出,源路由选项的目的,是指导中间设备(路由器)如何转发该数据报文的,即明确指明了报文的传输路径。比如,让一个IP报文明确的经过三台路由器R1,R2,R3,则可以在源路由选项中明确指明这三个路由器的接口地址,这样不论三台路由器上的路由表如何,这个IP报文就会依次经过R1,R2,R3。而且这些带源路由选项的IP报文在传输的过程中,其源地址不断改变,目标地址也不断改变,因此,通过合适的设置源路由选项,攻击者便可以伪造一些合法的IP地址,而蒙混进入网络。
1.13 带记录路由选项的IP报文
记录路由选项也是一个IP选项,携带了该选项的IP报文,每经过一台路由器,该路由器便把自己的接口地址填在选项字段里面。这样这些报文在到达目的地的时候,选项数据里面便记录了该报文经过的整个路径。
通过这样的报文可以很容易的判断该报文经过的路径,从而使攻击者可以很容易的寻找其中的攻击弱点。
1.14 未知协议字段的IP报文
在IP报文头中,有一个协议字段,这个字段指明了该IP报文承载了何种协议 ,比如,如果该字段值为1,则表明该IP报文承载了ICMP报文,如果为6,则是TCP,等等。目前情况下,已经分配的该字段的值都是小于100的,因此,一个带大于100的协议字段的IP报文,可能就是不合法的,这样的报文可能对一些计算机操作系统的协议栈进行破坏。
1.15 IP地址欺骗
一般情况下,路由器在转发报文的时候,只根据报文的目的地址查路由表,而不管报文的源地址是什么,因此,这样就 可能面临一种危险:如果一个攻击者向一台目标计算机发出一个报文,而把报文的源地址填写为第三方的一个IP地址,这样这个报文在到达目标计算机后,目标计算机便可能向毫无知觉的第三方计算机回应。这便是所谓的IP地址欺骗攻击。
比较著名的SQL Server蠕虫病毒,就是采用了这种原理。该病毒(可以理解为一个攻击者)向一台运行SQL Server解析服务的服务器发送一个解析服务的UDP报文,该报文的源地址填写为另外一台运行SQL Server解析程序(SQL Server 2000以后版本)的服务器,这样由于SQL Server 解析服务的一个漏洞,就可能使得该UDP报文在这两台服务器之间往复,最终导致服务器或网络瘫痪。
1.16 WinNuke攻击
NetBIOS作为一种基本的网络资源访问接口,广泛的应用于文件共享,打印共享,进程间通信(IPC),以及不同操作系统之间的数据交换。一般情况下,NetBIOS是运行在LLC2链路协议之上的,是一种基于组播的网络访问接口。为了在TCP/IP协议栈上实现NetBIOS,RFC规定了一系列交互标准,以及几个常用的TCP/UDP端口:
139:NetBIOS会话服务的TCP端口;
137:NetBIOS名字服务的UDP端口;
136:NetBIOS数据报服务的UDP端口。
WINDOWS操作系统的早期版本(WIN95/98/NT)的网络服务(文件共享等)都是建立在NetBIOS之上的,因此,这些操作系统都开放了139端口(最新版本的WINDOWS 2000/XP/2003等,为了兼容,也实现了NetBIOS over TCP/IP功能,开放了139端口)。
WinNuke攻击就是利用了WINDOWS操作系统的一个漏洞,向这个139端口发送一些携带TCP带外(OOB)数据报文,但这些攻击报文与正常携带OOB数据报文不同的是,其指针字段与数据的实际位置不符,即存在重合,这样WINDOWS操作系统在处理这些数据的时候,就会崩溃。
1.17 Land攻击
LAND攻击利用了TCP连接建立的三次握手过程,通过向一个目标计算机发送一个TCP SYN报文(连接建立请求报文)而完成对目标计算机的攻击。与正常的TCP SYN报文不同的是,LAND攻击报文的源IP地址和目的IP地址是相同的,都是目标计算机的IP地址。这样目标计算机接收到这个SYN报文后,就会向该报文的源地址发送一个ACK报文,并建立一个TCP连接控制结构(TCB),而该报文的源地址就是自己,因此,这个ACK报文就发给了自己。这样如果攻击者发送了足够多的SYN报文,则目标计算机的TCB可能会耗尽,最终不能正常服务。这也是一种DOS攻击。
1.18 Script/ActiveX攻击
Script是一种可执行的脚本,它一般由一些脚本语言写成,比如常见的JAVA SCRIPT,VB SCRIPT等。这些脚本在执行的时候,需要一个专门的解释器来翻译,翻译成计算机指令后,在本地计算机上运行。这种脚本的好处是,可以通过少量的程序写作,而完成大量的功能。
这种SCRIPT的一个重要应用就是嵌入在WEB页面里面,执行一些静态WEB页面标记语言(HTML)无法完成的功能,比如本地计算,数据库查询和修改,以及系统信息的提取等。这些脚本在带来方便和强大功能的同时,也为攻击者提供了方便的攻击途径。如果攻击者写一些对系统有破坏的SCRIPT,然后嵌入在WEB页面中,一旦这些页面被下载到本地,计算机便以当前用户的权限执行这些脚本,这样,当前用户所具有的任何权限,SCRIPT都可以使用,可以想象这些恶意的SCRIPT的破坏程度有多强。这就是所谓的SCRIPT攻击。
ActiveX是一种控件对象,它是建立在MICROSOFT的组件对象模型(COM)之上的,而COM则几乎是Windows操作系统的基础结构。可以简单的理解,这些控件对象是由方法和属性构成的,方法即一些操作,而属性则是一些特定的数据。这种控件对象可以被应用程序加载,然后访问其中的方法或属性,以完成一些特定的功能。可以说,COM提供了一种二进制的兼容模型(所谓二进制兼容,指的是程序模块与调用的编译环境,甚至操作系统没有关系)。但需要注意的是,这种对象控件不能自己执行,因为它没有自己的进程空间,而只能由其它进程加载,并调用其中的方法和属性,这时候,这些控件便在加载进程的进程空间运行,类似与操作系统的可加载模块,比如DLL库。
ActiveX控件可以嵌入在WEB页面里面,当浏览器下载这些页面到本地后,相应地也下载了嵌入在其中的ActiveX控件,这样这些控件便可以在本地浏览器进程空间中运行(ActiveX空间没有自己的进程空间,只能由其它进程加载并调用),因此,当前用户的权限有多大,ActiveX的破坏性便有多大。如果一个恶意的攻击者编写一个含有恶意代码的ActiveX控件,然后嵌入在WEB页面中,被一个浏览用户下载后执行,其破坏作用是非常大的。这便是所谓的ActiveX攻击。
1.19 Smurf攻击
ICMP ECHO请求包用来对网络进行诊断,当一台计算机接收到这样一个报文后,会向报文的源地址回应一个ICMP ECHO REPLY。一般情况下,计算机是不检查该ECHO请求的源地址的,因此,如果一个恶意的攻击者把ECHO的源地址设置为一个广播地址,这样计算机在恢复REPLY的时候,就会以广播地址为目的地址,这样本地网络上所有的计算机都必须处理这些广播报文。如果攻击者发送的ECHO 请求报文足够多,产生的REPLY广播报文就可能把整个网络淹没。这就是所谓的smurf攻击。
除了把ECHO报文的源地址设置为广播地址外,攻击者还可能把源地址设置为一个子网广播地址,这样,该子网所在的计算机就可能受影响。
1.20 虚拟终端(VTY)耗尽攻击
这是一种针对网络设备的攻击,比如路由器,交换机等。这些网络设备为了便于远程管理,一般设置了一些TELNET用户界面,即用户可以通过TELNET到该设备上,对这些设备进行管理。
一般情况下,这些设备的TELNET用户界面个数是有限制的,比如,5个或10个等。这样,如果一个攻击者同时同一台网络设备建立了5个或10个TELNET连接,这些设备的远程管理界面便被占尽,这样合法用户如果再对这些设备进行远程管理,则会因为TELNET连接资源被占用而失败。
1.21 路由协议攻击
网络设备之间为了交换路由信息,常常运行一些动态的路由协议,这些路由协议可以完成诸如路由表的建立,路由信息的分发等功能。常见的路由协议有RIP,OSPF,IS-IS,BGP等。这些路由协议在方便路由信息管理和传递的同时,也存在一些缺陷,如果攻击者利用了路由协议的这些权限,对网络进行攻击,可能造成网络设备路由表紊乱(这足可以导致网络中断),网络设备资源大量消耗,甚至导致网络设备瘫痪。
下面列举一些常见路由协议的攻击方式及原理:
1.21.1 针对RIP协议的攻击
RIP,即路由信息协议,是通过周期性(一般情况下为30S)的路由更新报文来维护路由表的,一台运行RIP路由协议的路由器,如果从一个接口上接收到了一个路由更新报文,它就会分析其中包含的路由信息,并与自己的路由表作出比较,如果该路由器认为这些路由信息比自己所掌握的要有效,它便把这些路由信息引入自己的路由表中。
这样如果一个攻击者向一台运行RIP协议的路由器发送了人为构造的带破坏性的路由更新报文,就很容易的把路由器的路由表搞紊乱,从而导致网络中断。
如果运行RIP路由协议的路由器启用了路由更新信息的HMAC验证,则可从很大程度上避免这种攻击。
1.21.2 针对OSPF路由协议的攻击
OSPF,即开放最短路径优先,是一种应用广泛的链路状态路由协议。该路由协议基于链路状态算法,具有收敛速度快,平稳,杜绝环路等优点,十分适合大型的计算机网络使用。OSPF路由协议通过建立邻接关系,来交换路由器的本地链路信息,然后形成一个整网的链路状态数据库,针对该数据库,路由器就可以很容易的计算出路由表。
可以看出,如果一个攻击者冒充一台合法路由器与网络中的一台路由器建立邻接关系,并向攻击路由器输入大量的链路状态广播(LSA,组成链路状态数据库的数据单元),就会引导路由器形成错误的网络拓扑结构,从而导致整个网络的路由表紊乱,导致整个网络瘫痪。
当前版本的WINDOWS 操作系统(WIN 2K/XP等)都实现了OSPF路由协议功能,因此一个攻击者可以很容易的利用这些操作系统自带的路由功能模块进行攻击。
跟RIP类似,如果OSPF启用了报文验证功能(HMAC验证),则可以从很大程度上避免这种攻击。
1.21.3 针对IS-IS路由协议的攻击
IS-IS路由协议,即中间系统到中间系统,是ISO提出来对ISO的CLNS网络服务进行路由的一种协议,这种协议也是基于链路状态的,原理与OSPF类似。IS-IS路由协议经过 扩展,可以运行在IP网络中,对IP报文进行选路。这种路由协议也是通过建立邻居关系,收集路由器本地链路状态的手段来完成链路状态数据库同步的。该协议的邻居关系建立比OSPF简单,而且也省略了OSPF特有的一些特性,使该协议简单明了,伸缩性更强。
对该协议的攻击与OSPF类似,通过一种模拟软件与运行该协议的路由器建立邻居关系,然后传颂给攻击路由器大量的链路状态数据单元(LSP),可以导致整个网络路由器的链路状态数据库不一致(因为整个网络中所有路由器的链路状态数据库都需要同步到相同的状态),从而导致路由表与实际情况不符,致使网络中断。
与OSPF类似,如果运行该路由协议的路由器启用了IS-IS协议单元(PDU)HMAC验证功能,则可以从很大程度上避免这种攻击。
1.22 针对设备转发表的攻击
为了合理有限的转发数据,网络设备上一般都建立一些寄存器表项,比如MAC地址表,ARP表,路由表,快速转发表,以及一些基于更多报文头字段的表格,比如多层交换表,流项目表等。这些表结构都存储在设备本地的内存中,或者芯片的片上内存中,数量有限。如果一个攻击者通过发送合适的数据报,促使设备建立大量的此类表格,就会使设备的存储结构消耗尽,从而不能正常的转发数据或崩溃。
下面针对几种常见的表项,介绍其攻击原理:
1.22.1 针对MAC地址表的攻击
MAC地址表一般存在于以太网交换机上,以太网通过分析接收到的数据帧的目的MAC地址,来查本地的MAC地址表,然后作出合适的转发决定。
这些MAC地址表一般是通过学习获取的,交换机在接收到一个数据帧后,有一个学习的过程,该过程是这样的:
a) 提取数据帧的源MAC地址和接收到该数据帧的端口号;
查MAC地址表,看该MAC地址是否存在,以及对应的端口是否符合;
c) 如果该MAC地址在本地MAC地址表中不存在,则创建一个MAC地址表项;
d) 如果存在,但对应的出端口跟接收到该数据帧的端口不符,则更新该表;
e) 如果存在,且端口符合,则进行下一步处理。
分析这个过程可以看出,如果一个攻击者向一台交换机发送大量源MAC地址不同的数据帧,则该交换机就可能把自己本地的MAC地址表学满。一旦MAC地址表溢出,则交换机就不能继续学习正确的MAC表项,结果是可能产生大量的网络冗余数据,甚至可能使交换机崩溃。
而构造一些源MAC地址不同的数据帧,是非常容易的事情。
1.22.2 针对ARP表的攻击
ARP表是IP地址和MAC地址的映射关系表,任何实现了IP协议栈的设备,一般情况下都通过该表维护IP地址和MAC地址的对应关系,这是为了避免ARP解析而造成的广播数据报文对网络造成冲击。ARP表的建立一般情况下是通过二个途径:
1、 主动解析,如果一台计算机想与另外一台不知道MAC地址的计算机通信,则该计算机主动发ARP请求,通过ARP协议建立(前提是这两台计算机位于同一个IP子网上);
2、 被动请求,如果一台计算机接收到了一台计算机的ARP请求,则首先在本地建立请求计算机的IP地址和MAC地址的对应表。
因此,如果一个攻击者通过变换不同的IP地址和MAC地址,向同一台设备,比如三层交换机发送大量的ARP请求,则被攻击设备可能会因为ARP缓存溢出而崩溃。
针对ARP表项,还有一个可能的攻击就是误导计算机建立正确的ARP表。根据ARP协议,如果一台计算机接收到了一个ARP请求报文,在满足下列两个条件的情况下,该计算机会用ARP请求报文中的源IP地址和源MAC地址更新自己的ARP缓存:
1、 如果发起该ARP请求的IP地址在自己本地的ARP缓存中;
2、 请求的目标IP地址不是自己的。
可以举一个例子说明这个过程,假设有三台计算机A,B,C,其中B已经正确建立了A和C计算机的ARP表项。假设A是攻击者,此时,A发出一个ARP请求报文,该请求报文这样构造:
1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址;
2、 请求的目标IP地址是A的IP地址。
这样计算机B在收到这个ARP请求报文后(ARP请求是广播报文,网络上所有设备都能收到),发现B的ARP表项已经在自己的缓存中,但MAC地址与收到的请求的源MAC地址不符,于是根据ARP协议,使用ARP请求的源MAC地址(即A的MAC地址)更新自己的ARP表。
这样B的ARP混存中就存在这样的错误ARP表项:C的IP地址跟A的MAC地址对应。这样的结果是,B发给C的数据都被计算机A接收到。
1.22.3 针对流项目表的攻击
有的网络设备为了加快转发效率,建立了所谓的流缓存。所谓流,可以理解为一台计算机的一个进程到另外一台计算机的一个进程之间的数据流。如果表现在TCP/IP协议上,则是由(源IP地址,目的IP地址,协议号,源端口号,目的端口号)五元组共同确定的所有数据报文。
一个流缓存表一般由该五元组为索引,每当设备接收到一个IP报文后,会首先分析IP报头,把对应的五元组数据提取出来,进行一个HASH运算,然后根据运算结果查询流缓存,如果查找成功,则根据查找的结果进行处理,如果查找失败,则新建一个流缓存项,查路由表,根据路由表查询结果填完整这个流缓存,然后对数据报文进行转发(具体转发是在流项目创建前还是创建后并不重要)。
可以看出,如果一个攻击者发出大量的源IP地址或者目的IP地址变化的数据报文,就可能导致设备创建大量的流项目,因为不同的源IP地址和不同的目标IP地址对应不同的流。这样可能导致流缓存溢出
攻击的基本步骤:搜集信息 实施入侵 上传程序、下载数据 利用一些方法来保持访问,如后门、特洛伊木马 隐藏踪迹 【 信息搜集 】在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型、操作系统等等。踩点和扫描的目的都是进行信息的搜集。
攻击者搜集目标信息一般采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息。找到初始信息 找到网络的地址范围 找到活动的机器 找到开放端口和入口点 弄清操作系统 弄清每个端口运行的是哪种服务 画出网络图
1 找到初始信息
攻击者危害一台机器需要有初始信息,比如一个IP地址或一个域名。实际上获取域名是很容易的一件事,然后攻击者会根据已知的域名搜集关于这个站点的信息。比如服务器的IP地址(不幸的是服务器通常使用静态的IP地址)或者这个站点的工作人员,这些都能够帮助发起一次成功的攻击。
搜集初始信息的一些方法包括:
开放来源信息 (open source information)
在一些情况下,公司会在不知不觉中泄露了大量信息。公司认为是一般公开的以及能争取客户的信息,都能为攻击者利用。这种信息一般被称为开放来源信息。
开放的来源是关于公司或者它的合作伙伴的一般、公开的信息,任何人能够得到。这意味着存取或者分析这种信息比较容易,并且没有犯罪的因素,是很合法的。这里列出几种获取信息的例子: 公司新闻信息:如某公司为展示其技术的先进性和能为客户提供最好的监控能力、容错能力、服务速度,往往会不经意间泄露了系统的操作平台、交换机型号、及基本的线路连接。 公司员工信息:大多数公司网站上附有姓名地址簿,在上面不仅能发现CEO和财务总监,也可能知道公司的VP和主管是谁。 新闻组:现在越来越多的技术人员使用新闻组、论坛来帮助解决公司的问题,攻击者看这些要求并把他们与电子信箱中的公司名匹配,这样就能提供一些有用的信息。使攻击者知道公司有什么设备,也帮助他们揣测出技术支持人员的水平 Whois
对于攻击者而言,任何有域名的公司必定泄露某些信息!
攻击者会对一个域名执行whois程序以找到附加的信息。Unix的大多数版本装有whois,所以攻击者只需在终端窗口或者命令提示行前敲入" whois 要攻击的域名"就可以了。对于windows操作系统,要执行whois查找,需要一个第三方的工具,如sam spade。
通过查看whois的输出,攻击者会得到一些非常有用的信息:得到一个物理地址、一些人名和电话号码(可利用来发起一次社交工程攻击)。非常重要的是通过whois可获得攻击域的主要的(及次要的)服务器IP地址。
Nslookup
找到附加IP地址的一个方法是对一个特定域询问DNS。这些域名服务器包括了特定域的所有信息和链接到网络上所需的全部数据。任何网络都需要的一条信息,如果是打算发送或者接受信件,是mx记录。这条记录包含邮件服务器的IP地址。大多数公司也把网络服务器和其他IP放到域名服务器记录中。大多数UNIX和NT系统中,nslookup代理或者攻击者能够使用一个第三方工具,比如spade。
另一个得到地址的简单方法是ping域名。Ping一个域名时,程序做的第一件事情是设法把主机名解析为IP地址并输出到屏幕。攻击者得到网络的地址,能够把此网络当作初始点。2 找到网络的地址范围
当攻击者有一些机器的IP地址,他下一步需要找出网络的地址范围或者子网掩码。
需要知道地址范围的主要原因是:保证攻击者能集中精力对付一个网络而没有闯入其它网络。这样做有两个原因:第一,假设有地址10.10.10.5,要扫描整个A类地址需要一段时间。如果正在跟踪的目标只是地址的一个小子集,那么就无需浪费时间;第二,一些公司有比其他公司更好的安全性。因此跟踪较大的地址空间增加了危险。如攻击者可能能够闯入有良好安全性的公司,而它会报告这次攻击并发出报警。
攻击者能用两种方法找到这一信息,容易的方法是使用America Registry for Internet Numbers(ARIN)whois 搜索找到信息;困难的方法是使用tranceroute解析结果。
(1) ARIN允许任何人搜索whois数据库找到"网络上的定位信息、自治系统号码(ASN)、有关的网络句柄和其他有关的接触点(POC)。"基本上,常规的whois会提供关于域名的信息。ARINwhois允许询问IP地址,帮助找到关于子网地址和网络如何被分割的策略信息。
(2) Traceroute可以知道一个数据包通过网络的路径。因此利用这一信息,能决定主机是否在相同的网络上。
连接到internet上的公司有一个外部服务器把网络连到ISP或者Internet上,所有去公司的流量必须通过外部路由器,否则没有办法进入网络,并且大多数公司有防火墙,所以traceroute输出的最后一跳会是目的机器,倒数第二跳会是防火墙,倒数第三跳会是外部路由器。通过相同外部路由器的所有机器属于同一网络,通常也属于同一公司。因此攻击者查看通过tranceroute到达的各种ip地址,看这些机器是否通过相同的外部路由器,就知道它们是否属于同一网络。
这里讨论了攻击者进入和决定公司地址范围的两种方法。既然有了地址范围,攻击者能继续搜集信息,下一步是找到网络上活动的机器。
3 找到活动的机器
在知道了IP地址范围后,攻击者想知道哪些机器是活动的,哪些不是。公司里一天中不同的时间有不同的机器在活动。一般攻击者在白天寻找活动的机器,然后在深夜再次查找,他就能区分工作站和服务器。服务器会一直被使用,而工作站只在正常工作日是活动的。
Ping :使用ping可以找到网络上哪些机器是活动的。
Pingwar:ping有一个缺点,一次只能ping一台机器。攻击者希望同时ping多台机器,看哪些有反应,这种技术一般被称为ping sweeping。Ping war 就是一个这样的有用程序。
Nmap:Nmap也能用来确定哪些机器是活动的。Nmap是一个有多用途的工具,它主要是一个端口扫描仪,但也能ping sweep一个地址范围。4 找到开放端口和入口点
(1)Port Scanners:
为了确定系统中哪一个端口是开放的,攻击者会使用被称为port scanner(端口扫描仪)的程序。端口扫描仪在一系列端口上运行以找出哪些是开放的。
选择端口扫描仪的两个关键特征:第一,它能一次扫描一个地址范围;第二,能设定程序扫描的端口范围。(能扫描1到65535的整个范围。)
目前流行的扫描类型是:TCP conntect扫描 TCP SYN扫描 FIN扫描 ACK扫描常用端口扫描程序有:ScanPort:使用在Windows环境下,是非常基础的端口扫描仪,能详细列出地址范围和扫描的端口地址范围。 Nmap:在UNIX环境下推荐的端口扫描仪是Nmap。Nmap不止是端口扫描仪,也是安全工具箱中必不可少的工具。Namp能够运行前面谈到的不同类型的 。 运行了端口扫描仪后,攻击者对进入计算机系统的入口点有了真正的方法。
(2) War Dialing
进入网络的另一个普通入口点是modem(调制解调器)。用来找到网络上的modem的程序被称为war dialers。基本上当提交了要扫描的开始电话号码或者号码范围,它就会拨叫每一个号码寻找modem回答,如果有modem回答了,它就会记录下这一信息。
THC-SCAN是常用的war dialer程序。
5 弄清操作系统
攻击者知道哪些机器是活动的和哪些端口是开放的,下一步是要识别每台主机运行哪种操作系统。
有一些探测远程主机并确定在运行哪种操作系统的程序。这些程序通过向远程主机发送不平常的或者没有意义的数据包来完成。因为这些数据包RFC(internet标准)没有列出,一个操作系统对它们的处理方法不同,攻击者通过解析输出,能够弄清自己正在访问的是什么类型的设备和在运行哪种操作系统。Queso:是最早实现这个功能的程序。Queso目前能够鉴别出范围从microsoft到unix 和cisco路由器的大约100种不同的设备。 Nmap:具有和Queso相同的功能,可以说它是一个全能的工具。目前它能检测出接近400种不同的设备。 6 弄清每个端口运行的是哪种服务
(1) default port and OS
基于公有的配置和软件,攻击者能够比较准确地判断出每个端口在运行什么服务。例如如果知道操作系统是unix和端口25是开放的,他能判断出机器正在运行sendmail,如果操作系统是Microsoft NT和端口是25是开放的,他能判断出正在运行Exchange。
(2) Telnet
telnet是安装在大多数操作系统中的一个程序,它能连接到目的机器的特定端口上。攻击者使用这类程序连接到开放的端口上,敲击几次回车键,大多数操作系统的默认安装显示了关于给定的端口在运行何种服务的标题信息。
(3) Vulnerability Scanners
Vulnerability Scanners(弱点扫描器)是能被运行来对付一个站点的程序,它向黑客提供一张目标主机弱点的清单。7 画出网络图
进展到这个阶段,攻击者得到了各种信息,现在可以画出网络图使他能找出最好的入侵方法。攻击者可以使用traceroute或者ping来找到这个信息,也可以使用诸如cheops那样的程序,它可以自动地画出网络图。
Traceroute
Traceroute是用来确定从源到目的地路径的程序,结合这个信息,攻击者可确定网络的布局图和每一个部件的位置。
Visual Ping
Visual Ping是一个真实展示包经过网络的路线的程序。它不仅向攻击者展示了经过的系统,也展示了系统的地理位置。
Cheops
Cheops利用了用于绘制网络图并展示网络的图形表示的技术,是使整个过程自动化的程序。如果从网络上运行,能够绘出它访问的网络部分。经过一系列的前期准备,攻击者搜集了很多信息,有了一张网络的详尽图,确切地知道每一台机器正在使用的软件和版本,并掌握了系统中的一些弱点和漏洞。我们可以想象一下,他成功地攻击网络会很困难吗?回答是否定的!当拥有了那些信息后,网络实际上相当于受到了攻击。因此,保证安全让攻击者只得到有限的网络信息是关键!/B
剧情吧工夫 : 二0 一 三-0 七- 一 二 一 五: 二 八: 四 五 冲上云霄 二第 一散剧情先容 亦琛回显 英国餐馆 下志宏成为副机少并转任Skylette,并战嫩同伙 唐亦风一路 拍档飞往伦敦,此次 也是志宏正在Skylette的第一次航行 。正在年夜 楼中志宏战亦风谋面...
寄熟兽高领插件的罪用列表Creation Date: 二0 一 九-0 五- 一 六T0 七: 一 二: 三0Zpython 三 arjun.py -u ://api.example.com/endpoint --get 最近 , 三 六0 威胁谍报 中间 宣布 了《寰球高...
运用Nginx作Web办事 器进程 外,碰着 过如下几个答题:一、nginx封动掉 败 一systemctl start nginx.service封动nginx掉 败,报错疑息以下:Starting nginx: nginx: [emerg] bind() to 0.0.0.0:AV女优* fai...
第一步:确认网站谢封REWRITE规矩 正常有二种情形 :i.apache装置 的时刻 曾经包括 rewrite功效 ii.后绝设置装备摆设 的时刻 新加添mod_rewrite.so。那种情形 须要 正在httpd.conf文献外修正 设置装备摆设 封动正在conf目次 高httpd.conf外找...
)从用户动身 ,斟酌 用户体验,别斟酌 搜刮 引擎劣化。 二)有话则少,无话则欠。 再去剖析 一高,假如 必需 要站正在搜索引擎优化 的角度斟酌 ,应该有些甚么样的处置 必修 起首 ,文章最欠也应该正在 二00字阁下 以上。缘故原由 有二个: 一)假如 只要几十个字,搜刮 引擎不易断定...
排正在搜刮 引擎搜刮 成果 前几页的网页或者网站外,正常是那个网页或者网站的题目 标签(TitleTag)外包括 着搜刮 症结 词。以是 ,反过去,要让本身 网页或者网站排到搜刮 成果 的前列,网页的题目 标签(TitleTag)异常 主要 。网页的题目 标签(TitleTag)要怎么写才是最劣化必...