Skip to content

为 Metasploit 贡献

L edited this page May 5, 2020 · 2 revisions

喜欢黑客吗? 从这里开始.

每隔一段时间, 我们都会收到以下请求: "嘿, 我是 Metasploit 的新手, 我想提供帮助!" 通常的答案是: "太好了!这是我们的 framework bug 跟踪 , 请解决!"

然而解决核心的 Metasploit Framework 错误或特别是尤其困难的 Exploit 可能不是新贡献者的正确选择. 相信我, 每个人都曾经是新手, 这没有什么可耻的. 这些错误和漏洞通常很复杂, 并且有太多的方案可供选择, 因此很难上手. 这里有一些想法可以帮助你入门.

Metasploit 是黑客开发的工具, 也是黑客的工具, 但是维护它的黑客也恰好是软件工程师. 因此, 我们在 CONTRIBUTING.md 中有一些希望易记的"做与不做", 请阅读这些内容.

服务器 Exploit

总是需要服务器漏洞利用, 当进入脆弱的网络时, 为什么还要打扰复杂的社会工程. 以下是一些漏洞搜索查询, 可帮助你入门:

客户端 Exploit

客户端漏洞通常是作为远程客户端将连接到"邪恶服务"运行的. 他们几乎总是需要某种用户交互来触发, 例如查看网页, 下载文件或以其他方式连接到攻击者控制的服务.

本地提权 Exploit

提权漏洞往往需要攻击者已经在目标计算机上拥有低级权限. 几乎总是作为 Metasploit Exploit 模块 (local 目录下) 实现, 但有时最好将它们作为 Post 模块 实现. 对于特权升级错误尤其如此.

不稳定的模块

只需查看有关挽救 不稳定模块 的指南, 并通过适当的测试和代码清理将这些不良的模块.

框架 Bug 和功能

如果你不太关心 Exploit 模块开发, 而是更直接的 Ruby 开发, 那么这里是一些入门的好地方:

同样, 在 spec 目录 中, 长期存在对更好的自动化测试的需求. 如果你有能力探索奇怪而奇妙的代码库, 请选择 Metasploit 核心代码的一部分, 并定义对工作行为的期望.

非代码

我们总是可以使用更好的文档. Offensive Security 的 Metasploit Unleashed 做得很好, 但是与所有复杂的工作一样, 肯定会发现一些错误. 如果你有关于如何使 Metasploit 上的文档更清晰和让更多人更容易使用的想法, 请告诉我们.

在你的 fork 中编写 Wiki 文章 (Gollum 对此非常好用) , 并让其他人知道它们, 我们很乐意在这里反映它们并维护你的 wiki. 如果你有兴趣与我们长期合作处理文档, 那就更好了; 在 Slack 取得联系, 以获取有关如何最好地进行更改的信息.

对于开发人员类型: 我们确定通过 YARD 将所有 Metasploit 转换为使用标准注释, 因此对于 lib 中发现的几乎所有内容, 我们始终可以使用更准确, 更全面的 YARD 文档. 我们将很乐意接受仅文档的 pull request.

同样在 Freenode 的 #metasploit 聊天室讨论问题, 大家会为你提供帮助. Metasploit Slack 团队 也是如此, 各种各样的新手和熟练用户和开发人员正在寻求帮助和友善.

提示

你不应该在重要的网络和系统中运行互联网找到的概念性漏洞利用代码, 这通常是一个坏主意. 你也不应该把普通计算机用作开发漏洞利用的目标, 这样会诱发不稳定行为.

我们首选的模块提交方法是通过你自己的 Metasploit 分支上的功能分支发出的 pull request. 你可以在此处了解如何创建一个: https://github.com/rapid7/metasploit-framework/wiki/Landing-Pull-Requests

另外, 如果你不熟悉 git, 请参阅我们的有关 git 的指南以及新模块的接受准则: https://github.com/rapid7/metasploit-framework/wiki

如果你遇到困难, 请尝试在我们的 Freenode IRC 的 #metasploit 频道请求帮助 (加入需要 注册昵称) . 有人会能够伸出援手. 显然, 其中一些人从未停止.

谢谢

感谢你的关注和支持!来自开源社区的漏洞利用开发人员是 Metasploit 的灵魂, 通过贡献你的时间和才华, 你正在帮助提升智能 IT 防御的最新水平. 没有你, 我们根本无法做到所有这些.

Clone this wiki locally