美文网首页
MacOS提权流程

MacOS提权流程

作者: williamhlw | 来源:发表于2021-11-25 10:34 被阅读0次

最近在做MacOS App打开虚拟端口的需求时,遇到”Operation not permitted“的报错信息,查阅资料后发现mac上虽然权限比iOS告,但需要一些操作,需要提权。

网上常见的提权方式有三种:AuthorizationExecuteWithPrivileges、LaunchdDaemon、AppleScript。经过调研我们需求比较符合使用LaunchdDaemon,所以这次主要记录下这种方式的实现过程,其他方法及具体介绍可以看这位博主的文章

网上有很多LaunchdDaemon的实现步骤,但是时间久远,很多按照步骤都无法运行,经过踩坑以后,这次记录下我的实现过程,并已经成功运行。这边文章综合参考了TunelBlick,EvenBetterAuthorizationSample,SMJobBless中的相关代码。

第一步

1、由于新版的xcode建立Mac工程后默认没显示Info.plist文件,所以新建工程后,在主工程Tartget--Info里面随便添加一个key,让Info.plist显示在工程目录中。

1637805038783.jpg

2、避免后续步骤比较麻烦,在XCode--Preferences--Locations--locations--Advanced,改成Legacy。这一步会将生成.app放到工程目录内。


1637807484810.jpg

*以下步骤参考SMJobBless的Demo

3、关闭AppSanbox。


4、拷贝 Demo 中的 SMJobBlessUtil.py 到项目根目录。
5、创建一个新 Target,选择 Command Line Tool,命名为 MyAppHelper。

*以下内容参考EvenBetterAuthorizationSample的Demo
6、创建 MyAppHelper-Info.plist 文件并配置必要参数。
7、创建 MyAppHelper-Launchd.plist 文件并配置必要参数。
8、在 MyAppHelper Target 中配置 Product Module Name 和 Product Name 为MyAppHelperTarget的BundleID。
9、选择 MyApp Target 配置 Copy Files,路径 Contents/Library/LaunchServices。
10、生成签名参数(参考SMJobBless中的ReadMe文件)。
成功后会输出:
SMJobBlessApp/SMJobBlessApp-Info.plist: updated
SMJobBlessHelper/SMJobBlessHelper-Info.plist: updated
然后用./SMJobBlessUtil.py check <SMJobBlessApp.app:path>检查
没有任何输出代表成功。
11、最后可以写入授权代码及测试代码,这一步具体代码参考EvenBetterAuthorizationSample中AppDelegate中代码和common及HelperTool。

12、HelperTool中需要把kHelperToolMachServiceName改为自己的,AppDelegate中的InstallAction也需要改为自己的。

中间每一个步骤一定要按照配置和ReadMe中的步骤去弄,不然会出错。

最后,相当于是先运行install方法,启动helper,然后仿照EvenBetterAuthorizationSample中的实现方式就可以通过helper进程实现提权的操作了。

相关文章

  • MacOS提权流程

    最近在做MacOS App打开虚拟端口的需求时,遇到”Operation not permitted“的报错信息,...

  • MacOS App代码提权详解

    最近一段时间开发公司一款MacOS平台的App时需要用到管理员权限,于是乎上网查询了MacOS App使用代码提权...

  • 17.提权

    提权方法:溢出漏洞提权、数据库提权(mysql提权(udf提权,mof提权,自启动提权)、mssql提权)、第三方...

  • linux 提权-Crontab提权

    前言 记录一下linux提权系列的Crontab计划任务提权的学习过程。 crontab 命令 crontab命令...

  • linux 提权-SUID提权

    前言 最近想着学习linux提权的一些姿势,这里简单分享学习SUID提权的一些知识点。 权限解读 先来父复习一下l...

  • linux 提权-sudo提权

    前言 最近听闻sudo刚刚出来了新漏洞,而最近正好在看linux提权这块知识点。借此梳理一下sudo提权相关的姿势...

  • mysql的提权的四种方案

    mysql的提权原理就是让mysql能够执行系统命令,而对与mysql的提权主要分为两种:MOF提权和UDF提权第...

  • 提权

    目标站点:http://www.xxxx.com 一个新闻发布网站,网站底部备案信息是假的,服务器只能放到国外,这...

  • Windows提权/Linux提权,内网渗透,内网提权

    一个提权靶场,一个关于fire and shadow的世界 这里的提权有:CVE-2019-1388、CVE-20...

  • windows提权

    一、常见提权方法 1、溢出漏洞提权 2、数据库提权 3、第三方软件提权 二、Cmd命令无法执行原因分析 1、Cmd...

网友评论

      本文标题:MacOS提权流程

      本文链接:https://www.haomeiwen.com/subject/cudatrtx.html