Metasploit渗透测试框架的基本使用

本节所讲内容

    1、 Metasploit渗透测试框架介绍

    2、 Metasploit基本使用方法

    3、 实战-使用msf渗透攻击Win7主机并远程执行命令

    4、 Metasploitable2-Linux靶机系统介绍

Metasploit渗透测试框架介绍

    1、 Metasploit简介

           Metasploit 是一个渗透测试平台,使您能够查找,利用和验证漏洞。该平台包括Metasploit框架及其商业对手,如Metasploit Pro。

              Metasploit是一个免费的、可下载的框架,通过它可以很容易对计算机软件漏洞实施攻

击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发Metasploit

时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以

使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已

公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所

有Metasploit 用户

           Metasploit的设计初衷是打造成一个攻击工具开发平台.    

           访问官网: https://www.metasploit.com/  

       我们常用的版本为Framework因为该版本为开源版本,拥有的功能满足于我们的开发和学习,

商业版本是可以免费体验14天,同学们学习的差不多了以后可以再去体验商业版本。主要是体验商

业版的报告功能,和WEB界面。

       1、基础库: metasploit基础库文件位于源码根目录路径下的libraries目录中,包括

Rex,framework-core和framework-base三部分。

        Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服

务端实现、日志子系统、渗透攻击支持例程、PostgreSQL 以及 MySQL数据库支持等;

        framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;

        framework-base 库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方

面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;

       2、模块:模块组织按照不同的用途分为6种类型的模块(Modules):

            分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块

(payloads)、编码器模块(Encoders)、空指令模块(Nops)。

           注: payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等

       3、插件:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现

有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。

       4、接口∶包括msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面

以及msfapi远程调用接口。

       5、功能程序: metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员

快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和

msfvenom可以将攻击载荷封装为可执行文件、C语言、JavaScript语言等多种形式,并可以进行各

种类型的编码。

Metasploit目录结构

┌──(root㉿root)-[~/桌面]
└─# cd /usr/share/metasploit-framework

      data: Metasploit    使用的可编辑文件

      documentation:     为框架提供文档

      lib:     框架代码库

      modules:   实际的MSF模块

      plugins:  可以在运行时加载的插件

      scripts: Meterpreter  和其他脚本

      tools:  各种有用的命令行工具


 

 Metasploit基本使用方法

       Metasploit基本命令

       Metasploit程序需要使用Postgresql数据库。

        Postgresql概述:

        PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以

加州大学计算机系开发的POSTGRES 4.2版本为基础的对象关系型数据库管理系统。

       官网地址  PostgreSQL: The world's most advanced open source database

     

         注:        PostgreSQL:世界上最先进的开源关系数据库

         扩展:    PostgreSQL和 MySQL数据的应用场景区别:

        从应用场景来说,PostgreSQL更加适合严格的企业应用场景(比如金融、电信、ERP、

CRM),而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景

     kali启动postgresql数据库

    ┌──(root㉿root)-[~/桌面]
└─# systemctl start postgresql

    设置开机自启动

┌──(root㉿root)-[~/桌面]
└─# systemctl enable postgresql

 启动metasploit    或者终端输入  msfconsole

 

   注:  通过help查看帮助,可以对msf有个整体认识,可以看到msf相关命令可以分成以下型:

           Core Commands   #核心命令

           Module Commands   #模块命令

           Job Commands   #后台任务命令

           Resource Script Commands  #资源脚本命令

           Database Backend Commands   #数据库后端命令

           Credentials Backend Commands  #证书/凭证后端命令

           Developer Commands #开发人员命令

           我们下面讲解一下我们常用的命令。

                1、核心命令中的connect命令

                 connect命令主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是

        “connect 192.168.1.1 80"”

                  查看connect 命令参数:

    连接目标80端口

         

 2、模块相关的命令show使用方法show命令用的很多。

        "show”命令的有效参数是: all, encoders, nops, exploits,payloads, auxiliary, post,plugins, info, optionse

          操作步骤      show exploits        #列出metasploit框架中的所有渗透攻击模块。

      msf5 > show payloads       #列出metasploit框架中的所有攻击载荷。

      msf5 > show auxiliary        #列出metasploit框架中的所有辅助攻击载荷。

3、模块相关的命令search搜索的使用方法

           当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search搜索命令

