不出网环境下的渗透测试
字数 1456 2025-08-29 08:30:05
不出网环境下的渗透测试技术详解
环境概述
本次渗透测试模拟的是一个不出网环境下的攻击场景:
-
靶机环境:
- IP地址:10.10.10.135
- 运行有CVE-2022-26134漏洞的Confluence服务(端口8090)
- 数据库服务:PostgreSQL(默认用户postgres:postgres,端口5432)
-
攻击机环境:
- IP地址:10.10.10.1
- 使用工具:vshell、suo5、哥斯拉、Proxifier、Navicat
漏洞利用阶段
1. 初始漏洞利用(CVE-2022-26134)
Confluence的CVE-2022-26134是一个OGNL表达式注入漏洞,允许远程代码执行。
利用步骤:
- 构造恶意请求利用该漏洞
- 上传内存马(内存webshell)到目标系统
- 使用哥斯拉(Godzilla)连接该内存马
2. 建立第一层代理(suo5)
由于目标环境不出网,需要建立代理通道:
- 通过哥斯拉的suo5插件注入Suo5Filter马
- 注入成功后,使用suo5客户端连接建立代理通道
技术要点:
- Suo5是一种用于不出网环境下的代理工具
- 内存马注入不留痕迹,避免文件落地
3. 获取正向Shell(vshell)
- 使用vshell生成正向监听器
- 通过哥斯拉上传vshell客户端到
/var/tmp目录 - 在哥斯拉的虚拟终端中执行:
chmod +x /var/tmp/vshell nohup /var/tmp/vshell & # 使用nohup避免痕迹 - 查看内网IP信息
- 在vshell上建立正向连接
4. 数据库信息收集
-
在获取的shell中查看Confluence配置文件:
/var/atlassian/application-data/confluence/confluence.cfg.xml -
获取数据库凭据:
- 用户名:postgres
- 密码:postgres
- 端口:5432
- 主机名:db(需进一步解析)
-
使用curl解析真实数据库IP:
curl http://db:5432发现真实IP为172.18.0.2
数据库渗透阶段
1. 建立第二层代理
- 在vshell中创建隧道,将数据库端口映射到本地
- 配置Proxifier设置代理规则
- 使用Navicat通过代理连接数据库
2. 数据库操作
- 连接PostgreSQL数据库后,查看
confluence库中的cwd_user表 - 获取管理员账号密码(使用PBKDF2加密)
- 备份原始密码
- 将管理员密码修改为简单密码(如123456)
3. Confluence登录与权限维持
- 使用修改后的密码登录Confluence管理界面
- 创建新的管理员账号
- 退出admin账号,将原始密码恢复
- 保留新创建的管理员账号作为后门
技术总结
-
不出网环境渗透关键点:
- 利用内存马避免文件落地
- 分层建立代理通道(suo5 → vshell → Proxifier)
- 使用nohup执行不留痕迹
-
工具链使用:
- 哥斯拉:Webshell管理
- suo5:第一层代理建立
- vshell:正向Shell获取
- Proxifier:流量转发
- Navicat:数据库管理
-
权限维持技巧:
- 修改-恢复密码不留痕迹
- 创建隐蔽管理员账号
- 使用内存驻留技术避免文件检测
-
数据库渗透路径:
- 配置文件信息收集 → 数据库定位 → 代理建立 → 凭证修改 → 权限维持
防御建议
- 及时修补Confluence漏洞(CVE-2022-26134)
- 数据库服务不应使用默认凭证
- 实施网络隔离,限制数据库访问
- 监控异常进程和网络连接
- 实施严格的权限管理和审计日志
- 对配置文件进行权限控制
- 部署内存马检测机制
通过这种分层渗透技术,攻击者可以在不出网环境下建立完整的攻击链,获取系统控制权并维持持久访问。防御方需要采取纵深防御策略来应对此类攻击。