Metasploit渗透测试框架学习(一)基本使用教程

news/2024/10/7 20:27:20/文章来源:https://www.cnblogs.com/daydaydream/p/18438595

1.Metasploit框架结构

1.1总览

image

  • 基础库文件
    • Rex为最底层,实现网络套接字、网络应用协议、客户端服务端交互、数据库支持等
    • framework-core实现与上层模块交互的接口
    • framework-base对framework-core的扩展封装,用于提供各种接口供用户调用
  • 基于framework-base实现的六大模块
    • Exploits漏洞利用模块
    • Aux辅助模块:信息收集与扫描
    • Post后渗透模块
    • Payloads攻击载荷(真正执行的代码、后门或木马)
    • Encoders编码处理以实现绕过与免杀
    • Nops空指令模块(为了提高payload稳定性)
  • 插件
    • 结合Nessus、OpenVAS等工具,通过Metasploit相关插件与命令调用,扩充框架功能

      外部安全工具扫描完,利用Metasploit进行验证

  • 扩展脚本
    除了自带的脚本,还可以从外部进行集成,之后利用Metasploit调用执行
  • 接口
    • msfconsole常用于访问Metasploit,进入框架
    • msfgui
      提供gui界面kaili和parrot未预装,类似的还有(Armitage、Viper(炫彩蛇))
  • 功能程序

    一系列可以直接运行的功能程序,其中msfvenom可以将攻击载荷封装为可执行文件、c、javascript语言等多种形式,并可进行各类编码

    • msf*scan
      msfelfscan、msfpescan、msfbinscan、msfmachscan提供了在PE、ELF等各种类型文件中搜索特
      定指令的功能,可以帮助渗透代码开发人员定位指令地址
    • msfvenom
      主要用来生成木马程序的,为msfpayload和msfencode结合体

1.2Metasploit目录结构

kaili linux下目录:cd /usr/share/metasploit-framework/

  • 目录中文件如下:
    image
  • 常用文件
    • data文件夹(msf中一些可编辑文件)
    • document文件夹(一些说明文档)
    • lib文件夹(代码)
    • modules(存储MSF所有模块)
      image

      其中evasion为后门和木马生成模块

    • plugins(插件存储目录)
    • scripts(Meterpreter和其他脚本)
    • tools(命令行工具)

Metasploitable2-linux靶机系统,安装作为靶机

1.3基本使用方式

  • 需要Postgresql数据库(关系型数据库)
    1. systemctl start postgresql启动
    2. systemctl enable postgresql设置开机自启
    3. 命令行输入msfconsole启动

    提示no database YAML file时,需先去初始化文件msfdb init

  • 命令框架
    • help查看所有命令
    1. Core Commands核心命令
    2. Moudule Commands模块命令
    3. Job Commands后台任务命令
    4. Resource Scripts Commands资源脚本命令
    5. Database Backed Commands数据库后端凭证
    6. Credentials Backed Commands证书/凭证后端命令
    7. Developer Commands开发人员命令

核心命令

1. connect命令(获取信息以及内网渗透)
image
-P:要使用的代理列表
-p:指定源端口
-S:指定源地址
-s:使用ssl连接
-z尝试连接之后返回
connect [options] <host> <port>
示例:connect IP或域名 端口,之后get /命令获取一些服务器信息
2. show展示相关模块信息(会比较慢)
参数:
all、encoders、nops、exploits、payloads、auxiliary、post、plugins、info、options
3. search搜索某模块使用方法

search -h查看所有命令
支持模糊查找:ms08_067、ms08-067、MS08-067结果都一样

  • search 漏洞名
    search name:mysql名字里含mysql的
    search ms08-067
    搜索结果包含信息:
    名称/披露日期/排名/检查/说明
    • rank按照可靠性进行排序(利用难度由高到低)
    1. excellent 绝不会使目标服务器崩坏(sql注入、命令执行、文件包含)
    2. great 该漏洞利用程序有一个默认的目标系统,可以自动检测适当的目标系统,或在目标目标服务版本检查之后返回到一个特定的返回地址
    3. good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的"常见情况"
    4. normal 该漏洞利用程序是可靠的,但依赖于特定版本,并且不能或不能可靠的自动检测
    5. average 该漏洞利用程序不可靠或难以利用
    6. low 对通用平台而言几乎不可利用(或成功率低于50%)
    7. manual 该漏洞利用程序不稳定或难以利用,并且基于DOS。(若模块在特别配置时才会用到,否则不会被用到,也可评为该级)
  • path-根据路径去查
    search path:mysql
  • platform-平台查找缩小查询范围,列出高rank的漏洞
    search platform:mysql
  • type-根据类型去查
    type(exploit,payload,auxiliary,encoder, evasion, post, nop)
    search type:exploit类似于show
  • 联合查找(结合上述关键字)
    search name:mysql type:exploit
  • 根据CVE搜索
    search cve:CVE-2021-44228 type:exploit
    search cve:2021 name:linux查找2021年linux相关模块

