前言:Metasploit是The Metasploit Framework的简称,也可以叫做MSF! MSF高度模块化即框架由多个module组成,是全球最受欢迎的工具。
Metasploit Framework(MSF)远远不仅仅是一个漏洞的集合。这是您可以建立和利用您的自定义需求的基础架构。这使您可以专注于您独特的环境,而不必重新发明轮子。
官网地址: https://www.metasploit.com/ ,在这里你可以获得官方文档及其他帮助,官方文档中有大量API开发规范

项目地址: https://github.com/rapid7/metasploit-framework/

1.0. MSF架构

基础库文件名 作用
Rex Rex功能库实际来讲并不属于MSF。如HTTP/TELNET/SSH等连接功能严格来讲是属于操作系统自带的功能,MSF只是去以一个用户的身份去调用它而已。
ramwork-core Core库是真正属于MSF的最底层的库,其中包含的都是MSF框架的底层功能,如数据管理,session管理,插件管理这些核心底层功能。
framewok-base Base库是在针对Core库进行进一步人性化的拓展的库,算作一个中间层,为开发者提供API以轻松调用MSF的功能,我们使用的各种插件,我们上期提到的console接口,还有收费版的UI界面,以及自己开发的插件,都是在base库的基础上进一步拓展的。
Plugin插件 Plugin插件,这里提到的插件与我刚刚讲到的有略微差异,他这里提到的插件指的是成熟的工具/软件,如各种成熟的扫描器,老牌扫描厂商的存在,已经不需要MSF再去开发新的插件啦,直接调用就好啦。

1.1. 模块介绍

模块名称 模块作用
Auxiliary 负责执行信息收集,扫描,嗅探,指纹识别,口令猜测和Dos攻击等功能的辅助模块
Exploits 利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动,被动)
Payloads 成功exploit之后,真正在目标系统执行的代码和命令。
Post 后期渗透模块,在取得目标系统远程控制权后吗,进行一系列的后渗透攻击动作,如获取敏感信息,跳板攻击等操作.
Encoders 对payload进行加密,躲避antiviru检查的模块。
Nops 提高payload稳定性及维持大小,在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行shellcode之前添加段空指令区,这样当触发渗透攻击后跳转执行shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化,返回地址计算偏差等原因造成的shellcode执行失败,提高渗透攻击的可靠性。

注意:msf的根目录是/usr/share/metasploit-framework/,默认存放模块目录如下,目录下的6个子文
件对上面6个模块一一对应


通常 Exp 和 PoC 都是可执行的漏洞利用脚本/程序 ,区别主要在于是否恶意。

  • PoC 是 Proof of Concept (概念验证) 通常是内含无害的漏洞代码,比如弹出一个计算器什么的
  • Exp 是 Exploit (漏洞利用) 通常是内含恶意的漏洞代码

exp在msf中来讲,其实本身并没有恶意行为,只是它会调用恶意payloads来进行测试,也就成为了大
众心中的形象:exp=恶意漏洞利用。
exploits文件夹下我们可以看到针对各种漏洞做的分类,payloads文件夹下我们可以看到三种payload类型。

payloads文件夹下我们可以看到三种payload类型:

  • Single : all-in-one,Single有点类似我们常说的大马,它不依赖任何环境或组件,只要它成功上
    传,它就可以实现它所有的功能。
  • Stager:目标计算机内存有限时,先传输一个较小的payload用于建立连接。stager有点类似我们常
    说的一句话,它只是用于建立连接。
  • Stages :利用stager建立的连接下载的后续payload。stages完全是为了搭配前者使用,这时候出于黑客逻辑肯定会问,为什么不接着上传第一步的single,答:stages-payload的功能更倾向于底
    层,执行系统命令,换句话说,你上传大马拿到webshell仍需要进一步提权,依然是要回归底层,如果从一开始就是底层,那还需要webshell吗?
  • Stager、Stages都有多种类型,适用于不同场景,Shellcode是payload的一种,由于其建立正向/反向shell而得名。

1.2. MSF接口

接口命令 接口介绍
Msfconsole 命令行控制台用户界面
Armitage 基于Msf的可视化高级渗透工具
Web View Msf网页界面,存在Mac os界面

1.3. MSF更新(msfupdate)

MSF在作为操作系统的一部分的时候,不再支持msfupdate,请使用apt 方式
apt update //更新软件园列表
apt install metasploit-farmework

1.4. MSFDB管理

虽然现在的MSF数据库不需要手动启动了,但是有的时候会觉得自己的数据库被搞乱了,还是想整理一下。可以使用msfdb功能,reinit参数用于重置数据库。这样的话msf相当于初始化。
基础操作命令

msfdb init # start and initialize the database postgresql
msfdb reinit # delete and reinitialize the database
msfdb delete # delete database and stop using it
msfdb start # start the database
msfdb stop # stop the database
msfdb status # check service status
msfdb run # start the database and run msfconsole

1.5. MSF基础操作

控制台命令支持tab补全,支持外部命令的执行。

