当前位置:首页 > Linux > 正文

linux 如何查被肉鸡了

在 Linux 中,可通过 netstat -tulnp 查监听端口, ps aux 看异常进程, crontab -l 查定时任务,结合 last 登录记录及 /var/log/auth.log 日志排查是否被控

在Linux系统中判断主机是否已被攻击者控制(俗称“肉鸡”)需要系统性地排查多个维度,以下是详细的检测方法和分析思路,涵盖进程行为、网络活动、文件改动、系统配置、日志审计等核心领域,并提供可落地的操作指令和判断依据。


基础特征识别:异常现象预警

若出现以下任一现象,需高度警惕已被植入后门或持续控制:
| 风险等级 | 典型表现 | 潜在原因 |
|———-|———————————–|——————————|
| ️高危 | 未知高CPU/内存占用进程长期运行 | 挖矿载入、DDoS僵尸程序 |
| ️高危 | 非业务需要的对外端口持续开放 | 反向Shell、远控通道 |
| 中危 | 计划任务中出现加密脚本 | crontab注入 |
| 中危 | /etc/rc.local添加异常启动项 | 开机自启反面程序 |
| 低危 | 用户列表中出现陌生账号 | 暴力破解或弱口令载入 |


深度排查方法论(按优先级排序)

进程级分析(重点)

# 查看所有进程及完整命令行参数
ps auxfww --sort=-%cpu,-%mem | head -n 50  # 按资源占用排序前50条
pstree -apsu                                 # 树状展示进程关系

关键判断点
合法进程不应包含wget http://xxxcurl | sh等动态执行语句
警惕/dev/shm目录下的临时进程(如/dev/shm/script.sh
注意PPID=1的孤儿进程(可能是rootkit伪装)

进阶工具

# 对比官方包管理器记录
rpm -qf $(which suspicious_binary)         # RPM系
dpkg -S $(which suspicious_binary)         # Debian系

若返回未找到对应包名,则为非规替换文件。

linux 如何查被肉鸡了  第1张

网络连接审计

# 实时监控网络连接建立过程
ss -tulnp | grep -v "LISTEN"               # 过滤已建立连接
netstat -anptu                            # 传统方式查看四元组
lsof -i :                                  # 显示所有网络相关文件句柄

危险信号
指向非常见域名的出站连接(如.cn, .ru等非业务域)
本地端口映射到外部IP的反向代理(如LOCAL_ADDR=192.168.x.x -> REMOTE_ADDR=公网IP
非标准服务的奇怪端口(如8080/tcp却被httpd以外的进程占用)

文件完整性校验

目标路径 作用 检测方法
/bin/bash Shell解释器 MD5比对官方镜像值
/usr/sbin/sshd SSH服务端 strings命令查看嵌入字符串
/etc/passwd 用户凭证数据库 find / -name “passwd” -exec ls -l {} ;
/etc/crontab 计划任务表 grep -rn “/5 “

示例操作

# 计算关键文件哈希值并与官方对比
md5sum /bin/bash > /tmp/bash.md5
# 从官网下载对应版本的MD5值进行比对

系统配置改动检测

重点关注文件

cat /etc/profile        # 全局环境变量设置
cat /etc/bashrc         # 交互式shell配置
cat /etc/hosts          # DNS解析劫持点
cat /etc/resolv.conf    # 上游DNS服务器设置

典型攻击手法
️‍️ 在/etc/profile末尾添加export PS1="hacked"等标识符
️‍️ 修改/etc/hosts将内部域名解析到攻击者IP
️‍️ 替换/etc/nsswitch.conf调整服务查找顺序

日志溯源分析

核心日志路径
| 日志类型 | 路径 | 关注重点 |
|—————-|——————————-|—————————–|
| 认证日志 | /var/log/auth.log | 失败登录尝试、SUDO提权记录 |
| 系统日志 | /var/log/syslog | 服务启动停止事件 |
| 安全日志 | /var/log/secure | PAM模块认证记录 |
| 内核日志 | /var/log/kern.log | 驱动加载/卸载记录 |

分析技巧

# 查找最近7天的成功登录记录
grep "Accepted password" /var/log/auth.log | tail -n 100
# 检索敏感命令执行历史
grep -E 'b(sudo|chmod|chown)b' /var/log/syslog | tail -n 50

隐蔽通道检测

常见藏匿位置

find /dev/shm -type f -mtime -1h     # 短期存活的内存盘文件
find /tmp -name ".tmp" -exec ls -l {} ;  # 伪装成临时文件
strings /dev/shm/ | grep -i "reverse shell"  # 提取可打印字符串

高级技巧

# 检测隐藏进程(需root权限)
for p in $(pgrep -a); do ltrace -p $p ; done  # 跟踪系统调用

自动化检测工具推荐

工具名称 特点 适用场景
chkrootkit 专门检测rootkit的工具集 快速初筛
rkhunter 集成多种检测规则 深度扫描
falco 基于行为的实时监控 生产环境持续防护
osquery SQL查询系统状态 复杂环境批量检测

应急响应流程

  1. 隔离阶段:立即断网(iptables -P INPUT DROP),防止数据外泄
  2. 取证阶段:完整备份磁盘镜像(dd if=/dev/vda of=/backup/disk.img bs=4M
  3. 清除阶段:根据检测结果删除反面文件,重置密钥对
  4. 恢复阶段:从可信备份重建系统,更新所有账户密码
  5. 加固阶段:实施最小化权限原则,禁用不必要的服务

相关问答FAQs

Q1: 如何区分正常进程和反面进程?
A: 主要通过三个维度判断:①命令行参数是否包含动态执行语句(如wget+);②进程所属用户与实际功能是否匹配(如普通用户运行/usr/sbin/sshd);③进程文件路径是否在标准位置(如/tmp/下的可疑二进制),建议结合lsof查看进程打开的文件描述符,若存在大量外部IP连接则基本可判定为反面。

Q2: 发现可疑进程后应该如何处理?
A: 切勿直接kill进程!正确步骤:①使用strace跟踪其系统调用(strace -p <PID>);②提取进程内存转储(gcore -o coredump <PID>);③记录完整进程树(pstree -aps <PID>);④最后才终止进程并删除关联文件,整个过程需保留证据用于后续分析。


通过上述多维度的检测方法,可以有效识别Linux系统是否已被植入后门,建议每周执行一次常规检查,并在发现异常时立即启动应急响应流程,对于关键业务系统,推荐部署auditd等审计框架实现实时

0