lsof -itcp -stcp:established -n -p | grep -v '127.0.0.1|::1'可快速识别木马外联回连,重点过滤陌生ip、非常规端口、低权限进程及/tmp等临时目录发起的短生命周期连接,并通过lsof -p和ls -la /proc/pid/exe溯源文件。

用 lsof -i 实时监控木马回连,核心是快速识别非预期、高风险的出站连接,尤其关注陌生IP、非常规端口、短生命周期连接和低权限进程发起的外联。
聚焦可疑出站连接
木马回传多为TCP主动外连(ESTABLISHED),而非监听。默认 lsof -i 会混入大量监听项(LISTEN),干扰判断。应过滤掉本地服务,只看“向外打”的连接:
-
lsof -iTCP -sTCP:ESTABLISHED -n -P | grep -v '127.0.0.1\|::1':排除本机回环,专注真实外网连接 - 加
-n跳过DNS解析,避免延迟;-P显示端口号而非服务名,便于识别非常规端口(如 4444、5555、8086) - 若发现大量连接指向同一境外IP段(如 185.191.x.x、103.232.x.x),高度可疑
结合进程与用户缩小范围
很多木马以普通用户(如 nobody、www-data)或无名进程运行,不走标准路径:
-
lsof -iTCP -sTCP:ESTABLISHED -n -P -u nobody,www-data:专门检查低权限用户的外联行为 -
lsof -iTCP -sTCP:ESTABLISHED -n -P -c 'sh\|bash\|python\|perl':捕获脚本类进程发起的连接,这类常被用于下载器或信标 - 看到
COMMAND列为随机字符串(如qwe123、svchostx)或路径含/tmp、/dev/shm、/var/tmp,立即跟进
持续轮询并快速定位文件来源
单次快照易遗漏瞬时连接。需周期性扫描,并能一键查清进程打开的文件:
-
lsof -iTCP -sTCP:ESTABLISHED -n -P -r2:每2秒刷新一次,观察连接是否频繁新建/断开(典型心跳或C2通信特征) - 发现可疑PID后,立刻执行:
lsof -p <pid></pid>查看它打开了哪些文件(重点关注txt可执行路径、cwd工作目录、mem加载模块)ls -la /proc/<pid>/exe</pid>直接获取真实二进制路径(常被替换或指向 /dev/null) - 若
/proc/<pid>/exe</pid>显示 “No such file”,说明可执行文件已被删除,但进程仍在运行——这是内存马或隐藏木马的强信号
辅助验证异常通信模式
单纯看连接不够,要结合时间、流量、协议特征交叉判断:
- 用
lsof -iUDP检查UDP外连,部分木马使用DNS隧道(端口53)或QUIC伪装(端口443但协议异常) - 对疑似IP,用
whois或在线工具查注册信息;若归属地为IDC集中地(如俄罗斯、乌克兰、荷兰某些AS号),风险上升 - 配合
ss -tunap或netstat -tunap交叉验证,避免因lsof缓存或权限导致漏报











