# Metasploit模块的格式说明

先给出一个通用的框架头部:

class MetasoloitModule < Msf::Auxiliary
  def initialize(info = {})
     supper(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
     #Main function
  end
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

一个框架一般都会从使用require关键字导入重要的库文件开始,上面的代码就导入了msf/core库。所以,这个框架中就包含了msf目录下的core库文件。

接下来的主要任务就是使用MetasploitModule指定这个类的类型,通常是Metasploit3或者Metasploit4,取决于你希望应用的版本。在定义类型的哪行中,还需要定义类的用途。这个示例中定义了类的用途为MSF:Auxiliary

initialize方法是Ruby的默认构造方法。在这个方法中,我们定义了名称(Name)、描述(Description)、作者(Author)、许可(License)和CVE信息等。这个方法涵盖了特定模块的所有相关信息:软件的名称通常会提现设计软件的目的;描述中会包含对漏洞的摘要信息;作者是开发这个模块的人的名字;许可就是MSF_LICENSE.辅助模块中的主函数是run方法。除非是要使用特别多的方法,否则所有的操作都应该在这个函数里面执行。但是程序仍然要从run方法开始执行。

# 写在最后

如果你觉得冰河写的还不错,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术,「 冰河技术 」微信公众号更新了大量技术专题,每一篇技术文章干货满满!不少读者已经通过阅读「 冰河技术 」微信公众号文章,吊打面试官,成功跳槽到大厂;也有不少读者实现了技术上的飞跃,成为公司的技术骨干!如果你也想像他们一样提升自己的能力,实现技术能力的飞跃,进大厂,升职加薪,那就关注「 冰河技术 」微信公众号吧,每天更新超硬核技术干货,让你对如何提升技术能力不再迷茫!