前言

首先我也不知道我目前的水平适不适合学习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

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

metasploit 教程之基本参数和扫描的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  2. Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹

    Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主 ...

  3. HTML5和CSS3实例教程 中文版 高清PDF扫描版

    HTML5和CSS3实例教程共分3部分,集中讨论了HTML5和CSS3规范及其技术的使用方法.首先是规范概述,介绍了新的结构化标签.表单域及其功能(包括自动聚焦功能和占位文本)和CSS3的新选择器.接 ...

  4. HTML5与CSS3基础教程(第8版) PDF扫描版​

    <HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...

  5. 网页设计与开发:HTML、CSS、JavaScript实例教程 (郑娅峰) pdf扫描版

    网页设计与开发:HTML.CSS.JavaScript实例教程从实用角度出发,详细讲解了HTML.CSS和JavaScript的基本语法和设计技巧,通过一个实用的班级网站的规划.设计.实现到发布过程, ...

  6. Metasploit使用内网跳板, 扫描局域网主机

    最近,拿到一台内网机器, 苦于无法使用nmap扫描改主机的内网, 所以才有此文 在跳板机子获取一定权限后,需要积极的向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的meter ...

  7. metasploit 教程之信息收集

    信息收集 信息收集范围很大,可以从不同层面,不同维度进行信息收集. 系统补丁 我们知道目标机器缺少什么补丁就意味着存在与其对应的漏洞.我们可以利用这些漏洞来达到我们渗透攻击的目的. # 使用的模块 u ...

  8. Metasploit Framework(5)弱点扫描

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 当我们发现了目标机器开放的端口,开启的服务等等之后 就 ...

  9. Metasploit的攻击实例讲解----辅助扫描工具

    不多说,直接上干货! 怎么弹出来这个呢,连续按两次tab. msf > use auxiliary/scanner/ Display all possibilities? (y or n) us ...

随机推荐

  1. Python简单的多线程demo:常用写法

    简单多线程实现:启动50个线程,并计算执行时间. import threading import time def run(n): time.sleep(3) print("task:&qu ...

  2. pymongo 一篇文章搞定

    一 安装 pip install pymongo 二 python连接mongodb数据库的前提 确保pymongo安装完毕 mongodb数据库的服务器端(mongod)必须处于启动状态 三 连接m ...

  3. Offset Management For Apache Kafka With Apache Spark Streaming

    An ingest pattern that we commonly see being adopted at Cloudera customers is Apache Spark Streaming ...

  4. 文本分类实战(四)—— Bi-LSTM模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  5. Linux:Day10 程序包管理

    YUM:yellow dog,Yellowdog Update Modifier yum repository:yum repo 存储了众多rpm包,以及包的相关的无数据文件(放置于特定目录下:rep ...

  6. 对分类型变量,进行编码处理——pd.get_dummies()、LabelEncoder()、oneHotEncoder()

    背景: 在拿到的数据里,经常有分类型变量的存在,如下: 球鞋品牌:Nike.adidas. Vans.PUMA.CONVERSE 性别:男.女 颜色:红.黄.蓝.绿 However,sklearn大佬 ...

  7. IntelliJ IDEA 2018.3 重大升级,哪些功能打动了你?

    前言 2018.11.28 IntelliJ IDEA 2018.3 正式版发布.对于一个忠实爱好者,迫不及待的我下载了最新版本来体验下.而且 IDEA 今年的第三次重大更新提供了不容错过的显著功能! ...

  8. 基于 WebGL 3D 的 HTML5 档案馆可视化管理系统

    前言 档案管理系统是通过建立统一的标准以规范整个文件管理,包括规范各业务系统的文件管理的完整的档案资源信息共享服务平台,主要实现档案流水化采集功能.为企事业单位的档案现代化管理,提供完整的解决方案,档 ...

  9. C++ 标准库之 iomanip 、操作符 ios::fixed 以及 setprecision 使用的惨痛教训经验总结

    本菜鸡自从退役之后就再也没怎么敲过 C++ 代码,在 C++ 语言下,求解关于浮点数类型的问题时,之前有碰到类似的情况,但是似乎都没有卡这块的数据,基本上用一个 setprecision 函数保留几位 ...

  10. Insertion Sort(Java)

    //Insertion Sort for(int i = 1; i < a.length; i++) { int key = a[i]; int j; for(j = i - 1; j > ...