MSF(Metasploit Framework)详细教程

一. 简介

Metasploit 是一个开源的渗透测试开源软件,也是一个逐步发展成熟的漏洞研究与渗透测试代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境,2009年10月,Metasploit项目被一家渗透测试技术领域的知名安全公司Rapid7所收购。Rapid7公司随后与2010年10月推出了Metasploit Express 和Pro商业版本。
优点 : 模块化,灵活框架,界面友好,简单易用,代码安全

二. MSF 数据库操作

msf init && msfconsole 初始化数据库并且启动msf
1.启动数据库(PostgreSQL ,端口5432)
2.初始化数据库
3.启动msf
msfconsole -q 快速启动(不显示banner)
msfdb init启动并初始化数据库
msfdb reinit 重新初始数据库
msfdb delete 删除数据库
msfdb start 启动数据库
msfdb stop 关闭数据库
msfdb status查看数据库状态
msfdb run 启动数据库并启动msf

将PostgreSQL设置成开机自启

systemctl enable postgresql
开启开机自启动
systemctl list-units --type=service
查看开启开机自启动的程序列表

在这里插入图片描述

三. MSF常用命令

终端命令

命令解释
show exploits列出所有渗透攻击模块
show payloads列出所有的攻击载荷
show auxiliary列出所有的辅助模块
search查询所有包含关键字的模块
info展示出制定渗透攻击或模块的相关信息
info -d更详细的信息(会打开网页文件显示)
use装载一个模块
LHOST目标主机
RHOST远程主机或目标主机
set设置配置参数
setg设置配置全局参数
unset取消配置参数
unsetg取消配置全局参数
show options列出当前模块中所有的参数配置
show targets列出当前模块支持的平台
set target num指定你所知道的目标的操作系统以及补丁版本类型
set payload指定你想使用的攻击载荷(msf6是有默认的,msf5是需要指定的)
show advanced列出所有高级配置选项
check检测目标是否对选定的模块,存在相应的漏洞
exploit执行渗透攻击模块
exploit -j在计划任务下进行渗透攻击(攻击将在后台进行)
exploit -z渗透攻击成功后不进行会话交互
exploit -e <编码方式>指定攻击荷载的编码方式
exploit -h列出exploit命令的帮助信息
sessions -l列出可用的交互会话
sessions -l -v列出所有可用的交互会话以及会话详细信息
sessions -s <脚本>在所有活跃的meterpreter会话中运行一个特定的meterpreter脚本
sessions -K杀死所有会话
sessions -c <命令>在所有活跃的metaerprter会话上执行一个命令,如cmd
sessions -u 将指定的一个会话从win32shell升级到meterpeter shell
sessions -i 选着一个会话,到当前窗口运行
db_create <数据库名称>创建一个数据库驱动攻击所需要的数据库
db_nmap利用nmap并把所有扫描数据存入到数据库中
db_autopwn -p -r -e对所有发现的开放端口执行db_autopwn,攻击所有系统,并使用一个反弹式shell
db_destroy删除当前数据库
db_nmap利用nmap并把所有扫描数据存入到数据库中
db_destroy user:password@host:port/database使用高级选项来删除数据库

show exploits 列出所有渗透攻击模块
在这里插入图片描述
show payloads 列出所有攻击载荷模块
在这里插入图片描述

show auxiliary 列出所有辅助模块
在这里插入图片描述
search 17_010 搜索关键字包含17_010 的(这里的17_010是指漏洞的时间)
在这里插入图片描述
info 查看当前模块的详细信息
在这里插入图片描述info -d 查看当前模块的跟多详情详细
在这里插入图片描述
在这里插入图片描述
use 0 选择一个模块进行加载,这里的0是指序号,也可以用名称
在这里插入图片描述
show options 和 options 效果一样 列出当前模块的参数详细信息
在这里插入图片描述
在这里插入图片描述
set rhosts 172.30.1.133 设置RHOSTS(目标主机的IP地址)

