
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\RunWindows 登录时自动执行该键下所有可执行项HKEY 分为 HKLM全用户生效与 HKCU仅当前用户/v SysCache值名同样走伪装命名/t REG_SZ字符串类型/d指向 payload 的路径/f强制覆盖不询问。同族键位还有RunOnce只执行一次但攻击者可让程序每次运行后重写自己实现名义一次、实际常驻、启动文件夹shell:startup目录放快捷方式、Winlogon的 Userinit 键替换值追加路径更隐蔽也更危险。检测自启动项变更监控是 EDR 基础能力蓝队手工排查用autorunsSysinternals 工具它枚举的启动位置远多于任务管理器的启动标签页——任务管理器只能看到一小部分这是很多人的认知盲区。2.4 粘滞键后门原理Windows 的辅助功能替换类后门粘滞键是最出名的代表。原理连按五次 Shift 触发sethc.exe辅助功能程序位于锁屏界面也可触发。攻击者做法是把sethc.exe替换为cmd.execd 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按 WinU 弹出的轻松访问同样锁屏可用。现代 Windows 的系统文件完整性保护SFC/WRP会让替换失败需先绕过但靶场老系统镜像依然是经典必练项。检测sfc /scannow直接发现并修复被替换的系统文件文件完整性基线系统目录 hash 快照对这类改系统文件的手法是降维打击。2.5 Golden Ticket长期票据维持第 11 篇已详述黄金票据的伪造原理这里强调它在持久化维度的价值伪造时把票据有效期设成极长如 10 年实现一票在手十年回城与上面所有文件级后门不同黄金票据不落盘——没有文件、没有注册表痕迹、没有进程纯内存注入/ptt即用即抛唯一根治手段是重置 krbtgt 密码两次。这也是蓝队处置域失陷的标准动作之一。这也解释了它为什么被公认为最优雅的持久化攻击面在凭据层而非系统配置层。三、Linux 侧维持手法3.1 SSH 公钥后门攻击者拿到 Linux 机器的 shell弱口令或 RCE后mkdir-p~/.ssh# 确保目录存在echossh-rsa AAAAB3...(攻击者公钥) attackerkali~/.ssh/authorized_keyschmod700~/.ssh# 目录权限必须是 700chmod600~/.ssh/authorized_keys# 文件权限必须是 600逐行解释公钥追加进authorized_keys后攻击者用对应私钥即可免密登录对方改了 root 密码也无效——密码认证被绕过最后两行 chmod不是可选项sshd 对权限有严格要求权限过宽如 777时 sshd 会拒绝该文件生效这是很多新手后门莫名失效的原因。检测审计所有authorized_keys内容与最后修改时间结合登录日志/var/log/auth.log、last命令核对哪些 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 复制出来并授予 SUIDcp/bin/bash /tmp/.sroot# 复制 bashchmodus /tmp/.sroot# 加 SUID 位属主是 root 时执行即 root 权限/tmp/.sroot-p# 运行-p 保留有效权限新 bash 会降权必须加逐行解释复制后的文件属主是复制者需要属主是 root时普通用户在 root shell 里操作属主才是 root加 SUID 后任何普通用户执行./.sroot -p即获得 root-p--privilegedbash 会主动丢弃 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 规则直接拦流量全密文规则引擎失效针对加密流量型的检测思路防御者重点流量统计特征密文流量规律——请求 body 大小分布异常集中加密块对齐特征、Content-Type 与 body 内容不匹配、同一 URL 高频 POST 且无正常业务参数结构行为特征webshell 的执行器行为——木马每次请求都会触发新的进程命令执行或异常文件操作主机侧 EDR 关联web 服务进程 → 可疑子进程链路即可命中落盘文件审计web 目录新增 php/jsp 文件的变更监控文件完整性监控 FIM哪怕代码混淆新出现一个非发布流程产生的脚本文件本身就是告警。4.3 webshell 隐藏技巧与对应检测攻击者常见隐藏手段同步给检测思路改后缀/解析混淆.php5、x.php.jpg配合解析漏洞——检测web 服务器严格限制可解析后缀白名单藏在合法文件里把木马代码插到正常业务脚本中间、利用include链散布——检测文件 hash 基线业务发布流程之外的任何文件内容变更都告警修改时间伪造touch伪装成老文件见第 14 篇——检测以文件系统底层时间戳与 inode 变更记录为准不能只信 mtime。五、清除后门是渗透收尾必做白帽伦理的分界线就在这里授权测试中植入的每个持久化点报告里要逐条登记收尾时逐条清除隐藏账户删除net user backdoor$ /delete计划任务删除schtasks /delete /tn SysCacheUpdate /f注册表键删除reg delete ... /v SysCache /fwebshell、上传工具、公钥、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 ATTCK 的 Persistence 战术下有数十个技术 ID逐一排查的置信度永远低于重置系统镜像。所以企业处置失陷主机的标准动作是取证后直接重装恢复而不是杀完毒继续用”。同理域级失陷的标准处置是重置 krbtgt 轮换全部特权凭据”这比逐主机排查更彻底。重装不是懒惰是对抗不确定性下的最优解。七、小结权限维持的本质是在防守方的地盘上留下一条不设防的路而防御的本质是把每条路都装上摄像头。文件层账户/任务/自启/公钥、系统层SUID/粘滞键、凭据层黄金票据、应用层webshell四个层面各自成体系攻击与检测也各自对应。下一篇进入攻防的最后一环攻击者如何抹去这条路上的一切脚印蓝队又如何让清痕这个动作本身变成最大的告警。