权限维持技术:后门植入、开机自启、隐藏权限
2026/9/17 13:14:31 网站建设 项目流程

13-权限维持技术:后门植入、开机自启、隐藏权限

合规声明:本文所有技术仅在本地靶场(VulnHub、Metasploitable、自建域环境)或已签署书面授权的渗透测试项目中演示。未经授权的渗透测试属违法行为,可能触犯《刑法》第285条、第286条。权限维持是攻击者视角的"持久化",在授权测试中它服务于"验证失陷后能否长期控制"这一测试目标,且测试结束必须清除;对防御者而言,理解每一种持久化手法就是掌握一份"该查哪"的排查清单。这是白帽教程,核心目标是让蓝队理解攻击链路。

一、权限维持的目的与授权前提

一句话定义:权限维持(Persistence)是防止失陷权限丢失的技术

为什么需要它?攻击者视角:

  • 密码被改了:管理员发现异常重置密码,普通凭据失效;
  • 机器重启了:内存里的 shell、票据全部蒸发;
  • 进程被杀了:上一次入侵留下的会话被 EDR 终结。

有权限维持,即使上述情况发生,攻击者仍有一条"暗道"可以回来。

白帽视角的再强调:授权渗透测试中植入持久化必须在合同范围内,测试报告中明确记录所有后门位置,收尾阶段全部清除(这是第 14 篇的核心内容之一)。真实环境中未经授权植入后门,是入侵行为的"实锤证据",法律定性时直接影响量刑。所以本篇每一节都会同步给"检测与清除"视角。

二、Windows 常见维持手法

2.1 隐藏账户:$结尾的把戏

最经典的 Windows 后门手法,操作(靶场):

net user backdoor$ Passw0rd! /add net localgroup administrators backdoor$ /add

逐行解释:

  • 第一条创建用户backdoor$
  • 第二条将其加入本地管理员组。

"隐藏"的原理:net user命令枚举用户列表时,来自 SAM 的枚举逻辑会过滤以$结尾的账号(这是系统机器账号如DC01$的命名约定,普通枚举不显示),所以net user看不到它。但这个账号真实存在且可正常登录

蓝队破解法(务必掌握):绕过net user直接看注册表:

HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

注意:SAM 键默认只有 SYSTEM 权限可读,管理员也读不了。用psexec -s regedit(以 SYSTEM 身份打开注册表)即可看到完整用户列表,backdoor$原形毕露。这是"隐藏账户不隐藏于注册表"的经典排查案例。

2.2 计划任务后门

schtasks /create /tn "SysCacheUpdate" /tr "C:\Users\Public\shell.exe" /sc minute /mo 30 /ru SYSTEM

逐参数解释:

  • /create:创建任务;/tn:任务名——注意起了个系统风格的名字(社工维度:名字要像系统组件,SysCacheUpdate比叫backdoor生存率高一万倍);
  • /tr:要执行的程序路径,藏在C:\Users\Public这种全用户可写目录;
  • /sc minute /mo 30:每 30 分钟触发一次(低频触发避开频次告警);
  • /ru SYSTEM:以 SYSTEM 身份运行(直接拿最高权限)。

检测:事件日志 4698/4699/4700 记录任务创建与启用;重点审计"以 SYSTEM 运行、指向 Public 目录、任务名不在基线清单内"的组合特征。基线快照对比(记录全环境合法任务清单)是对付伪装命名的根本方法。

2.3 注册表自启动键位

reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v SysCache /t REG_SZ /d "C:\Users\Public\shell.exe" /f

逐参数解释:

  • 目标键HKLM\...\CurrentVersion\Run:Windows 登录时自动执行该键下所有可执行项,HKEY 分为 HKLM(全用户生效)与 HKCU(仅当前用户);
  • /v SysCache:值名,同样走伪装命名;
  • /t REG_SZ:字符串类型;/d:指向 payload 的路径;/f:强制覆盖不询问。

同族键位还有:RunOnce(只执行一次,但攻击者可让程序每次运行后重写自己,实现"名义一次、实际常驻")、启动文件夹(shell:startup目录放快捷方式)、Winlogon的 Userinit 键(替换值追加路径,更隐蔽也更危险)。

检测:自启动项变更监控是 EDR 基础能力;蓝队手工排查用autoruns(Sysinternals 工具),它枚举的启动位置远多于任务管理器的"启动"标签页——任务管理器只能看到一小部分,这是很多人的认知盲区。

2.4 粘滞键后门(原理)

Windows 的辅助功能替换类后门,粘滞键是最出名的代表。

原理:连按五次 Shift 触发sethc.exe(辅助功能程序,位于锁屏界面也可触发)。攻击者做法是把sethc.exe替换为cmd.exe

