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
附上第二篇连接:点我直达
metasploit 教程之基本参数和扫描的更多相关文章
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹
Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主 ...
- HTML5和CSS3实例教程 中文版 高清PDF扫描版
HTML5和CSS3实例教程共分3部分,集中讨论了HTML5和CSS3规范及其技术的使用方法.首先是规范概述,介绍了新的结构化标签.表单域及其功能(包括自动聚焦功能和占位文本)和CSS3的新选择器.接 ...
- HTML5与CSS3基础教程(第8版) PDF扫描版
<HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...
- 网页设计与开发:HTML、CSS、JavaScript实例教程 (郑娅峰) pdf扫描版
网页设计与开发:HTML.CSS.JavaScript实例教程从实用角度出发,详细讲解了HTML.CSS和JavaScript的基本语法和设计技巧,通过一个实用的班级网站的规划.设计.实现到发布过程, ...
- Metasploit使用内网跳板, 扫描局域网主机
最近,拿到一台内网机器, 苦于无法使用nmap扫描改主机的内网, 所以才有此文 在跳板机子获取一定权限后,需要积极的向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的meter ...
- metasploit 教程之信息收集
信息收集 信息收集范围很大,可以从不同层面,不同维度进行信息收集. 系统补丁 我们知道目标机器缺少什么补丁就意味着存在与其对应的漏洞.我们可以利用这些漏洞来达到我们渗透攻击的目的. # 使用的模块 u ...
- Metasploit Framework(5)弱点扫描
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 当我们发现了目标机器开放的端口,开启的服务等等之后 就 ...
- Metasploit的攻击实例讲解----辅助扫描工具
不多说,直接上干货! 怎么弹出来这个呢,连续按两次tab. msf > use auxiliary/scanner/ Display all possibilities? (y or n) us ...
随机推荐
- RabbitMQ持久化
我们知道,如果消息接收端挂了,消息会保存在队列里.下次接收端启动就会接收到消息. 如果RabbitMQ挂了怎么办呢?这时候需要将消息持久化到硬盘 消息发送端:producer ........... ...
- Nginx 的 access log 如何以 json 形式记录?
Nginx 的 access log 默认是以空格分隔的字符串形式记录的,格式如下 log_format proxy '[$time_local] $remote_addr ' '$protocol ...
- Vue项目分环境打包的实现步骤
转:https://blog.csdn.net/xinzi11243094/article/details/80521878 方法一:亲测真的有效 在项目开发中,我们的项目一般分为开发版.测试版.Pr ...
- Vue项目中的RSA加解密
前后端使用rsa加密: 一般是客户端初始化时访问登录服务时,服务端面动态生成一对RSA对,公钥传给客户端,客户端拿到后,用户输入密码后,点登录时用公钥加密返回给服务端,服务端用私钥解就行了 一.安装 ...
- tiff图片拆分
本程序下载地址: tiff格式的图片可以由多张图片合成, 也可以拆分为多张图片.不管是合成或者拆分,都借助了第三方开源库Cximage,对于这个图像库的使用,我们没有必要去一行一行的去看它的代码实现, ...
- matplotlib使用
import numpy as np import matplotlib.pyplot as plt 生成数据 mean1=[5,5] cov1=[[1,1],[1,1.5]] data=np.ran ...
- block,inline,inline-block区别
block:多個元素豎直排列,每個元素單獨占一行,寬高可以設置,padding.margin可以設置: inline:多個元素占一行,一行放不下了,才轉入下一行,寬高不能設置,水平的padding.m ...
- python面向对象之类的组合
一.python类的组合:给一个类的对象封装一个属性,这个属性是另一个类的对象二.组合的意义:让类的对象与另一个类的对象产生关系,类与类之间产生关系.三.例子模拟英雄联盟写一个游戏人物的类 要求:(1 ...
- Git冲突:You have not concluded your merge
You have not concluded your merge. (MERGE_HEAD exists) Git本地有修改如何强制更新 我尝试过用git pull -f,总是提示 You have ...
- 探索 Python 学习
Python 是一种敏捷的.动态类型化的.极富表现力的开源编程语言,可以被自由地安装到多种平台上(参阅 参考资料).Python 代码是被解释的.如果您对编辑.构建和执行循环较为熟悉,则 Python ...