forked from rapid7/metasploit-framework
-
Notifications
You must be signed in to change notification settings - Fork 3
不稳定模块
L edited this page May 4, 2020
·
1 revision
导致 Metasploit 的模块不稳定的原因很多, 通常是因为模块原作者不感兴趣(或办不到)实施测试所需要的更改.
幸运的是, 对于这些不稳定的模块, 我们有一个单独的分支, 名为 Unstable.
不稳定的模块具有其自己的特殊目录结构 -- 不应使用常规的 modules/
子目录, 因为我们不想与现有或将来的模块发生冲突, 我们还希望能够轻松发现哪些模块不稳定. 因此, 应按照以下步骤将新模块放入该模块.
- 首先, 获取最新的 upstream/master:
git checkout unstable; git merge upstream/master; push upstream
- 从 PR 创建本地分支:
git checkout -b temp-pr1234 --track upstream/pr/1234
- 从 unstable 分支上创建不稳定分支:
git checkout -b unstable-pr1234-modulename --track upstream/unstable
- 找到模块的路径:
git diff upstream/master...upstream/pr/1234 --name-only
- git checkout 有问题的模块:
git checkout temp-pr1234 modules/exploits/path/to/module.rb
- 将文件移到适当的目录:
git mv modules/exploits/path/to/module.rb unstable-modules/exploits/incomplete
- 提交:
git commit
- 发送针对 unstable 分支的 pull request, 而不是 master 分支: https://github.com/YOU/metasploit-framework/compare/rapid7:unstable...unstable-pr1234-modulename?expand=1 . 请务必在说明中提及原始的 pull request 编号, 以便 PR 会相应更新.
假设你已设置要开发的 http://r-7.co/MSF-DEV, Rapid7 的分支是 "upstream" 存储库.
有关此过程的示例, 请参考 PR #2801.
如果某人的库更改无法合并到 master 中, 则我们无法在 unstable 中继续使用它们. 没有好的办法来维护这种分支, 因为冲突肯定很快就会发生. 不过, 不稳定的脚本和插件是可以的.
如果你想抢救不稳定的模块, 那就太好了! 只需获取 pull request 和原始 PR 编号 (如果可以找到编号的话) , 这是不稳定的救援方法. 你可以执行类似的 git checkout
来获取文件, 然后再次使用 git mv
到正确的位置.
从 Debian 的角度来看, 这不是不稳定的-它们不是最新版本, 除非有人采用它们, 否则它们的问题不会得到修复, 并且在加载时它们最终可能导致整个框架崩溃. 尽管存在诸如 ExploitRanking
之类的标记, 但还是无法保证.