当我们进行一场渗透测试的时候,我们需要记录大量的信息和数据,而数据库可以为我们节省很多时间。Msfconsole使用的是PostgreSQL数据库系统。有时候,我们会在msfconsole上使用第三方的扫描器,比如nessus,sqlmap,nmap等,而这个数据库系统可以让我们快速的访问和管理这些扫描的信息。
0×01设置和启动
如果你想在 metasploit上使用数据库,首先你需要输入“service postgresql start”来启动数据库。这里需要注意的是在linux终端输入命令,而不是在msfconsole内。而且这个命令只试用于Kali系统。
随后你需要启动Metasploit服务。输入“service metasploit start”来启动。
这里需要注意顺序,你不能先启动msfconsole再启动数据库。你必须得先启动数据库,再启动msfconsole,否则你必须重新开启msfconsole。
如果你已经启动完了数据库,那么你需要在msfconsole内输入“db_status”查看数据库和Metasploit是否已经连接。如果你按照我的顺序,一般情况下是不会出错的。
如果连接没问题,我们就可以使用workspace命令查看目前的工作组有哪些。Workspace可以查看你扫描的结果,历史文件等等。一般情况下,我们都会把第三方插件配合workspace使用,比如说nessus。大家可以输入workspace -h看一下帮助信息,或者直接看我的文章。
命令:
workspace
大家可以看到我上面有360和freebuf两个工作平台。有人说我是不是数少了一个,不是还有一个dafault吗?dafault工作平台是当Metasploit和database连接的时候就自动建立的,大家不用删除,也不用管它。*号代表的是你目前所在的工作平台,我目前所在的工作平台就是360。
命令:
workspace –a XXX
比如我要创建一个叫做360的工作平台,那么就输入 :
workspace –a 360
这里有一个诀窍,如果你要同时创建两个工作平台,那么工作平台直接加空格就可以了。比如我要同时创建两个工作平台,一个叫360,一个叫freebuf。那么就输入workspace –a 360 freebuf。
删除的话很简单,把-a替换成-d,后面输入目前拥有的工作平台就可以删除了。
命令:
workspace XXX
输入workspace,空格后输入你想进入的工作平台。之后可以输入workspace检查是否已经进入自己想进的工作平台。
命令:
workspace -r <老名字> <新名字>
如果我想把360的工作平台给重新命名为freebuf,那么输入workspace -r 360 freebuf
之后大家可以使用包含“db_”的命令,比如db_nmap之类的。所扫描完的信息会储存在这个工作组。至于有哪些db_类型的命令,大家可以直接在msf下输入help查看,就在最后一组。
如果你之前利用扫描工具扫描进行了一次扫描,你可以使用db_import查看扫描结果。
利用:
db_import <历史扫描文件的路径>
比如我用nmap扫描了一个服务器,下面这张图就是我导入我的扫描记录到msfconsole。这里前提是你必须导出你的扫描记录,sqlmap是自动导出扫描记录到某个文件夹的,而nmap可以导出到指定的文件夹。
关于nmap的教程网上已经一大堆了,我不想多做解释。大家可以去下面这个网站查看nmap的详细指令和解释。
- > 点我哒~
如果要使用db_nmap,你可以输入
db_nmap -h
查看一下这么命令的使用帮助信息。
扫描完后,大家可以使用hosts查看一下扫描后的一些基本信息。
如果说要导出扫描的结果,可以使用db_export命令。大家可以输入“db_export –h”查看详细的导出帮助信息。
hosts应该属于一个显示命令,这个命令可以帮助我们很快的查找我们扫描的记录,从中筛选信息。大家可以使用
hosts -h
查看帮助菜单。如果我们只查看扫描的IP地址,那么就输入
hosts –c address
在msfconsole中有扫描记录时,大家可以使用msfconsole中自带的扫描器获取更多的信息。比如输入
search scanner
这时就会有一大堆扫描器的模块。
比如我要扫描这个系统的 tcp端口,那么就要使用到auxiliary/scanner/portscan/tcp模块。
先show options查看这个模块要配置什么东西,随后使用hosts命令填写历史记录里面的地址名称,最后直接输入run命令运行就行。这里需要注意的就是再hosts命令后面有个-R,这个命令是把历史记录里面的ip添加到设置里面。这个的优点是可以批量扫描。如果你有一堆IP需要扫描,使用这个方法是最简便的。同时因为在扫描的过程当做,历史记录会保存在msfconsole里,也适合后面的做漏洞模块的设置。
原本很想把database,payload和plugs结合在一起弄一个实战演习。但是发现还太早了,就目前的教程来说,弄出来也不精彩。打算等到讲的差不多在弄。大部分人觉得我在演习里面用的利用模块太老了。但是只是一个演示过程,主要是讲方法。才开始会比较简单,因为都是一些基础,后面会慢慢加深难度,实战也会越来越多,内容也会越来越精彩。后面我会利用一些比较新的模块增加读者的兴趣。Database就先到这里吧,可能这一章节大家觉得database没什么用,等到后面的章节你们会发现,第三方插件,msfconsole和database结合在一起的强大性!
* 作者/Arthur和lazynms,整理/FreeBuf小编banish,应作者要求,未经允许禁止转载!