1.Metasploit体系框架
1、基础库: metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。
Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL 以及 MySQL数据库支持等;
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;
framework-base库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;
2、模块:模块组织按照不同的用途分为6种类型的模块(Modules):
分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(payloads)、编码器模块(Encoders)、空指令模块(Nops)。
注: payload又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等。
3、插件:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。
4、接口:包括msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面以及msfapi远程调用接口。
5、功能程序: metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和
msfvenom可以将攻击载荷封装为可执行文件、C语言、JavaScript 语言等多种形式,并可以进行各种类型的编码。
软件目录位于:
data: Metasploit使用的可编辑文件
documentation:为框架提供文档
lib:框架代码库
modules:实际的MSF模块
plugins:可以在运行时加载的插件
scripts: Meterpreter和其他脚本
tools:各种有用的命令行工具
打开模块就可以看到如下,有兴趣可以每个文件夹看一下里面内容:
2. 靶机
靶机链接:
使用虚拟机打开后,设置网络为桥接模式,登陆账户密码
为了方便修改配置文件,登录后修改root账户密码:
sudo passwd root
成功后切换到root账户
su root
靶机的IP不用设置,因为网络是桥接模式,可以直接使用,它会自动获取使用ifconfig查看:
2.Metasploit使用
Metasploit程序需要使用Postgresql数据库。
首先在kali中开启数据库并设置数据库开机自启
systemctl start postgresql
systemctl enable postgresql
然后进行初始化数据库:
msfdb init
开启Metasploit,可以直接使用程序打开,也可以使用命令行msfconsole打开:
简单查看help
Core Commands #核心命令
Module Commands#模块命令
Job Commands#后台任务命令
Resource Script Commands#资源脚本命令
Database Backend Commands#数据库后端命令
Credentials Backend Commands#证书/凭证后端命令
Developer Commands#开发人员命令