写在前面:合法学习边界
权限维持只允许在授权靶场进行。在真实系统留后门可能触犯法律。本文攻防视角,重点也在“如何发现与清理”。
一、原理
渗透拿下主机后,为避免“重连一次就丢”,会做权限维持(持久化):把后门藏进系统自启动机制,让它在重启/登录后仍能复活。
二、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
| 先取证,再断后门
删除计划任务/服务/注册表/脚本/密钥
杀进程、清持久化
修漏洞防止再次进入
|
五、小结
权限维持的本质是“利用系统自启动机制藏后门”。防守重点不是背后门列表,而是掌握主机的自启动/自运行面(计划任务、服务、启动项、登录脚本),定期审计。清理时先取证、再断链。