对抗 EasyConnect for macOS 的流氓行为

参考文章: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 访问。

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