在上一节的内容中,大家了解了Metasploit的结构。这一节我们主要介绍的是msfconsole的理论。
msfconsole理论
在MSF里面msfconsole可以说是最流行的一个接口程序。很多人一开始碰到msfconsole的时候就害怕了。那么多复杂的命令语句需要学习,但是msfconsole真的是一个强大的接口程序。Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的接口,比如nmap,sqlmap等,可以直接在msfconsole里面使用。
大家可以直接在命令行窗口输入msfconsole,然后回车。这样就打开了msfconsole。Msfconsole的系统文件和用户文件位于/usr/share/metasploit-framework/msfconsole目录下。
当打开msfconsole后,大家请看红色的方框。这里面清楚的标记了Metasploit所有的利用模块、payload、post模块等等。
Msfconsole有两个查看帮助的选项。一个是msfconsole -h,一个是help。
Msfconsole –h是显示在msfconsole初始化的选项和参数。而help则是显示进入msfconsole后可以利用的选项。
Msfconsole –h参数
全部参数的解释和利用
Help参数
接下来我要说道msfconsole各个参数的利用和一些解释。
Back参数
Back参数主要用于返回。比如你进入了某一个漏洞模块的设置,但是你想再重新选择一个漏洞模块,那么就需要用到back参数。
这张图说明,才开始我使用了ms08_067_netapi的利用模块,之后使用了back参数返回。
Banner参数
这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。
Check参数
事实上,很多的利用模块都不支持这个参数,但是这个参数可以查看到某些利用模块更相信的信息。主要是用于查看利用模块是否可用攻击目标主机。
Color参数
这个参数主要是设置一些命令行的颜色。没什么实质的作用。
Connect参数
这个参数主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是“connect 192.168.0.1 8080”。
Connect是参数名称,192.168.0.1是IP地址 8080是端口号。
如果大家想查看更详细的connect信息,直接输入connect –h就可以了。
Edit参数
这个参数的作用就是编辑当前的模块,主要是编辑$VISUAL或者$EDITOR的代码信息。编辑的时候是使用VIM编辑器进行编辑。
Exit参数
这个是退出msfconsole的命令。可以完全退出msfconsole,并且回到linux终端界面。
Info参数
这个参数可以查看所在模块的信息,包括选项、利用条件、漏洞作者、可以利用的payload等等。
这个info有两种用法,第一种是直接在当前的里面模块下输入info,然后回车查看当前模块的信息。
第二种是输入info后,再在后面输入模块的编号,然后回车查看模块信息。
Irb参数
这个参数可以进入irb脚本模式,并且执行命令创建脚本。其语言为Ruby。
Jobs参数
这个参数可以查看目前msfconsole上存在哪些任务,并且可以选择结束一些不需要的任务。如果要查看更详细的jobs选项,那么可以直接输入“jobs -h”进行查看。
Kill参数
这个参数主要是配合jobs参数进行使用。如果你使用jobs参数后发现了一些不要的任务,那么使用kill参数就可以终止一些不需要的进程。一般都是kill <jobs编号>。
Load参数
这个参数可以从metasploit的plug库里面加载一些插件。
Unload参数
这个参数可以终止你已经启动的插件。
Resource参数
这个参数可以运行一些资源文件,有些工具,比如说Karmetasploit无线攻击就很需要这个参数。在后面的文章我会说道怎么使用这个攻击。
Route参数
Route参数主要是用来当做跳板。这个参数的作用就是做代理转发。在我们大天朝,这个参数很重要啊,难道你希望在旁边高兴的渗透着,旁边是你心爱的WIFI,突然间就…..
博客已经写出了如何使用route做跳板的文章,大家可以自己去看看。当然也有网友说道,用这个参数做代理太慢了。实际上大家在做代理的时候要主要,一定要选择离自己国家最近的服务器依次做代理。比如可以选择先拿日本的服务器做跳板,再继续用美国的服务器做跳板。这样可以提高数据包传输的速度。还有一种方法比较高级,就是直接入侵一台VPN服务器,找到Radius数据库,在里面添加一个账号。之后可以随便跳转到一台服务器,再从服务器连接VPN服务器。关于route,大家可以使用-h查看更多的信息。
Route做代理->文章索引点我。
Search参数
当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search命令就很重要。我会详细的解释一下这个命令。
当你输入search –h或者是help search的时候就会列出search命令的一些选项。
通过名称进行查找
这里需要用到name:命令。如果我要查找mysql数据库的漏洞,那么就是输入“search name:mysql”。
通过路径进行查找
有时候,我们很遇到这么一种情况,就是只记得模块的路径,但是却忘记了模块的名称。那么就可以用path:命令查找在该路径下的所有模块。如果我要mysql路径下的所有mysql利用模块,那么就输入“search path:mysql”。
缩小查询范围
有时候我们会搜索到大量的模块,那么可以用platform:命令来缩小查询范围。使用platform命令后,所查询的结果会列出rank比较高的模块。如果我要查找mysql的漏洞,那么输入 “search platform:mysql”。大家对比一下上面的截图,发现没有,所有rank为normal的模块全部都屏蔽了,只剩下几个比较高级的利用模块。
通过类型进行查找
这里要使用到type:命令。Metasploit上只有三中模块可以利用,第一种是exploit模块,也就是利用模块。第二种是auxiliary模块。第三种是post模块。所以type命令也就只能搜索这个三种模块类型。如果我要搜索post模块,那么就输入“search type:post”:
通过模块作者名称进行查找
有时候我们会想看看一个作者所写的所有模块,那么就需要用到author:命令。很多人以为这个是多余的,事实不是。后面你们需要编写自己的漏洞模块,通过这个命令,你们就可以迅速的查找到你们自己的模块。如果我要查找dookie写的所有模块,那么就输入“search author:dookie”:
联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找dookie所写的MAC系统的漏洞模块。那么输入“search author:dookie name:MacOS”:
Sessions参数
这个参数可以让大家能够交互,查询或者终止当前的一些会话。如果要查看session的选项,直接输入“sessions -h”即可。这里需要注意的是,命令是sessions,不是session。很多人都忘记后面那个s。
Set参数
这个主要是对payload或者其他模块进行设置。比如设置攻击目标的IP就是“set RHOST 192.168.0.2”:
Unset参数
如果你使用set命令后,发现设置错误了,可以选择unset重新设置。
Setg参数
这个和set有些类似,但是不同的是这个是一个全局变量设置。设置一次后再保存,那么以后,这个漏洞模块你就不用重复设置。但是请注意!如果你在某一个模块设置了全局变量,那么以后使用这个模块的时候请检查option选项。以免做重复的渗透工作。当然,如果你设置错误了,也可以用unsetg命令来重新设置。
设置好后再输入save保存你的全局变量设置。
Show参数
这个命令用的很多。请一定认真看。如果单纯的输入show,那么就会显示出所有的payload,利用模块,post模块,插件等等。但是一般我们都不这么使用。
如果要显示利用模块,那么就输入show exploits。如果要显示payload,那么就输入show payloads。总共可以使用的是那么几个命令,;show auxiliary;, ;show exploits;, ;show payloads;, ;show encoders;, 和 ;show nops;。
如果我进去了某一个利用模块后,要查看这个利用模块的可以加载的负荷就输入show payloads。这里大家自由发挥。
Use参数
这个是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数:
Msfconsole的基础命令就先说到这里,下节我会演示一个实战来验证上面的理论。