Windows系统安全知识系统安全:安全度量度量标准:TrustedComputerSystemEvaluationCriteria(TCSEC,1985)系统安全程度的七个等级:(D1、C1、C2、B1、B2、B3、A1)安全威胁:系统为什么不安全网络建设非常迅猛,较少考虑安全问题缺乏安全知识和意识网络仍然在不断发生变化安全工具不能完全自动处理安全漏洞和威胁缺乏安全管理人员直接经济损失名誉、信誉受损正常工作中断或受到干扰效率下降可靠性降低其他严重的后果安全威胁:安全事故的后果内容黑客技术介绍篇Windows安全原理篇Windows安全配置篇黑客技术介绍篇什么是黑客常见黑客攻击方式黑客攻击手法(一)黑客攻击手法(二)黑客攻击手法(三)黑客攻击手法(四)什么是黑客通过网络,利用系统中的一些漏洞和缺陷,对计算机系统进行入侵的人hacker与cracker:HackerCracker,但对于大众,hacker即cracker常见黑客攻击方式直接入侵攻击主机盗用破坏或者修改数据拒绝服务(缩写DoS)等等…常见黑客攻击思路1.收集信息2.初步获得主机权限3.获得最高管理员权限4.清除攻击日志,留下后门5.扩大攻击范围黑客攻击手法(一)收集信息•扫描Nmap扫描的演示•社会工程•公开信息•利用系统漏洞snmp的默认配置Netbios默认开放,搜集演示IIS的安全问题……黑客攻击手法(二)尝试获得主机入口,初步获得权限•密码猜测•远程溢出•Sniffer•社会工程•程序漏洞•绕道黑客攻击手法(三)尝试获得最高权限•本地溢出•木马•社会工程•窃取,欺骗•程序漏洞黑客攻击手法(四)扩大攻击范围•清除系统记录Log记录清除•留下系统后门Bindshell(cmd.exe)等•跳跃攻击其他主机Windows安全原理篇1.Windows系统的安全架构2.Windows的安全子系统3.Windows的密码系统4.Windows的系统服务和进程5.Windows的日志系统Windows系统的安全架构WindowsNT的安全包括6个主要的安全元素:审核(Audit),管理(Administration),加密(Encryption),访问控制(AccessControl),用户认证(UserAuthentication),安全策略(CorporateSecurityPolicy)。WindowsNT系统内置支持用户认证(UserAuthentication),访问控制(AccessControl),管理(Administration),审核(Audit)。Windows系统的安全组件作为C2级别的操作系统中所包含的安全组件:访问控制的判断(Discretionaccesscontrol)按照C2级别的定义,Windows支持对象的访问控制的判断。这些需求包括允许对象的所有者可以控制谁被允许访问该对象以及访问的方式。对象重用(Objectreuse)当资源(内存、磁盘等)被某应用访问时,Windows禁止所有的系统应用访问该资源,这也就是为什么WindowsNT禁止undelete已经被删除的文件的原因。强制登陆(Mandatorylogon)与WindowsforWorkgroups,Windwows95,Windows98不同,Windows2K/NT要求所有的用户必须登陆,通过认证后才可以访问资源。由于网络连接缺少强制的认证,所以Windows作为C2级别的操作系统必须是未连网的。审核(Auditing)WindowsNT在控制用户访问资源的同时,也可以对这些访问作了相应的记录。对象的访问控制(Controlofaccesstoobject)WindowsNT不允许直接访问系统的某些资源。必须是该资源允许被访问,然后是用户或应用通过第一次认证后再访问。Windows系统的对象为了实现自身的安全特性,Windows2K/NT把所有的资源作为系统的特殊的对象。这些对象包含资源本身,Windows2K/NT提供了一种访问机制去使用它们。由于这些基本的原因,所以我们把Windows2K/NT称为基于对象的操作系统。Microsoft的安全就是基于以下的法则:•用对象表现所有的资源•只有Windows2K/NT才能直接访问这些对象•对象能够包含所有的数据和方法•对象的访问必须通过Windows2K/NT的安全子系统的第一次验证•存在几种单独的对象,每一个对象的类型决定了这些对象能做些什么Windows中首要的对象类型有:文件文件夹打印机I/O设备窗口线程进程内存这些安全构架的目标就是实现系统的牢固性。从设计来考虑,就是所有的访问都必须通过同一种方法认证,减少安全机制被绕过的机会。Windows安全子系统的组件WindowsNT安全子系统包含五个关键的组件:安全标识符(Securityidentifiers)访问令牌(Accesstokens)安全描述符(Securitydescriptors)访问控制列表(Accesscontrollists)访问控制项(AccessControlEntries)Windows安全子系统的组件安全标识符(SecurityIdentifiers):就是我们经常说的SID,每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一SID,当你重新安装WindowsNT后,也会得到一个唯一的SID。SID永远都是唯一的,由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。例:S-1-5-21-1763234323-3212657521-1234321321-500访问令牌(Accesstokens):用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给WindowsNT,然后WindowsNT检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,WindowsNT将会分配给用户适当的访问权限。访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。Windows安全子系统的组件安全描述符(Securitydescriptors):WindowsNT中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。访问控制列表(Accesscontrollists):访问控制列表有两种:任意访问控制列表(DiscretionaryACL)、系统访问控制列表(SystemACL)。任意访问控制列表包含了用户和组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。而系统访问控制列表是为审核服务的,包含了对象被访问的时间。访问控制项(Accesscontrolentries):访问控制项(ACE)包含了用户或组的SID以及对象的权限。访问控制项有两种:允许访问和拒绝访问。拒绝访问的级别高于允许访问。当你使用管理工具列出对象的访问权限时,列表的排序是以文字为顺序的,它并不象防火墙的规则那样由上往下的,不过好在并不会出现冲突,拒绝访问总是优先于允许访问的。Windows安全子系统安全子系统包括以下部分:•Winlogon•GraphicalIdentificationandAuthenticationDLL(GINA)•LocalSecurityAuthority(本地安全认证,LSA)•SecuritySupportProviderInterface(安全支持提供者的接口,SSPI)•AuthenticationPackages(认证包)•SecuritySupportProviders(安全支持提供者)•NetlogonService(网络登陆)•SecurityAccountManager(安全账号管理者,SAM)Windows子系统实现图Winlogon,本地安全认证LSA以及Netlogon服务在任务管理器中都可以看到,其他的以DLL方式被这些文件调用。Windows安全子系统WinlogonandGINA:Winlogon调用GINADLL,并监视安全认证序列。而GINADLL提供一个交互式的界面为用户登陆提供认证请求。GINADLL被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的GINADLL。Winlogon在注册表中查找\HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon如果存在GinaDLL键,Winlogon将使用这个DLL,如果不存在该键,Winlogon将使用默认值MSGINA.DLLWindows安全子系统本地安全认证(LocalSecurityAuthority):本地安全认证(LSA)是一个被保护的子系统,它负责以下任务:•调用所有的认证包,检查在注册表\HKLM\SYSTEM\CurrentControlSet\Control\LSA下AuthenticationPAckages下的值,并调用该DLL进行认证(MSV_1.DLL)。在4.0版里,WindowsNT会寻找\HKLM\SYSTEM\CurrentControlSet\Control\LSA下所有存在的SecurityPackages值并调用。•重新找回本地组的SIDs和用户的权限。•创建用户的访问令牌。•管理本地安装的服务所使用的服务账号。•储存和映射用户权限。•管理审核的策略和设置。•管理信任关系。Windows安全子系统安全支持提供者的接口(SecuritySupportProvideInterface):微软的SecuritySupportProvideInterface很简单地遵循RFC2743和RFC2744的定义,提供一些安全服务的API,为应用程序和服务提供请求安全的认证连接的方法。认证包(AuthenticationPackage):认证包可以为真实用户提供认证。通过GINADLL的可信认证后,认证包返回用户的SIDs给LSA,然后将其放在用户的访问令牌中。Windows安全子系统安全支持提供者(SecuritySupportProvider):安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下,WindowsNT安装了以下三种:•Msnsspc.dll:微软网络挑战/反应认证模块•Msapsspc.dll:分布式密码认证挑战/反应模块,该模块也可以在微软网络中使用•Schannel.dll:该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如Verisign。这种认证方式经常在使用SSL(SecureSocketsLayer)和PCT(PrivateCommunicationTechnology)协议通信的时候用到。Windows安全子系统网络登陆(Netlogon):网络登陆服务必须在通过认证后建立一个安全的通道。要实现这个目标,必须通过安全通道与域中的域控制器建立连接,然后,再通过安全的通道传递用户的口令,在域的域控制器上响应请求后,重新取回用户的SIDs和用户权限。安全账号管理者(SecurityAccountManager):安全账号管理者,也就是我们经常所说的SAM,它是用来保存用户账号和口令的数据库。保存了注册表中\HKLM\Security\Sam中的一部分内容。不同的域有不同的Sam,在域复制的过程中,Sam包将会被拷贝。Windows2000本地登陆过程当从Windows2000ProfessionalorServer登录时,Windows2000用两种过程验证本地登录.Windows2000尝试使用Kerberos作为基本验证方式.如果找不道KeyDistributionCenter(KDC)服务,Windows会使用