macos 深信服的 easyconnect 是怎么做到自动提权到 root 的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
fkdog
V2EX    Apple

macos 深信服的 easyconnect 是怎么做到自动提权到 root 的?

  •  
  •   fkdog Dec 2, 2022 8753 views
    This topic created in 1245 days ago, the information mentioned may be changed or developed.

    参考了这个方法,https://soulike.tech/article/64 使用普通用户执行启动命令,活动监视器里看到进程自动被提权为了 root 。。。 已经删除掉 launchagent 和 lauchdaemon 里相关的项目。

    Supplement 1    Dec 2, 2022
    /Library/LaunchDaemons/com.sangfor.EasyMonitor.plist
    /Library/LaunchAgents/com.sangfor.ECAgentProxy.plist
    /Library/PrivilegedHelperTools
    ~/Library/LaunchAgents/

    这几个目录都已经清理过,且重启。均无效,普通用户执行 /Applications/EasyConnect.app/Contents/Resources/bin/EasyMonitor ,均被提权为 root 。

    使用 chown -R user:staff /Applications/EasyConnect.app , 将所属用户群组其改为普通用户以后,发现不再提权了。。但是提示权限不足无法正常运行。
    Supplement 2    Dec 5, 2022
    折腾了半天 docker 还是放弃了。。。
    但是后边我发现 easymonitor 和 ecagent 在 vpn 链接成功以后其实是可以直接杀掉进程不影响 vpn 本身的。
    正好 venture 可以在设置里配置启动项,链接前开启 sangfor 相关启动项,链接完了再关掉就行了。
    进程里也找不到这两流氓进程。
    36 replies    2023-08-12 01:12:35 +08:00
    nanjingwuyanzu
        1
    nanjingwuyanzu  
       Dec 2, 2022
    关闭了系统保护吧?
    0ZXYDDu796nVCFxq
        2
    0ZXYDDu796nVCFxq  
       Dec 2, 2022 via Android
    Linux 下有个权限位叫做 s ,具有这个权限的程序执行会自动获得 root 权限
    比如 passwd 等,允许用户修改自己的密码

    你看这两个程序是不是有类似的权限
    orangie
        3
    orangie  
       Dec 2, 2022
    在 Windows 上这玩意会安装系统服务,不知道 mac 上有没有安装某个服务,如果有的话,通过服务启动程序的时候可以提权的吧
    fkdog
        4
    fkdog  
    OP
       Dec 2, 2022
    @orangie 相关的启动项都已经删掉了。
    Ben2022
        5
    Ben2022  
       Dec 2, 2022 via iPhone
    我都把这货封印在 docker 里面了
    egan0606
        6
    egan0606  
       Dec 2, 2022
    刚试了下,的确是的, 一会就回自动重新启动个 进程 且为 root 用户 。 草
    bbbb
        7
    bbbb  
       Dec 2, 2022
    是不是安装的时候输入了密码,我观察一些进程,安装的时候给了密码,他们后面就把一些 daemon 添加到管理员权限启动的 lauchdaemon 里了
    root 用户:/Library/LaunchDaemons
    普通管理员用户:~/Library/LaunchAgents
    bbbb
        8
    bbbb  
       Dec 2, 2022
    还有:/Library/LaunchAgents
    fkdog
        9
    fkdog  
    OP
       Dec 2, 2022
    @bbbb 你说这个我都已经删掉了,然后重启。
    结果一试还是没用。启动用户依然是 root
    systemcall
        10
    systemcall  
       Dec 2, 2022
    关闭了 SIP 吗?
    加载驱动的话,提权是很简单的
    xtinput
        11
    xtinput  
       Dec 2, 2022
    sudo 提权了,安装的时候要了密码,然后应用可执行文件变成 root 所有了
    fkdog
        12
    fkdog  
    OP
       Dec 2, 2022
    @xtinput mac 上普通用户执行 root 所有的命令,会自动提权吗?
    fkdog
        13
    fkdog  
    OP
       Dec 2, 2022
    @systemcall 没关闭 sip
    supertan
        14
    supertan  
       Dec 2, 2022
    windows 一开还断网呢,除了远程桌面啥也连不了。封印虚拟机
    xtinput
        15
    xtinput  
       Dec 2, 2022
    @fkdog 对,sudo 执行就会变成 root 用户,你试试 sudo ping 和直接 ping ,去活动监视器看看
    NotFoundEgg
        16
    NotFoundEgg  
       Dec 2, 2022
    可以试试 https://github.com/Hagb/docker-easyconnect 把这个软件开在 docker 里,然后用 clash (增强模式)分流连接
    fkdog
        17
    fkdog  
    OP
       Dec 2, 2022
    @xtinput 但是关键是我执行的时候没有带 sudo ,而且也是重新打开过终端没有处于 sudo 免密上下文,执行了还是提权了。。
    fkdog
        18
    fkdog  
    OP
       Dec 2, 2022
    @NotFoundEgg 有看过这个,但是 m1 arm 架构能 run 这个镜像吗
    xtinput
        19
    xtinput  
       Dec 2, 2022
    @fkdog 会不会是软件记录了密码?
    xtinput
        20
    xtinput  
       Dec 2, 2022
    去这个文件夹看看 /Library/PrivilegedHelperTools
    fkdog
        21
    fkdog  
    OP
       Dec 2, 2022
    @xtinput 谢谢。去看了下这个目录里也没有。。。
    lcvs
        22
    lcvs  
       Dec 2, 2022
    之前用过这玩意,每次用完都 sudo launchctl unload ,用之前 load 下
    yimiaoxiehou
        23
    yimiaoxiehou  
       Dec 2, 2022
    用 docker 版吧
    tf2
        24
    tf2  
       Dec 2, 2022
    setuid ?
    NotFoundEgg
        25
    NotFoundEgg  
       Dec 2, 2022
    @fkdog 我就是 m1 的 mac 可以自己 build 一下
    ```
    git clone https://github.com/Hagb/docker-easyconnect.git --branch non-amd64
    cd docker-easyconnect
    docker image build -f Dockerfile.fake-hwaddr -t fake-hwaddr .
    docker image build --tag hagb/docker-easyconnect:cli-arm64 -f Dockerfile.cli .
    docker run --device /dev/net/tun --cap-add NET_ADMIN -ti -p 1080:1080 -e EC_VER=7.6.8 -e CLI_OPTS="-d vpnaddress -u 账号 -p 密码" --name easyconnect-cli-arm64 hagb/docker-easyconnect:cli-arm64
    ```
    xtinput
        26
    xtinput  
       Dec 2, 2022
    Mac 版 docker 太耗资源了
    wu67
        27
    wu67  
       Dec 2, 2022
    安装时输入了密码呀. 幸亏我换了家公司, 不用装 vpn. 直接 git 裸奔.
    f0rger
        28
    f0rger  
       Dec 2, 2022 via iPhone
    关注下,我们这边要下 easy 上 atrust 了。好难
    cuqk
        29
    cuqk  
       Dec 3, 2022 via iPhone
    如果是安装时候记录了密码,那换一下密码,是不是就不能提权了?楼主可以试试
    wazggcd
        30
    wazggcd  
       Dec 3, 2022 via iPhone
    我部署在了腾讯云的 docker 里,然后 MacBook 通过 ssh 端口转发一下,好用
    fkdog
        31
    fkdog  
    OP
       Dec 3, 2022
    @NotFoundEgg 这个分支是全 arm 架构的吗?
    yc8332
        32
    yc8332  
       Dec 3, 2022
    不是你安装就是运行时给了 root 权限了。基本就是安装的时候给的。不然你可以删掉重装试试
    Hagb
        33
    Hagb  
       Dec 4, 2022
    @fkdog 那个 docker 镜像的 non-amd64 分支是用 qemu 模拟运行 x64 的 easyconnect 。

    现在应该可以用深信服官方提供的 arm64 版本,来自 https://bbs.sangfor.com.cn/plugin.php?id=service:download&action=view&fid=100000001552254#/100001638327289/all/0/0 ,虽然是为国产 arm 设备定制的,但是也可以在其他 arm 设备上用(不过还没有命令行版本,得用 vnc 来登录):

    git clone https://github.com/Hagb/docker-easyconnect.git --branch develop
    cd docker-easyconnect
    docker image build -f Dockerfile.build -t hagb/docker-easyconnect:build . # 被后面的构建引用

    # arm64 的 M761-M766R1 ( 7.6.3 )版:

    docker image build \
    --build-arg EC_URL=https://download.sangfor.com.cn/download/product/sslvpn/SSLVPN%E4%BF%A1%E5%88%9B%E5%AE%A2%E6%88%B7%E7%AB%AF/%E7%BB%9F%E4%BF%A1UOS%20%E9%B2%B2%E9%B9%8F%20SSL%20VPN%E5%AE%A2%E6%88%B7%E7%AB%AF.zip \
    --build-arg EC_DEB_PATH=UOS_EasyConnect_arm64.deb \
    --tag hagb/docker-easyconnect -f Dockerfile .

    # arm64 的 M767+( 7.6.7 )版:

    docker image build \
    --build-arg EC_URL=https://download.sangfor.com.cn/download/product/sslvpn/SSLVPN%E4%BF%A1%E5%88%9B%E5%AE%A2%E6%88%B7%E7%AB%AF/%E7%BB%9F%E4%BF%A1UOS%20%E6%B5%B7%E6%80%9D%E9%BA%92%E9%BA%9F990%20SSL%20VPN%E5%AE%A2%E6%88%B7%E7%AB%AF.zip \
    --build-arg EC_DEB_PATH=02-升级包及安装文件 /EasyConnect_UOS_arm64-20220302.deb \
    --tag hagb/docker-easyconnect -f Dockerfile .

    欢迎反馈使用情况(相关 issue 在 https://github.com/Hagb/docker-easyconnect/issues/25 )。此前能用和不能用的报告都有(但是不能用的情况我没有复现)。
    fkdog
        34
    fkdog  
    OP
       Dec 4, 2022
    @Hagb 辛苦,感谢!!!
    Reminders
        35
    Reminders  
       Aug 12, 2023
    @NotFoundEgg #16 如果在本地部署的话,是把这个服务当作 clash 的一个节点吧(假设是 node A),我这样设置好像有可能会形成环路。
    Reminders
        36
    Reminders  
       Aug 12, 2023
    @codingbody #35
    假设规则
    *.example.com -> node A
    a.example.com 会走 node A
    但是 docker 里的 b.example.com 也会走 node A

    即:a.example.com -> docker -> b.example.com -> docker
    About     Help     Advertise     Blog     API     FAQ     Solana     5385 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 101ms UTC 07:53 PVG 15:53 LAX 00:53 JFK 03:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86