Metasploit 基本使用方法
Metasploit 基本命令
Metasploit 程序需要使用 Postgresql 数据库。
手动启动数据库
┌──(root💀xuegod53)-[~]
└─# systemctl start postgresql
└─# systemctl enable postgresql #设置成开机启动数据库,我们要经常用
启动 Metasploit,启动方式有两种。
第一种点击图标
第二种使用终端命令
└─# msfconsole
注:快捷启动命令 msfdb run 可以同时启动 postgresql 数据库和 msf
启动完成后会有一些统计信息,比如说版本号,有多少个 exploits,多少个 payloads 等。
msf6 > help
#查看帮助信息。
注:通过 help 查看帮助,可以对 msf 有个整体认识,可以看到 msf 相关命令可以分成以下类型:
Core Commands #核心命令
Module Commands #模块命令
Job Commands #后台任务命令
Resource Script Commands #资源脚本命令
Database Backend Commands #数据库后端命令
Credentials Backend Commands #证书/凭证后端命令
Developer Commands #开发人员命令
下面讲解一下常用的命令。
connect 命令
connect 命令主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是“connect
192.168.1.1 80”
192.168.1.1 是 IP 地址 80 是端口号。
查看 connect 命令参数:
msf6 > connect #直接回车
连接目标 80 端口
msf6 > connect xuegod.cn 80 #连接上后在另一行,直接输入 get /
[*] Connected to xuegod.cn:80
get / #提交一个 get 请求,可以查看到服务器版本号
HTTP/1.1 400 Bad Request
Server: nginx/1.6.2
Date: Sat, 29 Jun 2019 09:54:16 GMT
Content-Type: text/html
Content-Length: 172
Connection: close
2、模块相关的命令 show 使用方法
show 命令用的很多。
“show”命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post,
plugins, info, options
例 1:列出 metasploit 框架中的所有渗透攻击模块 exploits。
msf6 > show exploits
#列出 metasploit 框架中的所有渗透攻击模块。该命令列出数据较多,较为耗费时间。
msf6 > show payloads #列出 metasploit 框架中的所有攻击载荷。
msf6 > show auxiliary #列出 metasploit 框架中的所有辅助攻击载荷。
互动:使用 show 命令,执行很慢,怎么办?
3、模块相关的命令 search 搜索的使用方法
当你使用 msfconsole 的时候,你会用到各种漏洞模块、各种插件等等。所以 search 搜索命令就很
重要。
当你输入 search –h 会列出 search 命令的一些选项。
msf6 > search -h
Usage: search [ options ] #search 后主要加选项和关键字
例 1:通过 name 关键字进行查找
这里需要用到 name:命令。
msf5 > search mysql # search 后直接跟要查找内容,查得很广泛。只有当你对漏洞名字很描述
很清楚时,使用这个方法
例:先查找出自己想要的 ms08_067 漏洞模块。
msf6 > search ms08_067
语法:Search Keywords 参数:关键字
比如 msf6 > search name:mysql #要查找 mysql 数据库的漏洞
例 2:通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用 path:命令查找在该路
径下的所有模块。如果我要 mysql 路径下的所有 mysql 利用模块,那么就输入:
msf6 > search path:mysql
例 3:缩小查询范围
关键字:
platform [ˈplætfɔːm] 平台
作用: Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞
有时候我们会搜索到大量的模块,那么可以用 platform:命令来缩小查询范围。使用 platform 命
令后,所查询的结果会列出 rank 比较高的模块。如果我要查找 mysql 的漏洞,那么输入:
msf6 > search platform:mysql
注:大家对比一下上面的截图,发现没有,所有 rank 为 normal 的模块全部都屏蔽了,只剩下几个
比较高级的利用模块。
例 4:通过类型进行查找
这里要使用到 type:命令。
type : 特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)
要搜索 exploit 模块,那么就输入:
msf6 > search type:exploit
例 5:联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找 mysql 的 exploit 相关漏洞。那么输入:
msf6 > search name:mysql type:exploit
注:MySQL yaSSL CertDecoder::GetName Buffer Overflow 的意思是:
mysql yassl certdecoder::getname 缓冲区溢出漏洞
例 6:根据 CVE 搜索 exploit 相关模块
通过 CVE 编号查找永恒之蓝漏洞的利用模块
查找:CVE-2017-0144 永恒之蓝漏洞相关的 exploit 模块。
msf6 > search cve: CVE-2017-0144 type:exploit
3、模块相关的命令 use 的使用方法
use 使用参数。如你要使用到某个模块,就要使用到 use 命令
语法:use 模块的名字
实战背景:
2008 年微软爆出 ms08_067 漏洞,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞
可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003
系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。
(1)、先查找出自己想要的 ms08_067 漏洞模块。
msf6 > search ms08_067
2024/05/16 13:37(2)、装载一个渗透攻击模块
msf6 > use exploit/windows/smb/ms08_067_netapi
我们可以看到使用 use 装载模块后我们的 bash 提示符会变成对应的模块信息。稍后我们使用这个模
块进行攻击。
msf6 exploit(windows/smb/ms08_067_netapi) > back #back 退出当前调用的模块
3、模块相关的命令 info 的使用方法
info :显示模块的相关信息。
方法 1:info 模块名称
msf6 > info exploit/windows/smb/ms08_067_netapi
方法 2:use 装载模块后直接使用 info
msf6 > use exploit/windows/smb/ms08_067_netapi