尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用Docker一键搭建提权漏洞靶机:GTFONow的Dockerfile+supervisord实战解析

用Docker一键搭建提权漏洞靶机:GTFONow的Dockerfile+supervisord实战解析 用Docker一键搭建提权漏洞靶机GTFONow的Dockerfilesupervisord实战解析【免费下载链接】GTFONowAutomatic privilege escalation for misconfigured capabilities, sudo and suid binaries using GTFOBins.项目地址: https://gitcode.com/gh_mirrors/gt/GTFONowGTFONow 是一款基于 GTFOBins 的免费开源自动提权工具能自动利用 Unix 系统中误配置的 SUID、sudo 权限和 Linux capabilities 提权获取 root shell专为 CTF 和渗透测试设计。本文带你看懂它随仓库提供的 Dockerfile 与supervisord.conf用 Docker 一键搭建一台自带漏洞的提权漏洞靶机全程无需手动配环境 。 什么是 GTFONow一条命令的自动提权普通靶机需要你手工布置漏洞给某个二进制加 SUID 位、往/etc/sudoers里写一行危险的 NOPASSWD……GTFONow 把这件事做成了开箱即用扫描系统自动识别可利用的 sudo / SUID / capabilities 配置内置数万个来自 GTFOBins 的提权 payload数据源同步自GTFOBins.github.io/目录由gtfobin_update.py脚本自动注入gtfonow/gtfonow.py按可利用性 影响面自动排序交互式或--auto一键打穿纯 Python 标准库实现Python2/3 通用无第三方依赖而真正让新手省心的是仓库根目录的Dockerfile和supervisord.conf这两个文件——它们共同定义了一台预装好各种提权漏洞的靶机。 快速开始Docker 一键搭建提权靶机只需 4 条命令5 分钟得到一台靶机git clone https://link.gitcode.com/i/705e2ec00948d4af68948b6d80c6462d cd GTFONow docker build -t gtfonow . docker run -d --name gtfonow -p 2222:22 gtfonow-p 2222:22将容器内 SSH 服务映射到本机 2222 端口避免与本机 sshd 冲突。镜像基于python:3.8官方运行时构建构建过程即布防过程。下面逐段拆解它到底埋了哪些漏洞。 Dockerfile 深度解析一次构建埋下 4 类提权漏洞1️⃣ 基础环境与测试依赖Dockerfile开头安装了一系列工具zip、cron、nano、nmap、vim、supervisor、openssh-server、sudo并用pip装上pytest与mock对应仓库内的自动化回归测试保证靶机环境功能完整RUN apt-get install -y supervisor RUN apt-get install -y openssh-server RUN apt-get install -y sudo2️⃣ SUID 漏洞注入7 个高危二进制这是靶机的主菜连续 7 行chmod us把常见系统命令全部打成 root 属主的 SetUID 程序RUN chmod us $(which find) RUN chmod us $(which nmap) RUN chmod us $(which cp) RUN chmod us $(which tee) RUN chmod us $(which dd) RUN chmod us $(which mv) RUN chmod us $(which rbash)对新手来说这正是 GTFOBins 的核心场景比如find . -exec /bin/sh \; -quit、cp /dev/stdin 目标文件、dd of目标文件这些 payload 在gtfonow/gtfonow.py的suid_bins字典里都能直接命中。3️⃣ sudo 误配置两条经典 NOPASSWD 规则RUN echo lowpriv ALL(ALL) NOPASSWD: /usr/bin/head /etc/sudoers RUN echo lowpriv ALL(higherpriv) NOPASSWD: /usr/bin/vim /etc/sudoerslowpriv用户可免密以 root 身份运行head任意文件读原语可配合读 SSH 密钥lowpriv可免密以higherpriv身份运行vim——vim的:!sh跳 shell 是 SUID/sudo 提权最经典的 payload 之一同时容器内预置了lowpriv与higherpriv两个普通用户形成低权限 → 中权限 → root的完整提权链。4️⃣ SSH 密钥可窃取目标RUN ssh-keygen -N -f /root/.ssh/id_rsa RUN cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys RUN echo ONLY_ROOT_CAN_READ_THIS /root/proof.txt/root/proof.txt就是验证是否真正拿到 root 的通关文牒而 root 的无密码私钥id_rsa正是用来演示 GTFONow 的另一大特性——任意文件读原语自动偷取 SSH 密钥、转换成 shell。最后容器的工作目录设为/home/lowpriv/并把整个项目COPY --chownlowpriv:lowpriv . .进去模拟低权限用户已经拿到 Webshell/落地 shell的真实场景。⚙️ supervisord.conf让靶机里的服务活起来容器默认只跑一个前台进程而靶机需要cron、sshd等多个服务常驻。supervisord.conf用进程守护的方式解决[supervisord] nodaemontrue [program:cron] userroot command/usr/sbin/cron -f -L 15 [program:sshd] userroot command/usr/sbin/sshd -D关键细节配置作用nodaemontruesupervisord 前台运行容器才不会因无前台进程而退出[program:cron]常驻 cron 调度器-L 15抬高日志级别为写 cron 提权类 payload 提供执行环境[program:sshd]-D让 sshd 前台运行并被 superviseSSH 服务稳定可用Dockerfile末尾的CMD [/usr/bin/supervisord, -c, /etc/supervisor/conf.d/supervisord.conf]则在容器启动时拉起这套守护配置——这就是一键起靶机的最后一环。 连接靶机并验证提权搭建完成后直接以低权限用户进入容器开打docker exec -it -u lowpriv gtfonow bash python3 gtfonow/gtfonow.py --autoGTFONow 会扫描出 SUID 的find/cp/tee、sudo 的head/vim等全部利用点按优先级排序后自动执行--risk 2可允许写文件类高危操作。验证成功的标志只有一个cat /root/proof.txt # ONLY_ROOT_CAN_READ_THIS想走 SSH 远程路线也完全可行进入容器拷出/root/.ssh/id_rsascp到本机后用ssh -i id_rsa -p 2222 rootlocalhost直连——这本身就演示了偷密钥即提权的攻击链。✅ 小结Dockerfile负责造漏洞SUID 二进制 ×7、sudo NOPASSWD 规则 ×2、可窃取的 SSH 密钥一条镜像构建全搞定supervisord.conf负责保活nodaemontrue cron/sshd 常驻保证靶机随时可测配合纯标准库的gtfonow/gtfonow.py新手 5 分钟就能在本地复现完整的 Linux 提权实战流程⚠️ 安全提示--risk 2会执行写文件、覆盖二进制等破坏性操作请务必只在自建靶机或授权环境中演练。【免费下载链接】GTFONowAutomatic privilege escalation for misconfigured capabilities, sudo and suid binaries using GTFOBins.项目地址: https://gitcode.com/gh_mirrors/gt/GTFONow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表