【THM】Metasploit: Introduction(简介)-初级渗透测试

介绍

Metasploit是使用最广泛的开发框架。Metasploit是一个强大的工具,可以支持渗透测试的所有阶段,从信息收集到后利用。

Metasploit有两个主要版本:

  • Metasploit Pro:商业版本,有助于任务的自动化和管理。该版本有图形用户界面( GUI)。
  • Metasploit Framework:从命令行运行的开源版本。这个房间将重点讨论这个版本,安装在 AttackBox 和最常用的渗透测试Linux发行版上。

Metasploit框架是一组工具,可用于信息收集、扫描、利用、利用开发、后利用等。虽然Metasploit框架的主要用途集中在渗透测试领域,但它对于漏洞研究和漏洞利用开发也很有用。

Metasploit框架的主要组件可概括如下:

  • msfconsole:主命令行界面。
  • 模块:支持模块,例如漏洞利用、扫描器、有效负载等。
  • 工具:有助于漏洞研究、漏洞评估或渗透测试的独立工具。其中一些工具包括msfvenom、pattern_create 和pattern_offset。我们将在本模块中介绍 msfvenom,但pattern_create 和pattern_offset 是在漏洞利用开发中有用的工具,这超出了本模块的范围。

该房间将涵盖Metasploit的主要组件,同时为您如何在目标系统上查找相关漏洞、设置参数和利用易受攻击的服务奠定坚实的基础。完成此房间后,您将能够舒适地导航和使用Metasploit命令行。

您可以部署并使用 AttackBox 来完成任务并回答问题。

Metasploit的主要组件

使用Metasploit框架时,您将主要与Metasploit控制台进行交互。您可以使用以下命令从 AttackBox 终端启动它 msfconsole 。控制台将是您与Metasploit框架的不同模块进行交互的主界面。模块是Metasploit框架中的小组件,旨在执行特定任务,例如利用漏洞、扫描目标或执行暴力攻击。

在深入模块之前,澄清一些反复出现的概念会很有帮助:漏洞、漏洞利用和有效负载。

  • 漏洞利用:利用目标系统上存在的漏洞的一段代码。
  • 漏洞:影响目标系统的设计、编码或逻辑缺陷。利用漏洞可能导致机密信息泄露或允许攻击者在目标系统上执行代码。
  • 有效负载:攻击将利用漏洞。但是,如果我们希望利用漏洞获得我们想要的结果(访问目标系统、读取机密信息等),我们需要使用有效负载。有效负载是将在目标系统上运行的代码。

下面列出了每个模块和类别。这些仅供参考,但您将通过Metasploit控制台 (msfconsole) 与它们交互。

辅助的Auxiliary

任何支持模块,例如扫描器、爬虫和模糊器,都可以在这里找到。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 auxiliary/

auxiliary/

├── admin

├── analyze

├── bnat

├── client

├── cloud

├── crawler

├── docx

├── dos

├── example.py

├── example.rb

├── fileformat

├── fuzzers

├── gather

├── parser

├── pdf

├── scanner

├── server

├── sniffer

├── spoof

├── sqli

├── voip

└── vsploit

20 directories, 2 files

编码器Encoders

编码器将允许您对漏洞和有效负载进行编码,希望基于签名的防病毒解决方案可能会错过它们。

基于签名的防病毒和安全解决方案拥有已知威胁的数据库。他们通过将可疑文件与该数据库进行比较来检测威胁,并在匹配时发出警报。因此,编码器的成功率可能有限,因为防病毒解决方案可以执行额外的检查。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 encoders/

encoders/

├── cmd

├── generic

├── mipsbe

├── mipsle

├── php

├── ppc

├── ruby

├── sparc

├── x64

└── x86

10 directories, 0 files

闪避Evasion

虽然编码器会对有效负载进行编码,但它们不应被视为逃避防病毒软件的直接尝试。另一方面,“规避”模块会尝试这样做,或多或少会取得成功。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 2 evasion/

evasion/

└── windows

    ├── applocker_evasion_install_util.rb

    ├── applocker_evasion_msbuild.rb

    ├── applocker_evasion_presentationhost.rb

    ├── applocker_evasion_regasm_regsvcs.rb

    ├── applocker_evasion_workflow_compiler.rb

    ├── process_herpaderping.rb

    ├── syscall_inject.rb

    ├── windows_defender_exe.rb

    └── windows_defender_js_hta.rb

1 directory, 9 files

功绩Exploits

漏洞利用,按目标系统整齐地组织。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 exploits/

exploits/

├── aix

├── android

├── apple_ios

├── bsd

├── bsdi

├── dialup

├── example_linux_priv_esc.rb

├── example.py

├── example.rb

├── example_webapp.rb

