攻击者有能力通过安卓海豚浏览器控制用户的网络通信数据,可以修改下载和应用浏览器新主题的函数。通过利用该函数,攻击者可以写入任意文件,这些文件将会在用户设备中的浏览器环境下变成代码执行。整个攻击唯一需要用户做的只是选择,下载,应用主题。
安卓版本的海豚浏览器有一个功能就是允许用户通过下载,应用主题来对浏览器进行个性化。当用户选择一个新主题,这个主题会通过HTTP方式进行下载:
该主题文件将保存到以下位置:
该文件的后缀名“dwp”仅为海豚浏览器自己定制的后缀名,事实上这个文件是一个简单的zip压缩文件。
当我们检测其中内容时,可以发现其中用来应用目标主题的特殊数据:
后来通过对我们选择,下载,应用的主题进行逆向工程处理。发现该功能还可以解压主题文件并应用主题的其他配置。
在利用中第一步即要代理下载通信数据并注入修改主题中,这需要我们在测试设备中配置一个代理,然后写入一个简单的内联脚本用来使用mitmdump:
第一次验证将修改主题注入到下载响应中,并成功实现对海豚浏览器数据目录写入任意文件。为了获得代码执行权限,接下来需要找到一个可以进行覆盖的文件。无意间发现一个就在文件目录之中的库—— libdolphin.so:
可以写入完整的代码执行了,由此制作了一个相应的payload:
成功注入这个zip文件之后,从logcat滚动的输出,发现了一个gem:
接着,需要创建一个可以用来覆盖原libdolphin.so的库:
使用NDK进行编译,使用的Python脚本是用来创建一个主题payload然后写入库中。然后完全删除海豚浏览器并重新进行安装,然后再次进行攻击。验证是否成功拦截并注入主题payload:
应用这个主题,为了确定已经成功加载,重启浏览器:
现在应该可以连接到netcat:
还没有评论,来说两句吧...