您的位置: 网界网 > 网络学院-安全 > 正文

后门、漏洞与木马杂谈(1)

2013年08月06日 15:09:05 | 作者:佚名 | 来源:51CTO | 查看本文手机版

摘要:很久不写技术文章了,这次决定写一下,起源于在微博上和@np就是p @奥卡姆剃刀对后门的讨论,他们都是在IT各自领域深有建树的专家,但是发现他们对于IT安全的理解,却和我们这些专业从事安全领域的技术人员的角度和认识,存在着...

标签
后门漏洞木马IT安全

引子

很久不写技术文章了,这次决定写一下,起源于在微博上和@np就是p @奥卡姆剃刀对后门的讨论,他们都是在IT各自领域深有建树的专家,但是发现他们对于IT安全的理解,却和我们这些专业从事安全领域的技术人员的角度和认识,存在着巨大的鸿沟。这是怎么了?我觉得作为安全领域的技术人员,是有义务向IT领域的技术人员,做相关安全的普及,换奥卡姆剃刀的话就是,【CNW.com.cn资讯】。

但是为了写清楚这些问题,我粗粗列了个纲要,发现要写的相关的东西非常多,而且要面对非安全领域的人员,如何深入浅出把问题讲透彻,是个很伤脑筋的问题,但既然说出来了,我还是尽力而为吧。前面先讲个真实案例,目的是想让这些信息领域的人理解安全的视角和他们视角的差异。

2001年,我还没进入安全领域但已经对安全感兴趣开始研究了,最早研究的是WINDOWS的身份认证体系,一个月后,我写了一个小工具,任何我们内网的其他用户的WINDOWS的主机,我都能直接用他们身份远程用,可以获得用户设立的共享目录访问权,如果恰巧登陆用户是管理员用户(大多数都如此),就可以通过\\A\C$获得所有磁盘读写权和远程安装权限,当时我给一个对WINDOWS认证体系有研究的同事演示拿到他主机的控制权后,他认为不可思议,我怎么能从算法上破解了WINDOWS认证算法?当我把我的方法告诉他后,他说从来没有想到过原来攻击者是可以这样发起攻击的。

WINDOWS的远程共享登录机制如下:

A要登陆B机,输入后,其实是A主机通过SMB协议向B发送登录请求

B返回一条挑战C’给A主机

A主机根据当前用户名N’,用用户口令的散列M’(如果此当前用户登陆失败,会跳出用户口令提示框,根据用户输入的用户N’和口令计算M’),再配合挑战C’生成新的散列M1’,将N’,M1’发送回B主机

B主机SMB内核查找本机是否有同样用户名N’的用户,查找N’用户的散列P’,再配合挑战C’生成新的散列M2’,检查M2’和M1’是否一致,一致认证通过生成令牌,不一致拒绝。

这是认证算法体系非常知名的挑战认证体系,可以有效保证AB之间都获取不了对方的真实散列但可以实现登陆认证。我不是数学研究者,这些散列算法不是我的知识领域能够突破的障碍,那如何能达到自己的目的呢。我想到如果一个用户打开邮件或浏览网页里,如果包含这样的资源,会直接向B发起SMB的会话请求,且默认就是以当前用户和散列自动发起,直到失败才会跳出对话框,OK,我马上就知道如何实现这个突破的,假设A是攻击目标,B是自己的主机。给A发一封包含资源的邮件或吸引他打开一个包含网页,这样A主机会向B主机发来一个SMB认证申请,等待B主机回应挑战,B主机先不回应,同时B主机也去向A主机发起的SMB认证申请,A主机回答B主机一个挑战C’,B主机把此挑战又作为A主机向B主机申请挑战的回应,这个时候,A主机就会用他用户N’的散列M’和C’来计算M1’发送给B主机,然后B主机以同样N’和M1’回答A主机,于是,B主机在无需知道M’的前提下,利用系统本身功能和协议自身的机制,用A机N’用户的身份登陆A机。只要两个主机有独立IP打开SMB许可,也可以远程发起攻击,无论他密码设定多强,这个散列计算算法再强,也无法解决的问题。

后来,我看到了国外安全研究人员2001同年也发布了SMB中继攻击演示,其实和我这个就是一个道理,这种问题存在了多年之后的2008年,微软通过策略简单限制过一下AB直接互连申请SMB的情况,但其实攻击者如果有2台主机B/C,B接受A的SMB请求,C发送A SMB请求,就能突破这个限制。

当然做密码算法的人会指出:有很多可以解决这类问题的认证协议,而且一些关键主机使用了这样的体系,但事实是,到现在为止,大多数的计算机依旧轻易可实施此类攻击,即使使用了这样体系的主机,攻击者搞定工作人员的普通主机,再利用工作人员自身的权限获得这类关键主机的核心数据,2011年RSA令牌种子失窃案正是如此,攻击者通过一个NDAY漏洞的邮件搞定了RSA的HR的主机,再用HR身份发带当时FLASH 0DAY的业务邮件给财务总监搞定财务总监主机,再用财务总监身份搞定有RSA令牌种子服务器权限的管理人员主机,以此获取了RSA令牌的种子,然后破解了美国最大军火承包商洛克马丁公司的RSA令牌身份认证系统窃取机密。

我们做安全的,每天都接触和了解着如上我们IT体系如此脆弱的事实,并且知道随着IT发展,我们越来越多重要的东西都依赖于这样一个脆弱的环境,因此充满了恐惧;或许他们都只是风险(技术可行)还没有成为大规模的事实(攻击者实施意愿,其实在我看来攻击事实已经够多了,只是出于危害感知、攻击取证以及攻击者控制而非破坏意图没有浮出水面而已),但是当医疗的心脏起搏器、汽车的控制系统、你家的煤气管道、高铁的自控系统都开始依赖于这些脆弱的IT系统时,未来的人类社会,是否能够承受的起这样的风险事实。

1234
[责任编辑:网络学院 dangkexi2010@163.com]