├── firefox

├── freebsd

├── hpux

├── irix

├── linux

├── mainframe

├── multi

├── netware

├── openbsd

├── osx

├── qnx

├── solaris

├── unix

└── windows

20 directories, 4 files

NOPs

从字面上看,NOPs(无操作)什么也不做。它们在 Intel x86 CPU系列中以 0x90表示,随后CPU在一个周期内将不执行任何操作。它们通常用作缓冲区以实现一致的有效负载大小。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 nops/

nops/

├── aarch64

├── armle

├── cmd

├── mipsbe

├── php

├── ppc

├── sparc

├── tty

├── x64

└── x86

10 directories, 0 files

有效载荷Payloads

有效负载是将在目标系统上运行的代码。

漏洞利用将利用目标系统上的漏洞,但为了达到预期的结果,我们需要一个有效负载。例子可以是:获取 shell、将恶意软件或后门加载到目标系统、运行命令或启动 calc.exe 作为概念证明以添加到渗透测试报告中。通过启动 calc.exe 应用程序在目标系统上远程启动计算器是一种良好的方式,表明我们可以在目标系统上运行命令。

在目标系统上运行命令已经是一个重要的步骤,但是拥有允许您键入将在目标系统上执行的命令的交互式连接会更好。这种交互式命令行称为“shell”。Metasploit提供了发送不同有效负载的能力,这些有效负载可以在目标系统上打开 shell。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 payloads/

payloads/

├── adapters

├── singles

├── stagers

└── stages

4 directories, 0 files

您将在有效负载下看到四个不同的目录:adapters、single、stagers 和 stage。

  • 适配器adapters适配器包装单个有效负载以将其转换为不同的格式。例如,普通的单个有效负载可以包装在 Powershell 适配器内,这将生成执行该有效负载的单个 powershell 命令。
  • Singles:独立的有效负载(添加用户、启动 notepad.exe 等),无需下载额外的组件即可运行。
  • Stagers:负责在Metasploit和目标系统之间建立连接通道。在处理分阶段有效负载时很有用。 “分阶段有效负载”将首先在目标系统上上传一个 stager,然后下载其余的有效负载(阶段)。这提供了一些优点,因为与一次发送的完整有效负载相比,有效负载的初始大小相对较小。
  • Stages:由 stager 下载。这将允许您使用更大的有效负载。

Metasploit有一种微妙的方法来帮助您识别单个(也称为“内联”)有效负载和分段有效负载。

  • generic/shell_reverse_tcp
  • windows/x64/shell/reverse_tcp

两者都是反向 Windows shell。前者是内联(或单个)有效负载,如“shell”和“reverse”之间的“_”所示。而后者是阶段式有效负载,如“shell”和“reverse”之间的“/”所示。

Post

后置模块在上面列出的渗透测试过程的最后阶段(后利用)中非常有用。

root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 post/

post/

├── aix

├── android

├── apple_ios

├── bsd

├── firefox

├── hardware

├── linux

├── multi

├── networking

├── osx

├── solaris

└── windows

12 directories, 0 files

 如果您希望进一步熟悉这些模块,可以在Metasploit安装的模块文件夹下找到它们。对于 AttackBox,这些位于 /opt/metasploit-framework/embedded/framework/modules 下

kali位于/usr/share/metasploit-framework/modules

2.1利用目标系统上的缺陷的代码的名称是什么?Exploit

2.2在目标系统上运行以实现攻击者目标的代码的名称是什么?  payload

2.3自包含有效负载称为什么?  Singles

2.4“ windows/x64/pingback_reverse_tcp”是单一负载还是分阶段负载?  singles

微软控制台

如前所述,控制台将是

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

水库水位监测:从传统到现代的技术革新与数据应用

水库,作为水利工程的关键设施,在防洪、灌溉、发电和供水等多个领域具有不可替代的作用。而水库的水位变化,直接关联到其功能的发挥及周边生态环境的稳定。因此,对于水库水位的科学、精准监测显得尤为关键。 一、传统方法的局限 过…

使用ORDER BY进行排序

ASC:升序,默认 DESC:降序 SELECT employee_id, first_name, salary FROM employees ORDER BY salary ASC; SELECT employee_id, first_name, salary FROM employees ORDER BY salary DESC; 二级排序 按salary降序,employee_id升…

【智能排班系统】基于SpringSecurity实现登录验证、权限验证

文章目录 SpringSecurity介绍sss-security实现依赖工具类Jwt工具JSON响应工具加密工具类 用户上下文用户信息实体类用户上下文 自定义重写自定义无权限的报错自定义密码加密自定义用户类 过滤器登录过滤器权限过滤器 Service登录Service 配置类说明登录验证权限验证IP流量限制 …

