1.Metasploit 渗透测试框架介绍

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目录结构

进入到Metasploit所在目录


data:Metasploit 使用的可编辑文件
documentation:为框架提供文档
lib:框架代码库
modules:实际的 MSF 模块
plugins:可以在运行时加载的插件
scripts:Meterpreter 和其他脚本
tools:各种有用的命令行工具

2.Metasploitable2-Linux 靶机系统介绍

Metasploitable2 安装
直接解压压缩包:metasploitable-linux-2.0.0.zip ,我压缩到了:
E:\workstation\metasploitable-linux-2.0.0 。大家选择自己的目录就可以了。
使用 VMware 打开新的虚拟机 然后就正常的步骤安装即可
开启虚拟机
使用普通用户:msfadmin 密码: msfadmin 进行登录
修改 root 用户密码(输入密码的时候是不显示的)

先输入的是msfadmin,后两次分别是密码和确认密码
切换到root用户

下面配置靶机的ip地址以及网关子网掩码等
目录是/etc/network/interfaces

address是ip地址,这里我们设定的ip地址要跟kali在同一个网段,不然没办法通信,netmask子网掩码,gateway网关
设置完成后esc 然后shift+z+z快速保存退出的快捷键
重启下网络
看一眼当前的ip地址


这个时候我们最好能做一个快照,以便后续对操作系统造成破坏

3.Metasploit 基本使用方法

Metasploit 程序需要使用 Postgresql 数据库。
Postgresql 概述:
PostgreSQL 是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的 POSTGRES 4.2 版本为基础的对象关系型数据库管理系统。
官网:https://www.postgresql.org/

PostgreSQL 和 MySQL 数据的应用场景区别:
从应用场景来说,PostgreSQL 更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而MySQL 更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景

手动启动数据库并且设置成开机自启动

启动metasploit

启动完成后会有一些统计信息,比如说版本号,有多少个 exploits,多少个 payloads 等
help帮助手册


通过 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(目标ip地址)

我们成功连接到服务器时,可以提交一个get请求,获取服务器的版本号

2.模块相关命令的show使用方法

show 命令用的很多。
“show”命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post,plugins, info, options
列出 metasploit 框架中的所有渗透攻击模块 exploits

show exploits

命令行出现的数据较多所以比较耗费时间

列出 metasploit 框架中的所有攻击载荷

show payloads

列出 metasploit 框架中的所有辅助攻击载荷

show auxiliary

3.模块相关的命令 search 搜索的使用方法

当你使用 msfconsole 的时候,你会用到各种漏洞模块、各种插件等等。所以 search 搜索命令就很重要

输入 search –h 会列出 search 命令的一些选项

例如要找mysql相关的漏洞

当你想要找指定的漏洞名字的时候非常方便

查询名字中带有mysql的漏洞


.# Name Disclosure Date Rank Check Description
编号 名称 披露日期 排名 检查 说明
每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个 Rank 字段。
用户可以基于 Rank 对漏洞利用模块进行搜索,分类以及排序
Rank 按照可靠性降序排列:

1.excellent 漏洞利用程序绝对不会使目标服务崩溃,就像 SQL 注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。

2.great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址。

3.good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的“常见情况”(桌面应用程序的Windows 7,服务器的 2012 等)

4.normal 该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测。

5.average 该漏洞利用程序不可靠或者难以利用。

6.low 对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于 50% 的利用成功率)

7.manual 该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。

通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用 path:命令查找在该路径下的所有模块。如果我要 mysql 路径下的所有 mysql 利用模块,那么就输入

缩小查询范围
关键字:platform
作用: Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞
有时候我们会搜索到大量的模块,那么可以用 platform:命令来缩小查询范围。使用 platform 命令后,所查询的结果会列出 rank 比较高的模块。如果我要查找 mysql 的漏洞,那么输入

通过类型进行查找
这里要使用到 type:命令。
type : 特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)
要搜索 exploit 模块,那么就输

search type:exploit

联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找 mysql 的 exploit 相关漏洞。那么输入
MySQL yaSSL CertDecoder::GetName Buffer Overflow 的意思是:
mysql yassl certdecoder::getname 缓冲区溢出漏洞

根据 CVE 搜索 exploit 相关模块
CVE 概述:CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。
CVE 就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。
使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得 CVE 成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有 CVE 名称,你就可以快速地在任何其它 CVE 兼容的数据库中找到相应修补的信息,解决安全问题

2017 年 GitHub 上公开了 CVE-2017-8464 漏洞的 metasploit-framework 利用模块。利用此模块在Windows 10 x64 (Build 14393)版本上测试有效
下载链接:
https://github.com/ykoster/metasploit-framework/blob/b669b9fb81efdec4f59177116ee9524d71527d37/documentation/modules/exploit/windows/fileformat/cve_2017_8464_lnk_rce.md
现在此模块已经加入 metasploit 中了。
通过执行 cve_2017_8464_lnk_rce.rb 模块,将生成大量的.lnk 文件(对应盘符从 D 到 Z)和要加载的.dll 文件(后门文件)。将所有样本文件拷到 U 盘里,然后将 U 盘插到 Windows7 机器上,默认自动执行
查找:CVE-2017-8464 远程命令执行漏洞

