Metasploit工具的简单介绍

##本篇文章是本人通过学习相关课程所总结的一些笔记,仅供参考##

一、Metasploit简介

Metasploit是一款开源的安全漏洞检测工具,Metaspoit核心中绝大部分由Ruby语言编写,小部分由汇编语言和C语言实现。

Metasploit Framework(MSF)最初是HD Moore个人想法,当时他在一家安全公司工作,他于2003年10月发布了第一个基于Perl的Metasploit版本,一开始只有共11个漏洞利用程序。

随着Spoonm帮助和加入,HD于2004年4月重写了该项目并发布了Metasploit 2.0。此版本包括19个漏洞和超过27个payload。在这个版本发布后不久,马特米勒(Skape)加入了Metasploit的开发团队,使得该项目日益流行,Metasploit Framework也受到来自信息安全界的大力支持,并迅速成为一个渗透测试必备的工具。

2007年,Metasploit团队使用Ruby编程语言完全重写并发布了Metasploit3.0,这次Metasploit从Perl到Ruby的迁移历时18个月,增加超过15万行的新代码。随着3.0版本的发布,Metasploit开始被广泛的采用,在整个安全社区也受到了大幅增加的帮助和贡献。

在2009年秋季,Rapid7收购了Metasploit,Rapid7是一个在漏洞扫描领域的领导者公司。被收购之后,Rapid7公司允许HD建立一个团队,仅仅专注于Metasploit Framework的开发。也正由于这样,这次收购使得MetasploitFramework开始更迅速地发展,HDMoore也成为了Rapid7公司的CSO及Metasploit首席架构师。

二、Metaspolit下载安装

1、Windows下安装Metasploit 

从官网下载安装程序

安装前关闭杀毒软件和防火墙,部分版本需要将区域语言视之为”英语(美国)“

安装Metsaploit安装包过程中,会自动安装PostgreSQL数据库,用来存储Metasploit内的各种模块、载荷等索引,加快搜索速度

安装完成后,桌面会生成一个快捷方式,右键以管理员身份运行,打开cmd并运行Mestaploit控制台

官网:Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit

download下载安装程序,右边是专业版 

跳转页面,找到”最新的Windows安装程序“,点击下载,下载完成后进行安装

2、Linux下安装Metasploit

①Linux中安装要从Github上获取,命令行输入

Git clone https://github.com/rapid7/metasploit-framework.git

切换到metasploit-framework目录:cd metasploit-framework

赋予msfconsole文件一个执行权限:chmod +x msfconsole

并启动:./msfconsole

也可以一行命令解决:

cd metasploit-framework && chmod +x msfconsole && ./msfconsole

②kali中自带Metasploit

点击启动,每次启动后的图标可能都不一样 

 这里还显示metasploit的版本号

当然,我们也可以直接在命令运行metasploit

在终端中输入:

msfdb init && msfconsole

msfdb init:初始metaspolit数据库(PostgreSQL)

metasploit:打开metasploit的命令行

两个命令进行拼接,这次图形也发生了改变

三、Metaspolit文件结构与模块

1、Metasploit的文件结构

查看路径:/usr/share/metasploit-framework/

文件夹:

  • config:MSF环境配置信息,数据库配置信息
  • data:后渗透模块的工具和payload,第三方小工具集合,用户字典等数据信息
  • documentation:用户说明文档及开发文档
  • external:MSF的一些基础口占模块
  • lib:基础类和第三方模块类
  • modules:MSF系统工具模块
  • plugins:第三方插件接口
  • scripts:MSF常用的后渗透模块,与data里的后渗透模块不同的是,不需要加post参数的绝对路径,可以直接运行
  • tools:额外的小工具和第三方脚本工具

单文件:

  • msfconsole:MSF基本命令行,集成了各种功能
  • msfd:MSF服务,非持久性服务
  • msfdb:MSF数据库
  • msfupdate:MSF的服务端,非持久性的rpc服务
  • msfrpcd:持久性的MSF本地服务,可以给远程用户提供rpc服务以及其他的http服务,可以通过xm进行数据传输

提醒:我们在命令行可以看到已经添加的模块

这些模块与文件夹modules相对应 

2、Metasploit的模块介绍

exploits (渗透攻击/漏洞利用模块)

在CTF中我们经常提到的 exp 就是exploits的缩写,我们把它叫做漏洞利用程序

  • 渗透攻击模块是Metasploit框架中最核心的功能组件
  • 渗透攻击模块是利用发现的安全漏洞或配置弱点对远程目标进行的攻击,从而获得目标系统的权限。
  • 主流的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击、用户配置错误等。其中包含攻击者或测试人员对系统中的漏洞而设计的各种POC验证程序,以及用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。

②payloads(攻击载荷模块)

payloads是我们在漏洞利用成功之后,被注入到目标系统中的代码或数据。它经常与exploit一起使用,exp进行漏洞利用,payload实现攻击目的。

③auxiliary(辅助模块)

该模块不会直接在测试者和目标主机之间建立访问,它们只负责进行扫描、嗅探、指纹识别等相关功能来辅助渗透测试

④nops(空指令模块)

  • 空指令(NOP)是一些对程序运行不造成任何实质性影响的空操作或无关操作指令。最典型的空指令就是空操作
  • 在渗透攻击构造邪恶数据缓冲区时,常常要在真正执行的Shellcode之前添加一段空指令区。这样,当触发渗透攻击后跳转执行Shellcode时,就会有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的Shellcode执行失败。
  • Matasploit框架中的空指令模块就是用来在攻击载荷中添加空指令区,以提高攻击可靠性的组件。

⑤encoders(编码器模块)

编码器模块通过对攻击载荷进行各种不同形式的编码,完成两大任务:一是确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”;二是对攻击载荷进行“免杀”处理,即逃避反病毒软件、IDS/IPS的检测与阻断。

⑥post(后渗透攻击模块)

后渗透攻击模块主要用于在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步横向拓展、实施跳板攻击等。

⑦evasion(规避模块)

规避模块主要用于规避Windows Defender防火墙、Windows应用程序控制策略(applocker)等的检查。

四、Metasploit常用命令

1、kali终端下常用命令

msfdb init                                             //msf数据库初始化

msfdb delete                                       //删除msf数据库并停止使用

msfdb start                                         //启动msf数据库

msfdb stop                                         //停止msf数据库

apt install metasploit framework        //msf更新

msfvenom                                          //多平台攻击载荷生成器

msf-nasm shell                                  //将汇编指令转换成为对应的16进制机器码

msfconsole                                        //打开msf终端

提醒:msfdb init && msfconsole 这两个命令经常一同使用

2、msf终端下常用命令

db status                 //查看msf数据库连接状态

db nmap                 //调用nmap扫描,并将扫描结果存入数据库

search                    //搜索含有关键字的模块

use                         //选择使用一个模块

show payload         //显示该模块支持的payload

show options          //显示该模块需要设置的参数

info                         //查看详细信息

set                          //使用模块后,设置模块所需要的参数的值(对应使用unset取消设置的值)

back                        //返回上级状态

exploit/run              //两个命令都表示运行攻击模块

sessions                //查看当前连接的会话

提醒:在msf终端下输入 ? 或 help 来查看所有命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值