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程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发.使用定制的 ...
随机推荐
- Linux 关于动态链接库以及静态链接库的一些概念
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhe ...
- js将数字转换成中文
var _change = { ary0:["零", "一", "二", "三", ...
- C# break语句
一.C# break语句 break语句用于终止它后面的所有循环语句,使控制流程跳转到break语句所在层的外面,以便结束本层的所有循环.如果有多个循环语句进行嵌套,break语句则会跳到它所在层的外 ...
- 清除ie10+浏览器的input输入框后面会出现的x号和闭眼logo
x号:::-ms-clear{display:none;} 闭眼logo: ::-ms-reveal{display:none;} tips:如果在外部引用的css里面没有作用,可以在写本页面的< ...
- HDU2837 Calculation(扩展欧拉定理)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- BZOJ1509: [NOI2003]逃学的小孩(树的直径)
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1126 Solved: 567[Submit][Status][Discuss] Description ...
- 【例题收藏】◇例题·II◇ Berland and the Shortest Paths
◇例题·II◇ Berland and the Shortest Paths 题目来源:Codeforce 1005F +传送门+ ◆ 简单题意 给定一个n个点.m条边的无向图.保证图是连通的,且m≥ ...
- 百度站长针对SEO人员关系的问题的一些解答
自然排名是全部由机器完成还是存在人工干预? 夫唯:第一个就是说经常好不容易找到了一些新的想法,用我们这些草根的话讲找到了百度的漏洞,好不容易排名上去了,过两天就会波动.有些人就怀疑说在百度的整体算法里 ...
- Unity基础
unity unity 3大场景 Asset Scene Component Asset :资源导入导出 右击资源,选择导出Unity包 导入可以直接将只有复制到Asset文件夹 创建场景 File- ...
- Centos7-Mysql-5.6.41一主两从的搭建
01.准备工作 首先的前提条件你必须安装了mysql,而且知道你安装mysql配置文件的位置,接下来的事情就好办了. 我的搭建环境: 服务器1: 10.233.17.20 mysql-master(主 ...