在这里插入图片描述
show targets 列出当前模块支持的平台
在这里插入图片描述
check 检测目标对象是否存在对于模块的漏洞
在这里插入图片描述
sessions -l 列出所有连接
在这里插入图片描述
sessions -l -v 列出所有连接并显示连接利用的信息详细

在这里插入图片描述
show advanced 显示模块的高级参数
在这里插入图片描述
sessions -i 1 选择一个连接到前台
在这里插入图片描述

metapreter常用命令

命令解释
help打开帮助
run <脚本名称>运行meterpreter脚本,在scripts/meterpreter目录可查看到的所有脚本名称
sysinfo列出受控主机的系统信息
ls列出目标主机的文件和文件夹信息
use priv加载权限提示控制模块,来扩展meterpreter
ps显示所有运行进程及其关联的用户账户
migrate PID迁移到指定的进程ID
use incognito加载inconito功能(用来盗窃目标主机的令牌或者冒充用户)
list_tokens -u列出目标主机用户组的可用令牌
impersonate_token DOMAIN_NAME\USERNAME假冒目标主机上的可用令牌
steal_token盗窃给定进程的可用令牌并进行令牌假冒
drop_token停止假冒当前的令牌
getsystem提供各种攻击向量来提示到系统用户权限
shell以所有可用令牌来运行一个交互的shell
execut -f com.exe -i执行cmd.exe命令交互
execut -f com.exe -i -t以所有可用令牌来执行cmd命令
execute -f cmd.exe -i -H -t以所有可用令牌来执行cmd命令并隐藏该进程
rev2self回到控制目标主机的初始用户账户下
reg command在目标主机注册表中进行交互,创建,删除和查询等操作
setdesktop number切换到另一个用户界面(该功能基于那些用户已经登录)
screenshot对目标主机进行截屏
upload file向目标主机上传文件
download file从目标主机上下载文件
keyscan_dump储存目标主机上的键盘记录
getprivs尽可能的获取到目标主机上的更多权限
uietl enable keyboard/mouse接管目标主机的键盘和鼠标
background将当前会话放入后台运行
use sniffer加入嗅探模块
sniffer_interface列出目标主机上的所有开放网络接口
sniffer_stats interfaceID pcapname在目标主机上启动嗅探
sniffer_start interfaceID packet_buffer在目标主机上针对特定范围的数据包缓冲区启动嗅探
sniffer_stats interfaceID获取正在实施嗅探网络接口的统计数据
sniffer_stop interfaceID停止嗅探
add_user username password -h ip在远程目标主机上添加一个用户
add_group_user “Domain Adimins”username -h ip将用户添加到目标主机的域管理员组中
clearev清除目标主机上的日志记录
timestomp修改文件属性,例如修改文件的创建时间(反取证调差)
reboot重启目标主机

sysinfo 列出当前被控制的主机的系统信息
在这里插入图片描述
ls 列出目标主机文件和文件夹
在这里插入图片描述
ps 显示所有运行进程及其关联的用户账户
在这里插入图片描述
use incognito 加载inconito功能(用来盗窃目标主机的令牌或者冒充用户)
在这里插入图片描述
screenshot 截取目标主机的屏幕
在这里插入图片描述
shell 获取一个交互shell

四. MSF 常用模块

  1. Exploits (渗透模块): 这是一段程序,运行时会利用目标的安全漏洞进行攻击
  2. Payloads (攻击荷载模块):在成功对目标完成一次渗透之后,这段程序开始在目标计算机上运行,它能帮助我们在目标系统上获取需要的访问和权限,创建后面和维护访问等。
  3. Auxiliary (辅助模块):包含了一系列的辅助支持模块,包括扫描,fuzz(模块模糊)测试,漏洞发掘,检测模块,网络协议欺骗等模块。辅助是使Metasploit 更加灵活。
  4. Encoder (编码器模块):编码器模块通常用来对于攻击模块进行代码混淆,来逃过目标安全保护机制的检测。
  5. Meterpreter (内存攻击载荷):是一种使用内存技术的攻击载荷,可以注入到程序之中,提供各种可以在目标上执行的功能,如开启摄像头,停用键盘等。
  6. Post (后渗透模块):前提是已经拿到了目标系统的基本访问权限,可以使用post模块对系统进行进一步的渗透
  7. nop 模块 :在汇编语音种,nop是指无操作指令,nop在编写exploit或shellcode时有时是有用的。添加nop可以显著帮助修改payload特征,从而绕过安全检测。

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

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

