Metasploit工具使用基础使用

admin 2025年6月3日09:17:26评论27 views字数 4238阅读14分7秒阅读模式
Metasploit工具使用基础使用
一、Metasploit框架结构
框架目录路径:/usr/share/metasploit-framework
🎨

┌──(root㉿kali)-[~]
└─# cd /usr/share/metasploit-framework                                                                                                                                                                                                        
┌──(root㉿kali)-[/usr/share/metasploit-framework]
└─# ls
app     data  docs           Gemfile       lib                           modules     msfd   msf-json-rpc.ru  msfrpcd    msfvenom   plugins   ruby            script-password  scripts  vendor
config  db    documentation  Gemfile.lock  metasploit-framework.gemspec  msfconsole  msfdb  msfrpc           msfupdate  msf-ws.ru  Rakefile  script-exploit  script-recon     tools

框架内容
data目录文件
data目录文件中,包含meterpreter、exploits、wordlists、templates等等。
meterpreter这个模块,这个通常用于后渗透利用的功能当中。
wordlists目录,这里面包含了大量的字典。
Metasploit工具使用基础使用
exploits目录,里面包含大量的CVE漏洞利用代码
Metasploit工具使用基础使用
modules目录文件
modules这个目录,这个目录当中包含以下模块:auxiliary、encoders、exploits、nops、payloads、post。
  exploits(漏洞攻击模块列表)
Metasploit工具使用基础使用
auxiliary(漏洞辅助模块,一般是没有攻击载荷的漏洞攻击)
Metasploit工具使用基础使用
encoders(编码器模块)
Metasploit工具使用基础使用
nops(无操作生成器模块)
Metasploit工具使用基础使用
payloads(漏洞负载模块)
Metasploit工具使用基础使用
post(开发模块)
Metasploit工具使用基础使用
scripts目录文件
scripts目录,该目录下面存放的是各种脚本文件,分别是meterpreter、resource、shell。
Metasploit工具使用基础使用
tools目录文件
tools目录,该目录下面存放着大量的使用工具。
Metasploit工具使用基础使用
plugins目录文件
plugins,该目录下面包含着大量的插件
Metasploit工具使用基础使用
Metasploit更新
🎹

msfconsole -v   #查看版本
apt-get update
apt-get install metasploit-framework

二、MSF中数据库设置
Metasploit支持使用postgresql数据库来保存渗透测试过程中获取的各种数据。
数据库设置
👍

开启数据库:service postgresql start
初始化数据库: msfdb init

Metasploit工具使用基础使用
若你已经配置执行此命令就会提示“A database appears to be already configured, skipping
initialization(数据库似乎已经配置,跳过初始化)”;
数据库测试
当初始化成功后,就可以对数据库进行测试了
Metasploit工具使用基础使用
若没有连接可以手工连接。
💡

命令:db_connect 用户名:口令@服务器地址:端口/数据库名称。