4.模块相关命令use的使用

use 使用参数。如你要使用到某个模块,就要使用到 use 命令
语法:use 模块的名字
实战背景:
2008 年微软爆出 ms08_067 漏洞,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击
先查找出自己想要的 ms08_067 漏洞模块

装载一个渗透攻击模块

退出当前调用的模块

5.模块相关的命令info使用方法

info :显示模块的相关信息。
方法 1:info 模块名称

方法 2:use 装载模块后直接使用 info

从弹出的消息中,需要重点关注的内容是:
可用目标,就是查看可以攻击哪些操作系统

Basic options: 调用漏洞需要的相关参数

漏洞描述和执行过程

参考文档


使用 show 命令查看模块的相关信息

查看可以攻击哪些系统

设置 RHOSTS 参数,指定攻击的目标机器

配置好后输入exploit或run就可以执行该模块

4.实战-使用 msf 渗透攻击 Win7 主机并远程执行命令

通过 msf 模块获取 Win7 主机远程 shell
Win7 旗舰版 SP1-64 位系统镜像(内有激活工具):
链接:https://pan.baidu.com/s/1FueCa5Z9WUBbOWvL-Djwqw
提取码:root

Win7 旗舰版 SP1-64 位免安装版(已激活)密码:123456,下载解压后用 VMware 直接打开即可
链接:https://pan.baidu.com/s/1ISsGGZ-S0XR06w98dHZf1g
提取码:0khh

模块使用流程如下

我们先扫描目标是否存在 ms17-010 漏洞


使用 use 命令选中这个模块,查看模块需要配置的信息

设定目标主机
开启我们的win7靶机查看ip

目标看起来易受攻击,也就表示存在相关漏洞
查找攻击模块

第二个跟我们的目标信息最为匹配,我们加载它

Eternalblue(永恒之蓝)

可以看到这个模块只有一个 target,所以默认就选择这个目标系统。不需要手动设置

找一个 payload,获取 shell 远程连接权限后,进行远程执行命令,由于模块加载的时候默认指定了一个 payload

如果不想使用默认指定的 payload,可以自己找一个 payload

payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回 shell,也可以进行程序注入等
我们挑选一个反弹 shell 的 payloads

设置一下payload监听地址,然后开始执行

如果等待没有出现 shell 提示符可以敲一下回车
直接执行的话会获得目标主机的 SEHLL
使用 DOS 命令创建用户

显示乱码但是已经添加成功
拓展:解决乱码问题(乱码是因为 windows 和 linux 的编码不一样导致的)

用户创建成功,查看拿到的用户权限

关闭链接 Ctrl+c

通过会话进行连接目标机
-j 表示后台执行 渗透目标完成后会创建一个 session 我们可以通过 session 连接目标主机


通过id进入会话

退出会话保存在后台

根据id结束会话

5.实战-使用 msf 扫描靶机上 mysql 服务的空密码

搜索mysql_login模块

加载模块,查看模块配置

我们配置用户名root,然后设置BLANK_PASSWORD(为所有用户尝试空密码),最后设置目标主机ip地址,然后执行exploit

列出数据库中的所有凭证

将扫描的结果导出 Metasploit 与导入另一台机器的 Metasploit 中

数据库后端命令:
db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)

将前面扫描 mysql 数据库空密码信息导出
注:导出只支持两种格式:xml 和 pwdump

保存后我们退出,相当于重置metasploit,然后再对上次我们导出的文件进行加载

数据库是空的,我们导入上次的数据

hosts命令有多个选项,可以通过hosts -h来查看

其中最重要的是-c,可以查看指定的列,有点像sql中的select

删除指定主机

我们还可以将namp的扫描结果生成一个文件导入到metasploit中来进行扫描

查看数据库的主机都开了哪些服务

显示指定主机的服务信息


扩展:
在 msf 命令提示符下输入 help 后,显示的命令列表和作用描述。
msf6 > help

核心命令

? 帮助菜单
banner 显示一个 metasploit 横幅
cd 更改当前的工作目录
color 切换颜色
connect 连接与主机通信
exit 退出控制台
get 获取特定于上下文的变量的值
getg 获取全局变量的值
grep grep 另一个命令的输出 如: grep creds help
help 帮助菜单
history 显示命令历史
irb 进入 irb 脚本模式
load 加载一个框架插件
quit 退出控制台
route 通过会话路由流量
save 保存活动的数据存储
sessions 转储会话列表并显示有关会话的信息
set 将特定于上下文的变量设置为一个值
setg 将全局变量设置为一个值
sleep 在指定的秒数内不做任何事情
spool 将控制台输出写入文件以及屏幕
threads 线程查看和操作后台线程
unload 卸载框架插件
unset 取消设置一个或多个特定于上下文的变量
unsetg 取消设置一个或多个全局变量
version 显示框架和控制台库版本号

