目前最流行,最强大,最具扩展性的渗透测试平台软件

基于metasploit进行渗透测试和漏洞分析的流程和方法

框架集成了渗透测试标准(PETS)思想

一定程度上统一了渗透测试和漏洞研究的工作环境

新的攻击代码可以比较容易加入框架

开发活跃版本更新平率(每周)

使用postgresql数据库存储数据

MSF架构

Rex
    基本功能库,用于完成日常基本任务,无需人工手动编码实现
    处理 socket 连接诶访问、协议应答(http/SSL/SMB 等)
    编码转换(XOR、Base64、Unicode)

Msf::Core
    提供 Metasploit的核心基本 API,是框架的核心能力实现库

Msf::Base

提供友好的的 API 接口,便于模块调用的库

Plugin 插件
    连接和调用外部扩展功能和系统

模块
    /usr/share/metasploit-framework/modules/

技术功能模块(不是流程模块)
    Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
    Payload:成功 exploit 之后,真正在目标系统执行的代码或指令
        shellcode 或系统命令
        三种 payload:/usr/share/metasploit-framework/modules/payloads/
        Single:all-in-one
        Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
        stages:利用 stager 建立的连接下载的后续payload
        stager、stages 都有多种类型,适用于不同场景
        shellcode 是 payload 的一种,由于期间里正向/反向 shell 而得名

技术功能模块(不是流程模块)
    Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有 payload 的 exploit 模块)
    Encoders:对 payload 进行加密,躲避 AV 检查的模块
    Nops:提高 paylaod 稳定性及维持大小

/etc/init.d/postgresql start(启动数据库)

msfdb init(初始化msf数据库)

msfconsole-----使用接口

最流行的用户接口

几乎可以使用全部 msf 功能

控制台命令支持 TAB 自动补全

支持外部命令的执行(系统命令等)

db_status------查看数据库连接是否正常

很喜欢的横幅

help

核心命令
=============

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

模块命令
===============

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

工作指令
============

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

资源脚本命令
========================

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

数据库后端命令
=========================

analyze                          分析有关特定地址或地址范围的数据库信息
    db_connect                    连接到现有数据服务
    db_disconnect               断开与当前数据服务的连接
    db_export                      导出包含数据库内容的文件
    db_import                      导入扫描结果文件(将自动检测文件类型)
    db_nmap                        执行nmap并自动记录输出
    db_rebuild_cache            重建数据库存储的模块高速缓存
    db_remove                     删除已保存的数据服务条目
    db_save                         将当前数据服务连接保存为启动时重新连接的默认值
    db_status                        显示当前数据服务状态
    hosts                              列出数据库中的所有主机
    loot                               列出数据库中的所有战利品
    notes                            列出数据库中的所有注释
    services                        列出数据库中的所有服务
    vulns                             列出数据库中的所有漏洞
    workspace                    在数据库工作区之间切换

凭据后端命令
============================

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

开发人员命令
==================

edit                              使用首选编辑器编辑当前模块或文件
    irb                                 在当前上下文中打开交互式Ruby shell
    log                                如果可能的话,将frame.log分页显示到最后
    pry                               在当前模块或框架上打开Pry调试器
    reload_lib                     从指定路径重新加载Ruby库文件

数据库操作

db_connect            连接数据库

db_nmap                nmap扫描工具

db_export               导出数据库

db_remove              移除数据库

db_status                数据库运行状态

db_disconnect         断开数据库

db_import                导入数据库

db_rebuild_cache    重新构建数据库缓存

db_save                  保存数据

扫描主机

hosts查看扫描记录

hosts 查看所有历史主机

查看开放的主机,并且含有1.1的主机

connect功能


用法:connect [options] <host> <port>

与主机通信,类似于通过netcat进行交互,利用任何已配置的会话枢轴

选项:
     -C  尝试将CRLF用于EOL序列。
     -P  指定源端口。
     -S  指定源地址。
     -c  指定要使用的Comm。
     -h  帮助信息。
     -i   发送文件的内容。
     -p  要使用的代理列表。
     -s  使用SSL连接。
     -u  切换到UDP套接字。
     -w  指定连接超时。
     -z  只是尝试连接,然后返回。

show命令(如果进入到子目录下,那么show的只是那个模块的,不是全局的)

show encoders模块

show nops模块

msf5 > help search搜索功能(可以使用多个参数搜索)

选项:
  -h                     显示此帮助信息
  -o <file>            以csv格式将输出发送到文件
  -S <string>       行筛选器的搜索字符串

关键词:
  aka                             : 具有匹配的AKA名称的模块
  author                        :作者撰写的模块
  arch                           :影响此体系结构的模块
  bid                             :具有匹配的Bugtraq ID的模块
  cve                            :具有匹配CVE ID的模块
  edb                            :具有匹配的Exploit-DB ID的模块
  check                         :支持'check'方法的模块
  dete                           :具有匹配披露日期的模块
  description                  :具有匹配描述的模块
  full_name                   :具有匹配全名的模块
  mod_time                  :具有匹配修改日期的模块
  name                         :具有匹配描述性名称的模块
  path                           :具有匹配路径的模块
  platform                     :影响该平台的模块
  port                            :具有匹配端口的模块
  rank                            :具有匹配等级的模块(可以是描述性的(例如:'good')或带有比较运算符的数字(例如:'gte400'))
  ref                               :具有匹配ref的模块
  reference                    :具有匹配引用的模块
  target                          :影响此目标的模块
  type                             :特定类型的模块(漏洞利用程序,有效负载,辅助,编码器,规避,邮政或nop)

