对抗 EasyConnect for macOS 的流氓行为
本文最后更新于 512 天前,其中的信息可能已经有所发展或是发生改变。

参考文章:https://tryme.wang/archives/202401/macos-fuck-easyconnect.html

前排提醒:此文章针对 macOS 用户。

对于一些院校访问校内网站需使用 VPN,初衷大概是为了安全,但所使用的 EasyConnect 有点不对劲。

首先其会用 root 身份运行两个进程,完全停不掉,并且还会往系统注入一个证书。这会导致两个隐患:

  1. 这两个进程能读取设备上任意文件,属于是底裤都被看穿了。
  2. 注入证书就能实现中间人攻击,能监听甚至篡改请求。

因此,就需要对抗这些流氓行为。

首先对于已安装 EasyConnect 的用户,首先需要禁用开机自启。

sudo rm /Library/LaunchDaemons/com.sangfor.EasyMonitor.plist
sudo rm /Library/LaunchAgents/com.sangfor.ECAgentProxy.plist

然后立即重启电脑,然后删除证书:打开「钥匙串访问」-「系统」-「证书」,找到 Sangfor 关键字对证书,右键删除即可。

然后由于 EasyConnect 依赖这两个进程运行,直接启动就用不了了,可考虑两种方案(两种方案将在后续进行验证):

方案一

.zshrc 中添加:

startEC() {
    /Applications/EasyConnect.app/Contents/Resources/bin/EasyMonitor > /dev/null 2>&1 &
    /Applications/EasyConnect.app/Contents/MacOS/EasyConnect > /dev/null 2>&1 &
}

fuckEC() {
    function killprocess()
    {
        processname=$1
        killall $processname >/dev/null 2>&1
        proxypids=$(ps aux | grep -v grep | grep $processname | awk '{print $2}')
        for proxypid in $proxypids
        do
            kill -9 $proxypid
        done
    }

    killprocess svpnservice
    killprocess CSClient
    killprocess ECAgentProxy
    killprocess /Applications/EasyConnect.app/Contents/MacOS/EasyConnect

    pkill ECAgent
    pkill EasyMonitor
}

需要使用时打开终端,执行 startEC 即可,用完的时候使用 fuckEC 完全停止 EasyConnect。

方案二

使用 docker-easyconnect/docker-easyconnect 将 EasyConnect 搭建在软路由或 NAS 上,然后在浏览器中使用 zero-peak/ZeroOmega 访问。

此方案将在后续进行验证。

上一篇
下一篇