一、简介:
很容易地获取、开发并对计算机软件漏洞实施攻击
附带数百个已知软件漏洞的专业级漏洞攻击工具
二、下载:
2.1、kali
kali linux 新版已内置metasploit,已经没有metasploit 这个服务了,service metasploit start 已经用不了
2.2、官网:
Metasploit | Penetration Testing Software, Pen Testing Security | Metasploithttps://www.metasploit.com/
2.3、GitHub:
rapid7/metasploit-framework: Metasploit Framework (github.com)https://github.com/rapid7/metasploit-framework
三、启动方法
启动带数据库支持的msf方式如下:
第一步: 启动postgresql数据库: service postgresql start;或者/etc/init.d/postgresql start;
第二步:初始化MSF数据库:msfdb init;
第三步: 运行msfconsole:msfconsole;
第四步:在msf中查看数据库连接状态:db_status。
四、msf常用基础命令
常用基础命令作用use 类似cd命令,装载msf模块workspacemsf控制台相关命令host查看扫描记录db_nmapnmap命令的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.1unset 配置名(模块内使用) 删除某个模块的配置信息setg 配置名 配置值 (模块内使用) 这种配置和上述set类似,不同的是使用setg的设置会在全局生效(也有unsetg 配置名)run(模块内使用) 启动模块back(模块内使用) 退出此模块save(模块内使用) 保存此模块的配置sessions进入指定的目标控制台中(当我们成功获取目标主机控制台权限时,目标主机的控制台我们就称为session),输入sessions我们就能看到我们当前有哪些能进入的控制台,输入sessions 序号,既可以进入对应的控制台,更多用法可以通过sessions -h 查看background (目标控制台内使用) 将目标控制台放入后台运行
五、msf结构
modules目录文件介绍auxiliary辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等)exploits漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则:操作系统/各种应用协议分类payloads攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码post后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等encoders编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统evasion躲避模块,用来生成免杀payloadnops空操作模块, 由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPS x90x90…)则会因为被拦截而导致攻击失效。
六、 核心命令:
1、?
帮助菜单
2、banner
显示一个令人敬畏的Metasploit横幅
3、cd
更改当前的工作目录
4、color
切换颜色
5、connect
和一个宿主通信
6、connect -h
查看附加选项
附加选项:
-C 尝试将CRLF用于EOL序列。
-P <opt> 指定源端口。
-S <opt> 指定源地址。
-c <opt> 指定使用哪个Comm。
-h 帮助横幅。
-i <opt> 发送文件的内容。
-p <opt> 使用的代理列表。
-s 使用SSL连接。
-u 切换到UDP套接字。
-w <opt> 定连接超时。
-z 试着连接,然后返回。
7、debug
显示可用于调试的信息
8、exit
退出控制台
exit命令会退出msfconsole
9、features
显示尚未释放的功能列表可以选择
10、get
获取特定于上下文变量的值
11、getg
获取全局变量的值
12、grep
grep另一个命令的输出
用法:grep [选项] 匹配词 命令
选项:
-A <opt> 显示输出的参数行匹配后。
-B <opt> 在匹配前显示输出的参数行。
-c 仅打印匹配行数。
-h 帮助横幅。
-i 忽略大小写。
-k <opt> 在输出开始处保持(包含)arg行。
-m <opt> 在arg匹配后停止。
-s <opt> 在尝试匹配之前跳过输出的arg行。
-v 反转匹配。
13、history
显示命令历史记录
14load
加载框架插件
用法: load <选项> [var=val var=val ...]
有关内置插件列表 load -l
对于加载的插件列表 load -s
15、quit
退出控制台
16、repeat
重复命令列表
17、route
通过会话路由流量
用法:
route [add/remove] subnet netmask [comm/sid]
route [add/remove] cidr [comm/sid]
route [get]
route [flush]
route [print]
子命令:
add - 制作新路线
remove - 删除路线; 'del'是一个别名
flush - 删除所有路线
get - 显示给定目标的路线
print - 显示所有活动路线
18、save
保存活动数据存储
19、sessions
转储会话列表并显示有关会话的信息
用法: sessions [选项] 或 sessions [ID]
选项:
-C <opt> 对使用-i或全部给定的会话运行Meterpreter命令
-K 终止所有会话
-c <opt> 在由-i或全部给定的会话上运行命令
-h 帮助横幅 -i <opt> 与提供的会话ID进行交互
-k <opt> 按会话ID和/或范围终止会话
-l 列出所有活动会话
-q 安静模式
-r 重置用-i或全部给定的会话的环形缓冲区
-s <opt> 在与-i或全部给定的会话上运行脚本
-t <opt> 设置响应超时(默认值:15)
-u <opt> 在许多平台上将shell升级到meterpreter会话
-v 以详细模式列出会话
-x 在会话表中显示扩展信息
20、set
将特定于上下文的变量设置为值
21、setg
将全局变量设置为值
22、sleep
对于指定的秒数无所作为
23、spool
将控制台输出到文件中屏幕
24、threads
查看和操作背景线程
25、tips
显示有用的生产力提示列表
26、unload
卸载框架插件
27、unset
取消设置一个或多个特定于上下文的变量
28、unsetg
取消传递一个或多个全局变量
29、version
显示框架和控制台库版本号
30、help
用法:help search [关键字]
关键词:
app:客户端或服务器攻击的模块
author:这个作者写的模块
bid:具有匹配的Bugtraq ID的模块
cve:具有匹配CVE ID的模块
edb:具有匹配的Exploit-DB ID的模块
name:具有匹配描述性名称的模块
platform:影响这个平台的模块
ref:具有匹配参考的模块
type:特定类型的模块(exploit,auxiliary或post)
版权归原作者 黑色地带(崛起) 所有, 如有侵权,请联系我们删除。