在iOS11.4.1越狱(unc0ver)设备上,如何以root用户身份运行应用程序?

问题描述 投票:0回答:1

我终于越狱了我的第一台设备,我想尝试以root身份运行以Xcode内置的应用程序。

我做的第一件事就是尝试在setuid(0)上运行main.c,但失败了。

也尝试运行以下解决方案:[Gaining root permissions on iOS for NSFileManager (Jailbreak)

问题是,我只能通过Xcode安装该应用程序后才能手动执行此操作。另外,由于启动时崩溃,我什至无法手动运行该应用程序。

任何人都知道如何从这里前进吗?

[iOS版本:11.4.1

Unc0ver版本:3.3.0

谢谢你!

ios jailbreak
1个回答
0
投票

Unc0ver越狱会导出必要的偏移量,以使自己成为tfp0task_for_pid(0))或内核任务端口。然后,您可以使用这些证书在内核内存中修补自己的凭据。让我举一个例子。

Unc0ver越狱将包含kernel task port的偏移量存储在以下路径的文件中:/var/offsets.plist。越狱之前,请确保在Unc0ver设置中切换“导出TFP0”。

一旦越狱,就分析偏移文件,每个文件都在自己的变量中。对于tfp0变量,需要将其设置为task_port_t类型。 kernel_slidekernel_base是默认的uint64_t

[从plist解析它们后,您需要执行以下操作来从tfp0为您设置的HSP4 (Host Special Port #4)中获取有效的Unc0ver,以便您可以获取tfp0并提升自己的特权。

这里有一些示例代码:

task_port_t tfp0 = null;
kern_return_t ret = host_get_special_port(mach_host_self(), HOST_LOCAL_NODE, 4, &tfp0);
    printf("Task FOR PID: 0x%x\n", tfp0);

这基本上将为您提供真正的内核任务端口。此时,您可以遵循GeoSn0w的指南,了解如何将自己的特权提升为root,以及如何转义sandbox。该指南和补丁可在其Jailbreak Development forum上找到,但为防万一,我将在此处添加它们。

要获得root特权,根据GeoSn0w:

uint64_t selfProc = findOurselves();
    uint64_t creds = kernel_read64(selfProc + off_p_ucred);

    // GID
    kernel_write32(selfProc + off_p_gid, 0);
    kernel_write32(selfProc + off_p_rgid, 0);
    kernel_write32(creds + off_ucred_cr_rgid, 0);
    kernel_write32(creds + off_ucred_cr_svgid, 0);
    printf("[i] STILL HERE!!!!\n");

    // UID
    creds = kernel_read64(selfProc + off_p_ucred);
    kernel_write32(selfProc + off_p_uid, 0);
    kernel_write32(selfProc + off_p_ruid, 0);
    kernel_write32(creds + off_ucred_cr_uid, 0);
    kernel_write32(creds + off_ucred_cr_ruid, 0);
    kernel_write32(creds + off_ucred_cr_svuid, 0);
    printf("[i] Set UID = 0\n");

kernel_write32kernel_write64kernel_read32kernel_read64通常是在Google Project Zero漏洞利用程序中发现的基元。您将需要将它们导入到程序中,以便可以调用它们。 They can be found on GitHub,但它们只是系统功能(例如mach_vm_read_overwrite(...)mach_vm_write(...))的包装。

就这些。到那时,您应该已经将特权升级为root。当然,您需要重新实现许多越狱功能,例如上述内核读取和写入原语,您需要Unc0ver偏移量,并且还需要用于off_ucred_cr_ruidoff_p_gid之类的偏移量表等从iOS版本更改为iOS版本。

进行调整并由Cydia安装它会更容易。 Cydia Substrate会帮您rootify

© www.soinside.com 2019 - 2024. All rights reserved.