一、Metasploit简介
Metasploit是当前信息安全与渗透测试领域最流行的术语,它完全颠覆了已有的渗透测试方式。几乎所有流行的操作系统都支持Metasploit,而且Metasploit框架在这些系统上的工作流程基本一样。本系列文章中的示例以Kali操作系统给为基础,该操作系统预装Metasploit及在其上运行的第三方工具。kali系统的下载地址为http://www.kali.org/downloads/。
Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发、使用定制的工具模板。
Metasploit可向后端模块提供多种用来控制测试的接口(如控制台。Web、CLI)。推荐使用控制台接口,通过控制台接口,你可以访问和使用所有Metasploit的插件,例如Payload、利用模块、Post模块等。Metasploit还有第三方程序的接口,例如Nmap、SQLMap等,可以直接在控制台接口里使用,要访问该界面,需要在命令行下输入mfsconsole,MSF的启动界面如图1所示。
在使用Kali操作系统时应注意及时更新源,就像平时要及时更新手机App一个道理。更新命令有
apt-get update
、apt-get upgrade
和apt-get dist-upgrade
。
-
apt-get update
:只更新软件包的索引源,作用是同步源的软件包的索引信息,从而进行软件更新。
-
apt-get upgrade
:升级系统上安装的所有软件包,若更新失败,所涉及的包会保持更新之前的状态。
-
apt-get dist-upgrade
:升级整个Linux系统,例如从Kali Linux 1.0.1升级到Kali Linux 1.0.2(不仅能够升级所有已安装的软件包,而且会处理升级过程中可能出现的软件冲突。某些情况下,它的部分升级过程需要人工参与)。
二、Metasploit基础
2.1 专业术语
MSF框架由多个模块组成,各个模块及其具体功能如下。
- Auxiliaries(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只会负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
- Exploit(漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
- Payload(攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。
- Post(后期渗透模块)
该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等。
- Encoders(编码工具模块)
该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件按检测出来。
2.2 渗透攻击步骤
使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察并发动攻击,大致的步骤如下所示。
-
扫描目标机系统,寻找可用漏洞。
-
选择并配置一个漏洞利用模块。
-
选择并配置一个攻击载荷模块。
-
选择一个编码技术,用来绕过杀毒软件的查杀。
-
渗透攻击。
“理论联系实际”是最好的学习方法,我们已经大概了解了MSF渗透攻击的基础知识,下面进行一次简单的渗透攻击。