admin管理员组文章数量:1620394
本节所讲内容
1、 Metasploit渗透测试框架介绍
2、 Metasploit基本使用方法
3、 实战-使用msf渗透攻击Win7主机并远程执行命令
4、 Metasploitable2-Linux靶机系统介绍
Metasploit渗透测试框架介绍
1、 Metasploit简介
Metasploit 是一个渗透测试平台,使您能够查找,利用和验证漏洞。该平台包括Metasploit框架及其商业对手,如Metasploit Pro。
Metasploit是一个免费的、可下载的框架,通过它可以很容易对计算机软件漏洞实施攻
击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发Metasploit
时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以
使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已
公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所
有Metasploit 用户
Metasploit的设计初衷是打造成一个攻击工具开发平台.
访问官网: https://www.metasploit/
我们常用的版本为Framework因为该版本为开源版本,拥有的功能满足于我们的开发和学习,
商业版本是可以免费体验14天,同学们学习的差不多了以后可以再去体验商业版本。主要是体验商
业版的报告功能,和WEB界面。
1、基础库: metasploit基础库文件位于源码根目录路径下的libraries目录中,包括
Rex,framework-core和framework-base三部分。
Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服
务端实现、日志子系统、渗透攻击支持例程、PostgreSQL 以及 MySQL数据库支持等;
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;
framework-base 库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方
面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;
2、模块:模块组织按照不同的用途分为6种类型的模块(Modules):
分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块
(payloads)、编码器模块(Encoders)、空指令模块(Nops)。
注: payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等
3、插件:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现
有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。
4、接口∶包括msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面
以及msfapi远程调用接口。
5、功能程序: metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员
快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和
msfvenom可以将攻击载荷封装为可执行文件、C语言、JavaScript语言等多种形式,并可以进行各
种类型的编码。
Metasploit目录结构
┌──(root㉿root)-[~/桌面]
└─# cd /usr/share/metasploit-framework
data: Metasploit 使用的可编辑文件
documentation: 为框架提供文档
lib: 框架代码库
modules: 实际的MSF模块
plugins: 可以在运行时加载的插件
scripts: Meterpreter 和其他脚本
tools: 各种有用的命令行工具
Metasploit基本使用方法
Metasploit基本命令
Metasploit程序需要使用Postgresql数据库。
Postgresql概述:
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以
加州大学计算机系开发的POSTGRES 4.2版本为基础的对象关系型数据库管理系统。
官网地址 PostgreSQL: The world's most advanced open source database
注: PostgreSQL:世界上最先进的开源关系数据库
扩展: PostgreSQL和 MySQL数据的应用场景区别:
从应用场景来说,PostgreSQL更加适合严格的企业应用场景(比如金融、电信、ERP、
CRM),而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景
kali启动postgresql数据库
┌──(root㉿root)-[~/桌面]
└─# systemctl start postgresql
设置开机自启动
┌──(root㉿root)-[~/桌面]
└─# systemctl enable postgresql
启动metasploit 或者终端输入 msfconsole
注: 通过help查看帮助,可以对msf有个整体认识,可以看到msf相关命令可以分成以下型:
Core Commands #核心命令
Module Commands #模块命令
Job Commands #后台任务命令
Resource Script Commands #资源脚本命令
Database Backend Commands #数据库后端命令
Credentials Backend Commands #证书/凭证后端命令
Developer Commands #开发人员命令
我们下面讲解一下我们常用的命令。
1、核心命令中的connect命令
connect命令主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是
“connect 192.168.1.1 80"”
查看connect 命令参数:
连接目标80端口
2、模块相关的命令show使用方法show命令用的很多。
"show”命令的有效参数是: all, encoders, nops, exploits,payloads, auxiliary, post,plugins, info, optionse
操作步骤 show exploits #列出metasploit框架中的所有渗透攻击模块。
msf5 > show payloads #列出metasploit框架中的所有攻击载荷。
msf5 > show auxiliary #列出metasploit框架中的所有辅助攻击载荷。
3、模块相关的命令search搜索的使用方法
当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search搜索命令
就很重要。
当 你输入search -h 会列出search命令的一些选项。
例1: 通过name关键字进行查找(这里需要用到name:命令。
msf5 > search mysql # search 后直接跟要查找内容,查得很广泛。只有当你对漏洞名字
很描述很清楚时,使用这个方法
例: 先查找出自己想要的ms08_067漏洞模块。
语法: search keywords 参数:关键字
例如 search name:mysql #查找mysql数据库的漏洞
每列的含意是:
Name Disclosure Date Rank Check Descriptione
名称 披露日期 排名 检查说明
Disclosure [dis'klouzo(r)] 揭露;透露;公开; rank [rek]等级,rank通常用来描
述漏洞级别
每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个Rank字段。用户可以基
于Rank对漏洞利用模块进行搜索,分类以及排序。
Rank按照可靠性降序排列:
excellent 漏洞利用程序绝对不会使目标服务崩溃,就像SQL注入、命令执行、远程文件包
含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。
great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目
标服务的版本检查之后可以返回到一个特定的返回地址。
good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的“常见情况”(桌面应用程序
的Windows 7,服务器的2012等)
normal 该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检
测。
eaverage 该漏洞利用程序不可靠或者难以利用。
low 对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于50%的利用成功率)
manual 该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在
用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。
例2:通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用path:命令查找在
该路径下的所有模块。如果我要mysql路径下的所有mysql利用模块,那么就输入:
例3:缩小查询范围
关键字:platform
作用: Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞
有时候我们会搜索到大量的模块,那么可以用platform:命令来缩小查询范围。使用platform命
后,所杳询的结里会列出rank 较高的模块。如里我要杳找mvsql的漏洞.那就输入·
例4:通过类型进行查找这里要使用到 type:命令。
type:特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)要搜索exploit
模块,那么就输入:
msf5 > search type:exploit
例5:联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找mysql的exploit相关漏洞。那么输入
msf5 > search name:mysql type:exploit
例6:根据CVE搜索exploit相关模块
CVE概述:CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露
CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公
共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中
共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果
在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据
库中找到相应修补的信息解决安全问题。
2017年GitHub上公开了CVE-2017-8464漏洞的metasploit-framework利用模块。利用此模块
在Windows 10 x64 (Build 14393)版本上测试有效。
现在此模块已经加入metasploit中了。
通过执行cve_2017_8464_Ink_rce.rb模块,将生成大量的.Ink文件(对应盘符从D到Z)和要加载
的.dll 文件(后门文件)。将所有样本文件拷到U盘里,然后将U盘插到Windows7机器上,默认自动
执行:
从而可以让我们可以远程执行命令。
查找:CVE-2017-8464远程命令执行漏洞
查找2018年linux相关的漏洞模块
search cve:2018 name:linux
搜索参数可以组合使用,可以更精准的查询到对应的模块。
模块相关的命令use的使用方法
use使用参数。如你要使用到某个模块,就要使用到use命令
语法: use 模块的名字
实战背景:
2008年微软爆出ms08 067漏洞,如果用户在受影响的系统上收到特制的RPC请求,则该漏
洞可能允许远程执行代码。在Microsoft Windows 2000、Windows XP 和Windows Server 2003系
统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。
1)、先查找出自己想要的ms08_067漏洞模块。
以下3个种搜索方式,找出来的结果一样
msf5 > search ms08_067 #使用下划线
msf5 > search ms08-067 #使用减号
msf5 > search MS08-067 #使用大写字母MS
metasploit支持模糊查找,不区分大小写,这样大家查找时更方便
2)、装载一个渗透攻击模块
msf6 > use exploit/windows/smb/ms08_067_netapi
我们可以看到使用use装载模块后我们的bash提示符会变成对应的模块信息。稍后我们使用这
个模块进行攻击。
back 退出当前调用模块
模块相关的命令info的使用方法
info :显示模块的相关信息。
方法1: info模块名称
msf6 > info exploit/windows/smb/ms08_067_netapi
方法2: use装载模块后直接使用info
msf6 > use exploit/windows/smb/ms08_067_netapi
1、可用目标漏洞
2、基本选项:
3、 漏洞描述与执行过程
4、参考文档
方法2:使用show命令查看模块的相关信息
例: show options
例: show targets
设置目标模块34
设置ip
取消ip设置
配置好了之后我们输入 exploit 或 run 就可以执行该模块。
msf6 exploit(windows/smb/ms08_067_netapi)> back #使用back即可退出装载的模块
注:不要使用exit,exit 会直接退出Metasploit程序
4. 实战-使用msf 渗透攻击Win7主机并远程执行命令
环境介绍
永恒之蓝概述:
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络
攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高
权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧
洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解
密恢复文件。
注: windows7是2009年发布。
我们这节课利用win7的经典漏洞“永恒之蓝”。
官方描述:
Microsoft 安全公告 MS17-010 - 严重 | Microsoft Docs
永恒之蓝相关病毒,其实是利用了微软的MS17-010漏洞。MS17-010是Windows系统一个底
层服务的漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要
开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意
程序
通过msf模块获取Win7主机远程shell
链接:https://pan.baidu/s/1Y_nA5Gu4VHonbj6tQ-Hbnw
提取码:s2v7
注意事项: 把windows 7的防火墙关闭
总结使用metasploit攻击的步骤:
1、查找 CVE公布的漏洞
2、查找对应的exploit模块
3、配置模块参数
4、添加payload后门
5、执行exploit开始攻击
Metasploitable2-Linux靶机系统介绍
1、Metasploitable2靶机介绍
Metasploitable2虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和
演示常见漏洞攻击。版本2已经可以下载,并且比上一个版本包含更多可利用的安全漏洞。这个版
本的虚拟系统兼容VMware,VirtualBox和其他虚拟平台。
2、Metasploitable2安装
安装地址Metasploitable download | SourceForge
直接解压到除c盘以外 其他盘
本文标签: 框架测试Metasploit
版权声明:本文标题:Metasploit渗透测试框架的基本使用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728821561a1175370.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论