• metasploit 教程之基本参数和扫描


    前言

    首先我也不知道我目前的水平适不适合学习msf. 在了解一些msf之后,反正就是挺想学的.就写博记录一下.如有错误的地方,欢迎各位大佬指正. 感激不尽.!

    我理解的msf

    msf全程metasploit. 是一款渗透测试框架,他提供了一套标准流程.从信息收集,到系统入侵,等都有相应的模块供我们使用. msf有免费版和pro版. 我这里以免费版做笔记来学习,同时msf又提供给我们3种交互方式,一种命令行的模式,(msfconsole). 一种图形化界面方式,(我暂时还没接触).还有终端的方式, 由于我刚接触msf,后续所有图文均是由msfconsole完成.

    环境

    本次使用的是kali matesploit farework .

    基础知识

    一些简单的基本参数介绍. 

    数据库(未进入msf之前)

    msf启动的时候 是会自动创建连接数据库的, 如果数据库你认为的搞坏了或者启动不了, 可以试试手动启动. 在终端下使用msfdb(按两次tab补全) 则会罗列出一系列和msf数据库操作相对的指令.

    msfdb init  : 初始化数据库

    msfdb reinit :重新初始化数据库

    msfdb delete: 删除数据

    msfdb start: 查看数据库状态

    msfdb stop :手动暂停数据库

    msfdb run : 手动启动数据库

    msfdb使用的数据库Postgresql,默认侦听的端口为5432端口.

    全局控制台命令

    进入msf两种方式,①,终端输入 msfconsole.  ②. 点击菜单栏图标.

    进入之后, 输入  help 是查看所有命令(还可以直接键入 ? 功能一致,但存在一个小小bug,使用?来查看帮助文档 就没法使用Tab键来帮我们自动补全了,其他无异).  类似于--help,帮助文档之类的东西,其实操作系统的命令在当前状态下也是可以使用的.这在图形化界面是做不到的,我想着也是为什么都推荐使用命令行的原因之一吧.

    退出: exit. 

    启动的时候还可以指定参数, 例 msfconsole  -q  :静默启动. 和普通的启动最大的区别就是少了banner信息.

    msfconsole  -r : 代表的是后边可以跟一个资源文件

    msfconsole -v : 查看当前版本信息

    查看版本还可以直接键入virsion

    banner  : banner信息.  可以通过banner来切换banner信息,我无聊的时候就会切换banner玩.切换到我喜欢的为止.

     我比较喜欢的一个banner,有没有感觉到程序猿也可以很浪漫.~

    color   :  是否用颜色区分工作状态. (默认为true,可设置为false,auto,auto也是true),如果设置为false,下图中的红色则就没有了..

    connect   :可以做端口侦听, 也可以连接目标服务器指定端口.  

    show       : 按两次Tab键 可以查看各类模块, show all 则是列出所有模块,例我们查看exploits 则可以通过show exploits里具体可以使用的模块....

    search    : 搜索模块.可以根据文件名,文件类型等指定参数搜索. 具体参数 search -h

     use   :   后面跟模块地址 进入某个指定模块的上下文

    ----------------------与上面的db操作不同的是,下面的db操作需要进入msf之后------------------------------------------------

    db_    :  db_ 按两下Tab 则是进入msf后的数据库相关操作

    db_connect     :  数据库连接信息

    db_export        : 数据库导出

    db_nmap          : 启动nmap扫描,并把结果保存到数据库中

    db_remove       :  数据库删除

    db_status         : 数据库连接状态

    db_disconnect  : 数据库断开连接

    db_import         : 导入到数据库

    db_rebuild_cache : 把数据缓存到数据库,再次进行search搜索的时候就可以提高效率

    db_save            : 保存数据库

    hosts       : 扫描主机记录

    hosts[xx.xx.xx.xx]: 显示特定主机的记录

    hosts -u     : 显示是开机状态的主机

    hosts -c     : 后面跟上你想要看的列名,多个列之间逗号隔开

    hosts -S     : Search缩写, 用于关键字匹配(多字段搜索)

    hosts -p     : 端口搜索. 与-S不同的是只能精准匹配端口一项

    services       : 显示端口信息 (搜索规则和hosts等同),可以指定范围 例 : services -p 1-200

    模块参数

    info     : 查看模块说明 ,包括简介,版本,作者,作者联系方式,使用参数说明等.

     

    show      : 使用方法和全局模式一样. 按两次Tab键 

    show options: 参数配置, Required 为yes则是必需指定的参数, Current Setting 为默认参数. 

    show targets:  查看可以使用哪些targets.

    show payloads: 查看当前模块适用的payloads. 如果在某一个模块下进行show payloads 则显示当前模块下的payloads,并不是全局的payloads

    show advanced: 显示高级参数

    show missing: 查看哪些必需设置的参数没有设置

     edit     : 对当前脚本文件 进行二次编辑修改.

    check             : 检验漏洞存不存在. 不对漏洞进行利用.(部分模块适用)

     bank    : 返回到全局环境.

    run || exploit    : 运行模块

    creds    : 获取模块的结果

    vulns    : 获取扫描的漏洞信息

    loot       : 查看加密值  

    set        : 设置某一个参数

    unset    : 取消某个参数的设置

    setg       : 设置一个全局变量, 任何模块下都可使用. 例 setg  RHOSTS  凡是用到RHOSTS的模块 值自动填充为设置的值

    unsetg      : 取消设置的全局变量

    * 全局变量只对当前会话有效, exit之后再进入则不存在,想要长存的话可以使用save命令保存为配置文件. 下次启动的时候msf会自动加载配置文件.

    *取消保存后的全局变量 首先先进入msf,然后unsetg,然后在保存即可覆盖或者删除配置文件即可.

    xeploit -j     : 后台运行攻击

    jobs       : 显示后台攻击的结果

    sessions     : 当前已经建立的sisson 

     sessions -i [session id] : 进入建立的sisson

    load      : 挂载指定的插件

    unload       : 取消加载, 加载后的外部命令也相之消失

    loadpath       : 调用指定目录存放的模块,(一般对应自行开发的模块)

    route        : 添加路由(add)

    irb         : 开发环境

    resource       : 指定一个资源文件. 比如我们把一系列的操作命令放到一个文件里面 指定了资源文件后自动加载,有了资源文件也可以在启动的时候直接指定,msfconsole -r 

    Exploit模块

    exploit模块主要分为两类. Active(主动) 和Passive(被动的),  Active是攻击方发送攻击代码包被攻击方,其主要利用服务器端的漏洞进行攻击,而Passive则是利用社会工程学等一些其他方式诱使你访问恶意站点等,通过返回信息来攻击从而造成漏洞被利用.

    Meterpreter

    meterpreter是一种高级,动态,可扩展的payload.基于meterprtetr上下文利用更多的漏洞发起攻击, 提供后渗透阶段一站式操作界面.

    简单的来说 如果我们攻击拿到了一个系统的shell,后续想进行进一步操作 比如打开目标机摄像头,监视桌面,记录目标机键盘操作等.这些在没使用meterpreter之前都是非常麻烦的.

    但是我们用了meterpreter之后 将会非常简单. meterpreter是完全基于内存的DLL注入式payload(不会写入硬盘),服务端使用C语言编写./

    信息收集

    信息收集是渗透流程的第一步也是很关键的一步,他包括但不限于端口扫描.whois,子域名发现等.所有的扫描结果都会被保存到数据库,方便后续调用.

    信息收集要做大量的扫描.一般模块都会放置在

    # 模块地址
    use auxiliary/sacnner/    # 可以按两下Tab键 列出所有列表

    Nmap扫描

    db_nmap  -sV 192.168.1.110

    Auxiliary扫描

    /*
           *RHOSTS : 指定ip扫描.多个逗号隔开,可以是精确值,也可以是区间值,也可以是网段 
    
    */
    

      

    还可以使用udp扫描等.使用方法类似.先use进某一个模块 然后查看模块的info说明.然后查看参数show options . 

    密码嗅探和SANP扫描

    # 使用的密码嗅探模块 ,目前支持pop3.imap.ftp.http get 协议
    # 支持从pcap抓包文件中提取密码
    # 功能类似于dnsiff use auxiliary/sniffer/psnuffle

     

    这个模块我们可以什么都不用配置,默认抓取本机的流量. 还支持分析抓包文件嗅探. 使用set PCAPFILE 导入文件即可,

    查看结果可以使用jobs. 删除结果可以使用kill 加上对应的jobs id值.

    Snmp扫描(暂时没理解)

    # smap模块
    use auxiliary/scanner/snmp/snmp_login
    

    SMB扫描

    # SMB主机版本扫描
    use  auxiliary/scanner/smb/smb_version
    

     

    # smb命名管道扫描 判断smb服务类型(账号,密码)
    use auxiliary/scanner/smb/pipe_auditor
    

     遗憾的是我这里什么都没有扫出来..,难道姿势/知识不对?

    SSH扫描

    ssh我们关注的应该放在ssh版本问题,ssh1 或者ssh1.99都是有安全隐患的.

    # 模块
    use auxiliary/scanner/ssh/ssh_version
    

      扫描结果为ssh 2.0

    # ssh爆破攻击
    use auxiliary/scanner/ssh/ssh_login
    

     附上第二篇连接:点我直达 

  • 相关阅读:
    guzzle下载图片(laravel+vue)
    leetcode——131.分割回文串
    leetcode——139.单词拆分
    leetcode——115.不同的子序列
    leetcode——72.编辑距离
    leetcode——87.扰乱字符串
    leetcode——123. 买卖股票的最佳时机 III
    leetcode——132. 分割回文串 II
    leetcode——124. 二叉树中的最大路径和
    leetcode——51.N皇后
  • 原文地址:https://www.cnblogs.com/php09/p/10472584.html
Copyright © 2020-2023  润新知