当前位置: 首页 > news >正文

从盘古石杯CTF赛题出发:手把手教你用Navicat+SSH隧道连接Docker内网数据库(附实战避坑点)

内网数据库渗透实战:从CTF赛题到Navicat+SSH隧道的高级应用

当你在CTF比赛中拿到一个服务器镜像,发现它运行着Docker并开放了非常规端口时,如何快速定位并连接内网数据库?这不仅是比赛中的常见场景,也是真实安全运维中的必备技能。本文将带你从零开始,通过SSH隧道技术穿透Docker网络,用Navicat实现图形化操作,同时分享多个实战中积累的避坑经验。

1. 环境侦察与Docker网络拓扑分析

在开始连接之前,我们需要先理解目标环境的网络结构。通过几个关键命令,可以快速绘制出Docker的内网地图:

# 查看主机网络接口 ip a # 列出所有运行中的容器 docker ps -a # 检查特定容器的详细配置(替换64为你的容器ID) docker inspect 64 | grep -i 'db' -C 10

典型Docker网络模式对比

网络模式IP分配特点外部访问方式适用场景
Bridge172.17.0.0/16端口映射或直接访问默认模式,容器间隔离
Host共享主机网络栈直接使用主机IP高性能需求场景
None无网络接口无法直接通信特殊安全需求

提示:当发现8065等非常规端口时,先用curl测试HTTP服务,再考虑数据库可能性。例如:curl -v http://192.168.48.133:8065

在最近一次实战中,我们发现目标容器使用了Mattermost(一个开源通讯平台),其数据库凭证就存储在环境变量中。通过docker inspect输出的JSON结果里,搜索以下关键字段往往会有收获:

  • Env(环境变量)
  • Config.Cmd(启动命令)
  • Mounts(挂载点)

2. SSH隧道配置的进阶技巧

建立SSH隧道是连接内网数据库的核心技术,但实际操作中会遇到各种意外情况。以下是经过多个CTF比赛验证的可靠配置流程:

  1. 本地SSH配置优化
    编辑~/.ssh/config文件,添加以下参数防止连接中断:

    Host jump_server HostName 192.168.48.133 User root ServerAliveInterval 60 TCPKeepAlive yes Compression yes
  2. 动态端口转发实战
    对于需要探索多个内网服务的情况,推荐使用动态转发:

    ssh -D 1080 jump_server

    然后在Navicat的SOCKS代理设置中填入localhost:1080

  3. 常见连接失败排查清单

    • 检查SSH服务是否允许TCP转发(/etc/ssh/sshd_config中AllowTcpForwarding应为yes)
    • 确认Docker容器的网络策略未限制出站连接
    • 验证数据库用户是否具有远程登录权限(MySQL的%通配符问题)

隧道类型选择指南

隧道类型命令示例适用场景Navicat配置要点
本地端口转发ssh -L 3306:172.17.0.2:3306 user@host单一服务访问直接连接localhost:3306
远程端口转发ssh -R 3306:localhost:3306 user@host从外网访问内网需配合服务端防火墙规则
动态转发ssh -D 1080 user@host多服务探索需配置SOCKS代理

3. Navicat高级连接配置详解

有了SSH隧道后,Navicat的连接配置也有讲究。以下是经过大量实战验证的参数组合:

  1. SSH选项卡

    • 主机名:跳板机的公网IP(如192.168.48.133)
    • 身份验证:优先选择密钥认证(更安全)
    • 端口:通常为22,但注意有些CTF环境会修改默认端口
  2. 数据库连接选项卡

    - 连接名:建议包含环境标识(如"CTF_MySQL_Prod") - 主机:**容器内网IP**(如172.17.0.2) - 端口:数据库真实端口(非映射端口) - 用户名/密码:从docker inspect或环境变量获取

注意:遇到"Client does not support authentication protocol"错误时,尝试在MySQL容器内执行:

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Navicat性能优化参数

参数项推荐值作用说明
连接超时30秒避免网络波动导致UI假死
保持连接间隔240秒防止SSH超时断开
查询超时0(无限制)大数据量导出时不中断
使用压缩启用节省带宽,提升响应速度

4. 实战中的高阶技巧与应急方案