cd C:\Windows\System32 takeown /f sethc.exe # 夺取文件所有权(SYSTEM 文件默认管理员无权改) icacls sethc.exe /grant administrators:F # 给管理员完全控制权限 copy /y cmd.exe sethc.exe # 覆盖:锁屏界面五击 Shift = 唤出 SYSTEM 权限 cmd

逐行解释:

  • takeown /f sethc.exe:获取所有权,否则第 2 步会拒绝访问;
  • icacls ... /grant administrators:F:授予写权限;
  • 最后把 cmd 复制覆盖 sethc——注意锁屏状态下触发的是 SYSTEM 会话的 cmd,无需登录即得最高权限

同族手法还有utilman.exe(按 Win+U 弹出的轻松访问,同样锁屏可用)。现代 Windows 的系统文件完整性保护(SFC/WRP)会让替换失败,需先绕过,但靶场(老系统镜像)依然是经典必练项。

检测sfc /scannow直接发现并修复被替换的系统文件;文件完整性基线(系统目录 hash 快照)对这类"改系统文件"的手法是降维打击。

2.5 Golden Ticket:长期票据维持

第 11 篇已详述黄金票据的伪造原理,这里强调它在持久化维度的价值:

  • 伪造时把票据有效期设成极长(如 10 年),实现"一票在手,十年回城";
  • 与上面所有文件级后门不同,黄金票据不落盘——没有文件、没有注册表痕迹、没有进程,纯内存注入(/ptt)即用即抛;
  • 唯一根治手段是重置 krbtgt 密码两次。这也是蓝队处置域失陷的标准动作之一。

这也解释了它为什么被公认为"最优雅的持久化":攻击面在凭据层而非系统配置层。

三、Linux 侧维持手法

3.1 SSH 公钥后门

攻击者拿到 Linux 机器的 shell(弱口令或 RCE)后:

mkdir-p~/.ssh# 确保目录存在echo"ssh-rsa AAAAB3...(攻击者公钥) attacker@kali">>~/.ssh/authorized_keyschmod700~/.ssh# 目录权限必须是 700chmod600~/.ssh/authorized_keys# 文件权限必须是 600

逐行解释:

  • 公钥追加进authorized_keys后,攻击者用对应私钥即可免密登录(对方改了 root 密码也无效——密码认证被绕过);
  • 最后两行 chmod不是可选项:sshd 对权限有严格要求,权限过宽(如 777)时 sshd 会拒绝该文件生效,这是很多新手后门"莫名失效"的原因。

检测:审计所有authorized_keys内容与最后修改时间;结合登录日志(/var/log/auth.loglast命令)核对"哪些 key 在被谁用"。

3.2 crontab 定时任务

(crontab-l2>/dev/null;echo"*/30 * * * * /tmp/.c/rev.sh")|crontab-

逐段解释:

  • crontab -l:先读现有任务(2>/dev/null静默处理"无任务"的报错);
  • 拼接新任务:每 30 分钟执行一次反弹脚本,脚本藏在/tmp/.c/(以点开头的隐藏目录);
  • | crontab -:把拼接结果整体写回 crontab——这个"先读后写"的写法保证不覆盖掉已有任务,避免破坏业务暴露自己。

检测/var/spool/cron/(Debian 系在/var/spool/cron/crontabs/)下的计划任务文件定期审计基线比对;关注/tmp/dev/shm等临时目录里的可执行文件。

3.3 SUID 后门

原理速成:SUID 位使文件执行时以文件属主身份运行。把 shell 复制出来并授予 SUID:

cp/bin/bash /tmp/.sroot# 复制 bashchmodu+s /tmp/.sroot# 加 SUID 位,属主是 root 时执行即 root 权限/tmp/.sroot-p# 运行:-p 保留有效权限(新 bash 会降权,必须加)

逐行解释:

  • 复制后的文件属主是复制者;需要属主是 root时(普通用户在 root shell 里操作,属主才是 root),加 SUID 后任何普通用户执行./.sroot -p即获得 root;
  • -p--privileged):bash 会主动丢弃 SUID 来的权限,-p是唯一让它保留的开关,不加的话执行完还是普通用户,等于白干。

检测:一条命令全网排查 SUID 异常文件:

find/-perm-4000-typef2>/dev/null

解释:-perm -4000匹配含 SUID 位的文件,-type f只要普通文件。基线之外的 SUID 文件(尤其是 /tmp、/home 下的)一律视为高危。

四、webshell 与其检测难点

4.1 webshell 种类

  • 一句话木马:经典形态如 PHP 的<?php @eval($_POST['cmd']); ?>——只有一行,把 POST 参数当代码执行;功能极简,靠客户端(如中国蚁剑)下指令;
  • 加密流量型(冰蝎/哥斯拉)与一句话的本质区别是通信加密。冰蝎 3.x/4.x 默认 AES 加密传输、哥斯拉支持 AES/XOR 等——服务端木马先解密再 eval,流量侧看到的是密文;
  • 内存马:不落盘,注册进中间件的 Filter/Listener 等运行时组件,进程重启即消失(Java 系如 Tomcat Filter 型内存马),查文件查不到。

