1、WINDOWS系统的入侵与防护,孙 巍2004.3.23,主要内容,WINDOWS下漏洞的类型介绍 黑客攻击的基本流程 比较常见的攻击方法 参考资料,系统漏洞是如何产生的?,漏洞也叫脆弱性(Vulnerability),是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷和不足。漏洞一旦被发现,就可使用这个漏洞获得计算机系统的额外权限,使攻击者能够在未授权的情况下访问或破坏系统。,漏洞的形成时间表,漏洞存在的位置,漏洞的层次,漏洞的分析模型,漏洞产生的原因,操作系统本身的脆弱性程序编写过程中的漏洞错误的配置,微软自带的简体中文输入法中的帮助栏包含一些选项可以打开浏览器窗口或者进行
2、一些设置。正常情况下,在用户未登录进系统时,用户不应该被允许访问这些选项。但是,在Windows 2000进行登录验证的提示界面下,用户可以打开各种输入法的帮助栏,并可以利用其中的一些功能访问文件系统。这也就绕过了Windows 2000的登录验证机制,并能以管理员权限访问系统。,漏洞产生的原因,操作系统本身的脆弱性程序编写过程中的漏洞错误的配置,Windows 9x系统提供的文件和打印共享服务可以设置口令保护,以避免非法用户的访问。然而微软NETBIOS协议的口令校验机制存在严重漏洞,使得这种保护形同虚设。服务端在对客户端的口令进行校验时是以客户端发送的长度数据为依据的。因此,客户端在发送口
3、令认证数据包时可以设置长度域为1, 同时发送一个字节的明文口令给服务端。服务端就会将客户端发来口令与服务端保存的共享口令的第一个字节进行明文比较,如果匹配就认为通过了验证。,漏洞产生的原因,操作系统本身的脆弱性程序编写过程中的漏洞错误的配置,系统配置可以看作成软件资源和硬件资源的组合。这样,计算机系统提供的应用程序和各个服务程序就是配置的一个部分。配置错误可以分为: 程序安装在不合适的位置; 程序安装时参数设置错误; 程序在安装时的访问权限错误。,主要内容,WINDOWS下漏洞的类型介绍 黑客攻击的基本流程 比较常见的攻击方法 参考资料,基本上所有的攻击都是一个流程,首先要尽可能多的了解目标主
4、机的情况,必要的时候使用扫描器,然后利用某种漏洞攻击进入,最后会清理留下的痕迹和安装后门。,流程介绍,信息收集 网络拓扑探测 常用工具软件 安装后门 清除痕迹,信息的收集,非接触式信息收集 相关信息收集在InterNet上搜索与目标的相关信息 域名注册信息查询whois,域名查询 Dns查询 目标网络结构勘查 接触式信息收集 端口扫描 漏洞扫描 操作系统探测,漏洞扫描,历史上最有名的扫描器应该说是SATAN,1995年4月在Internet上公开。SATAN将攻击者的某些攻击过程自动化从而大大的缩短了攻击所需要的时间。这个程序当初曾经引起了很大的争论,许多人怀疑发布这样的扫描程序无助于增强本来
5、已经很脆弱的网络的安全性,Nmap介绍,Nmap是一种目前最强大的信息收集工具,其中综合了各种扫描模式和OS Fingerprint 技术,以及TCP序列号预测难度评估,它的检测精度是非常令人吃惊的.,ISS介绍,国内的用户了解扫描器一般是从ISS公司的Internet Security Scanner开始的,ISS公司维持了一个称为Xforce 的研究小组来跟踪攻击技术的发展,这使得他们能够及时提供最新的版本。另外,ISS的技术文档也是一个很好的学习安全的材料,但是IIS不是一个给黑客使用的扫描器。,隐秘扫描,端口扫描几乎是攻击者必须做的一件事情,但是端口扫描很容易被发现,所以开发出所谓的S
6、tealth Attack技术。 Stealth Attack故意违反TCP 3次握手协议,利用操作系统对这些违规数据包的处理来识别系统,这样的方法包括SYN/ACK扫描,RESET扫描,XMAS扫描等。,慢速扫描,随着入侵检测技术的发展,以前所谓的Stealth Attack(隐秘攻击)手法,由于明显的违反协议规则,在网络流量中显得非常醒目,其实变得非常不隐秘。 目前看来,使用端口扫描需要足够的耐心,如果对同一主机不同端口的扫描间隔足够长的时间,几乎没有什么可靠的办法可以检测这种刺探行为。,流程介绍,信息收集 网络拓扑探测 常用工具软件 安装后门 清除痕迹,网络拓扑探测,直接对目标的攻击有时
7、候难以奏效,而需要通过逐步渗透的办法来靠近目标,特别是对于一个大的网络来说,了解目标网络的拓扑结构是很重要的。使用扫描工具可以得到一些网络构造的资料,但是还有一个办法是利用SNMP,简单网管协议。,SNMP是种网络设备之间客户机/服务器模式的简单通信协议。路由器、交换机、打印机、HUB等等都可以成为SNMP系统中的服务器方。而SNMP系统中的客户机方往往是单独的一台计算机,轮询网络设备并记录它们所返回的数据。这里允许一台服务器多个客户机的情形 。,流程介绍,信息收集 网络拓扑探测 常用工具软件 安装后门 清除痕迹,常用工具软件,在系统攻击过程中,熟练掌握一些流行的工具软件,可以使攻击变的更容易
8、.,NET命令的用法,NET命令是一个强大的命令行程序。 可以用来管理网络环境、服务、用户、登录等本地信息 ,WIN 98,WIN NT/2000都内置了NET命令 基本上NET所能实现的功能都可以用WINDOWS提供的图形化程序来实现,为什么说NET很有用呢,这是因为在攻击过程中我们通常是没有办法使用对方系统的图形界面的,一般只能够执行命令行程序。,ASPACK的用法,ASPACK压缩一个病毒或者木马程序,压缩以后的程序功能没有任何变化,有的时候自己编写木马太麻烦,如果有现成的满足要求的程序,就可以采用这种办法。,SNAKE代理跳板的用法,Snake代理跳板(SSS)是一个sock5的代理服
9、务程序,普通的Sock代理程序不支持多跳板之间的连续跳,而SSS却可支持最多达255个跳板之间的连跳。 普通的Sock代理程序之间的数据传输是不加密的,而SSS支持的跳板之间传输的数据是经过动态加密的,也就是说每次传输过程中,数据加密的方式都不相同。因此这个程序很适合安装在目标机器上,把目标机器作为攻击跳板来使用。,psExec的用法,psExec是一个很有用的程序,它的独到之处是如果知道一台远程主机的帐号和口令,那么可以在对方主机上远程执行命令,这就比用at要方便多了。这个程序是systeminternal开发的一个工具包中的一个.,NtShell的用法,NTShell是一个Window N
10、T/2000下的类似telnet服务端的程序,当你用telnet客户端和该程序连接后,就可以使用任何命令行的程序了。NTShell程序内置命令包括直接上传文件、下载文件、进程管理、添加自动运行、安装窃听登录密码的木马,使用起来非常方便。,流程介绍,信息收集 网络拓扑探测 常用工具软件 安装后门 清除痕迹,安装后门,攻击者在获得系统的权限以后,会千方百计的保持这个权限,这样即使管理员安装了安全补丁程序,攻击者仍然可以轻松的进出系统。为了达到目的,一般采用的方式是在系统中安装后门。,在Windows下有大量的后门程序,最有名的可能就是BO了,这个程序曾经造成了很大的危害,其实BO不是最好用的程序,
11、原因是它太有名,几乎所以的杀毒软件都能发现它。,后门程序有一个很大的缺点,就是它一般要在系统中开一个监听端口。通过检查非法端口很容易发现它,由于这个问题,对安装了防火墙的系统一般无效。 有些主动连出来的后门可以克服这个缺点。,反弹端口技术和HTTP 隧道,防火墙有这样一个特性:防火墙对于连入的连接往往会进行非常严格的过滤,但是对于连出的连接却疏于防范。于是,与一般的软件相反,反弹端口型软件的服务端(被控制端)主动连接客户端(控制端),就是反弹端口技术的原理。,HTTP隧道:简单的来说,就是把所有要传送的数据全部封装到 HTTP 协议里进行传送,就可以通过 HTTP、SOCKS4/5 代理,而且
12、也不会有什么防火墙会拦截。,留下有漏洞的程序,在目标主机上留下一些有漏洞的程序是相当隐蔽的,比如在对方机器的/_vti_bin/目录下留下一个有溢出漏洞的dvwssr.dll,下次我们就可以很方便的溢出这个DLL来获得访问权限了。,流程介绍,信息收集 网络拓扑探测 常用工具软件 安装后门 清除入侵痕迹,清除入侵痕迹,清除下面日志: IIS FTP Scheduler 系统日志以上就是黑客入侵的基本流程,主要内容,WINDOWS下漏洞的类型介绍 黑客攻击的基本流程 比较常见的攻击方法 参考资料,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙
13、,攻击IIS,IIS是一种非常流行的Web服务器,IIS具有灵活的脚本和服务器端功能,通过其他流行的编程工具,例如VB,ASP,很容易在IIS建立应用。特别在国内的小型企业级网站和政府网站上IIS几乎随处可见。但是任何东西都是有代价的,IIS的安全性一直不是太好,已经发现了大量的漏洞,这些漏洞使得攻击IIS傻瓜化了.,IIS的安全性防护,不使用缺省安装目录名:C:inetpub 删除IIS例子程序的所在目录,如C:inetpubiissamples,C:inetpubscripts 从ISM(Internet Service Manager)中删除如下目录:IISSamples、Scripts
14、、IISAdmin、IISHelp、IISADMPWD,删除不必要的IIS扩展名映射,例如htr、hta、idc等 如果不使用server side include,删除“.shtm“ “.stm“ 和 “.shtml” 禁止缺省的www站点 禁止管理员从网络登陆,这要使用NT resource kit中的工具passprop,使用SecEdit运行最新的bastion.inf加固脚本,这个脚本改变了事件查看器、注册表等的安全设置 在需要高度安全的环境中使用SSL安全机制,当然这会将增大系统开销,增加了服务器CPU的额外负担,IIS目录权限设置,IIS的执行许可权限,执行权限 向服务器发送一个
15、如下的请求:http:/iis-server/dir/no-such-file.dll HTTP 500 - 内部服务器错误 (Internal Server error) 那么就说明这个目录的执行权限是开着 HTTP 404 - 未找到文件 那么就说明这个目录的执行权限没有开。,写权限 发送一个如下请求:PUT /dir/my_file.txt HTTP/1.1 Host: iis-server Content-Length: 10 这时服务器会返回一个100( 继续)的信息, 接着,我们输入10个字母:如果是一个 201 Created响应那么就说明这个目录的写权限是开着的,纯脚本执行权限
16、 发送一个如下一个请求:http:/iis-server/dir/no-such-file.asp 返回404文件不存在说明有执行权限,返回403则是没有开。,IDA/IDQ溢出 .printer溢出 dvwssr溢出相关的内容可以到网络上去检索,几种溢出的攻击,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙,拒绝服务攻击,从技术上讲拒绝服务攻击是比较简单的但是这种攻击方法值得注意,原因是: 第一,由于简单,所以很容易实现。 第二,它的确能够造成很大的危害,特别是针对银行和电子商务网站的攻击危害很大,最近对未来信息战的研究认为,DoS攻击
17、会成为信息战中的重要武器。用于破坏敌方的通讯系统。 第三,这种攻击非常难以追踪。,SYN Flood,利用服务器的连接缓冲区(Backlog Queue),利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。 如果SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续SYN请求发送,直到缓冲区中都是只有SYN标记的请求。,基于IP欺骗的DoS,这种攻击利用RST位来实现。假设现在有一个合法用
18、户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。 攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。,Smurf,Smurf攻击是一种古老的攻击,攻击者冒充广播地址,如192.168.1.255向目标发送echo request,目标将会接收到来自192.168.
19、1.*的ICMP Echo应答,如果网络具有很高的速度,这些包产生的总带宽可能上百兆。,IGMP碎片,Kiss of Death(kod.c)它的攻击目标是没有打过补丁的Windows 98系统,包括98第二版。受攻击的系统通常会蓝屏,按任意键后系统似乎恢复正常,但是网络连接已经被切断,一般要重新启动机器才能恢复正常。 这种攻击的特征是将一个有效的IGMP数据包分为11段,逆序发出,Windows 98不能正确处理这种数据包。,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙,分布式拒绝服务攻击,分布式拒绝服务是利用高带宽的主机,使用多种拒
20、绝服务攻击手段,如SYN Flood同时攻击某个目标,使目标消耗掉大量的系统资源从而无法正常工作。 实施拒绝服务攻击并不容易,攻击者必须首先占领多台具有高带宽的主机。2002年用来攻击Yahoo等网站的程序包括TFN2K,Trinoo、TFN和Stacheldraht。其中TFN2k堪称黑客技术的杰作。,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙,其他攻击方法,随着我们对系统了解的不断深入,可能采取的攻击方法和手段就越多,NT IPC$空口令,NULL会话是同服务器建立的无信任支持的会话。一个会话包含用户的认证信息,而NULL会话是没
21、有用户的认证信息,也就好比是一个匿名的一样。利用空会话我们可以得到非常多的信息,比如枚举帐号。 还可以使用CIS来进行空会话扫描,这种扫描可以列举对方机器的用户名,还可以猜出简单的密码。,WIN2000本地提升权限,方法1:拿对方的%system%repairsam.*,然后回去用l0pht破解 问题在于:(1)不一定可以访问该文件,这取决于你的身份和人家的设置(2)同时这个文件是上次备份时的帐号列表(也可能是第一次安装时的),以后更改帐号的话,就没用了。,方法2:使用程序进行远程破解,猜口令。 问题是: (1)如果对方设置了帐号锁定的话,你破解几次,该帐号就锁定了,不能再破解; (2)对方要
22、开放netbios连接,如果用防火墙过滤了的话就不行了。 方法3:pipeupadmin 2000, 在本机运行可以把当前用户帐号加入admin组,方法4: WIN2000的net dde服务漏洞可以执行任意程序,可以借此更改密码、添加用户等。 问题:需要正式用户才能运行攻击程序,guest不行 方法5:WIN2000的输入法漏洞,可以本地执行程序提升权限,如果开放终端服务的话,远程也可以。 方法6: MUP内核溢出,方法7:守株待兔:上传木马,然后运行,下次重起动后,就是本地登录用户的权限了。可能就是admin 。问题在于:(1)杀毒软件可能阻止你的木马运行; (2)有的木马在guests下
23、不能运行,可能与添加自动运行的方式有关;如没有权限向注册表的自动运行位置添加,不能写入%system%system32目录,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙,绕过IDS,攻击和检测是相互促进发展的,IDS技术的出现和进步,使得系统攻击的难度大大提高了,可以这样讲,如果系统安装了一套比较完善的IDS,那么一般入门级的攻击者是很难成功的。,一般IDS的局限性,目前大多数实用的IDS采用的主要是字符串匹配的技术,根据专家的经验,提取出若干关键字以及根据协议报头的某些特点组成一个规则库. 许多IDS检测缓冲区溢出攻击的方法非常简单,
24、或者是根据黑客站点上公布的攻击程序源码,以类似于检测病毒特征码的方式,检查是否出现某些固定的二进制数字,或者检测是否有大量的NOP指令(空指令)出现,在X86芯片中NOP指令的机器码是0x90。这种检测方式的根据是:通常在编写缓冲区溢出攻击程序时,由于不能准确确定返回地址,需要在溢出代码中添加若干的NOP,这是一种广为人知的手法。,如果IDS采用的检测技术主要是简单的模式匹配,那么几乎总是有办法避开检测。其根本的原因是一种攻击方法的本质特征并不在于攻击代码中出现了某些特殊的字符,简单模式匹配的办法在检测病毒的时候可能很有效,但是网络攻击所面对的环境远比病毒复杂得多 。,攻击IDS,即直接对NI
25、DS进行攻击。因为NIDS是安装在一定的操作系统之上,而且本身也是一个 复杂的TCP/IP操作系统,这意味着NIDS本身可能受到攻击。如果安装IDS的操作系统本身存在漏洞或IDS自身防御力差,此类攻击很有可能造成IDS的探测器丢包、失效或不能正常工作。,一般的NIDS都有入侵响应的功能,如记录日志,发送告警信息给console、发送警告邮件,防火墙互动等,我们可以利用IDS的响应进行间接攻击,使入侵日志迅速增加,塞满硬盘;发送大量的警告信息,使管理员无法发现真正的攻击者,并占用大量的cpu资源,攻击NIDS最有效的办法可以模拟网络攻击,如Coretez Giovanni写的Stick程序,St
26、ick可以在2秒内模拟450次攻击,快速的告警信息的产生会让IDS反应不过来、产生失去反应甚至死机现象。,其他方法,缓慢扫描:一般的IDS是通过在一定时间内某个IP扫描过的端口数或IP数是否超过阀值来判断是否扫描,所以如果扫描的间隔超过IDS中指定的时间,而且采用多个IP协同扫描的话,IDS就不能判断攻击者是否扫描。 地址欺骗:利用代理或者伪造IP包进行攻击,隐藏攻击者的IP,使NIDS不能发现攻击者所在。目前的NIDS只能根据异常包中的地址判断攻击来源。,安装后门的时候最好不要使用公开的木马程序 不要安装在一些众所周知的地方,例如注册表的run子键下面,或者在autoexec.bat中启动。
27、以上这些方法都有可能绕过IDS的检测,比较常见的攻击方法,攻击IIS 拒绝服务攻击 分布式拒绝服务攻击 其他攻击方法 绕过IDS 突破防火墙,突破防火墙,简单的包过滤防火墙不能跟踪TCP的状态,很容易受到拒绝服务攻击,一旦防火墙受到DOS攻击,他可能会忙于处理,而忘记了他自己的过滤功能 单纯的过滤数据包,很容易被精心够造的攻击数据包欺骗,如nmap的攻击扫描,就有利用syn包,fin包,reset包来探测防火墙后面的网络。 一个完全的状态检测防火墙,他在发起连接就判断,如果符合规则,就在内存登记了这个连接的状态信息(地址,port,选项等),后续的属于同一个连接的数据包,就不需要在检测了。直接
28、通过。而一些精心够造的攻击数据包由于没有在内存登记相应的状态信息,都被丢弃了。这样这些攻击数据包,就不能饶过防火墙了。,协议隧道,协议隧道的攻击思想类似与VPN的实现原理,攻击者将一些恶意的攻击数据包隐藏在一些协议分组的头部,从而穿透防火墙系统对内部网络进行攻击。 例如,许多简单地允许ICMP回射请求、ICMP回射应答和UDP分组通过的防火墙就容易受到ICMP和UDP协议隧道的攻击。Loki和lokid(攻击的客户端和服务端)是实施这种攻击的有效的工具。,第一类攻击防火墙的方法是探测在目标网络上安装的是何种防火墙系统并且找出此防火墙系统允许哪些服务。 第二类攻击防火墙的方法是采取地址欺骗、TCP序号攻击等手法绕过防火墙的认证机制,从而对防火墙和内部网络破坏。,很多攻击防火墙的办法的前提是要在防火墙内部安装一个程序,如果对方的WEB、MAIL系统有漏洞的话这是不难实现的。 但是如果这个前提不能够满足,那么如果目标安装了防火墙其实还是很麻烦的,攻击成功的可能性很小。在这种情况下还是通过客户端攻击,或者从旁边渗透的方法比较好。,