第2章网络攻击原理与常用方法第2章网络攻击原理与常用方法2.1网络攻击概述2.2网络攻击的一般过程2.3网络攻击常见技术方法2.4黑客常用软件2.5网络攻击案例2.6本章小结本章思考与练习第2章网络攻击原理与常用方法2.1网络攻击概述2.1.1网络攻击概念网络攻击是指对网络系统的机密性、完整性、可用性、可控性、抗抵赖性产生危害的行为。这些危害行为可抽象地分为四个基本情形:信息泄露攻击、完整性破环攻击、拒绝服务攻击和非法使用攻击。网络攻击的全过程是:攻击者发起并应用一定的攻击工具(包括攻击策略与方法),对目标网络系统进行(合法与非法的)攻击操作,达到一定的攻击效果,实现攻击者预定义的攻击意图。具体情况如表2-1所示。第2章网络攻击原理与常用方法表2-1网络攻击的全过程攻击者攻击工具攻击访问攻击效果攻击意图黑客间谍恐怖主义者公司职员职业犯罪分子破坏者用户命令脚本或程序自治主体电磁泄露本地访问远程访问破坏信息信息泄密窃取服务拒绝服务挑战好奇获取情报经济利益恐怖事件报复第2章网络攻击原理与常用方法1.攻击者攻击者分成两大类:内部人员和外部人员。我们倾向于根据攻击的动机与目的,将攻击者分为以下六类:*黑客。*间谍。*恐怖主义者。*公司职员。*职业犯罪分子。*破坏者。第2章网络攻击原理与常用方法2.攻击工具攻击者通过一系列的攻击工具,对目标网络实施攻击:*用户命令:攻击者在命令行状态下或者以图形用户接口方式输入攻击命令。*脚本或程序:利用脚本和程序挖掘系统弱点。*自治主体:攻击者初始化一个程序或者程序片断,独立执行漏洞挖掘。*电磁泄露工具:通过Tempest方法实施电磁泄露攻击。第2章网络攻击原理与常用方法3.攻击访问攻击者为了达到其攻击目的,一定要访问目标网络系统,包括合法和非法的访问。但是,攻击过程主要依赖于非法访问和使用目标网络的资源,即未授权访问或未授权使用目标系统的资源。攻击者能够进行未授权访问和使用系统资源的前提是,目标网络和系统存在安全弱点,包括设计弱点、实现弱点和配置弱点。进入目标系统之后,攻击者就开始执行相关命令,如修改文件、传送数据等,实施各类不同的攻击。第2章网络攻击原理与常用方法4.攻击效果攻击效果有以下几种:*破坏信息:删除或修改系统中存储的信息或者网络中传送的信息。*信息泄密:窃取或公布敏感信息。*窃取服务:未授权使用计算机或网络服务。*拒绝服务:干扰系统和网络的正常服务,降低系统和网络性能,甚至使系统和网络崩溃。第2章网络攻击原理与常用方法5.攻击意图将攻击者的意图分为以下六类:*挑战:攻击的动机与目的是为了表现自己或技术挑战。*获取情报:攻击的动机与目的是获取情报信息。*恐怖事件:攻击的动机与目的是获取恐怖主义集团的利益。*好奇:攻击的动机与目的是好奇、显示才干。*经济利益:攻击的动机与目的是获取经济利益。*报复:攻击的动机与目的是报复、泄气。第2章网络攻击原理与常用方法2.1.2网络攻击技术的发展演变归纳起来,网络攻击具有以下的变化趋势:(1)智能化、自动化网络攻击。(2)网络攻击者的技术要求。(3)多目标网络攻击。(4)协同网络攻击。(5)网络拒绝服务攻击。(6)网络攻击速度变快。第2章网络攻击原理与常用方法2.2网络攻击的一般过程一、隐藏攻击源二、收集攻击目标信息三、挖掘漏洞信息四、获取目标访问权限五、隐蔽攻击行为六、实施攻击七、开辟后门八、清除攻击痕迹第2章网络攻击原理与常用方法2.2.1隐藏攻击源隐藏位置就是有效地保护自己。在因特网上的网络主机均有自己的网络地址,根据TCP/IP协议的规定,若没有采取保护措施,很容易反查到某台网络主机的位置,如IP地址和域名。因此,有经验的黑客在实施攻击活动的首要步骤是设法隐藏自己所在的网络位置,包括自己的网络域名及IP地址,这样使调查者难以发现真正的攻击者来源。攻击者常用到如下技术隐藏他们真实的IP地址或者域名:第2章网络攻击原理与常用方法(1)利用被侵入的主机作为跳板,如在安装Windows的计算机内利用Wingate软件作为跳板,利用配置不当的Proxy作为跳板。(2)使用电话转接技术隐蔽自己,如利用电话的转接服务连接ISP。(3)盗用他人的帐号上网,通过电话连接一台主机,再经由主机进入Internet。(4)免费代理网关。(5)伪造IP地址。(6)假冒用户帐号。名词解释:Proxy:代理服务器Wingate:常用的一种代理服务器软件ISP:服务提供商1第2章网络攻击原理与常用方法2.2.2收集攻击目标信息攻击者感兴趣的信息主要包括:(1)系统的一般信息,如系统的软硬件平台类型、系统的用户、系统的服务与应用等。(2)系统及服务的管理、配置情况,如系统是否禁止root远程登录,SMTP服务器是否支持decode别名等。(3)系统口令的安全性,如系统是否存在弱口令,缺省用户的口令是否没有改动等。(4)系统提供的服务的安全性以及系统整体的安全性能,这一点可以从该系统是否提供安全性较差的服务、系统服务的版本是否是弱安全版本以及是否存在其他的一些不安全因素来做出判断。第2章网络攻击原理与常用方法在地下攻击者社团,获取这些信息的方法已经广为人知,攻击者可以手工探测以获取这些信息,也可以利用已有的软件来帮助他快速地获得这些信息。攻击者获取这些信息的方法主要有:(1)使用口令攻击,如口令猜测攻击、口令文件破译攻击、网络窃听与协议分析攻击、社交欺诈等手段。(2)对系统进行端口扫描,或者使用已有的端口扫描工具。(3)探测特定服务的漏洞,或者使用已有的探测工具,如NFS漏洞探测程序、X服务器探测程序等。(4)使用系统整体安全性分析、报告软件,如ISS、SATAN、NESSUS等。第2章网络攻击原理与常用方法2.2.3挖掘漏洞信息系统中漏洞的存在是系统受到各种安全威胁的根源。外部攻击者的攻击主要利用了系统提供的网络服务中的漏洞,内部人员作案则利用了系统内部服务及其配置上的漏洞。而拒绝服务攻击主要是利用资源的有限性及分配策略的漏洞,长期占用有限资源不释放,使其他用户得不到应得的服务,或者是利用服务处理中的漏洞,使该服务程序崩溃。攻击者攻击的重要步骤就是尽量挖掘出系统的漏洞,并针对具体的漏洞研究相应的攻击方法。常用到的漏洞挖掘技术有:第2章网络攻击原理与常用方法(1)系统或应用服务软件漏洞。攻击者可以根据系统提供的不同服务来使用不同的方法以获取系统的访问权限。如果攻击者发现系统提供了finger服务,攻击者就能得到系统用户信息,进而通过猜测用户口令获取系统的访问权;如果系统还提供其他的一些远程网络服务,如邮件服务、服务、匿名FTP服务、TFTP服务,攻击者可以使用这些远程服务中的漏洞获取系统的访问权。名词解释:finger:Internet的一种服务,用于查询本机或其他机器上的用户信息。第2章网络攻击原理与常用方法(2)主机信任关系漏洞。黑客总是寻找那些被信任的主机。这些主机可能是管理员使用的机器,或是一台被认为是很安全的服务器。比如,黑客可以利用CGI的漏洞,读取/etc/hosts.allow文件等。通过这个文件,就可以大致了解主机间的信任关系。下一步,就是探测这些被信任的主机存在哪些漏洞。(3)目标网络的使用者漏洞。尽量去发现有漏洞的网络使用者对攻击者往往起到事倍功半的效果,堡垒最容易从内部攻破就是这个缘故。第2章网络攻击原理与常用方法(4)通信协议漏洞。通过分析目标网络所采用的协议信息寻找漏洞,如TCP/IP协议就会有漏洞。(5)网络业务系统漏洞。通过掌握目标网络的业务流程信息发现漏洞,如网络申请使用权限登记漏洞。第2章网络攻击原理与常用方法2.2.4获取目标访问权限一般帐户对目标系统只有有限的访问权限,要达到某些目的,攻击者必须有更多的权限。因此在获得一般帐户之后,攻击者经常会试图去获得更高的权限,如系统管理帐户的权限。获取系统管理权限通常有以下途径:(1)获得系统管理员的口令,如专门针对root用户的口令攻击。(2)利用系统管理上的漏洞,如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出问题等。(3)让系统管理员运行一些特洛伊木马,如经篡改之后的LOGIN程序等。(4)窃听管理员口令。第2章网络攻击原理与常用方法2.2.5隐蔽攻击行为作为一个入侵者,攻击者总是惟恐自己的行踪被发现,所以在进入系统之后,聪明的攻击者要做的第一件事就是隐藏自己的行踪。攻击者隐藏自己的行踪通常要用到下面的这些技术:(1)连接隐藏,如冒充其他用户,修改LOGNAME环境变量,修改utmp日志文件,使用IPSPOOF技术等。(2)进程隐藏,如使用重定向技术减少ps给出的信息量,用特洛伊木马代替ps程序等。(3)文件隐蔽,如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到;利用操作系统可加载模块特性,隐瞒攻击时所产生的信息。名词解释IPSPOOF:IP欺骗第2章网络攻击原理与常用方法2.2.6实施攻击不同的攻击者有不同的攻击目的,可能是为了获得机密文件的访问权,也可能是为了破坏系统数据的完整性,也可能是为了获得整个系统的控制权——系统管理权限,以及其他目的等。一般说来,可归结为以下几种方式:第2章网络攻击原理与常用方法*攻击其他被信任的主机和网络。*修改或删除重要数据。*窃听敏感数据。*停止网络服务。*下载敏感数据。*删除数据帐号。*修改数据记录。第2章网络攻击原理与常用方法2.2.7开辟后门一次成功的入侵通常要耗费攻击者的大量时间与精力,所以精于算计的攻击者在退出系统之前会在系统中制造一些后门,以方便自己的下次入侵。攻击者设计后门时通常会考虑以下方法:第2章网络攻击原理与常用方法*放宽文件许可权。*重新开放不安全的服务,如REXD、TFTP等。*修改系统的配置,如系统启动文件、网络服务配置文件等。*替换系统本身的共享库文件。*修改系统的源代码,安装各种特洛伊木马。*安装sniffers。*建立隐蔽信道。名词解释sniffer:嗅探器第2章网络攻击原理与常用方法2.2.8清除攻击痕迹攻击者为了避免系统安全管理员的追踪,攻击时常会消除攻击痕迹,避免被安全管理员发现或被IDS发现。常用的方法有:*篡改日志文件中的审计信息。*改变系统时间造成日志文件数据紊乱以迷惑系统管理员。*删除或停止审计服务进程。*干扰入侵检测系统正常运行。*修改完整性检测标签。第2章网络攻击原理与常用方法2.3网络攻击常见技术方法2.3.1端口扫描端口扫描的目的是找出目标系统上提供的服务列表。端口扫描程序逐个尝试与TCP/UDP端口连接,然后根据著名端口与服务的对应关系,结合服务器端的反应推断目标系统上是否运行了某项服务。通过这些服务,攻击者可能获得关于目标系统的进一步的知识或通往目标系统的途径。根据端口扫描利用的技术,可将扫描分成以下类型。第2章网络攻击原理与常用方法1.完全连接扫描完全连接扫描利用TCP/IP协议的三次握手连接机制,使源主机和目的主机的某个端口建立一次完整的连接。如果建立成功,则表明该端口开放。否则,表明该端口关闭。2.半连接扫描半连接扫描是指在源主机和目的主机的三次握手连接过程中,只完成前两次握手,不建立一次完整的连接。第2章网络攻击原理与常用方法3.SYN扫描首先向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程,并查看响应情况。如果目标主机返回ACK信息,表示目标主机的该端口开放;如果目标主机返回RST信息,表明该端口没有开放。第2章网络攻击原理与常用方法4.ID头信息扫描这种扫描方法需要用一台第三方机器配合扫描,并且这台机器的网络通信量要非常少,即“dumb”主机。首先由源主机A向“dumb”主机B发出连续的ping数据包,并且查看主机B返回的数据包的ID头信息。一般而言,每个顺序数据包的ID头的值会顺序增加1。然后由源主机A假冒主机B的地址向目的主机C的任意端口(1~65535)发送SYN数据包。这时,主机C向主机B发送的数据包有两种可能的结果:第2章网络攻击原理与常用方法(1)SYN|ACK:表示该端口处于监听状态。(2)RST|