4.2 检测难点与对应手段

检测层面一句话木马加密流量型(冰蝎/哥斯拉)
静态文件特征明文 eval/assert 等函数易被规则命中服务端代码可混淆,静态规则命中率低
流量侧POST 参数是明文代码,WAF 规则直接拦流量全密文,规则引擎失效

针对加密流量型的检测思路(防御者重点):

  1. 流量统计特征:密文流量规律——请求 body 大小分布异常集中(加密块对齐特征)、Content-Type 与 body 内容不匹配、同一 URL 高频 POST 且无正常业务参数结构;
  2. 行为特征:webshell 的"执行器"行为——木马每次请求都会触发新的进程(命令执行)或异常文件操作,主机侧 EDR 关联"web 服务进程 → 可疑子进程"链路即可命中;
  3. 落盘文件审计:web 目录新增 php/jsp 文件的变更监控(文件完整性监控 FIM),哪怕代码混淆,"新出现一个非发布流程产生的脚本文件"本身就是告警。

4.3 webshell 隐藏技巧与对应检测

攻击者常见隐藏手段(同步给检测思路):

  • 改后缀/解析混淆.php5x.php.jpg配合解析漏洞——检测:web 服务器严格限制可解析后缀白名单;
  • 藏在合法文件里:把木马代码插到正常业务脚本中间、利用include链散布——检测:文件 hash 基线,业务发布流程之外的任何文件内容变更都告警;
  • 修改时间伪造touch伪装成老文件,见第 14 篇)——检测:以文件系统底层时间戳与 inode 变更记录为准,不能只信 mtime。

五、清除后门是渗透收尾必做

白帽伦理的分界线就在这里:授权测试中植入的每个持久化点,报告里要逐条登记,收尾时逐条清除

  • 隐藏账户删除:net user backdoor$ /delete
  • 计划任务删除:schtasks /delete /tn "SysCacheUpdate" /f
  • 注册表键删除:reg delete ... /v SysCache /f
  • webshell、上传工具、公钥、SUID 文件全清(完整清单见第 14 篇);
  • 黄金票据类"无法本地清除"的维持手段(它不落盘),必须在报告中明确提示甲方重置 krbtgt 密码两次

漏掉一个后门 = 给客户留下一个真实风险 = 职业污点。渗透测试的交付物是"发现的问题 + 已恢复的环境",不是"我留下的一条暗道"。

六、检测与防御方案汇总

给防御者一份按手法对应的排查矩阵:

攻击手法检测点防御措施
$隐藏账户注册表 SAM 键(SYSTEM 权限读取)账户生命周期审计:新增账户必须关联变更工单
计划任务后门4698/4699/4700 事件任务基线快照比对,SYSTEM 任务重点审
Run/RunOnce 自启autoruns 全量枚举 + EDR 注册表监控自启动项基线,变更即告警
粘滞键后门sfc /scannow、系统文件 hash 基线系统文件完整性保护保持开启
Golden Ticket4624 出现"幽灵账户"重置 krbtgt 两次;缩短票据生命周期
SSH 公钥authorized_keys 审计密钥管理纳管,登录日志关联告警
crontab/var/spool/cron 基线定时任务配置纳管(如必须走 CMDB 流程)
SUID 后门find / -perm -4000最小化 SUID 白名单,其余一律去除
webshellFIM + 流量统计 + 进程链关联上线前发布流程管控,web 目录只读化(配合运行账户降权)

最后聊聊"重装论":安全圈的老梗——“中了恶意软件怎么办?重装。“对权限维持而言这句话有真实内核:因为持久化手法实在太多(本篇只是入门清单,MITRE ATT&CK 的 Persistence 战术下有数十个技术 ID),逐一排查的置信度永远低于重置系统镜像。所以企业处置失陷主机的标准动作是:取证后直接重装恢复,而不是"杀完毒继续用”。同理,域级失陷的标准处置是"重置 krbtgt + 轮换全部特权凭据”,这比逐主机排查更彻底。重装不是懒惰,是对抗不确定性下的最优解。

七、小结

权限维持的本质是"在防守方的地盘上留下一条不设防的路",而防御的本质是"把每条路都装上摄像头"。文件层(账户/任务/自启/公钥)、系统层(SUID/粘滞键)、凭据层(黄金票据)、应用层(webshell)四个层面各自成体系,攻击与检测也各自对应。下一篇进入攻防的最后一环:攻击者如何抹去这条路上的一切脚印,蓝队又如何让"清痕"这个动作本身变成最大的告警。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询