linux CentOS检查见后门程序的shell

以下是在CentOS系统上检测潜在后门程序的完整Shell命令集合,按检查类别组织:

1. 检查异常用户和登录

bash

复制

# 检查/etc/passwd中的异常用户
awk -F: '($3 == 0) {print}' /etc/passwd

# 检查空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow

# 查看最近登录记录
last -n 20

# 检查当前登录用户
who -a

# 检查失败的登录尝试
lastb | head -n 20

# 检查sudoers文件修改
ls -lt /etc/sudoers /etc/sudoers.d/*

2. 检查异常进程

bash

复制

# 查看所有进程的完整命令行
ps auxfww

# 查看网络连接的进程
netstat -tulpan
# 或使用ss命令
ss -tulpan

# 检查隐藏进程
ps -ef | awk '{print $2}' | sort -n | uniq -c | awk '$1>1'

# 检查异常的进程树
pstree -apnh

# 检查CPU占用高的进程
top -b -n 1 | head -n 20

3. 检查定时任务

bash

复制

# 系统级定时任务
ls -la /etc/cron* /var/spool/cron

# 查看所有用户的crontab
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done

# 检查最近修改的定时任务
find /etc/cron* /var/spool/cron -type f -mtime -7 -ls

4. 检查异常文件

bash

复制

# 查找最近3天内修改的文件
find / -type f -mtime -3 -ls | grep -vE "/proc/|/sys/|/dev/|/run/"

# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -la {} \;

# 查找可写的系统文件
find / -path /proc -prune -o -type f -perm -o+w -exec ls -la {} \;

# 检查/tmp和/var/tmp异常文件
ls -la /tmp /var/tmp

5. 检查网络连接和后门

bash

复制

# 检查异常网络连接
lsof -i -nP

# 检查隐藏的TCP/UDP端口
netstat -nap | grep -i listen
ss -lntup

# 检查异常的DNS查询
cat /etc/resolv.conf
cat /etc/hosts

# 检查iptables/nftables规则
iptables -L -n -v
nft list ruleset

6. 检查系统服务

bash

复制

# 查看所有服务状态
systemctl list-units --type=service --all

# 检查自启动服务
systemctl list-unit-files --state=enabled

# 检查最近修改的服务文件
find /etc/systemd/system /usr/lib/systemd/system -type f -mtime -7 -ls

7. 检查内核模块

bash

复制

# 查看已加载的内核模块
lsmod

# 检查异常内核模块
find /lib/modules/$(uname -r) -type f -name "*.ko" | xargs ls -la

8. 检查Rootkit

bash

复制

# 使用rkhunter检查(需安装)
rkhunter --check --sk

# 使用chkrootkit检查(需安装)
chkrootkit

# 检查LD_PRELOAD劫持
echo $LD_PRELOAD
grep -r "LD_PRELOAD" /etc/ /home/ /root/

9. 检查SSH后门

bash

复制

# 检查SSH authorized_keys文件
find / -name authorized_keys -exec ls -la {} \; -exec cat {} \;

# 检查SSH配置文件修改
ls -lt /etc/ssh/sshd_config
grep -i "PermitRootLogin\|PasswordAuthentication" /etc/ssh/sshd_config

# 检查~/.ssh目录权限
find /home /root -name .ssh -type d -exec ls -ld {} \;

10. 自动化检查脚本

可以创建包含以下内容的检查脚本:

bash

复制

#!/bin/bash
echo "=== 安全检查开始 ==="
date
echo -e "\n### 用户检查 ###"
awk -F: '($3 == 0) {print}' /etc/passwd
echo -e "\n### 进程检查 ###"
ps auxfww
echo -e "\n### 网络检查 ###"
netstat -tulpan
echo -e "\n### 定时任务检查 ###"
ls -la /etc/cron* /var/spool/cron
echo -e "\n=== 安全检查结束 ==="

注意事项

  1. 建议在干净的系统中运行这些命令,避免检查工具本身被篡改
  2. 对于生产环境,最好使用Live CD启动后进行检查
  3. 发现可疑项目时,不要立即删除,先备份证据
  4. 检查完毕后应考虑重装系统以确保安全

这些命令组合可以帮助您全面检查CentOS系统中可能存在的后门程序。根据实际情况,您可能需要调整命令参数或添加更多特定的检查项。

原文链接:,转发请注明来源!