模块命令

advanced 显示一个或多个模块的高级选项
back 从当前上下文返回
edit 使用首选编辑器编辑当前模块
info 显示有关一个或多个模块的信息
loadpath 路径从路径搜索并加载模块
options 显示全局选项或一个或多个模块
popm 将最新的模块从堆栈中弹出并使其处于活动状态
previous 将之前加载的模块设置为当前模块
pushm 将活动或模块列表推入模块堆栈
reload_all 从所有定义的模块路径重新加载所有模块
search 搜索模块名称和描述
show 显示给定类型的模块或所有模块
use 按名称选择模块

工作命令

handler 作为作业启动负载处理程序
jobs 显示和管理作业
kill 杀死一个工作
rename_job 重命名作业

资源脚本命令

makerc 保存从开始到文件输入的命令
resource 运行存储在文件中的命令

数据库后端命令

db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行 nmap 并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换

凭证后端命令

creds 列出数据库中的所有凭据

兄弟们,kali一开,全世界都是你的

Metasploit 渗透测试框架的基本使用(扩展:利用永恒之蓝漏洞攻击WIN7靶机)相关推荐

  1. Metasploit(MSF)实战_永恒之蓝漏洞拿下win7靶机

    声明:本文仅做学习交流探讨之用,切勿用于违法用途,请遵循<中华人民共和国网络安全法>,共同维护清朗的网络空间 一.Metasploit(MSF)简介 Metasploit与2003年由H. ...

  2. kali使用msf 通过ms17_010_eternalblue(永恒之蓝)漏洞攻击win7测试 及乱码问题解决

    两台Vmware虚拟机: Kali Win7 64位: (主机)kali的ip是 192.168.0.119 (靶机)win7的ip是192.168.0.109 使用nmap端口扫描工具,扫描一下目标 ...

  3. Metasploit渗透测试框架简介

    Metasploit渗透测试框架介绍 Metasploit是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.当H.D ...

  4. Metasploit渗透测试框架

    Metasploit渗透测试框架 渗透测试是一类有目的性的.针对目标机构计算机系统安全的监测评估方法.渗透测试可以发现系统的漏洞和安全机制方面的隐患,并以此进行渗透攻击来取得目标计算机的控制权.通过渗 ...

  5. 使用ms17-010永恒之蓝漏洞对win7进行渗透

    使用ms17-010永恒之蓝漏洞对win7进行渗透 一.实验目的: 利用ms17-010永恒之蓝漏洞对win7进行渗透: 利用enable_rdp脚本开启远程桌面并创建用户: 关闭主机UAC防护策略并 ...

  6. Metasploit渗透测试框架基础

    Metasploit 简介: Metaspolit是一个渗透测试框架,属于框架,是模块化组成的,是一个免费的可下的框架,通过它可以很容易的获取.开发并对计算机软件漏洞实现 metaspliot时候,计 ...

  7. Metasploit 渗透测试手册第三版 第三章 服务端漏洞利用(翻译)

    第三章 服务端漏洞利用 在本章中,我们将学习以下内容 1.攻击Linux服务器 2.SQL注入攻击 3.shell类型 4.攻击Windows服务器 5.利用公用服务 6.MS17-010 永恒之蓝 ...

  8. 微软EternalBlue永恒之蓝漏洞攻击测试

    版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/7939 ...

  9. Metasploit(MSF)渗透测试框架使用教程及基本命令

    第一章 Metasploit渗透框架介绍及体系框架 1.1 Metasploit 渗透测试框架介绍   Metasploit 是一个渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一.使您能够 ...

最新文章

  1. boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
  2. mac下安装nginx
  3. Dojo API略解续
  4. C# 多线程 与 委托
  5. 解决:Unable to access jarfile xxx-0.0.1-SNAPSHOT.jar
  6. UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
  7. 使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK
  8. msyql 1062
  9. flutter offset_用Flutter实现58App的首页
  10. 辨异 —— 单词(同义词)的辨异
  11. macOS的Fn键实用技巧分享
  12. 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
  13. MATLAB/Simulink搭建电动汽车整车七自由度模型
  14. mysql中MVCC多版本并发控制原理的详解
  15. CBR,VBR,ABR介绍
  16. 查看硬盘序列号的方法 和查看设备序列号的方法
  17. 上海 政府性 常用网站
  18. python实现简单图书管理系统
  19. 软件测试之bug管理
  20. 蓝月传奇怎么显示无服务器,关于此次蓝月传奇突然关闭的说明!

热门文章

  1. 元宇宙六大技术全景图
  2. 神一样的美国高中作文比喻集锦
  3. mybatis:### The error may involve defaultParameterMap### The error occurred while setting parameter
  4. 美团java一面面经
  5. Traffic Manager
  6. [Transformer]A Survey on Vision Transformer
  7. parameter缩略语_parameter的缩写
  8. 写得真励志,深度发展,成为不可替代的技术员
  9. 全球十大外汇黄金交易平台排名
  10. mpt3工具箱学习记录