Metasploit基础
2003年H.D Moore创建了Metasploit,从那之后Metasploit便快速发展起来,如今被公认为最为流行的渗透测试工具之一。Metasploit是一个完全的Ruby驱动项目,提供了大量的漏洞渗透、攻击载荷(payload)、编码技术以及后渗透模块。
Metasploit提供了以下多版本:
Metasploit Pro版 这是Metasploit的一个商业化版本,提供了大量的功能,例如Web应用程序扫描工具、渗透模块、自动化渗透工具,十分适合专业渗透测试工程师和IT安全团队使用。Pro版主要用来实现专业的、高级的、大型渗透测试和企业安全项目
Metasploit Express版 这是一个为初级渗透测试工程师设计的版本。这个版本的Metasploit包含了智能化渗透、密码的自动化暴力破解等功能,十分适合小型企业的IT安全团队使用
Metasploit Community版 这是Metasploit Express精简后的免费版本。对于小企业和学生来说,这是一个不错的选择
Metasploit Framework版 这是一个完全在命令行下运行的版本。这个版本的所有任务都在命令行下完成 ,比如说手动渗透、第三方模块导入等。该版本适合开发人员和安全研究人员
Metasploit提供了以下几类用户界面:
GUI(图形用户界面) 在图形化工作模式下,往往轻点一下鼠标就能完成所有的任务。此工作方式提供了友好的操作模式和简单快捷的漏洞管理方式
控制台界面 最为普遍也最为流行的工作方式。此界面提供了统一的工作方式来管理Metasploit的所有功能。此管理方法通常也被认为是最稳定的控制方法之一。此管理方法是最常用的
命令行界面 命令行界面是功能最为强大的界面,它支持对渗透模块的所有操作(例如,攻击载荷的生成)。然而在采用命令行界面时,记住每一条命令是十分困难的
Armitage ArmITage是Raphael Mudge 编写的一个充满了黑客风格的GUI。ArmITage提供轻松的漏洞管理、内置的Nmap扫描、渗透攻击推荐,并通过用Cortana脚本实现自动化功能
有关Metasploit Community版的更多信息,请访问:
https://community.rapid7.com/com ... etasploit-community
Metasploit基础知识
渗透模块(exploit) 这是一段程序,运行时会利用目标的安全漏洞进行攻击。
攻击载荷模块(payload) 在成功对目标完成一次渗透之后,这段程序开始在目标计算机上运行。
它能帮助我们在目标系统上获得需要的访问和行动权限
辅助模块(auxiliary) 包含了一系列的辅助支持模块,包括扫描模块、fuzz测试漏洞发掘模
块、网络协议欺骗以及其他一些模块
编码器模块(encoder) 编码器模块通常用来对攻击模块进行代码混淆,来逃过目标安全保护机制
的检测。目标安全保护机制包括杀毒软件和防火墙等
Meterpreter Meterpreter是一类使用内存技术的攻击载荷,可以注入到进程里。它提供了各类可以在目标上执行的功能,从而成为了最受欢迎的的攻击载荷
Metasploit的基本命令:
命令 用途 示例
use [Auxiliary/Exploit/Payload/Encoder] 选择一个指定的模块并启动工作 msf>use exploit/unix/ftp/vsftpd_234_backdoor
show [exploits/payloads/encoder/auxiliary/options] 显示可用的特定功能的模块 msf> show payloads
set [options/payload] 给某个特定对象赋值 msf>set LHOST 192.168.126.129
setg [options/payload] 给某个对象赋值的同时设定作用域为全局,在模块进行切换的时候,该对象的值不改变 msf>setg RHOST 192.168.126.129
run 在设置一个辅助模块需要的所有选项之后,启动该辅助模块 msf>run
exploit 启动一个渗透模块 msf>exploit
back 取消当前选择的模块并且退回到上一级命令窗口 msf>back
Info 列出相关模块的信息 msf>Info
Search 搜索符合条件的特定模块 msf> search hfs
check 检查某个特定目标是否易受攻击 msf>check
Sessions 列出当前可用的会话 msf>Sessions [session number]
Meterpreter的基本命令:
Meterpreter命令 用途 示例
sysinfo 列出被渗透主机的系统信息 Meterpreter>sysinfo
ifconfig 列出被渗透主机的网络接口 Meterpreter>iifconfig
arp 列出目标主机ARP缓存地址的IP地址和MAC地址 Meterpreter>arp
background 将一个处于激活状态的会话发送到后台 Meterpreter>background
shell 获取目标主机的一个cmdshell Meterpreter>shell
getuid 获取当前用户细节 Meterpreter>getuid
getsystem 提升权限,获取系统级权限 Meterpreter>getsystem
ps 列出目标主机上运行的所有进程 Meterpreter>ps
若第一次接触Metasploit,可访问:
http://www.offensive-security.co ... Msfconsole_Commands获取关于基本命令的更多信息。
在Metasploit使用数据库
命令 用途
db_connect 用来与默认数据库之外的数据交互
db_export 用来将数据库里保存的数据导出,用来生成测试报告或者用来导入到其他安全工具内
db_nmap 用来使用Nmap软件对目标进行扫描,并将结果保存到Metasploit数据里内
db_status 用来检查是否建立了与数据库的连接
db_discocnnect 用来从指定的数据库断开
db_import 用来向数据内导入其他扫描工具(例如Nessus,Nmap等)的扫描结果
db_rebuild_cache 用来重新建立缓存,主要目的是使用新的配置替代之前缓存文件里错误或者过时的配置