目录标题
学习笔记
https://blog.csdn.net/kevinhanser/article/details/79940686
一、渗透测试者的困扰
- 需要掌握数百个工具软件,上千个命令参数,实在记不住
- 出现的漏洞 PoC/EXP 有不同的运行环境要求,准备工作繁琐
- 大部分时间都在学习不同工具的使用户环境,如果能统一就好了
- Metasploit能解决以上问题吗(一定程度
二、Metasploit 简介
-
目前最流行、最强大、最具扩展性的渗透测试平台软件
-
基于 Metasploit 进行渗透测试和漏洞分析的流程和方法
-
2003 年由 HD More 发布第一版,2007 年用 ruby 语言编写
-
框架继承了渗透测试标准(PETS)标准
-
一定程度上统一了渗透测试研究的工作环境
-
新的攻击代码可以比较容易的加入框架
-
开发活跃版本更新频繁
-
早期版本基于社区力量维护,被 Rapid 7 收购后大枣出其商业版本产品
-
目前分化为四个版本,社区版依然十分活跃
-
HD More说:为 Metasploit 写书是种自虐
-
Metasploit 默认集成在 kali linux 中
-
使用 postgresql 数据库存储数据
-
早期版本需要先启动数据库再启动 msf
三、Metasploit 架构
Rex
- 基本功能库,用于完成日常基本任务,无需人工手动编码实现
- 处理 socket 连接诶访问、协议应答(http/SSL/SMB 等)
- 编码转换(XOR、Base64、Unicode)
Msf::Core
- 提供 Metasploit的核心基本 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 而得名
技术功能模块(不是流程模块)
Auxiliary:
执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有 payload 的 exploit 模块)
Encoders:
对 payload 进行加密,躲避 AV 检查的模块
Nops:
提高 paylaod 稳定性及维持大小
四、 基本使用
1. 使用前先升级:msfupdate
- msfcli 使用接口,现在已经更新 msfconsole -x
- msfconsole 使用接口
最流行的用户接口
几乎可以使用全部 msf 功能
控制台命令支持 TAB 自动补全
支持外部命令的执行(系统命令等)
[sudo] password for kali-2:
┌──(root