一、概述(Introduction)
Metasploit Framework(MSF)是2003
年以开放源代码方式发布、可自由获取的开发
框架,这个环境为渗透测试、shellcode编写和漏洞研究提供了一个可靠的平台。2.x
框
架主要是由面向对象的Perl编程语言编写的,最新版本3.0采用了Ruby
开发。它集成
了各平台上常见的溢出漏洞和流行的shellcode,并且不断更新,最新版本的MSF包含
了176
种针对当前流行的操作系统和应用软件的exploit,以及104
个shellcode。
而做为安全工具,它在安全测试中起到的作用也不容忽视。合理的利用MSF,将为
漏洞自动化探测以至及时修补系统漏洞提供有力的保障。同时作为开发,也大大降低了
Exploit
的开发周期和对开发者背景知识的要求。
二、界面环境(Environment)
[一]接口介绍
[2.x]MSF提供三种交互方式,Console
Interface、Command Line Interface和Web
Interface。
1)msfconsole对应控制台接口,也是最常用的交互窗口,这个之后将详细介绍;
2)msfcli对应command
line形式,是自动化测试的接口,从Cygshell打开.此模式将在
[模块介绍]里提及;
3)msfweb自然就是web窗口了,默认是打开
,这个界面很直观。
从快捷键启动msfweb后,会出现一个cmd窗口,这时你打开web浏览器(IE),输
入地址就能看到界面了。
[3.0]MSF提供了Metasploit
3(web窗口),Ruby shell和cmd shell三种交互方式。与[2.x]
相对应,3.0的console模式集成在Metasploit3
web界面中。
注意:无论是在2.x或者3.0版里,打开web界面后都不能关闭启动的cmd窗口,否则web
服务器将停止运行。
[二]环境介绍
Framework有一个强大的数据存储系统,分为两类:全局变量和局部变量。
1)全局变量的设置可以在控制台下输入setg,将得到全局变量的设置情况。
[3.0]
MSF全局变量初始是没有设定的,如果想设定相关的参数,可以采用如下形式:
>>
set logging 1
logging=> 1
>>
setg
Global
======
Name
Value
—-
—–
logging
1
其他的一些变量可以参考本手册的附页或者[2.x]..\home\framework\docs\Environment.txt
[2.x]
初次安装MSF将自动设置好全局变量,一般不需要特殊的改动,比如:
msf
> setg
AlternateExit:
2
//perl解释器错误处理
DebugLevel:
0
//调试信息记录
Encoder: Msf::Encoder::PexFnstenvMov//编码模块定位
Logging:
0
//是否记录命令执行信息
Nop: Msf::Nop::Pex
//空字符段模块
RandomNops:
1
值得注意的是DebugLevel,默认的DebugLevel值为0,表示不记录任何调试信息,在3.0
中不用担心调试信息会出现在控制台上。你把这个值可以设置到2,记录一些因为操作
失败而遗留的信息,如果设置到3就会进行详细的记录,一般用不着那么高。
确认了环境变量后,你可以用save命令将配置存储到目录:
[3.0]C:\Documents
and Settings\Administrator\.msf3
[2.x]
..\home\.msf
你可以进行相关的修改,MSF每次启动都将读取config里的信息。
2)局部变量是一些临时变量,如在设置exploit时MSF要求输入漏洞宿主的IP地址和端口
号,显然用来存储这些信息的就是临时变量了。局部变量通过命令set来设定。这个将在
之后再次提及。
值得一提的是setg命令处理局部变量的优越性,setg能将局部变量转为全局变量,比
如你要测试几个漏洞,但漏洞的一些参数是相同的,那么你就可以用setg命令代替set
命令,将那些参数存为全局变量,减少操作量。
三、msfconsole使用说明(Use
msfconsole)
MSF在命令模式下的使用方法,以下我们就以console平台来进行演示。
[2.x]选择msfconsole即可。
[3.0]首先进入msfweb.cmd,也就是快捷键的[Metasploit
3],初始化完成后会自动跳出页
面:
,选择console模式。
1)为了熟悉命令,你可以在msf下输入help查看相关的命令:
msf>
help
Metasploit Framework Main Console
Help
======================================
? Show the
main console help
cd Change working
directory
exit Exit the
console
help Show the main console
help
info Display detailed exploit or
payload information
quit Exit the
console
reload Reload exploits and
payloads
save Save configuration to
disk
setg Set a global environment
variable
show Show available exploits and
payloads
unsetg Remove a global environment
variable
use Select an exploit by
name
version Show console version
2)
一般,为了显示可用的exploit,你可以在msf下输入命令show
exploits。Exploits中以
BSD开头的是针对BSD系统的,以Linx开头的是针对Linux系统的,以CMD和WIN开头
的是针对Windows系统。
Show命令的参数包括:exploits,
encoders, payloads,nops,options等,你可以输入相关的
参数进行查看。
主要指平时的对敌妨害策略,其他战场策略和对己策略,没有不会成功的吧。
策略成功率公式:
Result=100-Lp992+【攻方智力-守方智力+(攻方是否有军师技能-守方是否有军师技能)xLp712/2】xLp991/100
然后与上限【100-Lp755】比较,谁小取谁,
然后和下限【100-Lp756】比较,谁大取谁,
结果一定在上下限之间。
Lp755=25,Lp756=70
所以结果肯定在(100-70)%~(100-25)%之间,也就是30%~75%之间
如果Lp755=0,Lp756=100,结果就是真正的概率
备注:
1、有军师技能时,公式对应位置为1,没有时对应位置为0
2、Lp992,Lp991,Lp712,Lp755,Lp756为van修改器打开adjustparam.dat时参数序号