Metasploit
目前最流行、最强大、最具拓展性的渗透测试平台软件
基于Metasploit进行渗透测试和漏洞分析的流程和方法
2003年由HD More发布第一版,2007年用ruby重写
- 集成了渗透测试标准(PETS)思想
- 一定程度上统一了渗透测试和漏洞研究的工作环境
- 新的攻击代码可以比较容易的加入框架
开发活跃、版本更新频繁(每周)
- 早期版本基于社区力量维护,被Rapid7收购后打造出其商业版本产品
- 目前分化为四个版本,社区版本依然十分活跃
- HD More说:为Metasploit写书是种自虐- -
MSF架构
- Rex
- 基本功能库,用于完成日常基本任务无需人工手动编码实现
- 处理Socket连接访问、协议应答(http/SSL/SMB等)
- 编码转换(XOR、Base64、Unicode)
- MSf::Core
- 提供MSF的核心基本API、是框架的核心功能实现库
- MSF:Base
- 提供友好的API接口,便于模块调用的库
- Plugin插件
- 连接和调用外部扩展功能和系统(调用sqlmap、nessus、OpenVAS)
技术功能模块
/usr/share/metasploit-framework/modules/
Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法。
Payload:成功exploit之后,真正在目标系统执行的代码或指令
- Single:all in one,不需要依赖其它文件,大小比较大
- Stager:目标计算机内存有限时,先传输一个较小的payload用于建立连接
- Stages:利用stager建立的连接下载的后续payload
- Stager、stages都有多种类型,适用于不同场景
Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块。
Encoders:对payload进行加密
Nops:提高payload稳定性及维持大小
evasion:免杀0.0
msfconsole
Banner
color
connect
show
search
- search xxx,
- search name:mysql/path:scada/platform:aix/type:aux/author:aaron/cve:2020/可多条件同时搜索
search ms08_067
- use 0
- info
- show options/payloads/targes/advanced/evasion/missing(显示需要设置,但是还没设置的参数)
edit
check(大部分exploit没有)
back
- db_xxx
- db_connect -y /usr/share/metasploit-framework/config/database.yml(shell中msfdb init后才有这个文件)
- db_nmap:调用nmap,结果会保存进数据库
- hosts
- hosts 1.1.1.1
- hosts -u,只查看在线host
- host -c xxx,只查看xxx列
- host -S xxx,查看信息中包含xxx的host
- services
- services -S
- services -p 445或services -p 1-500
- services -c host,port 只显示host port 这两列
- services
- vulns
- 查看漏洞信息
- creds
- 查看密码相关信息
- loot
- 查看hash值
- db_export
- db_export -f xml /root/msfbak.xml
- db_import
- nmap -A192.168.0.12 -oX nmap.xml,nmap生成的xml也可以导入。
setg RHOSTS 1.1.1.1,全局设置RHOSTS变量为1.1.1.1
unsetg RHOSTS
save 保存当前配置
jobs/kill 0
sessions 查看建立的连接
- session -i xx,进入某个session
route 通过指定session路由流量
route add 10.1.1.0 255.255.255.0 4
,通往指定网段的流量由session4路由
irb (framework::version)
- 开发接口
resource
- 把要执行的msf命令写入文件中,
- msfconsole -r r.rc
- 然后resource -r 调用
load,unload
- 加载或释放外部模块,插件,比如nessus,openvas等等
loadpath,调用指定目录中的模块