加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

黑客老王:一个人的黑客史

发布时间:2016-10-27 16:11:24 所属栏目:安全 来源:雷锋网
导读:副标题#e# 三十年过去了,在广州潮湿的天气里,我经常会回忆起小时候东北的天空。 那时候,我时常需要仰望天空。因为我的任务是手握一根松木杆,高高挑起电视天线。一阵风吹过,电视上就闪过一片雪花。村庄很空旷,我有足够的时间,把天线调整到一种精妙的

这就像所谓的信息安全”木桶原理“,理论上确实可以要求解决“短板”问题提高安全等级,但是如何保证“短板”是最短的?我们甚至无法保证他们把所有的“板”给了我们。实际上,真正的攻击并不会在意你是测试系统还是生产系统,它要得只是通向目标的路径和攻击通道。太多的事例表明,有限制的渗透测试做出的结论往往似是而非。

那些年,我时常怀疑,这样的渗透测试真的可以防御入侵吗?

黑客老王:一个人的黑客史

锦衣夜行:不能说的故事

不同于渗透测试,真正的网络攻击根本没有套路和规矩可言。作为一个老黑客,我亲历了网络世界最凶残的一面:在黑暗的服务器中对战,一个微小的错误就可能让你被对方直刺喉咙。生死一念间,这绝不是花拳绣腿和自欺欺人。

我想要找到一种方式,让我参与到真正的网络攻击当中。

有一次,我们团队执行一项无通知渗透测试任务,客户是一家跨国集团公司,他们怀疑竞争对手通过网络攻击窃取机密信息,但是安全厂商认为核心网络是逻辑隔离的,外部入侵无法访问核心数据。此次项目只有客户的CTO和安全部门的核心leader知情,目的是验证能否通过外部攻击的方式访问核心数据以及测试管理员的应急响应能力,我们被授权可以动用除DoS之外的一切手段从外网发起渗透。

这个目标非常庞大,却又保卫森严。这里几乎部署了世界上存在的所有类型的安全防护系统。突破这些自动化防御系统,虽然艰难,但是我还是成功了。

和机器对抗,永远不是最难的;和人对抗,才是我站在这里的目的。

初步渗透之后,我们打通了通向内网的攻击通道,并且掌握了查看对方所有人邮件的权限。通过查看管理员的往来邮件,我知道他们已经发现了被入侵的迹象并且修补了漏洞,但是他们显然还不知道自己已经被监视。监控对方的邮件对我来说是个好消息,所谓知己知彼,百战不殆。至少目前我具有很大的优势——能可以查看对手的牌。

对于渗透测试来说,初期的攻击是最容易被发现的,因为必须要做一些常规的扫描和利用尝试,部署在边界的安全设备都有能力发现此类攻击,但是从另一个角度上来讲,管理员也最容易忽略这些信息,每天发生在网络上的各种攻击扫描数据足以让真正的攻击痕迹淹没在茫茫的告警中。

很多管理员会认为既然发现了漏洞,那么打上补丁,甚至直接下线就安全了,事实上一个有经验的入侵者在获得入口后会及时的利用入口打通其它的攻击通道并迁移过去,而且很有可能做一些微调让漏洞利用变得困难,防止其它入侵者利用。

对方的管理员显然比较专业,准确的定位到漏洞位置,及时修补,然而从他的邮件里来看,他并没有发现其他痕迹,也不清楚这个入口服务器事实上已经作用不大了。

对于一个大型目标来说,并不是获得一个网站权限、拿到一个域控管理员的账号、进入一个数据库就能搞定一切的,大多时候你甚至不知道真正的数据存放在哪里。我必须不停的探测、查找,分析对方的网络结构,分析对方的管理员权限范围,分析各种应用的数据来。这个过程,就不可避免地要跟管理员进行对抗——技术上的和心理上的对抗。

这种对抗对攻击者来说是最不愿意碰到的,在我看来一次完美的攻击行为应该在管理员毫不知情的情况下完成,所谓静悄悄的来,静悄悄的走。然而理想化的结果很难存在,更多的是对抗在攻击过程中就已经产生。

攻防过程中,管理员先天上具备资源的掌控性优势,他可以随时下线感觉有问题的机器,所以对于攻击者来说这就不仅仅是技术上的对抗,更重要的是心理上的对抗,要尽力伪装自己的目的,在不能完全隐藏自己痕迹的情况下,最好让管理员感觉攻击者是个白痴,让他产生技术上的优越感,从而不至于采取拔网线,分析磁盘镜像等极端的防护措施。

我刻意选在半夜两点钟动手。然而万万没想到,即便是在深夜,我刚刚进入对方的服务器系统,就触发了对手的报警,在非常短的时间内,对方管理员就进入了机房,登录了系统,把我踢了出去。

我们感觉到很诧异,因为这次攻击中没有利用任何第三方工具,没有尝试破解密码,没有提权操作,而且完全遵循管理员日常管理的规范通过合法的身份和路径登入系统,并且禁止日志记录。从技术角度上讲已经做到了极致。

万幸,对方管理员并没有摸透我的全部进攻途径,我们在一个很明显的位置放置了一个很粗糙的webshell,并且伪造了几条毫无目的的攻击记录,从邮件内容来看,对方显然认为这是一次无目标的的自动攻击,而这种攻击充斥在网络中,管理员被我们迷惑了,并没有意识到这是有针对性的攻击行为。攻击跳板机仍然存在。我重新规划了攻击路径,择机又发起了进攻,眼看就要成功突破防线的一瞬间,毫无防备,我又被管理员干掉了。

我终于意识到,对方的管理员在一个特殊的地方,做了特殊的监控手段。这种特殊的防护,只能根据网络的实际情况搭建,完全不是通用脚本,这种看上去的小伎俩却把我这个“老司机”绊倒几次。从那时起,我清晰地意识到:关键位置的定制防护手段在防护中的作用非凡。

我们已经获取了一些敏感数据,其中包括门禁卡数据,但是最终目的并没有达到,我们准备测试另外一种可能性。经过与对方CTO的沟通,得到授权后,我们做了一个疯狂的计划:通过复制对方的门禁卡,派人潜入他们的工作区域,直接连接内网的Wi-Fi,从而伪装内部人员绕过他们的防护脚本。我们已经选定了执行人,并且做了周密的进攻和配合计划。

但就在计划实施的前一晚,事情出现了转机:我们发现了对方的防御设置,在一台据说已经废弃的测试服务器上提取了监控脚本,经过分析后发现是可以被绕过的。

我们进入了对方的集中控制台,这台机器虽然不能直接作为跳板进入核心系统,但是在这个控制台的内存中,存储着我们渴望已久的目标机器系统级密码。我们成功把这台机器的内存做了镜像。我们都知道,这2G内存中,有几个字节正是我们梦寐以求的“金钥匙”。

然而,为了分析出密码的所在,我们必须将这2G内存全部下载到本地。而把一个2G的文件,在管理员眼皮底下传出来,简直是不可能的任务。这无异于从保卫森严的大楼里,搬出一个保险柜。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读