【LeetCode】热题100:排序链表

题目: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5] …

对抗样本攻击

对抗样本是指经过特殊设计或调整的输入数据,旨在欺骗人工智能模型,使其产生错误的预测或输出。对抗样本通常是通过对原始输入进行微小但精心计算的改变,使得模型产生意外的结果。这种模糊化的输入可能难以从人类角度甄别,但对机器…

python 02字符串

字符串可能是用到最多的数据类型了,所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串 但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。 1.居中效果 默认为空格 可…

纯小白蓝桥杯备赛笔记--DAY9(动态规划)

文章目录 一、动态规划基础(1)线性DP简介步骤例题数字三角形--1536破损的楼梯-3367安全序列-3423 (2)二维DP简介例题摆花--389选数异或--3711数字三角形--505 (3)最长公共子序列LCSLCS算法模型最长公共子序…

Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue 一、实验 1.环境 (1)主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 1…

C语言之指针的指向地址和指针的内容总结(八十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Notion 开源替代品 AFFINE 部署和使用教程

AFFiNE 是一款完全开源的 Notion Miro 替代品,与 Notion 相比,AFFiNE 更注重隐私安全,优先将笔记内容保存到本地。 GitHub 地址:https://github.com/toeverything/AFFiNE AFFiNE 使用 Rust 和 Typescript 构建,只需…

【微服务】SpringCloud之Feign远程调用

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 …

【漏洞复现】易宝OA GetProductInv接口存在SQL注入漏洞

漏洞描述 易宝OA是一款功能非常强大的办公软件。用户通过软件里可以轻松的进行移动办公,功能非常的丰富,可以满足用户的各种办公需求,让你的办公效率有了有效的提高,通过软件里可以轻松的解决用户的各种办公事项。易宝OA GetProductInv接口存在SQL注入漏洞。 免责声明 …

【LeetCode】--- 动态规划 集训(二)

目录 一、63. 不同路径 II1.1 题目解析1.2 状态转移方程1.3 解题代码 二、931. 下降路径最小和2.1 题目解析2.2 状态转移方程2.3 解题代码三、174. 地下城游戏3.1 题目解析3.2 状态转移方程3.3 解题代码 一、63. 不同路径 II 题目地址: 不同路径 II 一个机器人位于…

机器学习数据预处理—统计分析方法

数据预处理 1 数据规范化 量纲,指将一个物理导出量用若干基本量的乘方之积表示出来的表达式。数据的比较需要关注两点——绝对数值和量纲,而特征间因为量纲的存在导致无法直接通过绝对数值比较大小,也就无法判断特征间的重要性。例如若某个…

中霖教育:注册会计师专业阶段考试难吗?

注册会计师专业阶段考试包含的考试科目众多,涉及的专业领域广泛,所以整体的难度相对较高。根据历年统计数据,该阶段的通过率平均约为22%,综合阶段的通过率在72%。 针对专业阶段,具体包括以下六门科目:《会…

DC9 Debian和sql注入

信息收集 sudo arp-scan -l 列出局域网主机 arp-scan向局域网中所有可能的ip地址发出arp请求包,如果得到arp回应,就证明局域网中某台主机使用了该ip dc9的ip : 192.168.146.133 访问网页 cms为Debian 端口扫描 22端口是filtered 隐藏目…

C++ 内存分配时地址对齐

如果数据地址的对齐与CPU相兼容,那么CPU读写内存时性能会更高。 因此在C中,有时会希望在堆或栈中分配内存时,返回的地址能按照特定的长度对齐。 如果希望在栈中分配的内存时,返回地址按照特定长度对齐,可以使用 alig…

Vue+OpenLayers7入门到实战:OpenLayers如何销毁已经创建好的地图容器

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上如何销毁已经创建好的地图容器。 在某些场景下,可能会需要销毁之前的地图,重新创建新的地图的需要,因此本章介绍一下在开始创建地图前如何先销毁之前的地图的功能。…

sharo反序列化漏洞

启动docker 服务 sudo service docker start 打开靶场 sudo docker run -d -p 80:8080 medicean/vulapps:s_shiro_1 输入docker虚拟机地址打开靶机sharo框架 如何利用漏洞 打开工具目录在终端中打开 输入靶机地址 打开yaki监听端口可以设置为6666 返回工具填写靶机ip和端口 …

【二分查找】Leetcode 山脉数组的峰顶索引

题目解析 852. 山脉数组的峰顶索引 这到题使用暴力枚举的查找方法发现这段数组是有二段性的&#xff0c;峰顶左边的一段区间是一段递增区间&#xff0c;右边的一段区间是一段递减区间 算法讲解 class Solution { public:int peakIndexInMountainArray(vector<int>&am…