help或者? 显示msfconsole可以使用的命令。
connect 可以理解为MSF中的nc命令,可以使用connect -h查看详细用法。
show 可以查看msf提供的资源。在根目录下执行的话,由于有些资源模块比较多,需要执行show命令较长的时间。show exploits:查看可以使用的exploit。除了exploits,还支持all,encoders,nops,payloads,auxiliary,post,options。有些选项需要用use使用一个模块后才能使用,show targets。
search 搜索模块简单搜索:search ms17_010。多条件搜素缩小范围:searchname:mysql type:exploit platform:linux
info 查看模块信息info 如果用use使用了一个模块,直接输入info查看。
use search找到模块后,用use使用模块use,exploit/windows/smb/mso8_067_netapi用use使用一个模块后,可以使用show options查看我们需要配置的选项,使用show targets选择目标主机系统,使用show payload选择payload。
set/setg 设置参数,比如要渗透的主机ip,payload等 ,我们可以使用show missing查看没有设置的参数。setg是设置全局变量,避免每个模块都要输入相同参数
unset/unsetg 取消设置参数和取消设置的全局变量
save 设置的此参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。
check 检查模块是否真的存在这个漏洞,大部分模块没有check功能
back 返回msfcomsole根目录
run/exploit 开始使用模块exploit -j:以后台进行运行
sessions 查看当前以建立的sessions,说明已经拿到了shellsessions -i id 可以进入一个
session交互
load/unload 调用外部的扫描命令,比如openvas
loadpath 加载自己的模块
route 添加一条路由,比如发往某个子网的流量都通过攻陷的机器发送。

下节内容永恒之蓝漏洞

一、初识Metasploit(MSF使用详解超详细)相关推荐

  1. 【工具使用】——Metasploit(MSF)使用详解(超详细)

    文章目录 一.实验环境: 二.简介: 三.Metasploit的安装和更新升级: 1. 一键安装MSF: 2. MSF的更新升级: 2.1 非kali环境下更新升级MSF: 2.2 kali环境下更新 ...

  2. Java 泛型详解(超详细的java泛型方法解析)

    Java 泛型详解(超详细的java泛型方法解析) 1. 什么是泛型 泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型.也就是说在泛型使用过程中,操作的数据类型被指定为 ...

  3. log4j 配置详解(超详细)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  4. 【bind()函数】JavaScript手写bind()及详解-超详细~~~

    这两天学习了手写call.apply.bind,手写bind思考了很久才实现了MDN的示例的结果,所以记录下来~ 因为是第一篇文章,所以可能存在一些错误,希望各位大佬批评指正,不吝赐教. 也欢迎不懂的 ...

  5. @Autowired注解详解——超详细易懂

    @Autowired详解 要搞明白@Autowired注解就是要了解它是什么?有什么作用?怎么用?为什么? 首先了解一下IOC操作Bean管理,bean管理是指(1)spring创建对象 (2)spr ...

  6. 斜率优化详解(超详细, 有图有代码有注释)

    文章目录 斜率优化引入 从例题开始 斜率优化Part 1: 推为斜率式 斜率优化Part 2: 合法点集的斜率单调性 Part 3: 找到最优决策点 Part 4: 斜率优化大流程 Part 5: 斜 ...

  7. mysql 联表比对,MySQL联表查询详解/超详细mysql left join,right join,inner join用法分析比较...

    超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a200 ...

  8. web服务器常见配置搭建详解(超详细)

    前言: 本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程 一来是和大家一起分享,二来也是作为自己的学习笔记记录一下. 温馨提示: 篇幅较长,请分阶段选择性查看. ...

  9. Microsoft SQL Server 2019 下载、安装及Java JDBC配置连接数据库(多图详解 超详细)

    一.下载 下载链接Microsoft SQL Server 二.安装 1.找到刚刚下载的文件,双击打开后,选择基本并接受 2.选择接受 3.选择安装位置,并点击安装,然后等待下载安装完成 4.正在安装 ...

最新文章

  1. Fis3的前端工程化之路[三大特性篇之资源定位]
  2. nginx能访问html静态文件但无法访问php文件
  3. 扔盘子(51Nod-1279)
  4. iPhone质量成迷?被吴彦祖一箭射穿,却还能开机
  5. 最方便的字符设备驱动的写法
  6. FFMPEG结构体分析:AVPacket
  7. 广东省深圳市谷歌卫星地图下载
  8. 语音识别算法、模型等解析
  9. 浅谈企业网站建设注意事项
  10. 数据结构课程设计【银行储蓄系统】
  11. Python之路【第二十篇】:python项目之旧版抽屉新热榜
  12. PRJ: LGA Design
  13. 用pygame做经典坦克大战游戏(附源码)
  14. 新手小白也能会的从淘宝口令到下载完淘宝直播回放视频的步骤详情
  15. Aspen Plus教程-孙兰义-例7.1-质量分数求解摩尔回收率
  16. 面临“反对沉没成本”效应,海尔、格力、海信、美的等家电厂商的智能音箱还有必要做吗?
  17. 极客日报:腾讯视频、优酷、爱奇艺取消超前点播;苹果为小学生推出编程指南;Win11会导致游戏性能下降
  18. 如何防止Excel工作表名称被修改
  19. 云服务器1M带宽够用吗?(并发数计算方法)
  20. 西瑞克斯机顶盒cy-jc1320安装APP

热门文章

  1. Dijkstra算法和A*算法总结
  2. [574]tf.nn.xw_plus_b
  3. linux安装光盘下载,教你如何下载Fedora 7安装光盘
  4. 光纤收发器常见故障问题的时候我们该如何解决呢
  5. 指针:const与指针
  6. git基本命令及核心
  7. 开发、运维、业务都说好的全栈云原生长这样
  8. Android native层Hander原理分析
  9. MyBatis源码简单分析
  10. 树莓派制作自己的小车车(上)