Metasploit模块开发——Ruby实例讲解

Metasploit是风靡全球深受各个渗透测试工程师喜爱的一款工具,称它是渗透测试必备工具丝毫不为过,保姆式的渗透过程——扫描模块、漏洞利用模块、后渗透模块为广大从业者提供了优秀的工具。
然而,有些情况下需要我们自行开发一些模块进行使用。其中后渗透模块、渗透模块和辅助模块都可以自行开发(Post模块暂时略过)
先了解Ruby的基本语句

'定义变量'  a=123  a="hello"
"字符串拼接"  a="123"
a << "555"
"这时a变成123555"

字符串截取

a="12345678"
a[0,2]=12

split函数

a="123,456,789"
a.split(,)
a[1]=123
a[2]=456
a[3]=789
"即以括号内的内容为分隔符,将字符串分割为字符数组"

变量类型转换
字符串转整数(int整型)

a.to_i  "a由string转为int"

整数转字符串

a.to_s   "a由int转为string"

数制转换
转16进制

a.hex

范围在Ruby中,在Metasploit模块开发中,是一个重要的存在,定义范围的语法如下

a=0..9
"这时,其各个极值如下"
a.mix=0   a.max=9
a.include(3)?=True

以上是对Ruby的基础语法进行讲解,下面来认识Metasploit的库文件
Rex :核心功能
MSF核心库:提供基本接口
MSF base:友好的接口
下面是这三个库的位置rex库位于/lib下,其余两个库位于/core和/base下
下面来看一个自己编写的FTP模块

class MetasploitModule < Msf::Auxiliary       #MSF模块类
	include Msf:Exploit::Remote::Http          #include语句
	include Msf::Auxiliary::Scanner			  #include
	include Msf::Auxiliary::Report			  #include
	def initalize     #定义方法
		super(
			'Name'               => 'FTP version Scanner'     #模块说明,版权声明,编写人员等
			'Description'        => %q{
				use this to scan the FTP version of Target(s),it is a quite quick script for scanning
				writen by StarLake.wusheng please follow the laws to use this script!!
			}
			'Author'             => 'StarLake wusheng'    #作者
			'License'            => MSF_LICENSE    #MSF许可
		)
		register_options(           #设定目标端口
			[
				opt::RPORT(21)      #FTP标准端口21
			])
	end
	def run_host(target_host)       #定义方法,在所有目标主机上都运行脚本
		 connect(true,false)        #连接目标
		 if(banner)
		 print_status("#{rhost} is running")    #输出状态
		 print_good("results: #{banner}")		#输出结果
		 Report_servise(:host=>host, :port=>rport, :name=> "FTP", info=> banner) #保存服务
		 end
		 disconnect					#断开连接
		end
	end

以上是作者编写的FTP 版本扫描器(Star Lake是作者创立的网络安全团队,无笙是作者写这个模块时候的ID)

你可能感兴趣的:(网络安全,渗透测试,Metasploit,ruby,metasploit,编程语言)