5月,微软在13日发布月度安全更新,其中 有KB2871997和 KB2928120两个知识库文章Knowledgeased(而KB2871997甚至不是Security Bulletin)。对于无论是作为攻击的渗透测试人员还是作为防守的管理员都不容忽视这两个更新。 KB2871997针对大名鼎鼎的PTH(pass the hash攻击方式), KB2928120针对GPP(Group Policy Preference)可参考freebuf以前的报道。下面看看安全研究人员Craig对此分析。

KB2871997

这个被称为"PTH杀手"的更新,将使本地帐号不再可以用于远程接入系统,不管是 network logon 还是 interactive login,这就包括像使用 PSEXEC工具甚至IPC远程浏览 C$ ,从表面上看这就有效的降低了一些攻击场景下的威胁。例如一台机器被攻陷后,dump出所有hash,找到本地管理员的hash,再拿着去攻击网络内其他使用相同密码的机器,往往整个网络就这样被控制下来了。

然而,在 Craig 的测试中发现,所有以上的情况都是没说错,但是唯独默认的 Administrator (SID 500)帐号例外,请注意把administrator改名了,它的SID仍然是500,只要它还是 SID 500那么以前的攻击方法还是有效。

所以作为防守方的管理员应该要禁用默认的 local admin帐号,然后重新新建常规的 local user帐号,再把它加进去管理员组。如果管理员做到这样了,那么黑客dump到的本地hash将不再在网络重放中有效,不管是hash还是实际的 credentials。Windows 7默认是禁用 Administrator帐号的,但是 Craig 发现往往在有些企业环境里,这个 Administrator帐号又会被启用起来,只是改了个名字, 也就是说仍然是SID 500,那么这个补丁将帮不了你。

Craig在MSF和powershell里用WMI和psexec_command测试过,都有同样的结果——所有 local account访问都被deny了,除了 SID 500。 Domain hashes和SID 500 的hash仍然可以 pass the hash。

在下图可以看到仍然可以在测试的域环境里一个成员中执行PSEXEC,使用的就是一个SID还是500的帐号,虽然它已经名为renamedAdmin,

如下图所示针对 renamedAdmin, pass the hash攻击仍然有效,但是rdptest就不行了。

下图你可以看到rdptest在本地管理员组,但是已经不是SID 500了。

mimikatz

提到 KB2871997不得不说的还有 mimikatz,它通常已经攻陷了管理员用RDP连接过系统后,就可以用 mimikatz拿到管理员的明文密码了。在 KB2871997补丁以前,即便管理员是正确的退出RDP连接,而不只是关掉连接窗口,仍然可以随时使用mimikatz拿到明文密码。 KB2871997补丁以后,只要你是正常的log off你的RDP连接,那么就会清除内存中的 credentials,但是如果比只是关掉连接的窗口,那么mimikatz的攻击仍然是有效的。 Craig的测试发现,系统并不会立即清除内存中的 credentials,但是大约30秒左右credentials就没有了。

针对Craig的这个说法,小编发现在Craig测试几天后, mimikatz就发布了一个更新的版本mimikatz 2.0 alphahttps://github.com/gentilkiwi/mimikatz/releases/ ,并且更新里说明可以应对 KB2871997。"Pass-The-eKeys now also working on Windows 7/8 if KB2871997 installed"是不是生活顿时又充满了希望呢!

KB2928120

再说说GPP,来自官方说法是"某些组策略首选项可以存储密码。此功能将被删除,因为通过这种方式存储的密码不安全"。

以下组策略首选项将不再允许保存用户名和密码:

,驱动器映射2,本地用户和组3,计划任务4,服务5,数据源

这将影响环境中依赖于这些首选项中包含的密码的任何现有组策略对象 (GPO) 的行为。此外,它还会阻止通过使用此功能创建新的组策略首选项。

对于"驱动器映射"、"本地用户和组"和"服务",您也许能够通过 Windows 中其他更加安全的功能实现相似的目标。

