渗透测试者的困扰
▪ 需要掌握数百个工具软件,上千个命令参数,实在记不住
▪ 新出现的漏洞PoC/EXP有不同的运行环境要求,准备工作繁琐
▪ 大部分时间都在学习使用不同工具的使用习惯,如果能统一就好了
▪ Metasploit 能解决以上困扰吗?
MSF架构
▪ Rex
– 基本功能库,用于完成日常基本任务,无需人工手动编码实现
– 处理 socket 连接访问、协议应答(http/SSL/SMB等)
– 编码转换(XOR、Base64、Unicode)
▪ Msf::Core
– 提供 Msf 的核心基本API,是框架的核心能力实现库
▪ Msf::Base
– 提供友好的 API接口,便于模块调用的库
▪ Plugin 插件
– 连接和调用外部扩展功能和系统
▪ /usr/share/metasploit-framework/modules/
▪ 技术功能模块(不是流程模块)
– Exploits 利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
– Payload 成功exploit之后,真正在目标系统执行的代码或指令
▪ Shellcode或系统指令
▪ 三种 Payload:/usr/share/metasploit-framework/modules/payloads/
▪ Single:all-in-one
▪ Stager:目标计算机内存有限时,先传输一个较小的payload用于建立连接
▪ Stages:利用stager建立的连接下载的后续payload
▪ Stager、Stages都是多种类型,适用于不同场景
▪ Shellcode是payload的一种,由于其建立正向 / 反向 shell 而得名