就很重要。

          当 你输入search -h   会列出search命令的一些选项。

 例1:  通过name关键字进行查找(这里需要用到name:命令。

          msf5 > search mysql     # search 后直接跟要查找内容,查得很广泛。只有当你对漏洞名字

很描述很清楚时,使用这个方法

         例:   先查找出自己想要的ms08_067漏洞模块。

         语法:  search keywords 参数:关键字

         例如    search name:mysql      #查找mysql数据库的漏洞

 每列的含意是:

    Name                   Disclosure Date                   Rank                             Check Descriptione

     名称                       披露日期                              排名                                   检查说明

      Disclosure      [dis'klouzo(r)]       揭露;透露;公开;               rank [rek]等级,rank通常用来描

述漏洞级别


        每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个Rank字段。用户可以基

于Rank对漏洞利用模块进行搜索,分类以及排序。

Rank按照可靠性降序排列:

        excellent  漏洞利用程序绝对不会使目标服务崩溃,就像SQL注入、命令执行、远程文件包

含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。

        great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目

标服务的版本检查之后可以返回到一个特定的返回地址。

        good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的“常见情况”(桌面应用程序

的Windows 7,服务器的2012等)

        normal 该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检

测。

        eaverage   该漏洞利用程序不可靠或者难以利用。

        low 对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于50%的利用成功率)

        manual  该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在

用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。

例2:通过路径进行查找

        有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用path:命令查找在

该路径下的所有模块。如果我要mysql路径下的所有mysql利用模块,那么就输入:

     

 例3:缩小查询范围

         关键字:platform

         作用: Modules affecting this platform   即:列出可以影响此平台的模块,也就是比较好的漏洞

         有时候我们会搜索到大量的模块,那么可以用platform:命令来缩小查询范围。使用platform命

后,所杳询的结里会列出rank 较高的模块。如里我要杳找mvsql的漏洞.那就输入·

 例4:通过类型进行查找这里要使用到 type:命令。

     type:特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)要搜索exploit

模块,那么就输入:

     msf5 > search type:exploit

例5:联合查找

      大家可以使用上面的参数自行搭配使用。如果我要查找mysql的exploit相关漏洞。那么输入

         msf5 > search name:mysql type:exploit

例6:根据CVE搜索exploit相关模块

     CVE概述:CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露

        CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公

共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中

共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果

在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据

库中找到相应修补的信息解决安全问题。

        2017年GitHub上公开了CVE-2017-8464漏洞的metasploit-framework利用模块。利用此模块

在Windows 10 x64 (Build 14393)版本上测试有效。

       现在此模块已经加入metasploit中了。

       通过执行cve_2017_8464_Ink_rce.rb模块,将生成大量的.Ink文件(对应盘符从D到Z)和要加载

的.dll 文件(后门文件)。将所有样本文件拷到U盘里,然后将U盘插到Windows7机器上,默认自动

执行:

       从而可以让我们可以远程执行命令。

       查找:CVE-2017-8464远程命令执行漏洞

    查找2018年linux相关的漏洞模块

       search cve:2018 name:linux

 搜索参数可以组合使用,可以更精准的查询到对应的模块。

模块相关的命令use的使用方法

    use使用参数。如你要使用到某个模块,就要使用到use命令

          语法:    use   模块的名字

         实战背景:

          2008年微软爆出ms08 067漏洞,如果用户在受影响的系统上收到特制的RPC请求,则该漏

洞可能允许远程执行代码。在Microsoft Windows 2000、Windows XP 和Windows Server 2003系

统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。

    1)、先查找出自己想要的ms08_067漏洞模块。

 以下3个种搜索方式,找出来的结果一样

             msf5 > search ms08_067          #使用下划线

             msf5 > search ms08-067           #使用减号

             msf5 > search MS08-067           #使用大写字母MS

           metasploit支持模糊查找,不区分大小写,这样大家查找时更方便

  2)、装载一个渗透攻击模块

         

msf6 > use exploit/windows/smb/ms08_067_netapi

      我们可以看到使用use装载模块后我们的bash提示符会变成对应的模块信息。稍后我们使用这

个模块进行攻击。

         back    退出当前调用模块

   模块相关的命令info的使用方法

        info :显示模块的相关信息。

               方法1: info模块名称

                        msf6 > info exploit/windows/smb/ms08_067_netapi

              方法2: use装载模块后直接使用info

                        msf6 > use exploit/windows/smb/ms08_067_netapi

 1、可用目标漏洞

 2、基本选项:

3、 漏洞描述与执行过程

4、参考文档

 

方法2:使用show命令查看模块的相关信息

   例:  show   options

 例: show  targets

 设置目标模块34

 设置ip

 取消ip设置

 

    配置好了之后我们输入  exploit  或  run  就可以执行该模块。

    msf6 exploit(windows/smb/ms08_067_netapi)> back      #使用back即可退出装载的模块

      注:不要使用exit,exit 会直接退出Metasploit程序

 4.  实战-使用msf 渗透攻击Win7主机并远程执行命令

      环境介绍

           永恒之蓝概述:

            永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络

攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高

权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧

洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解

密恢复文件。

           注: windows7是2009年发布。

     我们这节课利用win7的经典漏洞“永恒之蓝”。

     官方描述:

         Microsoft 安全公告 MS17-010 - 严重 | Microsoft Docs

       永恒之蓝相关病毒,其实是利用了微软的MS17-010漏洞。MS17-010是Windows系统一个底

层服务的漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要

开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意

程序

        通过msf模块获取Win7主机远程shell

      链接:https://pan.baidu.com/s/1Y_nA5Gu4VHonbj6tQ-Hbnw
      提取码:s2v7

   注意事项:  把windows 7的防火墙关闭

 

 

 

 

 

 

 

 

总结使用metasploit攻击的步骤:

      1、查找 CVE公布的漏洞

      2、查找对应的exploit模块

      3、配置模块参数

      4、添加payload后门

      5、执行exploit开始攻击

  Metasploitable2-Linux靶机系统介绍

       1、Metasploitable2靶机介绍

        Metasploitable2虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和

演示常见漏洞攻击。版本2已经可以下载,并且比上一个版本包含更多可利用的安全漏洞。这个版

本的虚拟系统兼容VMware,VirtualBox和其他虚拟平台。

       2、Metasploitable2安装

       安装地址Metasploitable download | SourceForge.net

       直接解压到除c盘以外 其他盘

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Metasploit渗透测试魔鬼训练营是一种针对渗透测试人员的培训课程,旨在帮助学员掌握使用Metasploit框架进行渗透测试的技能。该课程包括理论知识和实践操作,涵盖了Metasploit框架的基础知识、漏洞利用、后渗透等内容。通过参加该训练营,学员可以提高自己的渗透测试技能,为企业提供更加全面和有效的安全保障。 ### 回答2: Metasploit渗透测试魔鬼训练营是一种专注于渗透测试技术的培训计划。Metasploit是一款广泛使用渗透测试工具,能够帮助安全专业人士评估网络系统的弱点和漏洞,并提供相应的修复方案。Metasploit渗透测试魔鬼训练营旨在提供系统性的培训,使学员能够熟练运用Metasploit进行渗透测试,并成为专业的渗透测试人员。 这个魔鬼训练营采用实践与理论相结合的教学方法,通过大量的实际案例和模拟演练来帮助学员有效掌握渗透测试技术。训练营的内容包括Metasploit的基础知识、常见漏洞的挖掘与利用、渗透测试的方法与策略等。学员将学习如何利用Metasploit对目标网络进行扫描、漏洞利用和漏洞修复,以保证网络安全。 在这个训练营中,学员还将接触到实际渗透测试的场景和挑战,通过团队合作来解决复杂的安全问题。这不仅可以提高学员的问题解决能力,还可以培养他们的团队合作精神和沟通能力。 Metasploit渗透测试魔鬼训练营适合那些对渗透测试感兴趣,想要提升自己技能的安全专业人员。通过参加这个培训计划,学员可以全面了解Metasploit的功能与应用,并具备进行渗透测试的实际能力。这对于保护网络安全,提高企业的安全性具有重要意义。 ### 回答3: Metasploit是一款著名的渗透测试工具,它被广泛用于评估网络系统的安全性和漏洞。Metasploit渗透测试魔鬼训练营是一个专门针对Metasploit工具进行训练和实践的培训班。 这个训练营的目的是让参与者全面了解Metasploit的功能和使用方法,并通过实际操作和挑战来提高他们的渗透测试技能。在训练中,学员将学习如何使用Metasploit来发现和利用目标系统中的漏洞,以及如何进行渗透测试和攻击模拟。这些实践活动将使学员更好地理解网络安全漏洞的本质和攻击者的行为方式。 Metasploit渗透测试魔鬼训练营的学习过程是非常实际的,学员将通过真实情景模拟来进行虚拟网络环境下的渗透测试。他们将学习如何选择和配置适当的漏洞利用模块,如何使用payloads以获取系统访问权限,并了解如何绕过防御机制和检测系统。 这个训练营的主要优势之一是培训者具有丰富的经验和专业知识,能够引导学员在实践中掌握Metasploit的各个方面。此外,训练营还提供了配套的学习资料和交互环节,使学员能够进一步加强他们的学习效果。 总而言之,Metasploit渗透测试魔鬼训练营是一个提供高质量Metasploit培训和实践机会的地方。通过参加这个训练营,学员可以提高他们的渗透测试技能,增强他们评估网络安全的能力,并为他们未来的职业发展打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈·Suriel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值