排查socks5后门核心是“先看端口、再找进程、定位文件、查自启、验流量”:用ss/netstat筛对外监听端口(如1080/8080),ps核验进程真伪,find/ls -la定位/tmp等临时目录中的可疑二进制,systemctl/crontab查持久化机制,tcpdump/wireshark验证socks5协议特征。

新手排查和清理服务器中隐藏的 Socks5 代理后门,核心是“先看端口、再找进程、定位文件、查自启、验流量”,不依赖高级工具,用系统自带命令就能完成。重点不是一步到位,而是层层递进、交叉验证,避免被伪装和隐藏绕过。
一、快速筛出可疑监听端口
Socks5 后门最露骨的表现,就是悄悄监听一个端口(比如 1080、1081、8080、6666、10808 等),等待外部连接。别只信 ps,先从网络层入手:
- 运行 ss -tulnp | grep -v '127.0.0.1\|::1' —— 只看对外暴露的监听,排除本地调试干扰
- 补充执行 netstat -tulnp 2>/dev/null | grep -E ':1080|:1081|:8080|:6666|:10808' —— 双命令比对,防 ss 被篡改
- 对输出里每个 PID,立刻执行 ps -p PID -o pid,ppid,user,comm,cmd —— 看进程名是否合理(如显示为
[kthreadd]或空格+乱码,大概率是伪装)
二、顺藤摸瓜找真实可执行文件
很多 Socks5 后门是直接丢进 /tmp、/dev/shm 或 /var/tmp 运行的,不写入硬盘、不生成日志。这些位置必须重点翻:
- 运行 ls -la /proc/*/exe 2>/dev/null | grep -E '/tmp|/dev/shm|/var/tmp' | head -10 —— 找出正在运行但源文件藏在临时目录的进程
- 对可疑路径(比如
/tmp/.X11-unix/ksys),执行 file /path/to/binary 和 strings /path/to/binary | grep -i 'sock\|auth\|connect\|bind' —— 确认是否含 Socks 协议逻辑 - 检查最近执行过的可疑文件:find /tmp /dev/shm /var/tmp -type f -perm /111 -mtime -3 2>/dev/null | xargs ls -la
三、揪出它怎么活下来的
单次运行的后门没威胁,能开机就起、定时重启、随服务加载的才危险。必须查它的“生存机制”:
- 查所有启用的服务:systemctl list-unit-files --state=enabled | grep -i 'sock\|proxy\|tunnel\|nc\|socat'
- 查所有用户级定时任务:for u in $(cut -d: -f1 /etc/passwd); do crontab -u $u -l 2>/dev/null | grep -v '^#' | grep -E '(1080|sock|nc|/tmp|/dev/shm)'; done
- 查启动脚本:cat /etc/rc.local 2>/dev/null | grep -E '(1080|sock|nc|socat)';再扫一遍 ls /etc/systemd/system/*.service 2>/dev/null | xargs -r grep -l -E '(ExecStart.*tmp|/dev/shm)'
四、确认它真在干坏事
即使找到进程和服务,也要验证它确实在转发 Socks5 流量,而不是误判:
- 用 lsof -i -P -n -sTCP:ESTABLISHED 看有没有连接到境外 IP 或非常规地址的活跃会话
- 对疑似端口抓一小段包:tcpdump -i any port 1080 -w socks.pcap -c 50,然后本地用 Wireshark 打开,搜索 “SOCKS” 或看 TCP 载荷是否含 0x05(Socks5 协议标识)
- 如果还能连上,用本地 curl 测试:curl -x socks5://服务器IP:1080 http://httpbin.org/ip —— 成功返回说明代理确实通
清理时,先 kill 进程,再删文件,再禁服务/定时任务,最后重启确认不再复活。整个过程不需要重装系统,但若发现内核模块(lsmod 里有不认识的名字)或系统命令被替换(ls -la /bin/ps 权限异常、大小不对),建议从干净环境做深度取证或重装。










