唐青昊:Marvel Team 这一年 | 黑客 2016(2)
正如我之前所说,虚拟机攻击是“气功”,需要隔着虚拟机软件精准地打击到背后的 Windows。由于我们的攻击方法和内存堆利用相关,而 Windows 的堆算法非常复杂,往往环境发生了微小的变化,结果就完全不同。这种情况下,泄露出来的信息就不是我们需要的核心信息。这就像面对一列快速驶过的列车,要在最精准的时间窗口跳上车门,哪怕差一点都会粉身碎骨。 十一假期刚过,应鑫磊一边开着调试器,一边调试代码。他突然发出惊呼,成了! 没错,我们击穿了 VMware 的所有防护,拿到了宿主机的权限。这是我们第一次攻击成功。这意味着,黑客可以从 VMware 营造的虚拟世界中觉醒,像上帝一样控制这台虚拟机中的一切。 但是,这种攻击方法的成功率只有 10%-20%,也就是说,十次跳上火车的尝试,有九次都会粉身碎骨。而真正的比赛中,我们只有三次尝试的机会。 事实上,这个时候肖伟也有新的进展,他发现了一个新的漏洞。以我们的直觉来看,这个漏洞质量极高,但是更容易被发现。而我知道在 PwnFest 上,除了我们还有一位黑客报名,那就是著名的韩国黑客神童 Lokihardt。如果我们使用了同样的漏洞,那么只有先登场的人才会被判定为成功。我们决定暂时不用这个漏洞,专心打磨应鑫磊的漏洞。 应鑫磊发疯一般地调优这套攻击方法,在回家的路上也拽着肖伟讨论如何提高攻击的成功率。 直到比赛前几天。我们的攻击程序在 Surface(比赛指定设备)上的试验成功率达到了40%,在 PC 上的成功率达到了30%。这个成绩我并不满意,但是当应鑫磊建议是否要加个新功能进去的时候,我还是拒绝了。 比赛时我们有三次机会,从数学的角度上来说,我们攻击的成功率接近 100%。我不准备再冒险了。 【唐青昊(左一)和应鑫磊(后排)】 六11月10号,韩国首尔,PwnFest 大赛现场,我和应鑫磊站在了比赛台上。 这个项目,有两组黑客报名。我们和韩国黑客神童 Lokihardt。Loki 在韩国拥有众多粉丝,每次他站在台上的时候,台下都会有众多迷妹拍照欢呼。经过抽签,我们先来进行攻击。此刻我们站在台上,观众寥寥无几。 但我没工夫顾及这些。我内心十分清楚,每次攻击成功的概率只有不到一半。而比赛用的电脑环境一定和我们实验的环境有微小差别。这个微小的差别会对成功率造成多大的影响,我根本不知道。 就像一个并不是信心十足的走钢丝杂技演员,突然换了一个全新的舞台和钢索。你无法想象会发生什么。说到底,我们能做的已经都做了,现在看来成功与否是一个概率问题。不知为何,我反倒有种失败的坦然。 比赛全过程,我们不能碰这台电脑。我们的攻击程序需要自动完成一切。 裁判启动了我们的攻击程序,一行行命令闪现。十秒过后,信息返回。出现在我们眼前的,是我们构建的输入信息“313131...”,而不是我们期待的核心内存信息。 我对裁判说,失败了。让我们尝试第二次吧。 那时的心情,就是没有心情。我没办法设想后果,“尽人事听天命”是我们唯一的选择。 第二次攻击启动。时间一秒一秒过去。直到 Windows 系统弹出计算器的一瞬间。我知道:成了!我们通过一条指令拿下了系统的控制权。 团队整整一年的努力,在这十秒内凝聚成“洪荒之力”。这种感觉,大概就是幸福。 根据比赛规则,我们要到“小黑屋”里,把攻击代码和漏洞位置提交给 VMware 的工作人员。虽然在小黑屋里,复现这次攻击并不重要。但事实上我们试了十多次,甚至重启了一次电脑才成功复现这次攻击。我才意识到刚才的比赛中上帝确实非常眷顾我们。 【应鑫磊(左)和唐青昊(右)】 七有关这次比赛,还有一个不大不小的故事。 后于我们登场的 Lokihardt,在第一次尝试中就顺利完成了攻击。而直到四天之后,我们已经回到了北京,几乎 WMware 全系列产品收到了来自官方的升级补丁。在这个补丁的描述中,我们才得知,Loki 居然和我们用了同样的漏洞。根据我的了解,他的攻击程序做得更稳定,攻击成功率超过 90%。 也就是说,很可能 Loki 也找到了那个更容易找到的漏洞,而为了防止“撞洞”,他也选择了使用难的这个。而所有的“越界读写”,Loki 全用一个漏洞完成,不得不说他做得更漂亮。 现在,也许我们彼此都知道对方的手上还有一些“存货”。2017年各路黑客在 VMware 上免不了有一场混战。 (编辑:ASP站长网) |