相关文章

GO学习记录

一、Go语言的源文件的拓展是.go 开发环境和工具&#xff1a;GOLAND 个人版开发&#xff1a; 企业版开发&#xff1a; 二、Go语言结构 1、package main 定义一个名为main的包名 2、import "fmt" 添加fmt包 3、func main() 是程序开始执行的函数 4、定义变量&a…

《对话品牌》——活到老“养”到老

本期节目《对话品牌》栏目组邀请到了深圳壹常青健康管理有限公司董事长邬锡娣女士参加栏目录制&#xff0c;分享其企业故事&#xff0c;树立品牌形象&#xff0c;提升品牌价值&#xff01; 节目嘉宾&#xff1a;邬锡娣女士 节目主持人&#xff1a;董倩 节目播出平台&#xf…

【K8S 二进制部署】部署单Master Kurbernetes集群

目录 一、基本架构和系统初始化 1、集群架构&#xff1a; 2、操作系统初始化配置&#xff1a; 2.1、关闭防火墙和安全机制&#xff1a; 2.2、关闭swap 2.3、根据规划设置主机名 2.4、三台主机全部互相映射 2.5、调整内核参数 3、时间同步&#xff08;所有节点时间必须同…

iframe展示pdf、png、jpg

iframe展示pdf、png、jpg&#xff1a; 1、前端定义div&#xff1a; <div id"pdf-container"></div>/*dpf的div*/ <iframe id"imageFrame"></iframe>/*图片的div*/2、后端查询base64的流&#xff0c;前端页面初始化js方法&#x…

upset 绘制

好久没有更新,今天来一个upset图的绘制 1.1 安装包 #绘制upset的包现在看来有三个 ## UpSet ### 最基本的upsetR包,使用方便,但是扩展不方便 devtools::install_github("hms-dbmi/UpSetR") ## complex-upset ### UpSet的升级款 支持ggplot2 devtools::install_git…

什么是服务器迁移?

服务器迁移一般来说是将物理服务器从一个地点&#xff08;物理机房&#xff09;移动到另一个地点&#xff0c;或将数据从一台服务器移动到另一台服务器的过程。 机房搬迁&#xff1a;当公司办公场所发生变化&#xff0c;原有机房无法继续使用时&#xff0c;需要将服务器迁移到…

计算机报错x3daudio1_7.dll怎么修复,其实很简单

游戏已经成为了人们休闲娱乐的重要方式之一。然而&#xff0c;有时候我们在玩游戏的过程中会遇到一些错误提示&#xff0c;比如“玩游戏报错x3daudio1_7.dll怎么办”。这个问题可能会导致游戏无法正常运行等问题。x3daudio1_7.dll是DirectX Audio API的一部分&#xff0c;它是D…

腾讯云跨云迁移工具案例实践:阿里云迁移到腾讯云

对于阿里云批量迁移到腾讯云&#xff0c;HyperMotion可以支持批量一键式安装Agent软件&#xff0c;做到了操作步骤简单化、自动化&#xff0c;可以满足常见源端操作系统类型。 例如&#xff1a;Windows 2003-2019&#xff0c;CentOS、RedHat 6.x-7.x、Ubuntu 14.x - 16.x、SUS…

为什么TCP会粘包

硬核图解|tcp为什么会粘包&#xff1f;背后的原因让人暖心 数据包报文格式&#xff08;IP包、TCP报头、UDP报头&#xff09; TCP&#xff0c;Transmission Control Protocol。传输控制协议&#xff0c;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP粘包是指发…

【五】【C语言\动态规划】删除并获得点数、粉刷房子、买卖股票的最佳时机含冷冻期,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