即使按照标准流程操作,真实环境中仍会遇到各种意外。以下是几个典型场景的解决方案:

场景一:Docker使用自定义网络

# 发现容器使用了自定义网络 docker network ls # 查看该网络详情 docker network inspect network_name # 获取容器在该网络中的IP docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

场景二:数据库端口未对外暴露docker ps显示没有端口映射时,可以尝试以下方法:

  1. 在容器内安装netcat临时暴露端口:
    docker exec -it container_id bash apt update && apt install -y netcat nc -lkp 3306 -e /usr/bin/mysql
  2. 通过docker commit创建新镜像并重新运行

场景三:Navicat连接成功但无法显示表这通常是权限问题,尝试以下SQL:

GRANT SELECT ON *.* TO 'user'@'%'; FLUSH PRIVILEGES;

数据库取证快速检查清单

  1. 检查information_schema中的PROCESSLIST表查看当前连接
  2. 查询mysql.user表获取所有用户权限
  3. 查看general_log是否开启(如有则包含完整操作记录)
  4. 搜索包含"password"的环境变量:docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' container_id | grep -i pass

在最近参与的盘古石杯比赛中,我们就是通过分析数据库中的时间戳字段,成功定位到了攻击者的操作时间线。Mattermost数据库的Posts表中存储的编辑历史,成为了取证的关键证据。

http://www.cnnetsun.cn/news/2931741.html

相关文章:

  • 3步快速上手Upkie开源双足轮式机器人:从零到实机的完整教程
  • C标准库硬核函数解析:数学计算、进程线程与信号处理实战
  • MPC860 CPM定时器与通信处理器架构详解:精准时序与高效通信的硬件协同
  • Java计算机毕设之基于SpringBoot的校园设备故障排查与报修系统面向高校后勤的设备报修运维系统(完整前后端代码+说明文档+LW,调试定制等)
  • Social Maze:多智能体社会推理与隐式规则逆向工程实战
  • 嵌入式eDMA架构深度解析:从DMA原理到高性能数据流优化实战
  • 3大场景解析:如何用TranslucentTB提升Windows桌面美观度与工作效率?
  • 网易NeoX引擎NPK文件逆向工程:5个实用技巧与完整解包实战指南
  • DS4Windows手柄校准终极指南:3步解决漂移,5分钟提升游戏体验
  • 当前最严重的社会问题,就是定义域混乱的有毒思想的渗透与污染
  • 7天精通:鸣潮自动化工具ok-ww完整实战指南
  • 3个步骤掌握Upkie开源轮式双足机器人:从零开始构建智能平衡机器人
  • 深入解析QuadSPI控制器:从SPI总线到高性能串行闪存接口
  • PXD10 eMIOS200定时器模块详解:架构、配置与实战应用
  • eTSEC以太网控制器核心机制解析:从FIFO接口到DMA与地址过滤实战
  • 低温与户外复杂工况下,MUKONI对讲设备的稳定性与适配能力解析
  • GitHub启用双重认证(2FA)
  • 计算机毕业设计之基于Python的智能菜谱推荐系统
  • 终极指南:5分钟用AI翻唱工具制作专业歌曲翻唱
  • 手把手复现致远OA wpsAssistServlet文件上传漏洞(附完整请求包与修复建议)
  • 渗透入门第一步:Burp Suite 安装配置疑难问题一站式解决
  • 穿梭矿山油田各类复杂场景DXG-800光缆普查仪成为通信运维好帮手
  • 解放双手:ok-ww鸣潮自动化工具从入门到精通
  • ChatGPT底层机制10大隐性规则:上下文、系统提示词与温度值真相
  • 2023-TKDE《Low-Rank Linear Embedding for Robust Clustering》
  • Qt 5.15 + VS2019 手动编译环境下,如何搞定多语言翻译(从.pro生成到.qm发布全流程)
  • 延迟队列的介绍及常见问题
  • 抖音无水印批量下载终极指南:免费工具轻松搞定个人内容备份
  • Deepin Boot Maker:三分钟搞定专业级启动盘,让系统安装像点外卖一样简单!
  • 终极卡通渲染解决方案:用lilToon着色器轻松打造专业级角色