数据库管理命令
命令
解释
msfdb init
启动并初始化数据库
msfdb init
删除并重新初始化数据库
msfdb delete
删除并停止使用数据库
msfdb start 
启动数据库
msfdb start 
停止数据库
msfdb status
检查服务状态
msfdb run
启动数据库并运行msfconsole
三、Metasploit命令介绍
Metasploit启动
Metasploit工具使用基础使用
Msfconsole用处
msfconsole主要是用于管理 Metasploit数据库、管理会话、配置启动 Metasploit模块。并且在启动 msfconsole 时,MSF会使用创建的 msf 用户自动登录到 msf 数据库。
Msfconsole常用命令汇总
命令
解释
show exploits
查看所有可用的渗透攻击程序代码
show auxiliary
查看所有可用的辅助攻击工具
[show ]options/advanced
查看该模块可用选项
show payloads
查看该模块适用的所有载荷代码
show targets
查看该模块适用的攻击目标类型
search
根据关键字搜索某模块
info
显示某模块的详细信息
use
使用某渗透攻击模块
back
回退
set/unset
设置/禁用模块中的某个参数
setg/unsetg
设置/禁用适用于所有模块的全局参数
run/exploit
执行脚本
run-j/exploit-j
再次执行脚本
help
帮助命令
命令详细用法
show exploits
show exploits,查看所有可用的渗透攻击程序代码,
Metasploit工具使用基础使用
show auxiliary
show auxiliary,查看所有可用的辅助攻击工具,
Metasploit工具使用基础使用
[show]options/advanced
[show]options/advanced,查看该模块可用选项,前提条件就是需要进入某个模块下。在界面中凡是yes的都是必填项,no是可选择项。
Metasploit工具使用基础使用
show payloads
Show payloads查看该模块适用的所有载荷代码,也需要进入某一个模块中
Metasploit工具使用基础使用
show targets
show targets,查看该模块适用的攻击目标类型,这里简单来说就是系统或者框架等等,例如ms17永恒之蓝能攻击哪些系统。
Metasploit工具使用基础使用
search
search,根据关键字搜索某模块,这里只需要输入相关的关键字即可进行查找,可以精确查找也可以模糊查找。例如我要查找永恒之蓝,那么我输入:search ms17即可查找到相关的攻击模块和利用模块。
Metasploit工具使用基础使用
info
info,显示某模块的详细信息,这里也是和选择一样,都可以使用编号或者整个名字。例如我要查看exploit/windows/smb/ms17_010_eternalblue的信息,那么info 0或者exploit/windows/smb/ms17_010_eternalblue都可以。
Metasploit工具使用基础使用
use
use,使用某渗透攻击模块。这里在查找到的模块下,可以看到有编号开头以及后面的名称,所以这里可以选择use 编号对应的攻击模块或者利用模块,也可以把整个后面的名字都输入进去,都可以。
Metasploit工具使用基础使用
back
back,回退,应该都能理解。
Metasploit工具使用基础使用
set/unset
set/unset – 设置/禁用模块中的某个参数。比如这里需要设置受害者IP,那么set RHOSTS IP地址。这里的RHOSTS是不分大小写的。配置成功后可以再次使用show options使用。
Metasploit工具使用基础使用
setg/unsetg
setg/unsetg,设置/禁用适用于所有模块的全局参数,其实这里set和setg都差不多。
run/exploit
run/explot,执行漏洞脚本,简单来说就是当选中某一个攻击模块的时候,进行执行。
Msfconsole其它命令汇总
命令
解释
帮助菜单
banner
显示 Metasploit banner信息
cd
更改当前工作目录
debug
显示对调试有用的信息
exit/quit
退出控制台
history
显示命令历史记录
load
加载框架插件
version
显示框架和控制台库版本号
四、MSF模块介绍
auxiliary
辅助模块 辅助渗透(端口扫描、登录密码爆破、漏洞验证等)用于辅助操作的模块,例如网络扫描、枚举、漏洞扫描、登录暴力破解、模糊测试、 蜘蛛(遍历)、数据提取等。
exploits
漏洞利用模块 包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。 命名规则:操作系统/各种应用协议分类。
用于利用漏洞和传递有效负载的模块。有远程漏洞利用、本地漏洞利用、权限提升漏 洞利用、客户端漏洞利用、Web 应用程序漏洞利用和许多其他漏洞。
利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对目标系统访问控制权的代码组件。metasploit框架中渗透攻击模块可以按照所利用的安全漏洞所在的位置分为主动渗透攻击与被动渗透攻击两大类。
payloads
攻击载荷 主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码、 用于在利用期间执行操作的模块,例如建立Meterpreter 会话、反向 shell、执行命令、下载和执行程序等。攻击载荷是在渗透攻击成功后在目标系统运行的一段植入代码,通常是为渗透攻击者打开在目标系统上的控制会话连接。在传统的渗透代码开发中,攻击载荷只是一段功能简单的ShellCode代码,以汇编语言编制并转换为目标系统CPU体系结构支持的机 器代码,在渗透攻击触发漏洞后,将程序执行流程劫持并跳转入这段机器代码中执 行,从而完成ShellCode中实现的单一功能。
post
后渗透阶段模块 漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等用于在拿到权限后进行后渗透利用操作的模块,例如凭证/哈希转储、本地权限提升、后门安装、敏感数据提取、网络流量隧道(代理)、键盘记录、屏幕捕获和许多 其他操作。
encoders
编码器模块 主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统 用于有效负载编码和加密的模块,例如 base64、XOR、shikata_ga_nai 等。这有助于混淆以规避防病毒或NIDS(网络入侵检测系统)、EDR(端点检测和响应)等防御。
evasion
躲避模块 用来生成免杀payload 用于规避防御的模块,例如防病毒规避、AppLocker 绕过、软件限制策略(SRP) 绕过等。
nops
空指令模块 空指令就是空操作,提高paylaod稳定性及维持,用于生成无害、良性的“无操作”指令的模块,例如用于填充目的、在利用期间在内存 中滑动等。
是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令。
在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行Shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的 Shellcode执行失败,从而提高渗透攻击的可靠性。
 metasploit框架中的空指令模块就是用来在攻击载荷中添加空指令区,以提高攻击可 靠性的组件。

原文始发于微信公众号(运维星火燎原):Metasploit工具使用基础使用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月3日09:17:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Metasploit工具使用基础使用https://cn-sec.com/archives/4125312.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息