Metasploit学习指南—基础篇
Metasploit是一款强大的渗透测试平台,其中包括了很多渗透测试利器,本文简单介绍一下Metasploit的配置和基础的使用方法,主要包括以下几个方面:
Metasploit的核心
基础的配置
Metasploit的模块
Metasploit的实用工具
简介
Metasploit是一款免费的、开源的渗透测试平台,可以用于渗透测试不同的系统和框架,也可以看作是一个单独的渗透测试系统。本文将简单介绍一下Metasploit的基础用法,以及如何添加exp到Metasploit、如何利用漏洞等。
条件:
本文中Metasploit的各种实例,需要以下的条件支持:
BackTrack5/kali
Metasploit模块
网络连接
Ruby环境
Windows/Linux系统
Metasploit的核心
Metasploit的框架是一个统一的具有易于更新机制的漏洞数据库。因为它在本质上是开源的,可以很容易地操纵它来满足需求,比如可以编写自己的代码来利用漏洞,并且可能部署新编译的exp到现有的Metasploit的数据库。
该框架是用Ruby语言开发的,包括Perl写的脚本,C ,汇编,和Python各种组件。它基本上是专为Linux的操作系统设计的,因此它的命令结构具有与Linux命令外壳非常相似,但现在,它支持所有主流操作系统,如Windows,Solaris和Mac上。它有一个一致的界面,用于配置选项,并执行攻击和将exp从payload中隔离出来。 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命令来显示具体的选项。
基础的配置
Metasploit可以独立的安装在windows或linux系统上,也可以直接使用BackTrack5中内置的Metasploit,推荐使用BackTrack5中的Metasploit.在使用之前需要,为了确保使用过程的顺利进行,需要进行以下的配置:
更新BackTrack5/kali
建议在使用之前更新BackTrack5/kali,以获取新增的Exploit 或工具等,更新命令如下:
#sudo apt-get update
启动网络服务
登录到BackTrack5之后,IP地址通常是不自动分配,需要用以下命令启动或停止网络服务:
#service networking start
#service networding stop
还可以用以下命令来启动网络服务
#/etc/init.d/networking start
重启BackTrack5之后,发现还需要再重启网络服务器,使用以下命令可以让网络服务自动启动:
#update-rc.d networking defaults
设置网络连接
如果以上命令还无法让BT5连接到网络,可能就需要使用DHCP或者手动设置IP地址,使用DHCP来配置IP地址,命令如下:
#dhcpcd eth0
如果没有dhcpcd命令,需要使用以下命令进行安装:
#sudo apt-get install dhcpcd
BackTrack5有多个用语无线网络、Loopback、有线网络的接口,可以使用
以下命令来判断哪个接口是从DHCP获取IP地址的:
#vi /etc/networking/interfaces
有时候DHCP因为某些原因无法分配IP地址,就需要手动配置,命令如下:
#ifconfig eth0 192.168.1.2/10
#route add default gw 192.168.1.1
#echo nameserver 192.168.1.2> /etc/resolv.conf
刷新网络接口
有时候需要对有线、无线网络接口进行刷新整理,使用以下命令:
#ifconfig eth0 down
#ifconfig ehh0 up
无线连接
可以使用wicd连接到无线接入点,使用以下命令启动无线网络服务:
#/ect/init.d wicd start
FTP服务
有时需要上传后门程序到被入侵的电脑,达到后期持续访问的目的,atftpd就是一款非常适用的工具,需要先用apt-get命令进行安装,接下来执行以下命令启动配置:
# atftpd –deamon –port 69 /tmp
HTTP服务器配置
配置web服务器用来托管文件或者用来利用基于web的exp.Backtrack 5有内置的apache服务器,使用之前启动apache服务即可。
Metasploit 模块
Metasploit有三种接口模块用来执行利用各种exp:控制台、命令行、web。实际上这三种模块都没有太大的区别,但是一般情况下控制台是三种方式中功能最全、最强大的。BackTrack 5中Metasploit的默认路径是/pentest/exploits/framwork3。
在使用之前建议对Metasploit进行更新,方便利用最新的漏洞exp等,更新命令如下:
#./msfupdate
Msfconsole
Msfconsole是最实用、最强大的集各种功能于一体的漏洞利用框架,可以使用msfconsole发起攻击,加载辅助模块,进行枚举,创建监听器或对整个网络情况进行探测,用以下命令启动msfconsole.
#cd /pentest/exploits/framwork3/
#./msfconsole
Msfcli
Msfcli是命令行接口,和msfconsole在很多方面存在差异,它侧重对脚本执行、以及可解释性,而msfconsole给用户提供了一种友好的互动方式,msfconsole在自动化方面有所欠缺。要访问msfcli,需要执行以下命令:
#cd /pentest/exploits/framwork3/
#./msfcli
Msfweb
Msfweb是metasploit渗透测试的另外一个模块,是一个Gui形界面,主要目的是为了让渗透测试操作变得更加容易,从命令行启动之后会创建一个web server,ip地址是127.0.0.1,端口是55553.可以用以下命令启动msfweb:
#cd /pentest/exploits/framwork3/
#./msfgui
导入exp到Metasploit
Metasploit框架允许将自己开发的exp导入到其exploits数据库, 支持C,Ruby,Perl,Python等语言。Metasploit中所有的exp都是按照不同的系统类型等进行分类的,具体的目录是在
/pentest/exploits/frameworks/modules/exploits目录下,如图:
BackTrack5初始版本中的metasploit不支持导入自定义的exp,需要bt5 R2之后的版本才可以。
有很多图片懒得挨个上传编辑了,更多内容请点击下载PDF,如图:
转载自:牛X阿德马 》》http://www.nxadmin.com/penetration/1233.html
Metasploit学习指南—基础篇的更多相关文章
- Java工程师学习指南 完结篇
Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校 ...
- Java工程师学习指南 中级篇
Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- 【转】Spark性能优化指南——基础篇
http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&sn=2f413828d1fdc6a ...
- Python3学习(1)-基础篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
随机推荐
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
- Java-Runoob-高级教程-实例-环境设置实例:3.Java 实例 - 如何执行指定class文件目录(classpath)?
ylbtech-Java-Runoob-高级教程-实例-环境设置实例:3.Java 实例 - 如何执行指定class文件目录(classpath)? 1.返回顶部 1. Java 实例 - 如何执行指 ...
- Bootstrap-Plugin:警告框(Alert)插件
ylbtech-Bootstrap-Plugin:警告框(Alert)插件 1.返回顶部 1. Bootstrap 警告框(Alert)插件 警告框(Alert)消息大多是用来向终端用户显示诸如警告或 ...
- centos使用163 yum源
备份# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak修改# vi /etc/yum.repos ...
- pycharm(2016.3.2版本)导入工程文件执行程序时弹出Edit configuration
最近为了能在公司和住所连续写脚本,每写好一部分就压缩打包发送到手机,然后再发送到公司电脑或者自己的笔记本,但是发现重新打开工程文件时有时会弹出Edit configuration配置框,而且每执行一个 ...
- VCF文件导入导出
参考资料 通讯录导入导出vcf格式文件方法可参考: https://qiaodahai.com/android-iphone-mobile-phones-contacts-import-and-exp ...
- Axure RP Extension for Chrome经常损坏
昨天自己修改后的谷歌浏览器插件,才使用了一天,今天刚打开浏览器就弹出了“已停用不支持的扩展程序”提示,第三方扩展程序就这么不受谷歌浏览器待见呢!?好吧,想办法解决! 通过扩展程序里“该扩展程序未列在 ...
- Hyberledger-Fabric 1.00 RPC学习(1)
参考:http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html 本文的目的就是基于Hyperledger Fabr ...
- javascript数组操作(创建、元素删除、数组的拷贝)
这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...
- 网页中给超链接添加"是否确认"的方法
最近在做数据库, 需要给一个"删除"链接增加是否确认的弹出框, 在网上查到了两种方法: 1, 先看看最麻烦的一种 <html xmlns="http://www.w ...