zoukankan      html  css  js  c++  java
  • kali linux之Msf

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

    基于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

  • 相关阅读:
    快学Scala 第6章 对象
    Ch05 类
    Ch04 映射和元组
    Ch03 数组相关操作
    Ch02 控制结构和函数
    Ch01 基础
    28.创建对象两种方式、对象的方法、属性、获取属性值的两种方法、属性名含特殊符号时获取属性值的方法、添加属性及值的方法、删除属性的方法、使用方式、遍历对象属性for(var prop in obj)
    27.函数循环扩展作业、非常重要涉及编程思想(一天看一遍) 编程思想其实就是算法,、感悟、演算
    26 .闭包 、函数表达式在for中无法接受实时改变的变量、 在for里要将函数表达式封装成闭包才能接受实时变化的参数,并要将函数表达式return出去
    25.函数例题-预解析 作用域 、函数变量优先级、全局变量污染(直接在全局声明 、 函数里的变量没声明)但是函数里的变量没声明造成的全局变量污染有个前提,函数要被调用)
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/10485031.html
Copyright © 2011-2022 走看看