信息安全积极防御技术(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-29 02:42:08

点击下载

作者:中国住处安全测评中心

出版社:航空工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

信息安全积极防御技术

信息安全积极防御技术试读:

内容提要

本书从信息安全积极防御的视角描述了信息安全积极防御的技术基础,并给出了10个信息安全积极防御的实验。在信息安全积极防御技术基础方面,描述了以主动攻击为核心的积极防御的工作步骤和流程,并重点介绍了网络和系统信息搜集技术、密码破译以及拒绝服务、缓冲区溢出、木马和病毒的积极防御技术;通过10个可操作、练习的信息安全积极防御实验,理论结合实践,帮助读者更深刻地理解和实践信息安全积极防御技术。

本书是中国信息安全测评中心注册信息安全专业人员(CISP)和注册信息安全员(CISM)的正式教材,可作为高等院校信息安全专业的学生教材,并可作为信息安全培训和从业人员的信息安全积极防御的实验参考书。《信息安全积极防御技术》编委会

顾  问:何德全 院士

     蔡吉人 院士

     沈昌祥 院士

     周仲义 院士

主  编:吴世忠

副 主 编:王贵驷

执行总编:彭勇

编  委:刘营 阎铁麟 鲍旭华 谢丰 李吉慧 戴忠华

     任望 汪洋 杨天识 田永兴 董钟鼎 庞智

主  审:李守鹏 霍海鸥 江常青 李斌 高新宇 王军

     刘月琴 王海生 王群 宋云生 张利 徐长醒

     刘晖 郭涛 张翀斌 李婧 杜巍 管卫文

     甘志伟

第一部分 信息安全积极防御技术基础

本部分包含以下章节:

第1章 信息安全积极防御概述

第2章 网络信息收集技术

第3章 系统信息收集技术

第4章 密码破解

第5章 拒绝服务攻击与防御

第6章 缓冲区溢出攻击与防御

第7章 Web及数据库的积极防御

第8章 计算机木马积极防御

第9章 计算机病毒积极防御第1章 信息安全积极防御概述内容简介:

在本章中将讨论攻击的定义和攻击目标;详细介绍一个攻击行为发生的三个阶段,即攻击准备、攻击实施和攻击后处理;然后介绍基于不同角度对攻击分类;最后阐述攻击技术的演变和发展。阅读成果:

通过本章阅读,读者应掌握以下内容:

●攻击的定义;

●攻击的目标;

●攻击的一般过程;

●攻击的分类。

1.1 引言

随着互联网发展,信息技术已经日渐深入到日常生活和工作当中,信息网络化突破了信息在时间和空间上的障碍,使信息的价值不断提高。然而,互联网本身的开放性、跨国界、无主管、不设防和无法律约束等特性带来了一些不容忽视的问题,如信息安全问题。由于安全漏洞导致的信息篡改、数据破坏、信息泄密、恶意信息的发布,以及服务瘫痪等信息安全事件层出不穷,由此造成的经济损失和社会不良影响难以估计。

尽管信息安全的研究得到越来越多的关注,然而,信息安全问题并没有因此而减少。相反,随着网络规模的飞速扩大,结构日益复杂和应用领域不断扩大,信息安全事故呈迅速增长趋势,造成的损失也越来越大。根据公安部2007年全国信息网络安全状况调查结果显示,我国信息网络安全事件发生比例连续3年呈上升趋势,2007年达到65.7%,较2006年上升了11.7%。信息网络安全事件的主要类型有:感染计算机病毒、蠕虫和木马程序,垃圾电子邮件,遭到网络扫描、攻击和网页篡改。计算机病毒通过U盘等移动存储介质传播的问题比较突出,从2006年的23%上升到2007年的40%;互联网上以盗取用户账号、密码为目的的“间谍软件”、木马病毒明显增多,“熊猫烧香”、“木马代理”、“网游大盗”和“传奇木马”等一批以侵占他人财产为目的的计算机病毒大量传播,直接危害个人的切身利益,造成的影响较大。

我们的生活已经无法脱离对网络与计算机的依赖,但是网络是开放的、共享的,因此,信息安全就成为科学研究的一个重大课题。而对信息安全的研究不能仅限于防御手段,还要从非法获取目标主机的系统信息、非法挖掘系统弱点等技术进行研究。正所谓对症下药,只有了解了攻击者的手法,才能更好地采取措施,来保护网络与计算机系统的正常运行。

1.2 攻击的定义和目标

攻击是用户未经授权的访问尝试或者未授权的使用尝试。攻击的方法众多,但其攻击的目标主要是破坏信息的机密性、信息的完整性、信息的可用性、信息的非否认性和信息系统运行的可控性。

1.3 攻击的一般过程

一个攻击行为的发生一般有三个阶段,即攻击准备、攻击实施和攻击后处理。当然并不是每次攻击都能成功。

1.3.1 攻击准备

攻击准备阶段可分为确定攻击目标和信息收集两个子过程。攻击者可能在一开始就确定了攻击目标,然后专门收集该目标的信息;也可能先大量地收集网上主机的信息,然后根据各系统的安全性强弱确定最后的攻击目标。攻击前首先确定攻击目标,而后确定要达到什么样的攻击目的,即给对方造成什么样的后果,常见的攻击目的有破坏型和入侵型两种。破坏型攻击指的是破坏目标,使其不能正常工作,而不是控制目标系统的运行。另一类是入侵型攻击,这种攻击是要获得一定的权限达到控制攻击目标或窃取信息的目的。入侵型攻击较为普遍,威胁性大,因为一旦获得攻击目标的管理员权限就可以对此服务器做任意动作,包括破坏性的攻击。此类攻击一般利用服务器操作系统、应用软件或者网络协议等系统中存在的漏洞进行。在确定攻击目标之后,最重要的是收集尽可能多的关于攻击目标的信息,以便实施攻击。这些信息主要包括:目标的操作系统类型及版本,目标提供的服务类型,各服务器程序的类型、版本及相关的各种信息。对于攻击者来说,信息是最好的工具。它可能就是攻击者发动攻击的最终目的(如绝密文件、经济情报等);也可能是攻击者获得系统访问权限的通行证,如用户口令、认证、票据等;还可能是攻击者获取系统访问权限的前奏,如目标系统的软硬件平台类型、提供的服务与应用及其安全性的强弱等。攻击者感兴趣的信息主要包括以下几个方面。(1)系统的一般信息

如系统的软硬件平台类型、系统的用户和系统的服务与应用等。(2)系统及服务的管理、配置情况

如系统是否禁止root远程登录,SMTP服务器是否支持decode别名等。(3)系统口令的安全性

如系统是否存在弱口令,缺省用户的口令是否没有改动等。(4)系统提供的服务的安全性及系统整体的安全性能

这一点可以从该系统是否提供安全性较差的服务、系统服务的版本是否是老的版本等因素来做出判断。攻击者获取这些信息的主要方法有以下几种。

①对系统进行端口扫描,弄清每个端口运行的是哪种服务。基于公有的配置和软件,攻击者能够比较准确地判断出每个端口在运行什么服务。例如,如果知道操作系统是UNIX和端口23是开放的,他能判断出机器正在运行Telnet服务,如果操作系统是Microsoft Windows和端口25是开放的,他能判断出正在运行邮件服务器。

②探测特定服务的弱点。应用漏洞扫描工具,如ISS、SATAN、NESSUS等来探测特定服务的弱点。

③使用口令攻击。如口令猜测攻击、口令文件破译攻击、网络窃听与协议分析攻击,以及社交欺诈等手段。

④体系结构探测。有一些探测远程主机操作系统的程序通过向远程主机发送不平常的或者没有意义的数据包来完成。由于每种操作系统都有其独特的响应方式,通过这些响应方式,攻击者通过解析响应信息就能够确定出目标主机所运行的操作系统及其版本等信息。例如,Nmap目前它能检测出接近400种不同的设备。X-scan也可识别出常见的操作系统及网络设备。

1.3.2 攻击实施

当收集到足够的信息后,攻击者就可以实施攻击了,对于破坏型攻击只需利用必要的工具发动攻击即可。但作为入侵型攻击,往往要利用收集到的信息找到系统漏洞,然后利用该漏洞获得一定的权限,有时获得一般用户的权限就足以达到攻击的目的,但一般攻击者都想尽办法获得系统最高权限,这不仅为了达到入侵的目的,在某种程度上也是为了显示攻击者的实力。系统漏洞一般分为远程漏洞和本地漏洞两种,远程漏洞是指可以在别的机器上直接利用该漏洞进行攻击并获得一定的权限,这种漏洞的威胁性相当大,攻击行为一般是从远程漏洞开始,但是利用远程漏洞不一定获得最高权限,往往获得一般用户的权限,只有获得了较高的权限(如管理员的权限)才可以进行入侵行为(如放置木马程序)。因此在获得一般账户权限之后,攻击者经常会试图获得更高的权限,如系统管理账户的权限。获取系统管理权限通常有以下途径:

●获得系统管理员的口令,如专门针对root用户的口令攻击;

●利用系统管理上的漏洞,如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出漏洞等;

●令系统管理员运行特洛伊木马程序,如经篡改之后的Login程序等;●窃听管理员口令。

●窃听管理员口令。

攻击者进行攻击时,还要常常注意隐藏自己,以免引起目标系统管理员的注意。进入系统之后,攻击者要做的第一件事就是隐藏行踪,攻击者隐藏自己的行踪通常要用到下面的技术:

●连接隐藏,如冒充其他用户、修改LOGNAME环境变量、修改utmp日志文件、使用IP Spoof技术等;

●进程隐藏,如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等;●文件隐蔽,如利用字符串的相似来麻痹系统管理员,或修改文件属性使普通显示方法无法看到;

●利用操作系统可加载模块特性,隐藏攻击时所产生的信息。

1.3.3 攻击后处理

如果攻击者完成攻击后,立刻离开系统而不做任何后续工作,那么他的行踪将很快被系统管理员发现,因为所有的网络操作系统都提供日志记录功能,会把系统上发生的事件记录下来,所以攻击者发动完攻击后,一般要做一些后续工作,为了避免IDS和系统安全管理员的追踪,攻击时和攻击后都要设法消除攻击痕迹。对于破坏型攻击,攻击者隐匿踪迹是为了不被发现,而且还有可能再次收集信息以此来评估攻击后的效果。对于入侵型攻击最重要的隐匿踪迹的手段是攻击痕迹清除,攻击者可以利用系统最高管理员身份随意修改系统上文件的权利。清除攻击痕迹最简单的方法是删除日志,这样做虽然避免了系统管理员根据日志的追踪,但也明确地告诉管理员系统已经被入侵了,所以一般采用的方法是修改日志中与攻击行为相关的那一部分日志,而不是删除日志。但只修改日志仍不够,有时还会留下蛛丝马迹,所以高级攻击者可以通过替换一些系统程序的方法进一步隐匿踪迹。常用的清除攻击痕迹方法有:

●篡改日志文件中的审计信息;

●改变系统时间造成日志文件数据紊乱;

●删除或停止审计服务进程;

●干扰入侵检测系统的正常运行;

●修改完整性检测标签。

此外,攻击者在入侵系统后还有可能再次入侵该系统,所以为了下次进入的方便,攻击者往往给自己留下后门,如给自己添加一个账号、增加一个网络监听的端口或放置木马等。还有一种方法,即通过修改系统内核的方法可以使管理员无法发现攻击行为的发生,但这种方法需要较强的编程技巧,一般的攻击者较难完成。

1.4 攻击的类型

信息系统的安全缺陷,以及社会、自然灾害等方面的问题构成了对信息系统的威胁和攻击。由于当前攻击的方法没有规范的分类模式,方法的运用往往非常灵活。从攻击方式上来分,攻击可被分为两类,即主动攻击与被动攻击;按威胁和攻击对象可将信息系统的威胁和攻击分为两类,一类是针对信息系统实体的,一类是针对信息的;从攻击的目的来看,可以有拒绝服务攻击(DoS)、获取系统权限的攻击和获取敏感信息的攻击;从攻击的切入点来看,有缓冲区溢出攻击、系统设置漏洞的攻击等;从攻击的纵向实施过程来看,又有获取初级权限攻击、提升最高权限的攻击、后门攻击和跳板攻击等;从攻击的类型来看,包括对各种操作系统的攻击、对网络设备的攻击和对特定应用系统的攻击等。所以说,很难以一个统一的模式对各种攻击手段进行分类。实际上黑客实施一次攻击行为,为达到他的攻击目的会结合采用多种攻击手段,在不同的攻击阶段会使用不同的方法。

1.4.1 基于威胁和攻击对象分类

按威胁和攻击对象可将信息系统的威胁和攻击分为两类,一类是针对信息系统实体的,另一类是针对信息的。(1)针对信息实体的威胁和攻击

主要指对系统设备、网络及其环境的威胁和攻击,如各种自然灾害与人为的破坏、设备故障、场地和环境因素的影响、电磁场的干扰、电磁泄漏、战争破坏,以及各种媒体的被盗和散失等。对信息系统实体的威胁和攻击,不仅会造成国家财产的重大损失,而且会使信息系统的机密信息严重泄露和破坏。因此,对信息系统实体的保护是防止针对信息系统威胁和攻击的首要一步,也是防止对信息威胁和攻击的天然屏障。(2)针对信息的威胁和攻击

主要有两种,一种是信息的泄露,另一种是信息的破坏。信息泄露就是偶然地或故意地获得(侦收、截获、窃取、分析或破译)目标系统中信息,特别是敏感信息,而造成泄露事件。信息破坏是指由于偶然事故或人为破坏,使信息的正确性、完整性和可用性受到破坏,使得系统的信息被修改、删除、添加、伪造或非法复制,造成大量信息的破坏、修改或丢失。

1.4.2 基于攻击方式分类

基于攻击方式,可将攻击行为分为被动攻击和主动攻击两类。(1)被动攻击

是指一切窃密的攻击,它是在不干扰系统正常工作的情况下进行侦收、截获、窃取系统信息。利用观察信息、控制信息的内容来获得目标系统的设置和身份;利用研究机密信息的长度和传递的频度获得信息的性质。攻击者不对正常的数据传输的内容进行修改,而使用技术手段来获取数据传输的具体内容。被动攻击类型会破坏数据传输的保密性。攻击者采用被动攻击方式监听网络上传递的信息流,从而获取信息的内容(Interception),或仅仅希望得到信息流的长度、传输频率等数据,称为流量分析(Traffic Analysis)。

被动攻击不容易被用户察觉出来,因此它的攻击持续性和危害性都很大。被动攻击的主要方法有以下几种。

①直接侦听。利用电磁传感器或隐藏的收发信息设备直接侦收或搭线侦收信息系统的中央处理机、外围设备、终端设备、通信设备或线路上的信息。

②截获信息。系统及设备在运行时,散射的寄生信号容易被截获。如离计算机显示终端(CRT)百米左右,辐射信息强度可达到30dBμV以上,因此可以在那里接收到稳定、清晰可辨的信息图像。此外,短波、超短波、微波和卫星等无线电通信设备有相当大的辐射面,通话线路、长途架空明线等电磁辐射也相当严重,因此可利用系统设备的电磁辐射截获信息。

③合法窃取。利用合法用户身份,设法窃取未授权的信息。例如,在统计数据库中,利用多次查询数据的合法操作,推导出不该了解的机密信息。

④破译分析。对于已经加密的机要信息,利用各种破译分析手段获得机密信息。

⑤从遗弃的媒体中分析获取信息。例如,从信息中心遗弃的打印纸、各种记录和统计报表、窃取或丢失的软盘片中获得有用信息。(2)主动攻击

除了被动攻击的方式外,攻击者还可以采用主动攻击的方式。主动攻击是指篡改信息的攻击,它不仅是窃密,而且威胁到信息的完整性和可靠性。攻击者通过有选择地修改、删除、延迟、乱序、复制、插入数据流或数据流的一部分以达到其非法目的。主动攻击可以归纳为中断、篡改和伪造三种(见图1-1)。中断是指阻断由发送方到接收方的信息流,使接收方无法得到该信息,这是针对信息可用性的攻击(见图1-2)。篡改是指攻击者修改、破坏由发送方到接收方的信息流,使接收方得到错误的信息,从而破坏信息的完整性(见图1-3)。伪造是针对信息的真实性的攻击,攻击者或者是首先记录一段发送方与接收方之间的信息流,然后在适当时间向接收方或发送方重放(Playback)这段信息,或者是完全伪造一段信息流,冒充接收方可信任的第三方,向接收方发送(见图1-4)。图1-1 主动攻击图1-2 中断示意图图1-3 篡改示意图图1-4 伪造示意图

主动攻击的主要方法有以下五种。

①窃取并干扰通信线路中的信息。

②返回渗透。有选择地截取系统中央处理机的通信,然后将伪信息返回系统用户。

③线间插入。当合法用户已占用信道而终端设备还没有动作时,插入信道进行窃听或信息破坏活动。

④非法冒充。采取非常规的方法和手段,窃取合法用户的标识符,冒充合法用户进行窃取或破坏信息。

⑤系统人员的窃取、毁坏系统数据和信息的行为等。

主动攻击和被动攻击都有各自不同的特点,被动攻击方式的特点主要有以下四点。

①进行网络监听,截取重要的敏感信息。

②被动攻击往往是主动攻击的前奏。

③被动攻击很难被发现。

④对它采用的对策就是加密传输的数据信息流。

主动攻击的特点有以下四点。

①利用网络本身所存在的漏洞进行攻击。

②主动攻击的基础往往是被动攻击所获取的信息。

③主动攻击很难被防范和杜绝。

④对它采用的对策就是检测和修复。

1.5 攻击的演变与发展

由于系统脆弱性的客观存在,操作系统、应用软件、硬件设备不可避免地存在一些安全漏洞,网络协议本身的设计也存在一些安全隐患,这些都为攻击者采用非正常手段入侵系统提供了可乘之机。Internet目前已经成为全球信息基础设施的骨干网络,Internet本身所具有的开放性和共享性对信息的安全问题提出了严峻的挑战。

十几年前,攻击还仅限于破解口令和利用操作系统已知漏洞等有限的几种方法,然而目前攻击技术已经随着计算机和网络技术的发展逐步成为一门完整的科学,它囊括了攻击目标系统信息收集、弱点信息挖掘分析、目标使用权限获取、攻击行为隐蔽、攻击实施、开辟后门,以及攻击痕迹清除等技术。围绕计算机网络和系统安全问题进行的网络积极防御也受到了人们的广泛重视。

近年来,网络攻击技术和攻击工具发展很快,使得一般的计算机爱好者要想成为一名准黑客非常容易,网络攻击技术和攻击工具的迅速发展使得依靠网络提供办公服务和业务服务的机构面临越来越大的风险。只有加深对攻击技术发展趋势的了解,才能够尽早采取相应的防护措施。目前应该特别注意攻击技术和攻击工具正在以下几个方面快速发展。(1)网络攻击的自动化程度和攻击速度不断提高

网络攻击一般涉及扫描、渗透控制和攻击三个阶段,每个阶段都发生了新的变化。在扫描阶段,扫描工具的发展,使得黑客能够利用更先进的扫描模式来改善扫描效果,提高扫描速度;在渗透控制阶段,安全脆弱的系统更容易受到损害;攻击传播技术的发展,使得以前需要依靠人启动软件工具发起的攻击,发展到攻击工具可以自己发动新的攻击;在攻击工具的协调管理方面,随着分布式攻击工具的出现,黑客可以很容易地控制和协调分布在Internet上的大量已部署的攻击工具。目前,分布式攻击工具能够更有效地发动拒绝服务攻击,危害那些存在安全隐患的系统。(2)攻击工具越来越复杂

随着攻击技术的进步,攻击工具的特征比以前更难发现,它们已经具备了反侦破、动态行为和攻击工具更加成熟等特点。反侦破是指黑客越来越多地采用具有隐蔽攻击工具特性的技术,使安全专家需要耗费更多的时间来分析新出现的攻击工具和了解新的攻击行为;动态行为是指现在的自动攻击工具可以根据随机选择、预先定义的决策路径或通过入侵者直接管理,来变化它们的模式和行为,而不是像早期的攻击工具那样,仅能够以单一确定的顺序执行攻击步骤。攻击工具更加成熟是指攻击工具已经发展到可以通过升级或更换工具的一部分迅速变化自身,进而发动迅速变化的攻击,而且在每一次攻击中会出现多种不同形态的攻击工具。同时攻击工具也越来越普遍地支持多操作系统平台运行,在实施攻击的时候,许多常见的攻击工具使用了如IRC或HTTP等协议从攻击者处向受攻击计算机发送数据或命令,使得人们区别正常、合法的网络传输流与攻击信息流变得越来越困难。(3)黑客利用安全漏洞的速度越来越快

新发现的各种系统与网络安全漏洞每年都要增加一倍,每年都会发现安全漏洞的新类型,网络管理员需要不断用最新的软件补丁修补这些漏洞。黑客经常能够抢在厂商修补这些漏洞前发现这些漏洞并发起攻击。(4)攻击门槛越来越低

由于现在攻击工具的功能已非常强大,而且大多数又是免费下载的,所以要获取这方面的工具软件是毫不费劲的。再加上现在各种各样的漏洞扫描工具不仅品种繁多,而且功能相当强大,各系统的安全漏洞已公开化,只要稍有一些网络知识的人都可以轻松实现远程扫描,甚至达到攻击的目的。正因如此,现在的黑客活动越来越猖獗,犯罪分子的年龄也在不断下降,有的小学生也参与到了黑客行列。(5)受攻击面更广

随着各种宽带接入(如ADSL、Cable Modem和小区光纤以太网等)技术的普及,现在许多单位和个人都采取永久在线的方式上网。即使不是专线接入,在线的时间也远比以前电话拨号的方式长。这样就为黑客们提供了宽松的攻击环境,可以有足够的时间来实施对目标的攻击。所以现在遭受攻击的用户面比以前多了许多,几乎所有上网的个人和单位都可能遭受黑客的攻击。(6)对基础设施将形成越来越大的威胁

基础设施攻击是大面积影响Internet关键组成部分的攻击。由于用户越来越多地依赖Internet完成日常业务,基础设施攻击引起人们越来越大的担心。基础设施面临分布式拒绝服务攻击、蠕虫病毒、对Internet域名系统(DNS)的攻击和对路由器攻击或利用路由器的攻击。攻击工具的自动化程度使得一个攻击者可以安装他们的工具并控制几万个受损害的系统发动攻击。入侵者经常搜索已知包含大量具有高速连接的易受攻击系统的地址块,电缆调制解调器、DSL和大学地址块越来越成为计划安装攻击工具的入侵者的目标。

1.6 本章小结

本章开始讨论了攻击的定义和攻击目标;介绍一个攻击行为的发生一般有三个阶段,即攻击准备、攻击实施和攻击后处理,包括了攻击目标系统信息收集、弱点信息挖掘分析、目标使用权限获取、攻击行为隐蔽、攻击实施、开辟后门以及攻击痕迹清除等各项技术;从攻击方式和攻击对象等角度对攻击进行分类;本章最后对攻击技术的演变和发展进行了详细的介绍。

第2章 网络信息收集技术

内容简介:

前面的章节介绍了信息安全的基本概念和常见攻击手段。在网络入侵攻击中信息的收集是非常重要的一个环节。如果无法在攻击前获得尽可能多的有效信息,攻击成功的机会将大大减少。信息收集主要包括网络信息和系统信息收集两个方面。本章中将介绍有关网络信息收集的内容、获取信息的步骤以及常用技术和技巧。阅读成果:

通过本章阅读,读者应掌握以下内容:

●网络信息收集的内容;

●常见的网络信息收集的手段;

●网络信息收集的步骤;

●Whois、Nslookup、Tracert等命令在网络信息收集中的使用。

2.1 信息收集概述

信息收集就是利用各种可能的手段获取所需要的信息。无论在军事上还是在网络入侵攻击中,信息的收集都是很重要的一个环节。在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型和操作系统等。信息的搜集可以用踩点和扫描等方式来完成。只有明确被攻击对象的各种信息,才能更好地找到突破点,使攻击能够成功完成。信息的收集按照收集信息的种类可以分为网络信息收集和系统信息收集两类。在信息收集中通常采用的技术有以下三种。(1)通过第三方资源对目标进行信息收集,比如我们常见的搜索引擎。不少入侵者利用Google等第三方资源强大的搜索功能来搜索某些关键词,找到有系统漏洞和Web漏洞的服务器,将它们打造成自己的“肉鸡”。(2)利用查询手段获取与攻击目标有关的信息。这种方法包括使用查询命令和社会工程学的应用两方面。(社会工程学将在2.2.3节中做详细介绍)(3)使用各种扫描工具对入侵目标及所在网络进行大规模扫描,得到目标所在的网络信息和系统信息,以及运行的服务信息等。

本章中我们着重介绍网络信息的收集。网络信息的收集包括对攻击目标所在的网络结构、网络设备(如网关、路由、防火墙及IDS等)和网络中主机关系等信息的收集。表2-1列举了在网络信息获取阶段可识别的信息。

2.2 目标初始信息探查

从前面的介绍中可以看出,网络攻击是一件系统性很强的工作,攻击者在完成一次攻击前必须确定要攻击的目标,攻击要达到什么样的目的,即给对方造成什么样的后果,这包括攻击的目标是主机还是网段。目标的确定有利于接下来攻击方法的选择。要想获得整个网络的信息是非常困难的,必须有选择性地缩小攻击的范围。另外,在攻击目标为单机的情况下,如果能获得与攻击目标关系密切的主机信息,也有助于攻击,甚至可以采用先攻击同网段中防护能力较弱的主机,然后再攻击最终的目标主机来达到攻击的目的。

攻击者开始攻击前需要有初始信息,如一个IP地址或一个域名。实际上获取域名是很容易的一件事,然后攻击者会根据已知的域名搜集关于这个站点的信息。

在现在网络发达的环境下,要获取你的攻击目标的信息已经不是很难,网络中有很多开放的信息,开放的来源是关于公司或者它的合作伙伴的一般、公开的信息,任何人都能够得到。这意味着存取或者分析这种信息比较容易,并且没有犯罪的因素,是很合法的。例如,公司的新闻、员工的信息和公司主页上新闻组中的信息。公司认为公布这些信息可以方便争取客户,但同时,这些信息也给攻击者提供了方便。当然,随着第三方资源的出现,攻击者获取信息的途径就更多,并且获得的信息量也更大。所以更关键的是从众多信息中选出攻击所需要的核心信息,缩小并最终锁定攻击目标。

2.2.1 Google Hacking

搜索引擎提供的导航服务已经成为互联网上非常重要的网络服务。搜索引擎为人们提供信息“检索”服务,它使用某些程序把因特网上的所有信息归类,以帮助人们在茫茫网海中搜寻到所需要的信息。搜索引擎是对互联网上的信息资源进行搜集整理,然后供用户查询的系统,它包括信息搜集、信息整理和用户查询三部分。随着搜索引擎的不断发展,现在的搜索引擎已经不只是单纯的搜索网页的信息了,它们已经变得更加综合化,完美化了。在众多搜索引擎中最出名的莫过于Google,它几乎成为搜索引擎的代名词,人们不断地挖掘它的新用途。Google和类似搜索引擎在为人们提供大量便捷的同时,也带来了一定的风险,攻击者利用搜索引擎能够快速查找存在漏洞的主机、其他设备及包含敏感数据的信息,而这些都可以为攻击者所利用来完成信息收集的工作。

利用Google来搜索信息,是攻击者最常用的方式,称为Google Hacking。要更好地利用Google得到想要的信息,特别是一些敏感的信息,需要配合Google常用的一些语法。(1)intext这个就是把网页中的正文内容中的某个字符作为搜索条件。如在Google里输入:intext:“exploits”,将返回所有在网页正文部分包含“exploits”的网页。(2)intitle搜索网页标题中是否有我们所要找的字符。如输入:intitle:安全插件,将返回所有网页标题中包含“安全插件”的网页。想使用多个字符,可使用allintitle。(3)cache:搜索Google里关于某些内容的缓存,有时候也许这里会发现一些很有用的东西。(4)define:搜索某个词语的定义,例如,输入:define:hacker,将返回关于hacker的定义。(5)filetype:返回特定类型的文件。无论是撒网式攻击还是对特定目标进行信息收集都需要用到这个。如输入:filetype:doc,将返回所有以doc结尾的文件的URL。在实战中经常通过该方式寻找.bak,.mdb或.inc文件。(6)info:查找指定站点的一些基本信息。(7)inurl:搜索我们指定的字符是否存在于URL中。例如,输入:inurl:admin,将返回若干个类似于这样的连接:http://www.xxx.com/xxx/admin的结果,可以用来找管理员登录的URL。这种查找方式也可指定多个字符。(8)link:例如,输入:inurl:www.4ngel.net可以返回所有和www.4ngel.net做了链接的URL。(9)site:如输入:site:www.4ngel.net.将返回所有和4ngel.net这个站有关的URL。

当然在实际攻击中,这些语法还需要灵活地运用才能获得更好的结果。(1)与index of结合使用:一个开放了目录浏览的Web服务器意味着任何人都可以像浏览通常的本地目录一样浏览它上面的目录。index of语法可以得到开放目录浏览的Web服务器列表,从而得到一些本不应该出现在Internet上的信息。如图2-1所示就是利用intext:index of/passwd得到的某个结果。图2-1 搜索出的某个passwd文件及密码文件的内容(2)利用inurl或allinurl寻找缺陷站点或服务器。利用allinurl:winnt/system32/会列出所有通过Web可以访问限制目录,如system32的服务器的链接,如图2-2所示。如果幸运的话,可以访问到system32目录中的cmd.exe。一旦你能够访问cmd.exe,就可以获得整个服务器的权限操作。图2-2 使用allinurl搜索出的某个结果(3)查找有跨站脚本漏洞(XSS)的站点:allinurl:/scripts/cart32.exe;allinurl:/ph pinfo.php。

2.2.2 Whois查询

对于攻击者而言,任何有域名的公司必定泄露某些信息。攻击者会对一个域名执行Whois程序以找到附加的信息。UNIX的大多数版本装有Whois,所以攻击者只需在终端窗口或者命令提示行内敲入“Whois及要攻击的域名”就可以了。对于Windows操作系统,要执行Whois查找,需要一个第三方的工具,如Sam Spade, Domaintools等。

Whois的数据库来自于互联网的域名授权注册机构(http://www.internic.net/alpha.html)。一般来说InterNIC数据库只包含非军事和非美国政府的网络域,即.com,.edu,.net和.org。在实际查询时,可根据所查找的具体域名类型使用不同的目录服务。例如,教育网专用的目录www.nic.edu.cn;与组织相关的各服务目录可以在www.whois.gc或www.sampade.org上查询。通过Whois查询可以得到以下信息。(1)注册机构:显示特定的注册信息和相关Whois服务器。(2)机构本身:显示与某个特定机构相关的所有信息。(3)域名:显示与某个特定域名相关的所有信息。(4)网络:显示与某个特定网络或单位IP地址相关的所有信息。(5)联系点(POC):显示与某位特定人员(一般是管理方面联系人)相关的所有信息。

如图2-3所示是使用DomainTools(http://www.domaintools.com/)中的Whois查询得到的天涯论坛的域名信息,如图2-4所示是由此得到的其他更多信息。图2-3 域名信息图2-4 目标网络其他信息

通过查看Whois的输出,攻击者会得到一些非常有用的信息,例如,得到一个物理地址、一些人名和电话号码(可利用此来发起一次社会工程攻击),非常重要的是通过Whois可获得攻击域的主要的(及次要的)服务器IP地址。

2.2.3 社会工程学

社会工程学是一种攻击行为,是攻击者利用人际关系的互动性所发出的攻击。通常攻击者如果没有办法通过物理入侵的办法直接取得所需要的资料时,就会通过电子邮件或者电话对所需要的资料进行骗取,再利用这些资料获取主机的权限以达到攻击的目的。

社会工程学攻击要求攻击者不仅知道目标的计算机信息,并且必须通过信息收集了解目标弱点,即规则弱点和人为弱点,然后开始精心地构造陷阱让目标交出攻击者所想要的信息。攻击者在信息收集遇到困难时会把矛头指向目标的系统管理员,因为人在这个整体中往往是最不安全的因素。攻击者通过搜索引擎对系统管理员的一些个人信息进行搜索,如电子邮件地址、MSN、QQ等关键词,分析出这些系统管理员的个人爱好,常去的网站、论坛甚至个人的真实信息,然后利用掌握的信息与系统管理员拉关系套近乎,骗取对方的信任,使其一步步落入攻击者设计好的圈套,最终造成系统被入侵。例如,盗取QQ的方法中除了本地和远程盗窃密码外,还可以通过和对方聊天,通过了解对方的资料,如生日、姓名等信息,通过找回密码的提示问题获得QQ的密码。所以通过Whois或其他方式搜索到的基本信息,看似平常,却可以被攻击者所利用。

2.2.4 Nslookup

Nslookup用于显示可用来诊断域名系统(DNS)基础结构的信息。在Windows和UNIX环境下都可以使用此工具。Nslookup实际是Windows下的运行命令。

语法为:nslookup[-子命令……][{要查找的计算机|-服务器}]。如图2-5所示是对某论坛的IP查询。图2-5 Nslookup命令结果

同样,Nslookup中还提供给我们更多的参数方便查询更多的信息。例如,首先通过键入Nslookup进入会话状态,再输入显示全部信息的set type=any,随后输入命令获取目标主机DNS服务器的IP,继而通过使用ls命令显示该域的所有子域名,如图2-6和图2-7所示。图2-6 Nslookup详细结果(一)图2-7 Nslookup详细结果(二)

在图2-7中显示的结果分为3列,第一列是各子域的记录名,第二列指出记录的类型,可以从结果中看到邮件服务器、DNS服务器等重要信息。在结果中用到的参数类型含义如表2-2所示。

关于Nslookup的详细的操作可以参考Nslookup使用说明。

2.3 找到网络地址范围

当攻击者得到域名以及部分IP地址后,下一步就是需要找出网络的地址范围或者子网掩码。需要知道地址范围的主要原因是:保证攻击者能集中精力对付一个网络而不闯入其他网络。这样做有两个原因:第一,假设有地址10.10.10.5,要扫描整个A类地址需要一段时间,如果正在跟踪的目标只是地址的一个小子集,那么就无需浪费时间;第二,一些公司有比其他公司更好的安全性,如果攻击者闯入有良好安全性的公司,那它会报告这次攻击并发出报警,因此跟踪较大的地址空间增加了危险。

2.3.1 ARIN

已知域名后还可以通过其他方式查询域名对应的网络地址分配的信息。目前世界上有三大NIC分别是:ARIN(American Registry for Internet Numbers)负责地区为北美、南美、加勒比地区和北非;RIPE NCC(RIPE Network Coordination Centre)负责地区为欧洲、东非和中非;APNIC(Asia Pacfic Network Information Centre)负责地区为亚太地区,访问这些数据检索库也可以得到相应的信息。

ARIN允许任何人搜索Whois数据库找到网络上的定位信息、自治系统号码(ASN)、有关的网络句柄和其他有关的接触点(POC)。基本上,常规的Whois会提供关于域名的信息。ARIN Whois允许询问IP地址,帮助找到关于子网地址和网络如何被分割的策略信息。例如,在Whois中输入218.77.130.××查询,得到结果如图2-8所示,可以从该结果中看出,这是一个位于杭州IDC的服务器,并且可以得到管理者和技术人员的名字和通信方式,通过点击IP Address后的W\R\P\D\T可以得到进一步关于域名、IP地址和路由等信息。图2-8 ARIN Whois查询结果

2.3.2 Traceroute

Traceroute可以知道一个数据包通过网络的路径。通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一相同的出发点(Source)到达某一相同的目的地(Destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。在UNIX系统中,我们称之为Traceroute,在MS Windows中被称为Tracert命令。在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行:Traceroute hostname,而在Windows系统下是执行Tracert的命令。

以公司为例,连接到Internet上的公司有一个外部服务器把网络连到ISP或者Internet上,所有去公司的流量必须通过外部路由器,否则没有办法进入网络,并且大多数公司有防火墙,所以Traceroute输出的最后一跳会是目的机器,倒数第二跳会是防火墙,倒数第三跳会是外部路由器。通过相同外部路由器的所有机器属于同一网络,通常也属于同一公司。因此攻击者查看通过Traceroute到达的各种IP地址,看这些机器是否通过相同的外部路由器,就知道它们是否属于同一网络。

Tracert通常使用以下命令格式:

tracert[-d][-h maximum_hops][-j computer-list][-w timeout]target_name

该命令通过向目的地发送具有不同生存时间(TL)的Internet控制信息协议(ICMP)回应报文,以确定至目的地的路由。路径上的每个路由器都要在转发该ICMP回应报文之前将其TTL值至少减1,因此TTL是有效的跳转计数。当报文的TTL值减少到0时,路由器向源系统发回ICMP超时信息。通过发送TTL为1的第一个回应报文并且在随后的发送中每次将TTL值加1,直到目标响应或达到最大TTL值,Tracert可以确定路由。通过检查中间路由器发回的ICMP超时(Time Exceeded)信息,可以确定路由器。参数定义如表2-3所示。

例如,使用NT系统中的Tracert命令。(用户可用:开始运行输入“command”调出command窗口使用此命令)

结果中最左边的数字(1~20)代表从机器到目标机中转次数,其后的内容表示时间和IP地址。从结果看1~5次跳转是本机网关,DNS服务器,DHCP服务器等;6~9为域名服务器信息,10~20为CSDN的ISP信息。如果有*号出现,表示联机逾时,当然也可能是某些路由器对于Tracert命令不可见的原因。

同样,使用Traceroute工具也可以了解网络IP和路由的情况。在一台主机安装了相关的Traceroute的CGI程序后,您可以输入相应的目的主机的IP地址或者名字,就可以得到相关的数据:

例如,在美国的主机http://bs.mit.edu:8001/cgi-bin/traceroute上查询其到中国南京的北极星站点www.lodesoft.com(中国Webmaster联盟的合作伙伴)数据传输的路径。

查询输入如下:

Traceroute Hack

可以搜索该索引。请键入要搜索的关键字:www.lodesoft.com。

查询结果如下:

2.3.3 网内拓扑结构查询

在了解网络IP分布和路由以外,获取网内拓扑结构是确定采用攻击方式最直接的方法。而一般情况下各个公司或企业的网络拓扑图作为公司的一般信息都是可以公开的信息。如图2-9、图2-10所示为某中学和某大学网络拓扑图。

当然,Nslookup和Tracert等命令也能够帮助攻击者获取网内结构的信息,也可以通过网管软件解读设备的SNMP信息来做一定判断。例如,what’s up Gold和NetworkView等软件。图2-9 中学网络拓扑结构图图2-10 大学网络拓扑结构图

2.3.4 SNMP

SNMP(Simple Network Management Protocol,简单网络管理协议)用于在网络中管理一些配置,如防火墙、计算机系统及路由器等,并提供了一种从网络上的设备中收集网络管理信息的方法。从路由器到计算机、打印机,所有连入网络中的设备都可以通过SNMP来监控和管理,因此被网络管理员所广泛使用。

几乎所有的网络设备和操作系统都支持SNMP,微软为所有版本的Windows系统都提供了SNMP协议。但微软称该协议并不会默认安装在操作系统中,需要用户手动启动SNMP服务。SNMP使用未加密的口令(Community Strings)作为认证的唯一机制。Community Strings是基于SNMP协议信息通信时使用的一种查询密码。当使用特殊的客户端应用程序时,通过该Community Strings的验证,将获得对应的权限(只读或者读写),对SNMP中的管理信息库(Management Information Base, MIB)进行访问;而管理信息库中则保存了系统所有的重要信息。也就是说,如果可以知道Community Strings这个查询密码,我们就可以扫描出系统的信息了。很多网络设备厂商以及操作系统厂商,在初始状态下,都使用比较统一的查询密码。大多数SNMP设备的默认口令为“public”,也有少数第三方软件供应商把口令改为“private”,这给攻击者提供了方便。攻击者可以利用字典猜测,SNMP存在的漏洞远程重新配置或关掉设备,通过SNMP扫描可得到远程主机大量的信息,通过分析这些扫描的信息制定攻击计划。

使用Resource Kit里面的工具Snmputil就可以达到获取信息的目的,常用的命令格式如下所示。

snmputil walk对方ip public.1.3.6.1.2.1.1列出系统信息

2.4 本章小结

信息的收集包括使用第三方资源,查询命令、社会工程学和扫描软件等方式。本章中着重介绍了信息收集中的网络信息收集的内容、主要步骤以及所采用的技术。网络信息的收集包括使用Google Hacking等第三方资源,Whois,Nslookup和Tracert等查询命令以及专用的网络管理软件等方法。通过Google Hacking及Whois可以了解被攻击目标的基本信息;通过Nslookup命令可以探查到在DNS基础上的诸多信息;使用Traceroute和Tracert命令可以了解本机到被攻击机器之间的部分拓扑关系;使用社会工程学及其他网络管理软件,也有助于帮助攻击者查找被攻击目标的诸多有用信息。

对于网络信息的收集还可以使用扫描的方式来完成,扫描的工作多把收集网络信息和系统信息放在一起完成,因而,对于扫描器扫描实现信息收集的方式方法我们将在下一章——系统信息收集技术中进行介绍。

第3章 系统信息收集技术

内容简介:

获取了攻击所需要的网络信息后,接下来要做的就是获取攻击目标的系统信息。系统信息的获取包括以下内容。(1)活动主机的查找。通过Ping命令和Nmap和ARP协议判断攻击网络中活动的主机。(2)端口开放和端口信息的了解。使用端口扫描获取开放的端口,根据固定端口的信息确定攻击的入口点。(3)操作系统判定。透过Banner及TCP协议栈和端口扫描的信息得到攻击主机操作的信息。(4)漏洞扫描。使用专门的漏洞扫描器对目标网络及主机进行漏洞的扫描,更全面地了解被攻击目标的信息。

本章将介绍系统信息的收集包括的内容、常用命令,以及系统信息收集工具的使用。阅读成果:

通过本章阅读,读者应掌握以下内容:

●系统信息收集的内容;

●Ping命令的使用;

●开放端口的扫描方法;

●特定端口的运用;

●判断操作系统的方法;

●漏洞扫描工具Namp和X-scan的作用。

3.1 活动机器查找

如果攻击者没有特定攻击目标,只有想攻击的IP地址范围时,那么首先要做的就是判断在这个IP范围内哪些机器是活动的,哪些不是。公司里一天中不同的时间有不同的机器在活动,一般攻击者可以通过在白天寻找活动的机器,然后在深夜再次查找的方法来区分工作站和服务器。服务器会一直被使用,而工作站只在正常工作日是活动的。

3.1.1 Ping命令

最常用的判断主机是否活动的方法是使用Ping命令。使用Ping命令可以测试计算机名和计算机的IP地址,验证与远程计算机的连接,通过将ICMP回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接。该命令只有在安装了TCP/IP协议后才可以使用。它的命令格式如下。

ping[-t][-a][-n count][-l length][-f][-i ttl][-v tos][-r count][-s count][[-j computer-list]|[-k computer-list]][-w timeout]destination-list

部分参数说明如下。(1)-t:Ping指定的计算机直到中断。按Ctrl+C键停止。(2)-a:将地址解析为计算机名,如图3-1所示。图3-1 Ping命令结果

对127.0.0.1使用了Ping命令加-a的参数,返回的结果中可以看到正在执行命令的主机名为Localhost,另外在结果中Bytes表示回应报文大小(以字节为单位),Time表示回应所花费的时间,TTL表示生存时间,报文经过一个路由器就减1,如果减到0就会被抛弃。(3)-f:在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段。(4)-i ttl:“生存时间”字段设置为ttl指定的值。(5)-r count:“记录路由”字段中记录传出和返回数据包的路由。count可以指定最少1台,最多9台计算机。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载