直接查进程、网络连接和临时文件是定位可疑Python后门与反弹Shell最有效的三步:盯Python进程命令行参数是否含dev/tcp、bash -i等;用ss/netstat抓异常ESTABLISHED出站连接并反向溯源PID;重点扫描/tmp、/dev/shm下近期修改的.py文件,检查是否含socket、subprocess、base64等恶意特征。

直接查进程、网络连接和临时文件,是定位可疑Python后门与反弹Shell最有效的三步。重点不是找“名字像后门”的脚本,而是抓“行为异常”的痕迹——比如Python进程在连陌生IP、命令行里藏着/dev/tcp、或/tmp下有刚写入的.py文件。
看进程:别只信ps,要盯命令行参数
很多Python后门会伪装成python3或python,但真实命令行里藏了关键线索:
- 用
ps auxfww或ps -eo pid,ppid,cmd --sort=-pid完整显示命令行,搜dev/tcp、dev/udp、bash -i、sh -i、subprocess.call、os.system(.*curl|wget) - 检查
/proc/[PID]/cmdline(用cat /proc/1234/cmdline | tr '\0' ' '还原),有些脚本会把恶意载荷拼在参数里,ps默认截断看不到 - 留意无对应二进制的Python进程:
ls -l /proc/[PID]/exe若指向[deleted]或/tmp/xxx.py,基本就是后门
查网络:从ESTABLISHED连接反向追进程
反弹Shell的本质是“服务器主动外连”,所以异常出站连接是最强信号:
- 执行
ss -tunp | grep ESTAB或netstat -tunp | grep ESTAB,重点关注目标IP非业务地址、端口非常规(如9999、4444、5555)的连接 - 对每个可疑连接,用
lsof -i :端口号或ss -tunp | grep :端口号确认关联PID - 再用
ps -p PID -o pid,ppid,comm,args看该进程树和完整启动命令——反弹Shell常由python3 /tmp/.a.py这类路径启动
翻文件:聚焦/tmp、/dev/shm和最近修改项
攻击者习惯把Python后门丢在易写、难监控的目录,且往往带时间戳特征:
立即学习“Python免费学习笔记(深入)”;
- 直接搜临时目录:
find /tmp /dev/shm -type f -name "*.py" -mtime -7 2>/dev/null - 查隐藏+近期修改:
find / -type f \( -name ".*.py" -o -name "*.py" \) -mtime -3 -ls 2>/dev/null | grep -E "(tmp|shm|var/lib|opt)" - 重点看内容:对可疑.py文件,用
head -n 30 文件名快速扫是否有socket.、subprocess、os.popen、base64.b64decode、双fork、重定向到/dev/null等典型反弹逻辑
补一刀:用基础命令交叉验证
单条命令可能被篡改,组合使用能绕过简单隐藏:
- 查已删除但仍在运行的Python:
lsof -nP +D /usr/bin/ 2>/dev/null | grep python | grep deleted - 看用户级定时任务是否拉脚本:
crontab -l 2>/dev/null; for u in $(cut -d: -f1 /etc/passwd); do crontab -u $u -l 2>/dev/null | grep -E "(python|curl|wget|sh)"; done 2>/dev/null - 检查LD_PRELOAD劫持(可能干扰ps/ss):
echo $LD_PRELOAD; ls -la /etc/ld.so.preload 2>/dev/null


















