Metaspolit
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的更多相关文章
- Xssf配合metaspolit使用
安装xssf download: svn export http://xssf.googlecode.com/svn/trunk /home/User/xssf install: svn expor ...
- metaspolit 命令大全
一.msfconsole相关命令 二.database 三.autopwn自动化攻击工具 四.metaspolit常见渗透命令大全
- kail linux 系统下利用metaspolit工具渗透win7电脑
注:只是测试,不可干违法的事. 一.metaspolit工具的介绍 1.1.metaspolit 是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新.被安全社区冠以“可以黑掉整个宇 ...
- Metaspolit使用简介
信息收集阶段 Whois信息收集 msf auxiliary > whois baidu.com 域名信息查询阶段 msf auxiliary > nslookup www.baidu.c ...
- 关于metaspolit中进行JAVA反序列化渗透RMI的原理分析
一.背景: 这里需要对java反序列化有点了解,在这里得推广下自己的博客嘛,虽然写的不好,广告还是要做的.原谅我: 1.java反序列化漏洞原理研习 2.java反序列化漏洞的检测 二.攻击手法简介 ...
- metaspolit下UAC提权以及日志清除
在获得webshell时但权限不够大,这时候为了完全获得受害者机器的权限,使用msf进行后渗透. 一.获取Meterpreter会话 Meterpreter 是msf的一个payload,目标执行之后 ...
- metaspolit 基础
在kali中使用metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录了.这一点比bt5要方便很多,所以现在 ...
- metaspolit教程
网上的安装方式都是抄来抄去,我也抄了下,不过好歹自己试了下,有所不同 git clone https://github.com/rapid7/metasploit-framework.git vim ...
- Metaspolit工具----基础
Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,他是有Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发.使用定制的 ...
随机推荐
- EF中 实现延迟加载 lazyload
1.创建数据库 2.利用数据库 生成视图 生成2个实体类 和一个model1类 3.写代码 (1) 创建 上下文对象 (2) (3)查询结果 注释: 延迟加载的原因,因为我们操作数据库不会那么简单, ...
- django ORM单表操作
1.ORM介绍 ORM是“对象-关系-映射”的简称 映射关系: mysql---------Python 表名----------类名 字段----------属性 表记录--------实例化对象 ...
- mongodb基础环境部署(windows系统下)
Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNorma ...
- java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流
package com.swift.baseKnowledge; import java.io.File; import java.io.FileInputStream; import java.io ...
- 在windows7上配置xampp虚拟主机
在设置之前最好关闭xampp1.修改hosts文件进入C:\Windows\System32\drivers\etc目录,找到hosts文件.在# Localhost (DO NOT REMOVE) ...
- BZOJ1004: [HNOI2008]Cards(Burnside引理 背包dp)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4255 Solved: 2582[Submit][Status][Discuss] Descript ...
- linux下 利用 rz 命令上传文件
1. 如何安装? 1)编译安装 root 账号登陆后,依次执行以下命令: # cd /tmp # wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20 ...
- tar工具(打包,压缩)
tar工具(打包,压缩)========================= tar打包工具 -c:表示建立一个tar包或者压缩文件包-x:表示解包或者解压缩-v:表示可视化-f: 后面跟文件名(即-f ...
- 传输控制协议(TCP)
传输控制协议(TCP)[来自Unix网络编程(卷一)第2章] 1.TCP是一个面向连接.可靠性的传输协议: 2.TCP含有用于动态估算客户与服务器之间往返时间(RTT)的算法,以便它知道等待一个确认需 ...
- POJ:3190-Stall Reservations
传送门:http://poj.org/problem?id=3190 Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total ...