Metasploit框架介绍与基本命令

一、Metasploit框架介绍

        Metasploit(MSF)是一个免费的、开源的可下载的框架,旨在方便渗透测试,它是由Ruby程序语言编写的模板框架,具有很好的扩展性,便于渗透测试人员开发、使用和定制工具模板。在授权的情况下,我们能够通过它发现漏洞并进行快速实时攻击。

        Metasploit设计尽可能采用模块化的理念;在基础库的基础上,提供了一些核心框架功能的的支持;实现渗透测试的功能的主体代码则以模块化方式组织,并按照不同用途分为6种类型模块;为了扩充metasploit框架对渗透测试全过程的支持功能特性,metasploit还引入了插件机制,支持将外部的安全工具集成到框架中;metasploit框架对集成模块与插件的渗透测试功能,通过用户接口与功能程序提供给渗透测试者进行使用。

我们能够通过它发现漏洞并进行快捷实施攻击,当然需要在授权的情况下。

二、Metasploit模块介绍

综合渗透测试框架

1、辅助模块

        在渗透信息搜集环节提供了大量的辅助模块支持,包括针对各种网络服务的扫描与查点、构建虚假服务收集登录密码、口令猜测等模块。此外,辅助模块中还包括一些无须加载攻击载荷,同时往往不是取得目标系统远程控制权的渗透攻击,例如:拒绝服务攻击。

2、攻击模块

        利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对目标系统访问控制权的代码组件。metasploit框架中渗透攻击模块可以按照所利用的安全漏洞所在的位置分为主动渗透攻击与被动渗透攻击两大类。

        主动渗透攻击:所利用的安全漏洞位于网络服务端软件与服务端软件承载的上层应用程序之中,由于这些服务通常是在主机上开启一些监听端口并等待客户端连接,通过连接目标系统网络服务,注入一些特殊构造的包含“邪恶”攻击数据的网络请求内容,触发安全漏洞,并使得远程服务进行执行“邪恶”数据中包含的攻击载荷,从而获取目标系统的控制会话。针对网络服务端的主动渗透攻击属于传统的渗透攻击。还有web应用程序渗透攻击、SCADA工业控制系统服务渗透攻击。 

        被动渗透攻击:利用漏洞位于客户端软件中,如浏览器、浏览插件、电子邮件客户端、office与Adobe等各种文档与编辑软件。对于这类存在于客户端软件的安全漏洞,我们无法主动地将数据从远程输入到客户端软件中,因此只能采用被动渗透攻击方式。即构造出“邪恶”的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务端、发送邮件附件、结合社会工程学攻击分发并诱骗目标用户打开、结合网络欺骗和劫持技术,等目标系统上的用户访问到这些邪恶内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的shell会话。客户端软件被动渗透攻击能够绕过防火墙等网络边界防护措施,最常见的两类被动渗透攻击为浏览器软件漏洞攻击和文件格式类漏洞攻击。

3、攻击载荷模块

        攻击载荷是在渗透攻击成功后促使目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。在传统的渗透代码开发中,攻击载荷只是一段功能简单的ShellCode代码,以汇编语言编制并转换为目标系统CPU体系结构支持的机器代码,在渗透攻击触发漏洞后,将程序执行流程劫持并跳转入这段机器代码中执行,从而完成ShellCode中实现的单一功能。

        独立攻击载荷是完全自包含的,可直接独立地植入目标系统进行执行,比如“windows/shell_bind_tcp"是适用于Windows操作系统平台,能够将Shell控制会话绑定在指定TCP端口上的攻击载荷。在一些比较特殊情况下,可能会对攻击载荷的大小、运行条件有所限制,比如特定安全漏洞利用时可填充邪恶攻击缓冲区的可用空间很小、windows 7等新型操作系统所引入的NX(堆栈不可执行)、DEP(数据执行保护)等安全防御机制,在这些场景情况下,Metasploit提供了传输器和传输体配对分阶段植入的技术,由渗透攻击模块首先植入代码精悍短小且非常可靠的传输器载荷,然后在运行传输器载荷时进一步下载传输体载荷并执行。 

4、后渗透攻击模块

        主要支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各种各样的后渗透攻击动作,比如获取敏感信息,进一步括展,实施跳板攻击等。

5、编码模块

        攻击载荷与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入邪恶数据缓冲区交由目标系统运行之前,Metasploit框架还需要完成一道非常重要的工序----编码。 

        编码模块的第一个使命是确保攻击载荷中不会出现渗透攻击过程中应加以避免的”坏字符“。

        编码器第二个使命是对攻击载荷进行”免杀“处理,即逃避反病毒软件、IDS入侵检测系统和IPS入侵防御系统的检测与阻断。 

MSF所用功能可分为这几个模块,每个模块都有各自的功能领域,形成了渗透测试的流程

三、MSF—基础指令

1、msf > help

cd                       更改当前的工作目录

sessions            转储会话列表并显示有关会话的信息

color                          切换颜色

set                      将特定于上下文的变量设置为一个值

connect            连接与主机通信

Setg                   将全局变量设置为一个值

exit                    退出控制台

sleep                           在指定的秒数内不做任何事情

get                      获取特定于上下文的变量的值

spool                          将控制台输出写入文件以及屏幕

getg                   获取全局变量的值

threads             线程查看和操作后台线程

grep grep        另一个命令的输出

unload              卸载框架插件

history             显示命令历史

unset                 取消设置一个或多个特定于上下文的变量

irb                       进入irb脚本模式

unsetg               取消设置一个或多个全局变量

load                   加载一个框架插件

version              显示框架和控制台库版本号

quit                            退出控制台

route                          通过会话路由流量

save                   保存活动的数据存储

2、数据库后端命令

db_connect                     连接到现有的数据库

db_disconnect                断开与当前数据库实例的连接

db_export                        导出包含数据库内容的文件

db_import                         导入扫描结果文件(文件类型将被自动检测)

db_nmap                           执行nmap并自动记录输出

db_rebuild_cache                   重建数据库存储的模块高速缓存

db_status                                    显示当前的数据库状态

hosts                                            列出数据库中的所有主机

loot                                      列出数据库中的所有战利品

notes                                   列出数据库中的所有笔记

services                              列出数据库中的所有服务

vulns                                  列出数据库中的所有漏洞

workspace                                  在数据库工作区之间切换

3、模块命令

advanced                          显示一个或多个模块的高级选项

back                           从当前上下文返回

edit                             使用首选编辑器编辑当前模块

info                                    显示有关一个或多个模块的信息

loadpath                   路径从路径搜索并加载模块

options                      显示全局选项或一个或多个模块

popm                         将最新的模块从堆栈中弹出并使其处于活动状态

previous                            将之前加载的模块设置为当前模块

pushm                      将活动或模块列表推入模块堆栈

reload_all                           从所有定义的模块路径重新加载所有模块

search                       搜索模块名称和描述

show                                   显示给定类型的模块或所有模块

use                              按名称选择模块

4、工作命令

handler                      作为作业启动负载处理程序

jobs                            显示和管理作业

kill                               杀死一个工作

rename_job            重命名作业

5、查找metasploit框架中的所有渗透攻击模块

search[模块名]

search ms17-010

6、选择并加载模块

use exploit/windows/smb/ms17_010_netapi 

7、设置攻击载荷

set payload windows/meterpreter/bind_tcp

永恒之蓝漏洞复现:https://blog.csdn.net/qq_44159028/article/details/104044002 

永恒之黑漏洞复现:https://blog.csdn.net/PigLL/article/details/108012981

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值