Metasploit渗透测试框架二
Metasploit基本使用方法
Metasploit基本命令
Metasploit程序需要使用Postgresql数据库。
Postgresql是一种特性齐全的自由软件的对象-关系型数据库管理系统(ORDMS)。
Postgresql地址:https://www.postgresql.org
注:PostgreSQL:世界上最先进的开源关系数据库
PostgreSQL和MySQL数据的应用场景区别:
从应用场景来说,PostgreSQL更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而MySQL更加适合业务逻辑相对简单、数据可靠要求较低的互联网场景。
kali手动启动数据库
(root💀kali):~# systemctl start postgresql
(root💀kali):~# systemctl enable postgresql #设置成开机启动数据库
命令行开启Metasploit框架:
┌──(root💀kali)-[~]
└─# msfconsole
通过help查看帮助,可以对msf有个整体认识,可以看到msf相关命令分为一下几个类型:
Core Commands #核心命令
Module Commands #模块命令
Job Commands #后台任务命令
Resource Script Commands #资源脚本命令
Database Backend Commands #数据库后端命令
Credentials Backend Command #证书/凭证后端命令
Developer Commands #开发人员命令
常用命令
核心采用命令中的connect命令
connect命令主要用于远程连接主机。一般用于内网渗透,与主机通信,类似于通过netcat进行交互,利用任何配置的会话透视。
选项: -C 尝试将CRLF用于EOL序列。
-P <opt> 指定源端口。
-S <opt> 指定源地址。
-c <opt> 指定使用哪个Comm。
-h 帮助横幅。
-i <opt> 发送文件的内容。
-p <opt> 使用的代理列表。
-s 使用SSL连接。
-u 切换到UDP套接字。
-w <opt> 定连接超时。
-z 试着连接,然后返回。
2、模块相关的命令show使用方法
show的命令很多
show的有效参数是:all,encoders,nops,exploits,payloads,auxiliary,post,plugins,info,options;
例:列出metasploit框架中所有的渗透攻击模块exploits。
msf6>show exploits #该命令列出数据较多,较为消耗时间。
3、模块相关命令search
通过name查找
语法:search Keywords参数:关键字
比如:msf6 > search name:mysql #要查找mysql数据库的漏洞。
# Name Disclosure Date Rank Check Description
#名称 披露日期 排名 检查 说明
每一个漏洞利用模块基于对目标系统的潜在影响都被标记了一个Rank字段。
用户可以基于Rank对漏洞利用模块进行搜索,分类以及排序。
Rank按照可靠性降序排列:
excellent 漏洞利用程序绝对不会使目标服务崩溃,就像SQL注入,命令执行、远程文件包含、本地文件包含等等。排除有特殊情况,典型的内存破坏不可以被评估为该等级。
great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回一个特定的返回地址。
good 该漏洞利用程序有一个默认的目标系统,并且是这种类型软件的“常见情况”(桌面应用程序的Windows 7,服务器的2012等)
normal 该漏洞利用程序是可靠的,但是依赖特定的版本,并且不能或者不能可靠的自动检测。
average 该漏洞利用程序不可靠或者难以利用。
low 对于通用的平台而言,该漏洞利用程序几乎不可能利用(或者低于50%的利用成功率)
manual 该漏洞利用程序不稳定或者难以利用而且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用,那么也可以被评为该等级。
通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用path:命令查找该路径下的所有模块。
msf6 > search path:mysql
缩小查找范围
关键字:platform #平台
作用:Modules affecting this platform 即:列出可以影响此平台的模块,也就是比价好的漏洞,有时候我们会搜索到大量的模块,那么可以用platfrom:命令来缩小查询范围。使用platform命令后,所查询的结果Rank比较高。
msf6 > search platform:mysql
通过类型进行查找
这里使用到type:命令
type:特定类型的模块(exploit,payload,auxiliary,encoder,evasion,post,or nop)
要搜索exploit模块,那么就输入:
msf6 > search type:exploit
联合查找
查找mysql的exploit模块
msf6 > search name:mysql type:exploit
MySQL yaSSL CertDecoder::GetName Buffer Overflow #缓冲区溢出漏洞
根据CVE搜索相关模块
CVE 的英文全称是“Common Vulnerabilities & Exposures”通用漏洞披露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题
模块相关命令use的使用方法
use使用参数。如你使用到某个模块,就要使用use命令
语法:use 模块名字
装载模块使用use,退出模块使用back。模块详情使用info;