HENkaku逆向研发进展

两位开发者分别完成了HENkaku破解第三阶段的逆向研发工程。

Hexkyz(就是我们之前介绍过的Mr.H)和St4rk都通过他们的博客展示了他们在HENkaku逆向研发的相关进展。

值得一提的是,两位黑客都表示他们发现了可以导出Vita内核的漏洞,这是进行HENkaku逆向研究的必要步骤。现在不确定他们俩发现的是不是同一个漏洞,也许这些漏洞能够用在未来更高版本的固件之上。

St4rk表示:

HENkaku的发布,标志着我们可以在PSV上运行自制软件,也给了我们一个研究系统的好机会。我试着用暴力破解方法注入内核,并因此发现了一个漏洞,在这里我不会解释太多,一旦SONY封堵了该漏洞,我将会专门写文章解释它的。

Hexkyz也给出了他的进度:

在破解第二阶段的时候,我发现了一个潜在的内存溢出漏洞,但是基于它的特性,还不能够获得足够高的权限。

无奈之下,我开始寻找其他的切入点。
-网络:

SceNet模块是作为内存溢出运行的入口,我目前只发现了这一个功能,还有其他的作用吗?

-文件系统:

SceDriverUser模块进行了大量的文件系统调用,其中一些会出现崩溃。我能从这里进行内存溢出吗?

-音频:

当涉及到媒体处理时,开发人员一般不太注意安全性。一些特定的音频处理功能也是由内核本身进行处理。我在这里可以做些文章吗?

-图像

就像音频一样,图形相关模块也是常见的漏洞来源。PSV有大量的图形处理库(scegpues4userscegxmScePaf)。不知道在这里能不能有所突破?

应用:

用户应用程序和PSV的内核有着大量的信息和数据交互(通过sceappmgr调用sceapputilscedriveruser)。也许这里会有机会?

经过反复试验,最终我就是通过上述其中一种方法得到了我想要的入口,成功导出并进入了PSV内核的内存区域。

作为佐证材料,Hexkyz给出了HENkaku加密密匙的SHA-1哈希码:

Kernel loader key (AES-256-ECB):f1a8e9415bf3551377a36a1a5b25ba64f2d96494
Kernel payload key (AES-128-ECB): eacac4a780065c8c106349e412696aabd1b1b8d1

St4rk在最后也提到了PSV上有很多有待挖掘的内容:

破解PSV的系统还有很长一段路要走。虽然已经进入到了PSV的核心漏洞,但是因为存在安全核心以及信任区的问题,这段冒险离终点还非常远。希望能尽快回到这里和大家分享更多关于PSV的信息。

Vita security, an allegory - image by St4rk

两篇文章都非常的有趣,值得一读,但特别提醒一下,他们都是非常专业的学术文章:

St4rk的文章

Hexkyz的文章

如果你实在懒得读他们的文章,我这里就给大家高度总结一下吧:

归纳一下,加载程序会分配两个内存区域,一个用于存放数据,另一个用于存放代码。之后,HENkaku会从用户内存中加载(使用copy_from_user),并通过静态密钥(存储在内核加载器中的二进制数据)将它进行解密。最后,将解密好的加载程序复制到一个可运行的内存区域,再通过PCSP跳转来运行它。

联系我们
Wololo.cn © 2016. All Rights Reserved.

Powered by Roshan. Theme by Lilly.