渗透测试框架 metasploit

本贴最后更新于 2218 天前,其中的信息可能已经渤澥桑田

0x00 简介

Metasploit 是一款开源安全漏洞检测工具,可以用于渗透测试不同的系统和框架,附带数百个已知的软件漏洞,并保持频繁更新。

Metasploit 框架是用 Ruby 语言开发的,包括 Perl 写的脚本,C ,汇编,和 Python 各种组件,并且可以由用户自行编写代码加入 Metasploit 的数据库。

0x01 术语

在讲解 Metasploit 之前,先对我们即将用到的术语做一个解释。

Exploit

Exploit 操纵计算机系统中特定漏洞的恶意代码. Metasploi 提供了跨多个操作系统和应用程序的 Exploit,提供了突破一台电脑的多种途径。可以用 Nessus 搭配 Nmap 进行漏洞扫描,并使用 Metasploit 进行漏洞利用。在确定一个特定的漏洞却无法在 Metasploit 数据库中找到利用的 Exploit,可以通过访问 exploit-db.com 查找下载该漏洞利用程序,编译知道可以将其移植到 Metasploit 的数据库做为一个 Exploit。

Payloads

利用漏洞之前要先建立一个 Payload,其作用是确定漏洞攻击成功之后要执行什么操作,Payload 基本上是用于访问远程计算机的反向 shell 和通过 shell 植入后门等到被入侵的电脑。

Encoders

不能确保所有 Metasploit 中的 exp 都可以正常工作,有时候会遇到防火墙、IPS、IDC 等,所有的试图攻击等可能会被防火墙过滤掉,这时候就需要使用 Encoders 来对 exp 进行编码等,用来逃避防火墙、IPS、IDS 的检测。

Options

所有的 Exploit 和 Payload 都有一些内置的参数,诸如远程 IP、本地 IP、LPORT、RPORT、服务路径、用户名等。这些参数在利用 exp 之前需要进行配置,可以使用 Show Options 命令来显示具体的选项。

0x02 模式

Metasploit 有三种模式供用户使用,分别是控制台、命令行、web,我分别简述一下三种模块的优点。

Msfconsole(控制台)的优点是最实用、最强大的集各种功能于一体的漏洞利用框架,在控制台界面时功能最全面。

Msfcli(命令行)的优点是侧重对脚本执行、以及可解释性,并且自动化方面很强。

Msfweb(web 界面)是一个 Gui 形界面,主要优点是为了让渗透测试操作变得更加容易,从命令行启动之后会创建一个 web server,ip 地址是 127.0.0.1,端口是 55553。

我使用 Msfconsole 来演示。

0x03 模块

我们在安装目录输入./Msfupdate 更新一下 metasploit

然后使用 service postgresql start 打开漏洞数据库服务

然后使用./Msfconsole 命令进入控制台交互界面,然后开始模块的使用。

show 模块

show 模块可以用来显示可用的 exploits、payloads、encoders 等等

我们可以直接加参数来只显示某一类

如 show exploits

显示出来的有 exp 的名字、时间、攻击模块等级和描述。

等级是我们选取时优先关注的,一般选择 excellent 和 great 两种等级,因为稳定且效果明显,其次查看后面的描述是否和我们攻击的服务有关,如果找到合适的模块,我们就可以记住名字之后使用。

search 模块

我们之前使用 show 的时候出现了非常多的条目,但在应对实际情况中,肯定不能自己肉眼去寻找需要的 exp,而 search 模块可以帮助我们快速筛选需要的 exp。

我们可以查看 search -h 的内容帮助我们学会这个模块的用法。

如 search cve:2017 type:exploit

然后我们再根据攻击模块等级和描述进一步人工筛选,就快了很多。

info 模块

上面列举出来的模块我们只能看到大概信息,如果我们想要查看详细信息和利用方式等等,就得使用 info 模块来查看

使用方法是 info+ 模块名

如 struct-s2-052 漏洞即 cve:2017-9805:

info exploit/multi/http/struts2_rest_xstream

use 模块

前面我们筛选出来合适的 exp,下来就需要用 use 模块来使用这个 exp

使用方式是 use+ 模块名

如 struct-s2-052 漏洞

use exploit/multi/http/struts2_rest_xstream

set 模块

选好了模块下来就该攻击了,那攻击谁?怎么攻击?需要用这次攻击做什么事情?这些事情我们还没有告诉 metasploit,所以我们需要用 set 来完成这些设置。

首先我们需要一个 payload 完成我们要做的事情,我们通过前面的 show 命令,查看一下 payload

然后再选择一个 payload,用 set payload PayloadName 来设置好这次攻击用到的 payload

这里我们用一个较稳定的反弹 shell

set payload windows/exec

接着设置攻击参数,具体有哪些攻击参数需要设置,我们可以用 show options 命令查看。

然后我们根据看到的情况,结合我们要攻击的目标设置攻击参数,我这里在物理机重新搭了一遍 struct-2-052 漏洞的环境,可以参考之前的一篇博客进行配置:https://orcl.cc/articles/2018/09/26/1537971642586.html

额外将 tomcat/conf/server.xml 中的这两处地方改为本机在局域网中的 ip,就可以通过另一台机器访问了。

接下来在 metasploit 中设置物理机的 ip 和端口即可

set rhost 192.168.0.107

set rport 12345

set lhost 192.168.0.108

run 模块

万事俱备之后,设置好我们想执行的命令,直接输入 run,即可发起攻击。

0x04 总结

一款优秀的工具对渗透测试人员来说就像一把锋利的刀,他不仅能节省我们非常多的时间,也能弥补我们技术上的空白。

metasploit 还有非常多有趣的用法,我也是初学所以无法一一列举出来,学习新工具的过程,最需要的是耐心的读官方文档和善用-help 命令,并且记好笔记。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 172721404

    kali linux 这个要学习下

  • 其他回帖
  • someone

    😈 ❤️ 😋 😋

推荐标签 标签

  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 631 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    132 引用 • 188 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 387 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 182 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    176 引用 • 815 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 63 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    285 引用 • 728 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖 • 1 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 210 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 10 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 2 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    46 引用 • 25 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    5 引用 • 62 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    25 引用 • 83 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 354 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 294 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 335 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 606 关注