针对学校内网的一次渗透测试
字数 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 发现的安全问题

  1. 老旧系统未下线且存在已知漏洞
  2. 系统补丁更新不及时(MS16-075)
  3. Oracle数据库使用默认配置和弱密码
  4. 密码重用现象严重
  5. 敏感信息(如Xftp密码)明文保存

6.2 防御建议

  1. 及时下线不再使用的老旧系统
  2. 定期更新系统补丁
  3. 修改数据库默认配置和密码
  4. 实施最小权限原则
  5. 对敏感信息进行加密存储
  6. 加强安全监控和异常行为检测

6.3 渗透测试技巧总结

  1. 全面信息收集是关键
  2. 新旧系统都要检查
  3. 横向移动时优先使用哈希传递
  4. 遇到防护时尝试多种绕过方法
  5. 注意利用系统历史记录和配置文件中的信息
  6. 在线破解服务可作为辅助工具
学校内网渗透测试技术文档 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存储过程执行系统命令: 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 渗透测试技巧总结 全面信息收集是关键 新旧系统都要检查 横向移动时优先使用哈希传递 遇到防护时尝试多种绕过方法 注意利用系统历史记录和配置文件中的信息 在线破解服务可作为辅助工具