科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道WindowsWorkstation服务远程漏洞(4)

WindowsWorkstation服务远程漏洞(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

微软最近为了减轻系统管理员的工作负担,把发布安全公告的周期从不定期改为定期发布,这无疑给系统管理员安装补丁提供了极大的方便,可以一起安装几个补丁。
  • 评论
  • 分享微博
  • 分享邮件
    所以,目标系统以空会话的权限去打开日志文件会失败,那么也就无法触发后面的缓冲区溢出了!所以,只有当目标系统是FAT格式文件系统时(因为FAT文件系统没有权限一说),或日志文件任何人具有可写权限时(没有管理员会这样设置吧?),这种方法才能攻击成功!

  2、通过NetAddAltemateComputerName函数发起攻击  这个函数只在WindowsXP系统中的neta过32.dll中实现了,在Windows2000中没有实现这个函数,所以不能调用这个函数对Windows2000发起攻击,只能在WindowsXP平台下,对WindowsXP平台发起攻击。利用这个函数,只要能跟目标WindowsXP系统建立空会话就可以了。

  当然,我们也可以通过嗅探NetAddAlternateComputerName函数所生成的数据包,分析数据包格式,自己重组这个RPC数据包,这样就可以在别的平台上对Windnows XP发起攻击了

  3、字符转换

  从前面的汇编代码分析中我们可以看到,攻击测试时发送的超长字符串会被转换成什么字符,直接取决于vsprintf函数的第二个参数(格式化串)。

  1)NetpValidateName

  调用NetpVaUdateName函数发送超长字符串到目标系统时,目标系统会两次调用vsprintf函数把这些字符串保存在堆栈中。

  第一次的格式化串为:

  NetpValidateName:checking to see if '%ws'is valid as type%d name

  第二次的格式化串为:

  NetpValidateName:,'%OWS',is not a validNetBIOS%sname:ox%1x

  对于格式化串%ws。本质上它就是一个WideChar到MultiByte的转换过程,即是说把我们源字符串当作UNICODE串,然后把它转换成ANSI字符。在不同的平台下,对于%s格式,vsprintf的处理过程还有些差别,在下一部分我们再详细阐述。  虽然第一次和第二次的格式化串中都有%ws,但在第二次的格式化串中还有一个%s,所以,利用这个攻击测试时发送的超长字符串就不会被改变,即是说shellcode不会被转换成其他字符。

  所以,利用NetAddAlternateComputerName函数来发起攻击是相对比较容易的!

  2)NetAddAlternateComputerName

  调用NetAddAltemateComDuterName函数发送超长字符串到目标系统时,目标系统只有一次调用vsprintf的处理。格式化串为

  AlternateName=%ws

  在Wide Char到MultiByte的转换过程中,假如转换后的MultiByte不是合法的字符(合不合法取决于系统默认的CODEPAGE),那么就会被截断或替换。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章