记某次授权测试
字数 1955 2025-08-15 21:31:30
渗透测试实战教学:从文件上传到内网探测
一、文件上传漏洞利用
1. 初步文件上传测试
-
基础测试流程:
- 上传JPG文件(返回200)
- 上传TXT文件(内容:123,返回Success)
- 上传JSP文件(内容:123,返回Success)
- 访问上传的JSP文件(显示123)
-
关键发现:
- 所有文件类型上传都返回200状态码
- 初步认为存在文件上传漏洞
2. 上传Webshell遇到的障碍
-
首次尝试:
- 上传JSP冰蝎马(返回200)
- 访问时出现404错误
-
问题分析:
- 可能存在的防护机制:
- 内容检测(检查特定恶意代码)
- 实际上传未成功(返回数据包欺骗)
- 可能存在的防护机制:
3. 绕过内容检测的Fuzz测试
-
测试特殊字符限制:
<%%>→ 404<%123>→ 404<123%>→ 200- 发现JSP文件开头不能使用
%
-
绕过方案:
- 使用不带
%%的JSP木马 - 或使用字符混淆技术
- 使用不带
4. 成功上传Webshell
-
解决方案:
- 使用不带
%%的JSP命令执行马 - 上传成功并可以访问(200状态码)
- 使用不带
-
命令执行限制:
- 发现不能执行带空格的命令
- 使用
@连接符替代空格(如net@user)
-
混淆技术应用:
- 在恶意代码前后添加乱码字符
- 绕过内容检测机制
二、内网信息收集与横向移动
1. 基础信息收集
-
网络环境探测:
ipconfig/arp/netstat -ano→ 发现多层内网net time→ 确认无域控环境tasklist→ 发现vmtools.exe(VM虚拟化环境)
-
系统环境确认:
- PowerShell可用
- 无杀毒软件迹象
- x86架构系统
2. Cobalt Strike上线
-
利用方法:
- 通过Webshell执行PowerShell命令
- 使用CS的"Scripted Web Delivery"生成Payload
-
遇到的问题:
- x86系统导致CS不稳定(5分钟才能执行一个命令)
- 解决方案:
- 上传独立exe文件执行
- 将session注入到MSF(更稳定)
3. 内网横向移动
-
凭证获取:
- 使用mimikatz获取管理员hash
- NTLM → MD5解密成功
-
代理设置:
- 通过CS建立socks代理到VPS
- 使用Proxifier将mstsc.exe流量代理到本地
-
网络拓扑发现:
- 发现多个内网网段:
- 10.10.10.1:123 → 10.10.20.1:3306(数据库)
- 10.10.10.1:233 → 172.10.1.1:98
- 10.10.10.1:333 → 10.254.1.1
- 确认当前处于DMZ区
- 发现多个内网网段:
-
存活主机探测:
- 当前网段发现10多台存活主机
- 密码通用,登录多台机器但无更多发现
-
数据库网段探测:
- ARP扫描发现约10台机器
- 使用Advanced IP Scanner扫描80端口
- 尝试通过Web接口寻找云平台
三、SQL注入漏洞利用尝试
1. 注入点发现
-
漏洞位置:
- 后台某搜索框
- 存在报错注入和延时注入
-
权限确认:
- 当前数据库用户为DBA
2. 获取Webshell尝试
-
常规方法:
- 需要知道网站绝对路径
- Web目录可写
- 支持
into outfile
-
路径探测:
- 通过报错信息未果(统一404页面)
- 通过Resin版本信息猜测路径:
E:\resin\C:\resinE:\Program Files (x86)\resin
3. UDF提权尝试
-
前提条件:
- 支持
into outfile - 知道lib/plugin目录
- 支持
-
遇到的问题:
- SQLMap报错不支持堆叠查询
- 最终未能成功
4. 数据库用户枚举
-
方法:
- 直接读取用户名密码
- 发现前几条记录为NULL
- 使用
sql-shell执行自定义查询
-
结果:
- 发现多个数据库管理用户
- 但未找到有效利用点
5. 后台文件上传测试
- 测试结果:
- 存在任意文件上传功能
- 但上传的Flash文件不解析
- 上传后的URL格式:
http://www.ceshi.com/1.jsp?id=u23i451k2h4h5j
四、经验总结与技巧
-
文件上传绕过:
- 内容检测通常检查特定模式(如
<%%>) - 通过字符混淆或使用替代语法绕过
- 内容检测通常检查特定模式(如
-
内网渗透要点:
- 信息收集是关键(网络拓扑、存活主机、服务)
- 密码重用现象普遍
- 工具选择要考虑系统架构(x86/x64)
-
SQL注入利用:
- 路径猜测需要结合中间件信息
- UDF提权需要满足多个条件
- 堆叠查询支持影响利用方式
-
稳定性问题:
- x86系统上的PowerShell可能不稳定
- 原生exe通常更可靠
- MSF比CS在某些环境下更稳定
-
时间管理:
- 避免在单一技术上耗费过多时间
- 快速评估漏洞可利用性
- 准备多种备用方案