Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2018-6574 — 针对 Golang go get 命令中远程命令执行漏洞的利用。 | Kitploit
工具/GitHubGitHub/devang-solanki/cve-2018-6574
漏洞分析漏洞利用Web应用程序漏洞利用供应链安全Payload 开发二进制利用
GitHubdevang-solanki/cve-2018-6574

CVE-2018-6574

针对 Golang go get 命令中远程命令执行漏洞的利用。

查看仓库
11264年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2018-6574

Golang go get 命令的远程命令执行漏洞利用。

介绍

当你使用 go get 获取一个包时,Go 的设计是构建并安装该包,而不运行其中的任何代码。其意图是,你可以安全地获取、构建甚至安装 Go 包,而完全不需要信任它们。理论上,这对 Go 工具链来说似乎是一项简单的任务,但实际上,这是一个真正的挑战。go get 在幕后做了很多工作,包括以受包配置严重影响的方式调用第三方工具,如 git 和 clang。确保这些调用的安全性是一场持久战,而 Go 尚未完全获胜。

当 cgo 启用时,“go get” 期间的构建步骤会调用宿主机的 C 编译器(gcc 或 clang),并添加 Go 源文件中指定的编译器标志。gcc 和 clang 都支持一种插件机制,即通过编译器标志将共享库插件加载到编译器中。这意味着一个 Go 包仓库可以包含一个 exploit.so 文件,以及一个 Go 源文件,该源文件例如包含 // #cgo CFLAGS: -fplugin=exploit.so,从而在构建过程中将攻击插件加载到宿主机的 C 编译器中。gcc 和 clang 插件在访问宿主系统方面完全不受限制。

Go 1.8.7 之前版本、Go 1.9.x 中早于 1.9.4 的版本以及 Go 1.10 预发布版早于 Go 1.10rc2 的版本,允许在源代码构建期间通过 go get 执行远程命令,原因是未阻止 -fplugin= 和 -plugin= 参数。

构建漏洞利用

为了进行漏洞利用,我们需要托管我们的恶意包。我们需要一个带有 TLS 和有效证书链的网站。一个简单的方法是使用 。

github

然后,你需要一个恶意的插件/.so 文件。exploit.c 中的代码应该能帮助你完成此操作。

注意:将 exploit.c 中的以下代码更改成你的命令

root@kitploit:~
void exploit() {
    system("<Your CMD>");
}

注意:根据受害者的机器/PC 架构编译此文件

你可以使用以下命令构建 exploit.so:

root@kitploit:~
gcc -shared -o exploit.so -fPIC exploit.c

一旦你在 Github 上托管了完整载荷,你就可以将包链接传递给受害者了。

下载工具