对于"计划任务"和"数据源",您将无法达到通过不安全的组策略首选项密码功能所能实现的目标。

Craig测试发现如果打完这个补丁后,再去之前创建的 admin account,双击他就会出行一个警告消息

点继续就会看到密码仍然在那里,但是已经不能被修改了。密码部分已经灰了。

当再新建帐号时,已经不能再设置密码了。

原文:

http://www.pwnag3.com/2014/05/what-did-microsoft-just-break-with.htm

MS14-025引起的问题 - 2的更多相关文章

  1. php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27)

    php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27) 比较好的模版 免费模板网,提供大量DIV+CSS布局网页模板下载及后台管理 ...

  2. [反汇编练习] 160个CrackMe之025

    [反汇编练习] 160个CrackMe之025. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  3. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  4. No.025:Reverse Nodes in k-Group

    问题: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...

  5. 025医疗项目-模块二:药品目录的导入导出-HSSF导入类的封装

    上一篇文章提过,HSSF的用户模式会导致读取海量数据时很慢,所以我们采用的是事件驱动模式.这个模式类似于xml的sax解析.需要实现一个接口,HSSFListener接口. 原理:根据excel底层存 ...

  6. Java for LeetCode 025 Reverse Nodes in k-Group

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...

  7. 025. asp.net中GridView的排序和过滤

    前台HTML代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defaul ...

  8. [Effective C++ --025]考虑写出一个不抛异常的swap函数

    引言 在我的上一篇博客中,讲述了swap函数. 原本swap只是STL的一部分,而后成为异常安全性编程的脊柱,以及用来处理自我赋值可能性. 一.swap函数 标准库的swap函数如下: namespa ...

  9. 李洪强漫谈iOS开发[C语言-025]-赋值运算符案例

  10. 基于visual Studio2013解决算法导论之025双向循环链表

     题目 双向循环链表 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <time.h> #in ...

随机推荐

  1. VR(虚拟现实)开发资源汇总

    Daydream https://developers.google.cn googlevr Google VR for Android GVR SDK and NDK Release Notes c ...

  2. VIM的一些操作小技巧

    vim的设计理念是:组合. 命令的组合,模式的组合,     普通模式 左: h 上:k 下:j 右 : l   i : 当前光标处插入 I: 到光标所在行的行首进入插入模式 a: 在当前光标的后一位 ...

  3. Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装

    简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...

  4. 小记:Quartz 当 Job 执行时间超过触发间隔时间时所发生的情况

    一个普通的 Job 实现如下: public class Job1 : IJob { public void Execute(IJobExecutionContext context) { Conso ...

  5. web api 解决跨域的问题

    web api 总是会遇到跨域的问题,今天我找到了如下方法解决跨域: 1: a:在配置文件中的 加上如下代码 <system.webServer> <httpProtocol> ...

  6. 重写NSLog,Debug模式下打印日志和当前行数

    在pch文件中加入以下命令,NSLog在真机测试中就不会打印了 //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fpr ...

  7. thinkphp模板中截取中文字符串的方法分享

    前段用thinkphp写了一个系统,感觉thinkphp学起来比较容易,开发起来了比较顺手,其中一个关键的因素就是它的模版引擎相当强大,使用方法跟smarty类似,在模版中还可以用php代码,有模版包 ...

  8. JS 判断当前使用浏览器名及版本

    由于我的后台系统的上传图片不支持IE浏览器的,所以我需要判断公司人员在使用后台系统的时候,是否使用的浏览器是IE的. // 获取当前浏览器名 及 版本号 function appInfo(){ var ...

  9. Linux Zynq GPIO中断

    注册中断:对每个pin进行循环遍历for (pin_num = 0; pin_num < min_t(int, ZYNQ_GPIO_NR_GPIOS,  (int)chip->ngpio) ...

  10. log4j.propertise配置文件

    # level : 是日志记录的优先级,分为OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL或者您定义的级别.Log4j建议只使用四个级别,优先级从高到低分别是ERROR.WAR ...