Ruby 如何开始编写Metasploit模块/漏洞利用?

Ruby 如何开始编写Metasploit模块/漏洞利用?,ruby,metasploit,Ruby,Metasploit,我想为Metasploit框架贡献代码,但我还不知道它们的格式准则和代码要求。开始编写自己的Metasploit模块时有哪些贡献准则 如果您遵循此链接: 您不仅可以找到有关设置metasploit模块的有用参考资料,还可以找到一个完整的wiki(在撰写本文时),其中包含106页有关metasploit开发和使用的内容 现在,我说的是参考,而不是教程,因为制作metasploit模块需要查找10%的样板代码,90%是与metasploit无关的老ruby 以这个简单的模板模块为例: requir

我想为Metasploit框架贡献代码,但我还不知道它们的格式准则和代码要求。开始编写自己的Metasploit模块时有哪些贡献准则

如果您遵循此链接:

您不仅可以找到有关设置metasploit模块的有用参考资料,还可以找到一个完整的wiki(在撰写本文时),其中包含106页有关metasploit开发和使用的内容

现在,我说的是参考,而不是教程,因为制作metasploit模块需要查找10%的样板代码,90%是与metasploit无关的老ruby

以这个简单的模板模块为例:

require 'msf/core'

class MetasploitModule < Msf::Auxiliary

  include Msf::Auxiliary::Scanner

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Module name',
      'Description'    => %q{
        Say something that the user might want to know.
      },
      'Author'         => [ 'Name' ],
      'License'        => MSF_LICENSE
    ))
  end

  def run
    # use `print_status` to print to the metasploit console, instead of `puts`
  end

end
首先,我们需要metasploit文件,以便使用它们

class MetasploitModule < Msf::Auxiliary
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Module name',
      'Description'    => %q{
        Say something that the user might want to know.
      },
      'Author'         => [ 'Name' ],
      'License'        => MSF_LICENSE
    ))
  end
这里我们包括metasploit扫描器,以便在代码中使用它。您可以在此处包含metasploit的任何模块,以便在您自己的模块中使用它们;但是,您可能找不到这些模块的教程。您需要阅读文档以了解如何使用它们

class MetasploitModule < Msf::Auxiliary
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Module name',
      'Description'    => %q{
        Say something that the user might want to know.
      },
      'Author'         => [ 'Name' ],
      'License'        => MSF_LICENSE
    ))
  end
这个初始化方法基本上是样板代码,它告诉metasploit关于您的模块的信息,以便它可以在metasploit控制台内向用户显示所述信息

  def run
    # use `print_status` to print to the metasploit console, instead of `puts`
  end
这就是你的代码所在!这也是metasploit结束和好的旧ruby开始的地方。如果要使HTTP服务器回显恶意负载,请使用HTTP服务器gem并编写逻辑。您可以在这里使用metasploit模块,但您使用它们(并学习如何使用它们)的方式与使用任何其他ruby gem或库的方式相同:查找文档和API参考

end
就这样!最终,您将发现是什么使IT安全成为如此困难的领域。没有任何教程可以教您如何破解,也没有任何框架可以帮助您创建漏洞利用。Metasploit更像是一种管理漏洞集合的工具,编写自己的模块只是将漏洞“插入”到Metasploit中,以便其他人可以轻松使用它。该漏洞本身只是一些ruby代码,使用基本的网络库进行一些巧妙的操作

创造一个全新且有用的黑客工具将是一些付费安全专业人士梦寐以求的大事。我建议你选择一个已经存在的黑客工具(密码破解、网络扫描、网络爬虫等),研究该工具的用途和功能,熟悉它的使用,并努力创建自己的版本。一旦你让它做了你想做的事情,把你的代码包装在metasploit模板中,这样就可以从metasploit访问它

如果您在过程中遇到困难,可以返回stackoverflow,提出更具体的问题(例如“如何扫描IP上打开的端口?”或“如何访问metasploit模块内的选项?”),我们将很乐意为您提供帮助


干杯,祝你好运

那么,你已经可以用ruby编写复杂的程序了?现在看来,你只需要学习如何破解一些东西。然后把这些知识转化成代码。