🎨
└─# cd /usr/share/metasploit-framework
┌──(root㉿kali)-[/usr/share/metasploit-framework]
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目录文件中,包含meterpreter、exploits、wordlists、templates等等。
meterpreter这个模块,这个通常用于后渗透利用的功能当中。
exploits目录,里面包含大量的CVE漏洞利用代码
modules这个目录,这个目录当中包含以下模块:auxiliary、encoders、exploits、nops、payloads、post。
auxiliary(漏洞辅助模块,一般是没有攻击载荷的漏洞攻击)
scripts目录,该目录下面存放的是各种脚本文件,分别是meterpreter、resource、shell。
🎹
apt-get install metasploit-framework
Metasploit支持使用postgresql数据库来保存渗透测试过程中获取的各种数据。
👍
开启数据库:service postgresql start
若你已经配置执行此命令就会提示“A database appears to be already configured, skipping
initialization(数据库似乎已经配置,跳过初始化)”;
💡
命令:db_connect 用户名:口令@服务器地址:端口/数据库名称。
msfconsole主要是用于管理 Metasploit数据库、管理会话、配置启动 Metasploit模块。并且在启动 msfconsole 时,MSF会使用创建的 msf 用户自动登录到 msf 数据库。
show exploits,查看所有可用的渗透攻击程序代码,
show auxiliary,查看所有可用的辅助攻击工具,
[show]options/advanced,查看该模块可用选项,前提条件就是需要进入某个模块下。在界面中凡是yes的都是必填项,no是可选择项。
Show payloads查看该模块适用的所有载荷代码,也需要进入某一个模块中
show targets,查看该模块适用的攻击目标类型,这里简单来说就是系统或者框架等等,例如ms17永恒之蓝能攻击哪些系统。
search,根据关键字搜索某模块,这里只需要输入相关的关键字即可进行查找,可以精确查找也可以模糊查找。例如我要查找永恒之蓝,那么我输入:search ms17即可查找到相关的攻击模块和利用模块。
info,显示某模块的详细信息,这里也是和选择一样,都可以使用编号或者整个名字。例如我要查看exploit/windows/smb/ms17_010_eternalblue的信息,那么info 0或者exploit/windows/smb/ms17_010_eternalblue都可以。
use,使用某渗透攻击模块。这里在查找到的模块下,可以看到有编号开头以及后面的名称,所以这里可以选择use 编号对应的攻击模块或者利用模块,也可以把整个后面的名字都输入进去,都可以。
set/unset – 设置/禁用模块中的某个参数。比如这里需要设置受害者IP,那么set RHOSTS IP地址。这里的RHOSTS是不分大小写的。配置成功后可以再次使用show options使用。
setg/unsetg,设置/禁用适用于所有模块的全局参数,其实这里set和setg都差不多。
run/explot,执行漏洞脚本,简单来说就是当选中某一个攻击模块的时候,进行执行。
辅助模块 辅助渗透(端口扫描、登录密码爆破、漏洞验证等)用于辅助操作的模块,例如网络扫描、枚举、漏洞扫描、登录暴力破解、模糊测试、 蜘蛛(遍历)、数据提取等。
漏洞利用模块 包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。 命名规则:操作系统/各种应用协议分类。
用于利用漏洞和传递有效负载的模块。有远程漏洞利用、本地漏洞利用、权限提升漏 洞利用、客户端漏洞利用、Web 应用程序漏洞利用和许多其他漏洞。
利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对目标系统访问控制权的代码组件。metasploit框架中渗透攻击模块可以按照所利用的安全漏洞所在的位置分为主动渗透攻击与被动渗透攻击两大类。
攻击载荷 主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码、 用于在利用期间执行操作的模块,例如建立Meterpreter 会话、反向 shell、执行命令、下载和执行程序等。攻击载荷是在渗透攻击成功后在目标系统运行的一段植入代码,通常是为渗透攻击者打开在目标系统上的控制会话连接。在传统的渗透代码开发中,攻击载荷只是一段功能简单的ShellCode代码,以汇编语言编制并转换为目标系统CPU体系结构支持的机 器代码,在渗透攻击触发漏洞后,将程序执行流程劫持并跳转入这段机器代码中执 行,从而完成ShellCode中实现的单一功能。
后渗透阶段模块 漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等用于在拿到权限后进行后渗透利用操作的模块,例如凭证/哈希转储、本地权限提升、后门安装、敏感数据提取、网络流量隧道(代理)、键盘记录、屏幕捕获和许多 其他操作。
编码器模块 主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统 用于有效负载编码和加密的模块,例如 base64、XOR、shikata_ga_nai 等。这有助于混淆以规避防病毒或NIDS(网络入侵检测系统)、EDR(端点检测和响应)等防御。
躲避模块 用来生成免杀payload 用于规避防御的模块,例如防病毒规避、AppLocker 绕过、软件限制策略(SRP) 绕过等。
空指令模块 空指令就是空操作,提高paylaod稳定性及维持,用于生成无害、良性的“无操作”指令的模块,例如用于填充目的、在利用期间在内存 中滑动等。
是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令。
在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行Shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的 Shellcode执行失败,从而提高渗透攻击的可靠性。
metasploit框架中的空指令模块就是用来在攻击载荷中添加空指令区,以提高攻击可 靠性的组件。
原文始发于微信公众号(运维星火燎原):Metasploit工具使用基础使用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/4125312.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论