实例:

搜索影响平台为windows系统端口为80,危险等级为good的相关的

查找漏洞,use 进入此漏洞

info---查看详细信息

show options---查看需要配置的参数

show targets---查看适用于当前漏洞的targets

show payloads-----查看适用于当前漏洞的payload

show advanced----查看适用于当前漏洞的高级参数

show evasion------查看适用于当前漏洞的混淆模块

当前还可以show这些模块

set RHOST 192.168.1.9---设置好要攻击的目标 set 参数

搜索mysql_login模块

show options查看需要填写的参数信息

set 好需要设置的参数

creds 查看扫描结果

把扫描结果导出

利用ms08-067漏洞攻击

set 好需要的配置

配置好payload

确认信息配置正确

攻击成功后,执行session

查看进行中的会话

session -i 目标id号

load模块----调用外部的插件

load openvas

测试openvas

卸载插件

loadpath

也可以调用自己的插件

route--路由功能(通过指定session路由流量)

resource----资源文件

友情链接 http://www.cnblogs.com/klionsec

http://www.cnblogs.com/l0cm

http://www.cnblogs.com/Anonyaptxxx

http://www.feiyusafe.cn

kali linux之Msf的更多相关文章

  1. kali linux之msf客户端渗透

    在无法通过网络边界的情况下转而攻击客户端----进行社会工程学攻击,进而渗透线上业务网络 含有漏洞利用代码的web站点--利用客户端漏洞 含有漏洞利用代码的doc,pdf等文档----诱使被害者执行p ...

  2. kali linux之msf后渗透阶段

    已经获得目标操作系统控制权后扩大战果 提权 信息收集 渗透内网 永久后门 基于已有session扩大战果 绕过UAC限制 use exploit/windows/local/ask set sessi ...

  3. kali linux更新msf 报错Unable to find a spec satisfying metasploit-framework (>= 0) in the set. Perhaps the解决办法

    首先换更新源 :vim  /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free co ...

  4. kali linux之msf信息收集

    nmap扫描 Auxiliary 扫描模块 目前有557个扫描方式

  5. KALI LINUX系统初始化配置

    1.Kali Linux安装VirtualBox增强功能 VirtualBox增强功能介绍:物理机与虚拟机之间的文件共享.物理机与虚拟机之间的剪切板共享.虚拟机的direct3D支持,这样虚拟机窗口就 ...

  6. MSF初体验 - kali linux 入侵XP系统

    最近做某安全竞赛平台的比赛,真正开始接触Metasploit这一渗透神器,同时也是装逼神器(2333-.),下面记录一下初步使用Metasploit的过程.首先在百度百科摘录了一段关于Metasplo ...

  7. Kali Linux渗透测试实战 1.2 环境安装及初始化

    1.2 环境安装及初始化 目录(?)[-] 环境安装及初始化 下载映像 安装虚拟机 安装Kali Linux 安装中文输入法 安装VirtualBox增强工具 配置共享目录和剪贴板 运行 Metasp ...

  8. Kali Linux渗透基础知识整理(三):漏洞利用

    漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...

  9. kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

    kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...

随机推荐

  1. git 转移

    git push --mirror https://github.com/cloud-pi/drbd-docker-plugin.git

  2. Linux实战教学笔记38:企业级Nginx Web服务优化实战(下)

    四,Nginx站点目录及文件URL访问控制 4.1 根据扩展名限制程序和文件访问 Web2.0时代,绝大多数网站都是以用户为中心多的,例如:bbs,blog,sns产品,这几个产品都有一个共同特点,就 ...

  3. java算法 蓝桥杯 文化之旅

    问题描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能有相同的文化.不同文化 ...

  4. MySQL多表查询回顾

    ----------------------siwuxie095 MySQL 多表查询回顾 以客户和联系人为例(一对多) 1.内连接 /*内连接写法一*/ select * from t_custom ...

  5. winfrom在图片上实现绘制

    在控件加载入图片的基础上进行绘制内容 添加文字 首先就是要确定输入的文字,还有文字的样式. 文字的样式用到了FontDialog控件,获取文字呢,就放个textbox就可以了.如果在输入文字的显示展示 ...

  6. g2o 图优化

    http://www.cnblogs.com/gaoxiang12/p/5244828.html 扩展里面csparse

  7. ui界面使用 DialogMonitorOPS 问题

    -- 是类主要是实现对界面上元素的处理.实现效果的处理 struct gt_cl_hp_uiName ( fn help = ( gt_10000_help = " 类主要是实现对界面上元素 ...

  8. springboot之JdbcTemplate单数据源使用

    本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...

  9. YII2 rules 规则验证器

    [['code','name'],'trim'], ['code','string','max'=>4], [['code','name','status'], 'required'], ['e ...

  10. RenderPage()加载局部页和传递数据

    System.Web.WebPages.WebPageBase类的方法public override HelperResult RenderPage(string path, params objec ...