Metasploit项目由著名黑客HD Moore于2003 年开始开发,最早作为一个渗透攻击代码的集成软件包而发布。渗透攻击也是目前Metasploit最强大和最具吸引力的核心功能。
Metasploit的出现使得一些渗透测试的初学者也能够像黑客电影中演的那样“优雅潇洒”地进行渗透攻击,告别了之前令人奔溃与望而却步的繁杂过程:搜索公开渗透代码>>编译>>测试>>修改代码>>实施>>失败>>不断调试直至成功
除了渗透攻击外,Metasploit在发展过程中逐渐增加对渗透测试全过程的支持,包括,情报搜集、威胁建模、漏洞分析、后渗透攻击与报告生成。
情报搜集阶段
一方面通过内建的一系列扫描探测与查点辅助模块来获取远程服务信息,另一方面通过插件机制集成调用Nmap/nessus/OpenVAS等著名的开源网络扫描工具,从而具备全面的信息搜集能力,为渗透攻击实施提供不不可少的精确情报
威胁建模阶段
在信息搜集之后,Metasploit支持一系列数据库命令操作直接将这些信息汇总至PostgreSQL、MySQL或SQLlite数据库中,并为用户提供易用的数据库查询命令,可以帮助渗透攻击者对目标系统搜集到的情报进行威胁建模,从中找出最可行的攻击路径。
漏洞分析阶段
除了信息搜集环节能够直接扫描出一些已公布的安全漏洞,Metasploit还提供了大量的协议Fuzz测试器与web应用漏洞探测分析模块,支持具有一定水平能力的渗透测试者在实际过程中尝试挖掘出0day漏洞,并对漏洞机理与利用方法进行深入分析,而这将为渗透攻击目标带来更大的杀伤力,并提升渗透测试流程的技术含金量。
后渗透攻击阶段
在成功实施渗透攻击并获得目标系统系统的远程控制权之后,Metasploit框架种另一个极具威名的工具Meterpreter在后渗透攻击阶段提供了强大的功能。
Meterpreter 可以看做一个支持多操作系统平台,可以仅仅驻留于内存并具备免杀能力的高级后门工具Meterpreter中实现了特权提升、信息获取、系统监控、跳板攻击与内网扩展等多样化的功能特性,此外还支持一种灵活可扩展的方式来加载额外功能的后渗透攻击模块,足以支持渗透测试者在目标网络中取得立足点之后进行进一步的扩展攻击,并取得具有业务影响力的渗透效果。
从技术角度来说,Meterpreter让它的“前辈们”(如国外的BO、BO2K,以及国内的冰河、灰鸽子等)黯然失色。
metasploit 中有一个辅助模块(Auxiliary)不参与渗透测试中的攻击操作,信息收集是它的一项主要任务。
SSH服务扫描
SSH 是类UNIX 系统上最常见的远程管理服务,与Telnet不同的是它采用了安全的加密信息传输方式。通常管理员会使用SSH对服务器进行远程管理,服务器会向SSH客户返回一个远程的shell连接如果没有做其他的安全增强配置(如限制管理员登录的IP地址),只要获取了服务器的登录口令就取得了相应登录用户的所有权限。
使用Metasploit中的辅助模块ssh_version
口令猜解与嗅探
对于发现的系统与文件管理类网络服务,比如 Telnet、SSH、FTP等,可以使用弱口令的猜测,以及明文传输口令的嗅探,从而尝试获取直接通过这些服务进入目标网络的通道。
SSH口令猜测
载入ssh_login模块,
use auxiliary/scanner/ssh/ssh_login
然后需要设置RHOSTS参数指定口令攻击的对象,可以是一个IP地址,然后通过USERNAME函数指定一个用户名(或者通过USER_FILE参数指定一个包含多个用户名的文本文件,每个用户名占一行),并使用PASSWORD指定一个特定的口令字符串(或者使用PASS_FILE)指定一个用户名和口令的配对文件(用户名和口令之间用空格隔开,每对用户名口令占一行)
psnufile口令嗅探
psunffle是目前Metasploit中唯一用于口令嗅探的工具(圈起来,要考的,【滑稽】),它的功能算不上强大,但是。。非常实用,可以使用它截获常见协议的身份认证过程,并将用户名和口令信息记录下来。
在Metasploit中使用PostgreSQL
db_connect用户名:口令@服务器地址:端口/数据库名称
连接到数据库后,可以使用hosts命令检查数据库是否可以正常使用,
msf5>hosts
使用disconnect断开数据库连接
msf5>disconnect
使用Metasploit RPC 服务共享
除了使用网络数据库外,还可以使用MSF RPC 服务进行数据共享。
首先启用一个新的MSF RPC 服务,-P参数后面指定连接到RPC服务需要提供的口令,-U参数指定连接所需的用户名