fork函数详解【Linux】

fork函数详解【Linux】 fork函数的概念fork调用后的底层细节解释fork学习中的一些笔记和问题fork的写实拷贝深拷贝的策略 fork调用失败的原因 fork函数的概念 调用fork函数可以在已存在的进程中创建一个子进程&#xff0c;此时&#xff0c;新进程叫做子进程&#xff0c;原进程叫…

k8s二进制部署--部署高可用

连接上文 notready是因为没有网络&#xff0c;因此无法创建pod k8s的CNI网络插件模式 1.pod内部&#xff0c;容器与容器之间的通信。 在同一个pod中的容器共享资源和网络&#xff0c;使用同一个网络命名空间。 2.同一个node节点之内&#xff0c;不同pod之间的通信。 每个pod都…

element ui Checkbox 多选框组件 lable不支持Object类型的值的问题

浅浅记录一下&#xff0c;遇到这个问题的心理路程吧&#xff0c;首先我遇到的问题是多选框的值回显不打对勾&#xff0c;&#xff08;例如&#xff1a;你新增的时候多选&#xff0c;然后点击编辑的时候选过的值没有被勾选&#xff0c;其实是被勾选上了&#xff0c;但是没有显示…

Linux操作系统——进程(六) 进程地址空间

进程地址空间 C/C程序员一般将我们所写的程序看成如下这种结构&#xff1a; 我们所写的程序通过编译编译之后就可以以这样的方式进行分布. 我们先通过编写一段C语言代码来进行验证&#xff1a; 运行结果&#xff1a; 我们可以看出来上述地址遵循的就是我们上面画的一种结构。…

【附视频解析】Jmeter接口之间关联调用(获取上一个接口的返回值作为下一个接口的请求参数)

正则表达式&#xff1a; 具体如何操作&#xff1a; 1. 草稿保存&#xff0c; 此请求的响应数据的id 为发布总结的请求参数draft_id 2. 草稿保存的响应数据 3.在草稿保存的请求中&#xff0c;添加后置处理器- 正则表达式提取器&#xff0c; 提取响应数据的id信息 4. 发布总结请…

Java 缓存中间件

Java 缓存中间件 关键词&#xff1a;Spring Cache、J2Cache、JetCache 一 、JSR 107 JSR107 中制订了 Java 缓存的规范。 因此&#xff0c;在很多缓存框架、缓存库中&#xff0c;其 API 都参考了 JSR 107 规范。 img Java Caching 定义了 5 个核心接口 CachingProvider - 定义…

私有部署ELK,搭建自己的日志中心(三)-- Logstash的安装与使用

一、部署ELK 上文把采集端filebeat如何使用介绍完&#xff0c;现在随着数据的链路&#xff0c;继续~~ 同样&#xff0c;使用docker-compose部署&#xff1a; version: "3" services:elasticsearch:container_name: elasticsearchimage: elastic/elasticsearch:7.9…

Kafka学习笔记1(千峰教育)

Kafka学习笔记1&#xff08;千峰教育&#xff09; 一、为什么使用消息队列1.使用同步的通信方式来解决多个服务之间的通信2.使用异步的通信方式 二、消息队列的流派1.有broker2.无broker 三、Kafka的基本知识1.Kafk2a的安装2.Kafka中的一些基本概念3.创建topic4.发送消息5.消费…

sonarqube安装踩坑记录

如果用java1.8和mysql&#xff0c;则sonarqube版本不能超过7.8&#xff0c;看这里。 sonarqube7.8安装包地址&#xff1a; https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip 安装步骤&#xff1a; 1、下载sonarqube安装包 wget https://binari…

【PowerMockito:编写单元测试过程中采用when打桩失效的问题】

问题描述 正如上图所示&#xff0c;采用when打桩了&#xff0c;但是&#xff0c;实际执行的时候还是返回null。 解决方案 打桩时直接用any() 但是这样可能出现一个mybatisplus的异常&#xff0c;所以在测试类中需要加入以下代码片段&#xff1a; Beforepublic void setUp() …