4. USE命令
加载使用某个模块:use 模块名
先用search ms08-067搜索对应漏洞利用模块的全称,之后使用use exploit/windows/smb/ms08_067_netapi使用该模块

  • 退出模块:back,不要用exit会直接退出msf
  • 使用info命令查看模块详细信息
    可以在加载前使用info exploit/windows/smb/ms08_067_netapi,也可以在装载模块后使用:先use 模块名info
    运行后会包含的一些参数:targets(可用攻击目标);check supported(是否支持利用前检查是否存在漏洞);payload信息;description(漏洞描述与执行过程);references(参考文档)
  • show命令显示想知道的参数
    use命令调用模块后,使用show options查看参数
    参数名/默认值/是否必须/描述

name参数中RHOSTS为目标主机IP,其后有S说明可以攻击多个目标

show targets显示攻击目标类型

一般Exploit target(利用目标)为自动,需要设定下攻击目标

set target 34设定攻击目标参数,之后show options显示设置后的参数
set RHOSTS 192.168.1.16设置攻击目标IP
unset RHOSTS取消设置
配置后使用runexploit进行执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809577.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统计学(十三)——相关分析

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 相关分析是用于研究多个变量之间相互关系的统计方法,最早由英国统计学家卡尔皮尔逊(Karl Pearson)于1896年提出。皮尔逊通过对变量间线性关系的深入研究,…

前端模块化进化史:从全局 function 到 ES Modules

目前,前端开发已经离不开由 CommonJS、ES Modules 和 Webpack 构建的模块化开发环境。无论是 JavaScript、CSS、图片还是其他资源,都可以作为一个模块来处理。那么,模块化究竟是如何发展到今天的呢? 全局函数模式 最初的前端模块化尝试是通过 全局函数来实现的。例如,在一…

CF131C题解

贪心,优先队列,CF 2200传送门:https://codeforces.com/problemset/problem/134/C 关注到题目的两个限制:1. 一个人只能与另外同一人交换一张卡牌。2. 一个人只能交换自己原来颜色的卡牌。 对于2条限制条件,显然有贪心思路:尽量让更多的人手持原有的卡牌。对于当前待交换的…

『模拟赛』多校A层冲刺NOIP2024模拟赛03

『模拟赛记录』多校A层冲刺NOIP2024模拟赛03Rank 炸了,触底反弹A. 五彩斑斓(colorful) 签,又没签上。 考虑如何一步步优化暴力。最暴力的思想 \(\mathcal{O(n^4)}\) 枚举每个矩形,判断四个顶点颜色。稍微优化些,两次 \(\mathcal{O(n^2)}\) 跑出对于行/列每个点下一个与之…

加装spark-3.5.3

集群版本 hadoop-3.4.0 hive-3.1.3 zookeeper-3.9.2 hbase-2.6.0(1.0.0以上需要zookeeper-3.4.0以上) spark-3.5.3(只能选2.13.0) scala-2.13.0(jdk8仅支持x.x.0系)总结一下:JDK8和scala-2.13.0必选。1.安装scala 1.1 下载解压 tar zxvf scala-2.13.0.tgz 1.2 配置环境变…

高级程序语言第二次个人作业

高级程序语言第二次作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2024C/homework/13282学号 222200424姓名 赵伟豪编程练习3.13.23.33.43.53.63.73.8示例程序3.13.23.33.43.53.63.73.83.93.10总结与收获…

浏览器的渲染原理

浏览器渲染原理 五个渲染流程Parse 阶段:解析 HTMLStyle 阶段:样式计算三个阶段:收集,划分和索引所有样式表中存在的样式规则 访问每个元素并找到适用于该元素的所有规则,CSS 引擎遍历 DOM 节点,进行选择器匹配,并且匹配的节点执行样式设置 结合层叠规则和其他信息为节点…

CSP2024 前集训:多校A层冲刺NOIP2024模拟赛03

前言T1 没想到正难则反,脑瘫了没敢用 bitset(复杂度擦边但卡常能过),T2 空间开大了挂了 \(100pts\),\(T3\) 是原。 T1 五彩斑斓部分分 \(20pts\):\(O(n^4)\) 暴力。部分分 \(20+?pts\):进行一些优化,极限数据下仍是 \(O(n^4)\)。部分分 \(60\sim 100pts\):bitset 优化…

在C#中使用适配器Adapter模式和扩展方法解决面向的对象设计问题

之前有阵子在业余时间拓展自己的一个游戏框架,结果在实现的过程中发现一个设计问题。这个游戏框架基于MonoGame实现,在MonoGame中,所有的材质渲染(Texture Rendering)都是通过SpriteBatch类来完成的。举个例子,假如希望在屏幕的某个地方显示一个图片材质(imageTexture)…

React Fiber 原理

React Fiber 在 React 16 之前的版本对比更新 VirtualDOM 的过程是采用 Stack 架构实现的,也就是循环加递归,这种方式的问题是一旦任务开始进行就无法被中断。 如果应用中的组件数量庞大, Virtual DOM 的层级比较深,主线程被长期占用,知道整颗 Virtual DOM 树比对更新完成…

视野修炼-技术周刊第104期 | 下一代 JavaScript 工具链

① 🐙 尤大创办公司 VoidZero ② Tauri 2.0 稳定版发布 ③ Vite 时髦的新主页 ④ qrframe - 漂亮二维码生成 ⑤ HTTP QUERY 方法提案 ⑥ TinyJS - 轻量级的创建DOM元素 ⑦ 9月 Web 平台的新功能 ⑧ ESLint 现在正式支持 Linting JSON 和 Markdown欢迎来到第 104 期的【视野修…