1.口令攻击
一般来说有三种方法:一是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大,监听者往往能够获得其所在网段的所有用户账号和口令,对局域网安全威胁巨大;二是在知道用户的账号后(如电子邮件@前面的部分),利用一些专门软件强行破解用户口令,这种方法不受网段限制,但黑客要有足够的耐心和时间;三是在获得一个服务器上的用户口令文件和口令的Shadow文件后,用暴力破解程序破解用户口令,该方法的使用前提是黑客获得口令的Shadow文件。此方法在所有方法中危害最大,因为它不需要像第二种方法那样一遍又一遍地尝试登录服务器,而是在本地将加密后的口令与Shadow文件中的口令相比较就能非常容易地破获用户密码,尤其对那些弱智用户(指口令安全系数极低的用户,如某用户账号为zys,其口令就是zys666、666666或干脆就是zys等),更是在短短的一两分钟内甚至几十秒内就可以将其攻破。
口令破解攻击是指使用某些合法用户的账号和口令登录到目的主机,然后再实施攻击活动。这种方法的前提是必须先得到该主机上某个合法用户的账号,然后再进行合法用户口令的破译。
口令破解常用方法如下:
(1)傻瓜解密法。攻击者通过反复猜测可能的字词(例如用户子女的姓名、用户的出生城市和当地运动队等)来使用用户账户完成登录。
(2)字典取词法。攻击者使用包括字词文本文件的自动程序。通过每次尝试时使用文本文件中的不同字词,该程序反复尝试登录目标系统。
(3)暴力破解法。此类攻击是字典的变体,但此类攻击的宗旨是破解字典攻击所用文本文件中可能没有包括的密码。尽管可以在联机状态下尝试蛮力攻击,但出于网络带宽和网络等待时间,一般是在脱机状态下将密码中可能出现的字符进行排列组合,并将这些结果放入破解字典。在连接状态时再通过每次尝试时使用文本文件中的不同字词,该程序反复尝试登录目标系统。
(4)混合攻击(Hybrid Attack)将字典攻击和暴力攻击结合在一起。利用混合攻击,常用字典词汇与常用数字结合起来,用于破解口令。这样可以检查诸如password123和123password这样的口令。
最常用的工具之一是L0phtCrack(现在称为LC4)。L0phtCrack是允许攻击者获取加密的Windows NT/2000密码并将它们转换成纯文本的一种工具。NT/2000密码是密码散列格式,如果没有诸如L0phtCrack之类的工具就无法读取。它的工作方式是通过尝试每个可能的字母数字组合试图破解密码。另一个常用的工具是协议分析器(最好称为网络嗅探器,如Sniffer Pro或Etherpeek),它能够捕获连接网段上的每块数据。当以混杂方式运行这种工具时,它可以“嗅探”出该网段上发生的每件事,如登录和数据传输。正如稍后将会看到的,这可能严重损害网络安全性,使攻击者捕获密码和敏感数据。
2.特洛伊木马攻击
第一代木马主要是在UNIXⅨ环境中通过命令行界面实现远程控制。第二代木马具有图形控制界面,可以进行密码窃取、远程控制,例如BO2000和冰河木马。第三代木马通过端口反弹技术,可以穿透硬件防火墙,例如灰鸽子木马,但木马进程外联黑客时会被软件防火墙阻挡。第四代木马通过线程插入技术隐藏在系统进程或者应用进程中,实现木马运行时没有进程,比如广外男生木马。第四代木马可以实现对硬件和软件防火墙的穿透。第五代木马在隐藏方面比第四代木马又有了进一步提升,它普遍采用了rootkit技术,通过rootkit技术实现木马运行。
一般木马都采用C/S运行模式,分为两部分,即客户端和服务器端木马程序。黑客安装木马的客户端,同时诱骗用户安装木马的服务器端。
特洛伊木马程序可以直接侵入用户的计算机并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件并执行了这些程序之后,它们就会像古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的计算机中,并在自己的计算机系统中隐藏一个可以在Windows启动时悄悄执行的程序。当连接到因特网上时,这个程序就会通知黑客,来报告你的IP地址以及预先设定的端口。黑客在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改你的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
3.网络监听
网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接收方是谁。此时,如果两台主机进行通信时没有加密,只要使用某些网络监听工具,例如Net Xray for windows 95/98/nt、Sniffit for linux、Solaries等,就可以轻而易举地截取包括口令和账号在内的信息资料。虽然网络监听获得的用户账号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户账号及口令。
4.端口扫描攻击
网络中的每一台计算机如同一座城堡,网络技术中把这些城堡的“城门”称作计算机的端口。有很多大门对外完全开放,而有些则是紧闭的。端口扫描的目的就是要判断主机开放了哪些服务,以及主机的操作系统的具体情况。端口是为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,是由计算机的通信协议TCP/IP定义的,相当于两个计算机进程间的大门。
例:如图7-1所示,三个用户通过Telnet登录到服务器C上,一共有三个连接,表示为:
(202.112.97.82,500)与(202.112.97.94,23)连接
(202.112.97.82,501)与(202.112.97.94.23)连接
(202.112.97.84,500)与(202.112.97.94,23)连接
图7-1 三个用户通过Telnet登录到服务器C
端口扫描就是得到目标主机开放和关闭的端口列表,这些开放的端口往往与一定的服务相对应,通过这些开放的端口就能了解主机运行的服务,然后就可以进一步整理和分析这些服务可能存在的漏洞,随后采取针对性的攻击。
5.缓冲区溢出攻击
缓冲区溢出(Buffer Overflow)是指向固定长度的缓冲区中写入超出其预先分配长度的内容,造成缓冲区中数据的溢出,从而覆盖缓冲区相邻的内存空间。一般来说,单单的缓冲区溢出(如覆盖的内存空间)只是用来存储普通数据的,并不会产生安全问题。但如果覆盖的是一个函数的返回地址空间且其执行者具有root权限,那么就会将溢出送到能够以root权限或其他超级权限运行命令的区域去执行某些代码或者运行一个shell,该程序将会以超级用户的权限控制计算机。
造成缓冲区越界的根本原因是C和C++等高级语言里,程序将数据读入或复制到缓冲区中的任何时候,所用函数缺乏边界检查机制,包括strcpy( )、strcat( )、sprintf( )、vsprintf( )、gets( )、scanf( )、fscanf( )、sscanf( )、vscanf( )、vsscanf( )和vfscanf( )等。
如图7-2所示为缓冲区溢出原理。(www.xing528.com)
图7-2 缓冲区溢出原理
代码段也称文本段(Text Segment),用来存储程序文本,可执行指令就是从这里取得的。
初始化数据段用于存放声明时被初始化的全局和静态数据。该部分存储的变量为整个程序服务,且存储的变量空间大小是固定的。
非初始化数据段未经初始化的全局数据和静态分配的数据存放在进程的BSS区域。它和Data段一样,都是程序可以改写的,但大小也是固定的。
堆位于BSS内存段的上边,用来存储程序的其他变量。通常有实时内存分配函数分配内存,例如new()函数。通常一个new()就要对应一个delete()。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。实时分配内存函数分配的内存位于堆的底部,大小是可以变化的。但需要注意的是增长方向,由存储器的低地址向高地址方向增长。
栈是一个比较特殊的段,用作中间结果的暂存。它是用来存储函数调用间的传递变量、返回地址等。特点是:存储的变量是先进后出,而且存储段的区域大小是可以变化的。与Heap不同,它的增长方向是相反的,由存储器的高地址向低地址增长。变量存储区由编译器在需要的时候分配,在不需要的时候自动清除。
缓冲区溢出攻击分为图7-3基于栈的缓冲区溢出和图7-4基于堆的缓冲区溢出。
图7-3 基于栈的缓冲区溢出
图7-4 基于栈的缓冲区溢出
6.拒绝服务攻击
拒绝服务攻击(DOS)是一种最悠久也是最常见的攻击形式。严格来说,拒绝服务攻击并不是某一种具体的攻击方式,而是攻击所表现出来的结果,最终使得目标系统因遭受某种程度的破坏而不能继续提供正常的服务,甚至导致物理上的瘫痪或崩溃。具体的操作方法可以是多种多样的,可以是单一的手段,也可以是多种方式的组合利用,其结果都是一样的,即使合法用户无法正常访问系统。
通常拒绝服务攻击可分为以下两种类型。
第一种是使一个系统或网络瘫痪。如果攻击者发送一些非法的数据或数据包,就可以使得系统死机或重新启动。本质上是攻击者进行了一次拒绝服务攻击,因为在受到拒绝服务攻击后没有人能够使用计算机网络资源。从攻击者的角度来看,攻击的刺激之处在于可以只发送少量的数据包就使一个网络系统瘫痪。在大多数情况下,系统重新上线需要管理员的干预,重新启动或关闭系统。所以这种攻击是最具破坏力的。
第二种攻击是向系统或网络发送大量信息,使系统或网络因为要回应和处理这些信息而不能响应其他服务。例如,如果一个网络系统在一分钟之内只能处理5000个数据包,攻击者却每分钟向他发送10000个以上的数据包,这时,该网络系统的全部精力和时间都耗费在处理这些数据包上,当合法用户要连接系统时,用户将得不到访问权,因为系统资源已经不足。进行这种攻击时,攻击者必须连续地向系统发送数据包。当攻击者停止向该网络系统发送数据包时,攻击就会立即停止,系统也就恢复正常了。用此攻击方法攻击者要耗费很多精力和时间,因为他必须不断地发送数据。有时,这种攻击会使系统瘫痪,然而在大多数情况下,恢复系统只需要少量人为干预。
拒绝服务攻击工具有以下几种。
(1)Targa
可以进行8种不同的拒绝服务攻击,作者是Mixter,可以在http://packerstorm.security.com和www.rootshell.com网站下载。Mixter把独立的DoS攻击代码放在一起,做出一个易用的程序。攻击者可以选择进行单个的攻击或尝试所有的攻击,直到成功为止。
(2)TFN2K
TFN2K可以看作是Traga增强版本程序。TFN2K运行的DoS攻击与Traga相同,并增加了5种攻击。另外,它是一个DDoS工具,这意味着它可以运行分布模式,即利用TFN2K可以联合Internet上的多台计算机同时攻击某一台计算机或网络。
(3)Trinoo
Trinoo是发布最早的主流工具,因而在功能上与TFN2K相比较稍弱。TIinoo使用TCP和UDP连接,如果用扫描程序检测端口,该攻击很容易被检测到。
(4)Stacheldraht
Stacheldraht是另一个DDoS攻击工具,它结合了TFN2K与Trinoo的特点,并添加了一些补充特征,比如加密组件之间的通信和自动更新守护进程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。