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

 

posted @ 2019-03-06 18:13  Hydraxx  阅读(8736)  评论(0编辑  收藏  举报