从实践中学习Metasploit 5渗透测试(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-15 16:41:25

点击下载

作者:大学霸IT达人

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

从实践中学习Metasploit 5渗透测试

从实践中学习Metasploit 5渗透测试试读:

前言

Metasploit是一款开源的安全漏洞利用工具。利用该工具,安全人员可以很容易地获取和利用计算机软件的漏洞,从而验证漏洞的危害性。该工具附带数百个已知软件漏洞的专业级攻击工具。借助该工具,安全人员可以将攻击载荷、编码器、生成器和漏洞捆绑起来直接使用,从而简化了漏洞利用的各种繁杂操作。

本书基于Metasploit 5,详细讲解了Metasploit实施渗透攻击的方法。全书按照Metasploit的基本功能依次进行讲解,首先讲解了Metasploit的安装,然后介绍了它的接口及自带模块的使用,最后以实例形式介绍了使用Metasploit实施渗透攻击的具体方法。本书有何特色

1.使用最新的Metasploit 5版进行讲解

为了适应不断发展的技术环境,Metasploit软件一直在不断更新。在Metasploit 4发布后,它已经经历了17次大的迭代和很多次小的迭代。Metasploit 5版集合了每次更新所引入的新特性和新功能,更适合当前的渗透需求。

2.着重介绍了Metasploit的专业化操作

Metasploit作为一款专业渗透工具,提供了完备的功能。充分利用这些功能,可以大幅度提高相关技术人员的工作效率。本书从专业的角度,详细讲解了这些功能的使用方法。例如,通过Metasploit所提供的工作区功能,技术人员可以同时进行多个渗透测试任务,而互不干扰,而且渗透测试的各种数据都可以自动保存。

3.充分讲解了漏洞利用的相关流程

随着人们对安全越来越重视,安全防范措施也越来越严密。在实际应用中,Metasploit必须和上下游的各种工具配合使用,才能充分发挥其自身作用。本书详细讲解了Metasploit和知名安全软件的协调使用方法,如Nessus、OpenVAS和SQLmap。

4.由浅入深,容易上手

本书充分考虑了初学者的学习曲线,内容安排由易到难,讲解由浅入深,这使得读者比较容易上手。例如,本书讲解了Metasploit的各种基础知识,如获取合适的软件包、安装和配置PostgreSQL数据库、创建靶机、设置虚拟网络等,这些都是初学者必须要掌握的内容。

5.环环相扣,逐步讲解

漏洞利用实施步骤较多,过程相对复杂。本书按照实施流程一步步展开,详细讲解了各流程的操作步骤和实施要点。同时,为了让读者更好地掌握相关知识点,书中的重点内容都配有实例、输出结果和对应的示例效果图。

6.提供完善的技术支持和售后服务

本书提供了专门的QQ交流群(343867787),以方便大家交流和讨论学习中遇到的各种问题。另外,本书提供了专门的售后服务邮箱hzbook2017@163.com。读者在阅读本书的过程中若有疑问,也可以通过该邮箱获得帮助。本书内容

第1章环境配置,主要介绍了Metasploit的系统要求,以及在Windows、Linux和Mac系统中如何安装它;另外还介绍了PostgreSQL数据库服务配置、用户接口和靶机配置等内容。

第2章获取漏洞信息,主要介绍了如何使用Nessus和OpenVAS获取目标漏洞信息,以及如何在Metasploit中远程实施漏洞扫描。

第3章准备渗透项目,主要介绍了如何使用工作区管理渗透项目,如准备工作区、确定目标主机、管理渗透信息和信息维护等。另外,本章还介绍了Metasploit的模块体系,以及如何添加模块。

第4章实施攻击,主要介绍了如何使用Metasploit利用漏洞的流程,包括选择模块、设置模块、选择目标类型、选择攻击载荷、执行攻击和任务管理等。

第5章扩展功能,主要介绍了Metasploit提供的3个重要功能模块,分别为Meterpreter模块、攻击载荷生成器Msfvenom和免杀的4种方式。通过这3个模块,可以有效地提高渗透测试效率。

第6章漏洞利用,以实例方式介绍了在Windows、Linux和Android系统中如何利用Metasploit自带的模块实施攻击。

第7章辅助功能,主要介绍了Metasploit为渗透测试提供的多个辅助功能,如远程主机连接、批处理、会话管理和使用路由等。

附录A给出了Metasploit的常用命令。

附录B介绍了Nessus插件的使用方法。

附录C介绍了openVAS插件的使用方法。

本书配套资源获取方式

本书涉及的相关工具需要读者自行下载。下载途径如下:

·根据书中对应章节给出的网址自行下载;

·加入技术讨论QQ群(343867787)获取;

·在华章公司网站www.hzbook.com上搜索到本书,然后单击“资料下载”按钮,在本书页面上找到“配书资源”下载链接即可下载。本书内容更新文档获取方式

为了让本书内容紧跟技术的发展和软件更新步伐,我们会对书中的相关内容进行不定期更新,并发布对应的电子文档。需要的读者可以加入QQ交流群(343867787)获取,也可以通过华章公司网站上的本书配套资源链接下载。本书读者对象

·渗透测试技术人员;

·网络安全和维护人员;

·信息安全技术爱好者;

·计算机安全技术自学者;

·高校相关专业的学生;

·专业培训机构的学员。本书阅读建议

·Kali Linux内置了Metasploit,使用该系统的读者可以跳过1.3~1.4节。

·学习阶段建议使用虚拟机靶机,避免因错误操作而造成目标主机无法正常工作的情况。

·Metasploit工具经常会对工具模块进行增补,并修复原有的Bug,读者学习的时候建议定期更新工具,以获取更稳定和更强大的环境。本书作者

本书由大学霸IT达人技术团队编写。感谢在本书编写和出版过程中给予笔者大量帮助的各位编辑!

由于作者水平所限,加之写作时间较为仓促,书中可能还存在一些疏漏和不足之处,敬请各位读者批评指正。编著者第1章 环境配置

如果要使用Metasploit实施渗透攻击,需要在系统中安装该工具,并且配置对应的攻击靶机。在Kali Linux中,默认已经安装了Metasploit。但是在其他操作系统中,都没有安装该工具。所以,为了方便用户后面的操作,本章将介绍Metasploit工具的环境配置方法。1.1 Metasploit概述

Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。而且它还提供了许多个接口,其最受欢迎的是由Rapid 7和Strategic Cyber LLC公司维护的。由Rapid 7和Strategic Cyber LLC公司维护的接口包括Metasploit Framework Edition、Metasploit Community Edition、Metasploit Express、Metasploit Pro、Armitage和Cobalt strike。其中,Metasploit Framework(命令行接口)和Armitage(图形界面接口)是较常用的两种,并且是免费的。本书将选择使用Metasploit Framework(命令行接口,即MSFCONSOLE)接口来实施渗透攻击。1.2 安装要求

为了能够顺利地安装Metasploit工具,需要先了解该工具对系统硬件、架构等的需求。由于Metasploit是一款漏洞扫描并实施攻击的工具,所以可能会被系统的杀毒软件或防火墙等拦截。本节将介绍Metasploit工具的安装要求。

1.系统需求

·2GHz及以上的处理器;

·4GB可用内存(建议8GB);

·1GB以上的可用磁盘空间(建议50GB)。

2.支持的平台(64位架构)

·Red Hat Enterprise Linux Server 5.10及以上;

·Red Hat Enterprise Linux Server 6.5及以上;

·Red Hat Enterprise Linux Server 7.1及以上;

·Ubuntu Linux 10.04 LTS;

·Ubuntu Linux 12.04 LTS;

·Ubuntu Linux 14.04 LTS(建议);

·Ubuntu Linux 16.04 LTS;

·Kali Linux;

·Windows Server 2008 R2;

·Windows Server 2012 R2;

·Windows 7 SP1+;

·Windows 8.1;

·Windows 10。

3.禁用杀毒软件

当系统中运行有杀毒软件时,将会检测到Metasploit Framework为恶意软件,并且可能导致它的安装和运行出现问题。Metasploit Framework利用了与杀毒软件检测到的相同漏洞,因此,当安装Metasploit Framework时,杀毒软件将会阻止安装,并且提醒用户可能存在影响系统的安全风险。

如果想要安装Metasploit Framework,在安装之前禁用所有杀毒软件。如果不能禁用杀毒软件的话,则需要设置杀毒软件不对Metasploit进行扫描。

4.禁用防火墙

本地防火墙(包括Windows防火墙)会干扰渗透攻击和攻击载荷的操作。如果安装Metasploit Framework时开启防火墙的话,防火墙将探测到Metasploit Framework为恶意软件,中断其下载。

因此,在安装和运行Metasploit Framework之前,需要禁用本地防火墙。如果必须在安装有防火墙的计算机上操作,那么应该从外部网络下载Metasploit Framework。

5.获取管理员权限

为了能够成功地在系统上安装Metasploit Framework,必须有该系统的管理员权限。1.3 安装Metasploit Framework

在用户准备好Metasploit的安装需求后,就可以开始安装Metasploit Framework了。该工具可以安装在Windows、Linux及Mac OS X系统中。本节将介绍在各种操作系统下安装Metasploit Framework的步骤。1.3.1 获取安装包

Metasploit Framework的下载地址为https://www.rapid7.com/products/metasploit/download/editions/。在浏览器中输入该地址后,将显示如图1.1所示的页面。图1.1 Metasploit Framework下载页面

可以看到,该页面中提供了3个版本,分别是专业版(Pro,免费试用14天)、社区版(Community)和Framework。本例中将选择下载Framework。在该页面单击Framework下面的Free Download按钮,将跳转到GitHub网站,这里提供了各种操作系统平台的安装和下载方法,如图1.2所示。图1.2 下载Metasploit Framework安装包提示:当打开Metasploit Framework包下载页面时,下载地址及安装包是折叠的,需要展开才可以看到其链接。

从图1.2中可以看到页面中分别提供了Linux、Mac OS X和Windows安装包。而且,所提供的Linux安装包包括.deb和.rpm格式。其中,.deb包提供了i386、amd64、armhf和arm64这4个版本;.rpm包只提供了64-bit x86。1.3.2 在Windows系统中安装Metasploit【实例1-1】在Windows下安装Metasploit Framework。具体操作步骤如下:(1)双击运行已下载的安装包,将打开如图1.3所示对话框。(2)该对话框为安装Metasploit-framework的欢迎界面,单击Next按钮,进入用户许可协议对话框,如图1.4所示。图1.3 欢迎安装向导图1.4 许可协议(3)该对话框提示用户是否接受许可协议。这里勾选I accept the terms in the License Agreement复选框,然后单击Next按钮,进入安装位置对话框,如图1.5所示。(4)该对话框用来设置Metasploit Framework的安装位置,默认将安装在C盘。如果希望安装到其他位置,可以单击Browse按钮,修改安装位置。然后,单击Next按钮,进入准备安装对话框,如图1.6所示。(5)该对话框提示将开始安装,如果确定之前的配置无误,单击Install按钮将开始安装,如图1.7所示。如果需要进行修改,可以单击Back按钮。安装完成后,显示如图1.8所示对话框。表示Metasploit Framework已经安装成功了。单击Finish按钮,退出安装向导界面。图1.5 选择安装位置图1.6 准备安装图1.7 正在安装图1.8 安装完成

现在,就可以启动Metasploit Framework了。启动方法如下:(1)进入Metasploit Framework安装位置。本例中的安装位置是C盘,此时在C盘下面可以看到一个名为metasploit-framework的文件夹。(2)依次打开metasploit-framework|bin目录,如图1.9所示。(3)双击msfconsole.bat可执行文件,即可启动Metasploit Framework。成功启动后,如图1.10所示。(4)看到窗口中显示的msf5>提示符,则表示已成功启动了Metasploit。接下来就可以使用该框架提供的模块及攻击载荷实施渗透了。图1.9 Metasploit Framework中可执行的命令图1.10 成功启动Metasploit1.3.3 在Linux系统中安装Metasploit

在Linux下,提供了两种安装Metasploit Framework工具的方法。一种方法是GitHub托管网站提供的快速安装,另一种是使用二进制包(.rpm或.deb)手动安装。下面分别介绍这两种方法。

1.快速安装【实例1-2】在Linux下快速安装Metasploit Framework。执行命令如下:[root@RHEL ~]# curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

执行完以上命令后,开始下载Metasploit Framework安装包,然后安装Metasploit Framework。安装成功后,显示Complete(完成)提示信息如下:Installed: metasploit-framework.x86_64 0:5.0.2+20190118142505~1rapid7-1.el6Complete!

看到以上提示信息,则表示成功安装了Metasploit。接下来,在终端执行msfconsole命令,即可启动该工具。

使用以上方法安装成功后,Metasploit将被安装在/opt/metasploit-framework目录中。其中,所有可执行的命令在/opt/metasploit-framework/bin目录下。所以,启动Metasploit需要进入该目录下,执行对应的脚本文件。启动如下:[root@RHEL ~]# cd /opt/metasploit-framework/bin/[root@RHEL bin]# ./msfconsolemsf5 >

看到msf5>提示符则表示已成功启动了Metasploit。

2.手动安装

使用手动安装方法也非常简单,只需要执行一条命令即可。首先从GitHub网站提供的下载链接中获取安装包,然后使用rpm命令安装。执行命令如下:[root@RHEL ~]# rpm -ivh metasploit-framework-5.0.2+20190118142505~1rapid7-1.el6.x86_64.rpm warning: metasploit-framework-5.0.2+20190118142505~1rapid7-1.el6.x86_64. rpm : Header V4 RSA/SHA256 Signature, key ID 2007b954: NOKEYPreparing... ################################ [100%] 1:metasploit-framework ################################ [100%]Run msfconsole to get started

看到以上输出信息,表示已成功安装了Metasploit Framework。接下来,便可以在终端执行msfconsole命令启动该工具了。1.3.4 在OS X系统中安装Metasploit

在OS X下,用户也可以使用1.3.3节中的快速方法来安装Metasploit Framework。如果用户不喜欢使用命令行方式操作,也可以使用图形界面的方式来安装。下面介绍如何在OS X下使用图形界面的方式来安装Metasploit Framework。【实例1-3】在OS X下使用图形界面的方式安装Metasploit Framework。具体操作步骤如下:(1)双击下载的安装包,打开如图1.11所示对话框。(2)该对话框是安装Metasploit Framework的欢迎界面,单击“继续”按钮,进入软件许可协议对话框,如图1.12所示。图1.11 欢迎对话框图1.12 软件许可协议(3)在其中可以看到安装Metasploit的许可协议信息,单击“继续”按钮,弹出是否同意许可协议的对话框,如图1.13所示。(4)单击“同意”按钮,表示接受许可协议,进入安装Metasploit对话框,如图1.14所示。(5)单击“安装”按钮,开始安装Metasploit工具。安装完成后,如图1.15所示。(6)单击“关闭”按钮,退出Metasploit的安装界面。接下来,就可以启动Metasploit工具了。

在OS X下,Metasploit默认被安装在/opt/metasploit-framework目录下。如果要启动Metasploit,进入/opt/metasploit-framework/bin目录下,运行msfconsole可执行文件,即可启动该工具。启动命令如下:localhost:~ root# cd /opt/metasploit-framework/binlocalhost:~ root# ./msfconsolemsf5 >图1.13 同意许可协议图1.14 安装Metasploit图1.15 安装成功1.4 安装及连接PostgreSQL数据库服务

PostgreSQL是一个免费的对象-关系数据库服务,用来存储一些数据记录。Metasploit启动后,会选择连接PostgreSQL数据库服务,然后就可以完整地利用MSF数据库查询exploit和记录了。在Kali Linux系统中,启动Metasploit后,将自动连接到PostgreSQL服务的Postgres数据库。但是,在其他系统中,需要手动连接该数据库。本节将介绍安装及连接PostgreSQL数据库服务的方法。1.4.1 安装PostgreSQL数据库服务

在大部分系统中,默认并不会安装PostgreSQL数据库服务。所以,如果要使用该数据库,需要先在系统中进行安装。PostgreSQL数据库服务的下载地址为http://www.postgresql.org/download/。

在浏览器中输入该地址后,将打开如图1.16所示的页面。图1.16 PostgreSQL数据库下载

在该页面中可选择下载各种平台的安装包。在大部分Linux发行版中都自带了PostgreSQL的二进制包,所以用户可以直接安装。下面将演示在Windows中安装PostgreSQL数据库的方法。【实例1-4】在Windows 7中安装PostgreSQL数据库。具体操作步骤如下:(1)双击下载的安装包,将打开如图1.17所示对话框。(2)该界面是安装PostgreSQL数据库的欢迎界面。单击Next按钮,进入安装位置对话框,如图1.18所示。图1.17 欢迎界面图1.18 安装目录提示:安装PostgreSQL的分区最好是NTFS格式的。PostgreSQL的首要任务是保证数据的完整性,而FAT和FAT32文件系统不能提供这样的可靠性保障,而且FAT文件系统本身缺乏安全性保障,无法保证原始数据在未经授权的情况下被更改。此外,PostgreSQL所使用的“多分点”功能完成表空间的这一特征在FAT文件系统下无法实现。然而,在某些系统中,只有一种FAT分区。在这种情况下,可以正常安装PostgreSQL,但不要进行数据库的初始化工作。安装完成后,在FAT分区上手动执行initdb.exe程序即可,但不能保证其安全性和可靠性,并且建立表空间也会失败。(3)选择PostgreSQL数据库的安装位置。本例中将使用默认路径,然后单击Next按钮,进入选择组件安装对话框,如图1.19所示。(4)在其中选择将要安装的组件,这里使用默认设置,选择所有组件。然后单击Next按钮,进入数据目录对话框,如图1.20所示。图1.19 选择组件图1.20 数据目录存储位置(5)该对话框用来设置PostgreSQL数据库的数据存放目录,本例使用默认的位置。然后单击Next按钮,进入用户密码设置对话框,如图1.21所示。(6)在其中为数据库超级用户postgres设置密码。一定要记住这个密码,在连接数据库时需要输入该密码。然后,单击Next按钮,进入数据库端口监听对话框,如图1.22所示。(7)在其中设置数据库监听的端口,这里使用默认端口。然后,单击Next按钮,进入高级选项设置对话框,如图1.23所示。(8)在其中可以设置数据库存储区域的运行时环境(字符编码格式),这里选择默认设置,即Default locale选项。然后,单击Next按钮,进入预安装摘要信息对话框,如图1.24所示。(9)在其中显示了数据库将要安装的位置文件信息。单击Next按钮,进入PostgreSQL数据库安装对话框,如图1.25所示。图1.21 设置postgres数据库用户密码图1.22 设置数据库监听端口图1.23 高级选项图1.24 预安装摘要信息(10)该对话框表示目前已经配置好PostgreSQL了,可以开始安装该数据库了。此时,单击Next按钮,开始安装该数据库。安装完成后,如图1.26所示。(11)从中可以看到,默认将要启动Stack Builder来下载并安装额外的工具、应用程序和驱动程序,以进一步完善PostgreSQL的安装。但是,该操作必须在联网状态下执行。本例中安装PostgreSQL数据库只是为了简单地与Metasploit连接,并保存一些数据。所以,这里不启动StackBuilder,即取消复选框的勾选。然后,单击Finish按钮完成数据库的安装。图1.25 准备安装图1.26 安装完成1.4.2 初始化PostgreSQL数据库

为了便于存储数据,Metasploit会使用特定的用户名来访问PostgresSQL数据库,并将数据保存在自有的数据库中。所以,在启动Metasploit之前,需要先初始化数据库。在初始化过程中,Metasploit会在PostgreSQL中建立一个专用账户msf,并创建对应的数据库。操作过程如下:

1.启动PostgreSQL数据库服务

为了方便渗透测试人员操作,Metasploit提供了专门的数据库服务管理命令。下面依次讲解数据库服务的启动和关闭方法。(1)启动PostgreSQL数据库服务,执行的命令如下:root@daxueba:~# msfdb start[+] Starting database

输出信息表示数据库服务已经成功启动了。(2)当不使用Metasploit时,为了节省系统资源,可以停止PostgreSQL数据库服务,执行的命令如下:root@daxueba:~# msfdb stop[+] Stopping database

输出信息表示数据库已经成功禁止了。

成功启动PostgreSQL数据库服务,PostgeSQL会监听5432端口。查看该端口是否被监听,执行命令如下:root@daxueba:~# ss -antState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 127.0.0.1:5433 0.0.0.0:* LISTEN 0 128 0.0.0.0:44797 0.0.0.0:* LISTEN 0 128 0.0.0.0:41959 0.0.0.0:* LISTEN 0 128 [::]:39031 [::]:* LISTEN 0 128 [::1]:5432 [::]:* LISTEN 0 128 [::1]:5433 [::]:* LISTEN 0 128 [::]:44235 [::]:*

从Local Address:Port列中可以看到,127.0.0.1:5432表示5432端口已经被监听。

2.初始化数据库

初始化数据库,执行命令如下:root@daxueba:~# msfdb init

输出信息如下:[+] Starting database[+] Creating database user 'msf'为新角色输入的口令: 再输入一遍: [+] Creating databases 'msf' #创建msf数据库[+] Creating databases 'msf_test' #创建msf_test数据库[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml' #创建配置文件[+] Creating initial database schema

输出信息表示成功创建了Metasploit的专用数据库msf和msf_test,并且创建了配置文件database.yml。输出信息的第3行和第4行表示为创建的数据库名自动生成密码,它将自动保存到配置文件中。最后一行信息表示创建了初始化数据库模式。

查看配置文件database.yml中的信息,可以看到msf和msf_test数据库的相关信息,如密码和端口号等。执行命令如下:root@daxueba:~# cat /usr/share/metasploit-framework/config/database.yml

输出信息如下:development: adapter: postgresql database: msf #数据库名 username: msf #用户名 password: eX2wVC53WcKaSdAKDHs+/ZumzfRCV3Xi3bnVe7t1bRw= #密码 host: localhost #主机名 port: 5432 #端口号 pool: 5 #连接池连接数 timeout: 5 #连接的超时时间production: adapter: postgresql database: msf username: msf password: eX2wVC53WcKaSdAKDHs+/ZumzfRCV3Xi3bnVe7t1bRw= host: localhost port: 5432 pool: 5 timeout: 5test: adapter: postgresql database: msf_test username: msf password: eX2wVC53WcKaSdAKDHs+/ZumzfRCV3Xi3bnVe7t1bRw= host: localhost port: 5432 pool: 5 timeout: 5

如果用户不再保留Metasploit的数据库,可以将其删除并停止数据库服务。命令如下:root@daxueba:~# msfdb delete

输出信息如下:[i] Database already started[+] Dropping databases 'msf' #删除数据库msf[+] Dropping databases 'msf_test' #删除数据库msf_test[+] Dropping database user 'msf'[+] Deleting configuration file /usr/share/metasploit-framework/config/database.yml #删除配置文件[+] Stopping database #停止数据库

输出信息表示成功删除了数据库msf和msf_test,最后一行信息表示此时数据库服务被停止。

3.重置数据库

如果数据库已经初始化过,就不能再使用msfdb init命令进行初始化了,否则将显示如下信息:root@daxueba:~# msfdb init

输出信息如下:[i] Database already started[i] The database appears to be already configured, skipping initialization

输出信息表示数据库已经配置好了,自动跳过初始化过程。

如果需要再次初始化数据库,就需要执行以下命令:root@daxueba:~# msfdb reinit

输出信息如下:[i] Database already started #删除原有的数据库[+] Dropping databases 'msf'[+] Dropping databases 'msf_test'[+] Dropping database user 'msf'[+] Deleting configuration file /usr/share/metasploit-framework/config/database.yml[+] Stopping database #停用数据库[+] Starting database #启用数据库[+] Creating database user 'msf' #创建数据库为新角色输入的口令: 再输入一遍: [+] Creating databases 'msf'[+] Creating databases 'msf_test'[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml'[+] Creating initial database schema

输出信息表示,先删除了原有的数据库然后停用。之后再启用数据库创建新的数据库。

4.查看数据库状态

为了快速了解到此时数据库的状态,可以使用msfdb status命令检查服务状态。如果使用msfdb stop命令停用了数据库,查看服务状态时将显示如下信息:root@daxueba:~# msfdb status

输出信息如下:● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: inactive (dead)4月 03 14:41:01 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:41:06 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:41:06 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:44:13 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:44:17 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:44:17 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:47:44 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:48:46 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:48:46 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:49:22 daxueba systemd[1]: Stopped PostgreSQL RDBMS. #停用了数据库[i] No network service running[+] Detected configuration file (/usr/share/metasploit-framework/config/database.yml)

输出信息的倒数第二行表示,此时没有运行的网络服务,最后一行信息表示检测到配置文件,说明初始化数据库时创建数据库生成的配置文件没有被删除。

如果使用msfdb delete命令删除创建的数据库,查看服务状态时将显示如下信息:root@daxueba:~# msfdb status

输出信息如下:● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: inactive (dead)4月 03 14:44:13 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:44:17 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:44:17 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:47:44 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:48:46 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:48:46 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:49:22 daxueba systemd[1]: Stopped PostgreSQL RDBMS.4月 03 14:56:25 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 14:56:25 daxueba systemd[1]: Started PostgreSQL RDBMS.4月 03 14:57:38 daxueba systemd[1]: Stopped PostgreSQL RDBMS. #停用了数据库[i] No network service running[i] No configuration file found

输出信息最后两行表示既没有运行的网络服务,也没有检查到配置文件。

如果只使用msfdb start命令启用数据库,而没有使用msfdb init命令初始化数据库,查看服务状态时将显示如下信息:root@daxueba:~# msfdb status

输出信息如下:● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: active (exited) since Tue 2018-04-03 15:33:03 CST; 2s ago Process: 6845 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 6845 (code=exited, status=0/SUCCESS)4月 03 15:33:03 daxueba systemd[1]: Starting PostgreSQL RDBMS...4月 03 15:33:03 daxueba systemd[1]:Started PostgreSQL RDBMS. #启用了数据库COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEpostgres 6811 postgres 3u IPv6 117845 0t0 TCP localhost:5432 (LISTEN)postgres 6811 postgres 6u IPv4 117846 0t0 TCP localhost:5432 (LISTEN)UID PID PPID C STIME TTY STAT TIME CMDpostgres 6811 1 0 15:32 ? S 0:00 /usr/lib/postgresql/9.6/bin/postgres -D /[i] No configuration file found

输出信息可以看到此时的数据库是启用的,最后一行信息表示没有发现配置文件,说明此时没有进行初始化数据库。

初始化数据库以后,再次查看服务状态,最后一行信息如下: [+] Detected configuration file (/usr/share/metasploit-framework/config/ database.yml)

5.直接启动Metasploit

初始化数据库以后就可以启动数据库,并运行Metasploit了。执行命令如下:root@daxueba:~# msfdb run[i] Database already started _---------. .' ####### ;." .---,. ;@ @@`; .---,..." @@@@@'.,'@@ @@@@@',.'@@@@ ".'-.@@@@@@@@@@@@@ @@@@@@@@@@@@@ @; `.@@@@@@@@@@@@ @@@@@@@@@@@@@@ .' "--'.@@@ -.@ @ ,'- .'--" ".@' ; @ @ `. ;' |@@@@ @@@ @ . ' @@@ @@ @@ , `.@@@@ @@ . ',@@ @ ; _____________ ( 3 C ) /|___ / Metasploit! \ ;@'. __*__,." \|--- \_____________/ '(.,...."/ =[ metasploit v5.0.1-dev ]+ -- --=[ 1851 exploits - 1046 auxiliary - 321 post ]+ -- --=[ 541 payloads - 44 encoders - 10 nops ]+ -- --=[ 2 evasion ]+ -- --=[ ** This is Metasploit 5 development branch ** ]msf5 >1.4.3 连接PostgreSQL数据库

除了使用msfdb命令,也可以在Metasploit中直接连接数据库。操作过程如下:

1.查看数据库状态

在连接数据库之前,需要先了解当前的数据库处于什么状态,可以使用Metasploit子命令db_status来查看数据库状态。(1)启动Metasploit,执行命令如下:root@daxueba:~# msfconsolemsf5 >(2)查看数据库状态,执行命令如下:msf5 > db_status[*] postgresql selected, no connection

输出信息显示,Metasploit默认选择的是PostgreSQL数据库服务,但是还没有连接到任何数据库。

2.连接数据库

此时,就可以使用Metasploit子命令db_connect连接到现有的数据库了。其语法格式有以下两种:

第一种:db_connect @/

其中,user表示用户名,pass表示密码,host表示PostgreSQL服务所在的主机IP,port表示监听的端口号,database表示数据库名。

第二种:db_connect -y [path/to/database.yml]

其中,-y表示指定配置文件,path/to/database.yml表示配置文件。

通过配置文件可以看到数据库的相关信息如下:production: adapter: postgresql database: msf username: msf password: 8CpuBLruzRZ/UrWU5lHeK3142yAmeCh3JQhxXlVM4oQ= host: localhost port: 5432 pool: 5 timeout: 5

根据数据库信息,使用db_connect命令连接数据库,执行命令如下:msf5 > db_connect msf:8CpuBLruzRZ/UrWU5lHeK3142yAmeCh3JQhxXlVM4oQ=@127.0.0.1:5432/msfConnected to Postgres data service: 127.0.0.1/msf

从输出的信息可以看到,已连接到Postgres数据库服务。(3)再次查看数据库状态,执行命令如下:msf5 > db_status[*] Connected to msf. Connection type: postgresql. Connection name: wqX77aje.

输出信息表示Metasploit已经成功地连接上了PostgreSQL的msf数据库。

3.断开数据库连接

当用户不再需要与当前的数据库连接时,可以使用数据库命令db_disconnect断开连接。(1)断开与当前数据库的连接,直接执行命令如下:msf5 > db_disconnectSuccessfully disconnected from the data service: local_db_service.

从输出的信息可以看到,已经成功断开了与本地数据库服务的连接。(2)查看数据库状态,执行命令如下:msf5 > db_status[*] postgresql selected, no connection

输出信息表示已成功地断开了连接。1.4.4 手动创建Metasploit专有用户/数据库

在1.4.2节中进行数据库初始化时,会默认创建msf和msf_test数据库,并且保存在配置文件database.yml中。如果用户不想查找该文件或该文件丢失了,还可以手动创建数据库账户。(1)启动PostgreSQL数据库服务,执行命令如下:root@daxueba:~# msfdb start[+] Starting database(2)切换到postgre账户,执行命令如下:root@daxueba:~# su postgrespostgres@daxueba:/root$

输出信息表示成功切换为postgre账户。(3)创建数据库账户。例如,创建名为msf2的数据库账户。执行命令如下:postgres@daxueba:/root$ createuser msf2 -P为新角色输入的口令: #需要手动输出密码再输入一遍: #再次输出密码

输出信息时需要输入数据库账户msf2的密码,这里使用的密码为123456。(4)创建数据库,执行命令如下:postgres@daxueba:/root$ createdb --owner=msf2 msf6

其中,owner参数指定数据库所有者,这里为msf2;msf6表示数据库名。(5)启动Metasploit,执行命令如下:root@daxueba:~# msfconsolemsf5 >(6)建立连接,执行命令如下:msf5 > db_connect msf2:123456@127.0.0.1/msf6Connected to Postgres data service: 127.0.0.1/msf6

输出信息表示已经连接到数据库msf6。1.5 Metasploit用户接口

Metasploit框架为其基础功能提供了多个用户接口,包括终端、命令行和图像界面等。在最新的版本中,命令行接口已被废弃,其功能都被整合到了MSF终端接口中。除了这些接口,功能程序则提供了对Metasploit框架中内部功能的直接访问。本节将介绍Metasploit的用户接口。1.5.1 图形界面接口——Armitage

Armitage组件是Metasploit框架中一个完全交互式的图形化用户接口,由Raphael Mudge所开发。Armitage工具包含Metasploit控制台,通过使用其标签特性,用户可以看到多个Metasploit控制台或多个Meterpreter会话。但是,本书不会深入介绍Armitage接口的使用,而是只讲解和分析Metasploit的输入和输出。用户只要了解了Metasploit框架的实际工作原理,那么这个图形界面工具的使用就很容易了。下面将简单介绍Armitage接口的使用。【实例1-5】在Kali Linux中使用Armitage。其中,该工具已经默认安装在Kali Linux中,所以可以直接使用。具体操作步骤如下:(1)启动Postgresql数据库服务。在使用Armitage工具前,必须启动Postgresql数据库服务,并且还需要初始化数据库。否则,将无法运行Armitage工具。因为Armitage需要连接到PostgreSQL服务,才可以启动。执行命令如下:root@Kali:~# service postgresql start #启动PostgreSQL数据库服务root@Kali:~# msfdb init #初始化数据库Creating database user 'msf'为新角色输入的口令: 再输入一遍: Creating databases 'msf' and 'msf_test'Creating configuration file in /usr/share/metasploit-framework/config/database.ymlCreating initial database schema

从以上输出信息中,可以看到已经自动创建了msf和msf_test数据库。如果没有初始化数据库,启动Armitage工具后将弹出如图1.27所示的消息框。提示:从Kali Linux 2018.2开始,默认已经初始化了数据库。用户无须执行以上的操作,直接启动Armitage工具即可。(2)启动Armitage工具。在Kali桌面依次选择“应用程序”|“漏洞利用工具集”|armitage命令,如图1.28所示。或者在终端运行armitage命令启动Armitage工具,命令如下:root@kali:~# armitage(3)Armitage工具启动后,显示界面如图1.29所示。(4)其中显示了连接Metasploit服务的基本信息。单击Connect按钮,弹出如图1.30所示对话框。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载