文章目录
metasploit概述
是一款开源的安全漏洞检测工具,它可以帮助网络安全和IT专业人士识别安全性问题,验证漏洞的解决措施,从而完成对目标的安全性评估
该工具包括了 智能开发,代码审计,web应用程序扫描和社会工程等各项功能
什么是metasploit
可以用来发现漏洞,利用漏洞,提交漏洞,并实施攻击,用户可以从其他 漏洞扫描程序导入数据,基于漏洞主机的详细信息来发现可攻击漏洞
模块按照不同用途可分为7中类型,分别是Exploits(渗透攻击模块),Auxiliary(辅助模块),Post(后渗透攻击模块),Payloads(攻击载荷模块),Encoders(编码器模块),Nops(空指令模块),Evasion(规避模块)
1,渗透攻击模块
主要利用发现的安全漏洞或配置弱点对目标主机进行攻击,以植入和运行攻击载荷,从而获得目标系统的访问控制权
分为主动渗透攻击和被动渗透攻击
主动渗透攻击:利用的安全漏洞位于网络服务端软件承载的上层应用程序之中
被动渗透攻击:利用的漏洞位于客户端软件(如浏览器,浏览器插件,电子邮件客户端,Office与Adobe等各种文档与编辑软件)
2,辅助模块
辅助模块包括对各种网络服务的扫描与检测,构建虚假服务登陆密码,口令猜测等模块,辅助模块海包含一些无须加载的攻击载荷,这些模块不用来取得目标系统远程控制权,如拒绝服务
3,后渗透模块
用于取得目标系统远程控制权之后得环节,实现在受控制的系统中进行各种各样的后渗透攻击动作,如敏感信息,进一步拓展,实施跳板攻击
4,攻击载荷模块
在渗透攻击成功后促进目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接
攻击载荷分为Single(独立),Stager(传输器)和Stage(传输体)3种类型
Single:是一种完全独立的Payload,使用简单,就像运行calc.exe一样简单,由于Single是完全独立的,因此他们有可能会被类似netcat这样的metasploit处理工具所捕获
Stager:这种payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序
一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条TCP连接,让目标系统主动连接渗透测试者的端口(反向连接)
另一种常见的的bind_TCP,它可以让目标系统开启一个TCP监听器,而攻击者随时可以与目标系统进行通信(正向连接)
Stage:是stager payload下的一种payload组件,这种payload可以提供更加高级的功能,而且没有大小限制
5,空指令模块
空指令是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令最典型的空指令就是空操作,在X86CPU体系结构平台上的操作码是ox90
6,编码模块
攻击载荷与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入恶意数据缓冲区交由目标系统运行之前,metaspliot还需要编码
编码模块的主要作用由两个:第一,确保攻击载荷中不会出现“坏字符”,第二,是对攻击载荷进行“免杀”处理,即躲避反病毒软件,IDS入侵检测系统和IPS入侵防御系统的检测与拦截
7,规避模块
规避模块是在metasploit5中心增加的,用户可以使用规避模块来规避Windows Defender防火墙,windows Defender现在是windows自带的防火墙工具,不仅可以扫描系统,还可以对系统进行实时监控
8,插件
插件能够扩充框架的功能,或者封装已有功能构成高级功能的组件,可以用于集成一些现有的一些歪卜安全工具,如N二审诉讼,OpenVAS漏洞扫描等
1.2 metasploit界面
提供两种界面,分别是图形化界面和终端模式,之前,还提供了一种命令行模式,现在已经废弃,最新版图形化界面好像也是废弃了(哈哈哈哈哈哈)
metasploit的终端Msfconsole
是目前metasploit最为流行的用户接口,而且MSF终端是metasploit框架中最灵活,功能最丰富支持最好的工具之一
启动metasploit的终端模式
msfconsole
执行以上命令即可启动终端模式
可以看到支持的攻击模块及对应的数量,列如,渗透攻击载荷模块有2007个,辅助模块有1096个,后渗透模块有343个,攻击载荷模块有556个,编码模块有45个空指令模块有10个,规避模块有7个
1.3初始化metasploit
在kali中 metasploit主要使用PostgreSQL数据库存储数据,在使用时需要启动PostgreSQL数据库
service postgresql start
启动后需要使用msfdb init命令创建和初始化数据库
msfdb init
1.4创建工作区
为了区分不同的扫描任务,可以创建多个工作区,用来保存不同扫描惹怒的各种信息
不同工作区之间的信息相互独立,避免数据混淆,语法如下
workspace -a [name]
-a选项表示添加工作区
创建一个名为xp的工作区
(1)查看当前所在的工作区
worksapace
从输出信息看到有一个默认的工作区default和我自己创建的工作区
(2)创建新的工作区
workspace -a xp
成功的添加了工作区xp,已自动切换到新建的工作区
(3)切换工作区
workspace default
成功切换到默认工作区ddefault
1.5导入扫描报告
用户可以导入一些第三方扫描报告,来获取主机信息
导入扫描报告的语法格式:db_import <filename> [file2...]
参数filename表示导入的文件名
导入扫描报告之前可以查看支持的报告格式
db_import
2,查询渗透测试模块
2.1手动查询攻击载荷
查找渗透测试模块语法
search [options] <keywords>
option表示支持的选项
keywords表示可使用的数字 ,支持的选项及含义如下
-h
:显示帮助信息
-o <file>
:指定输出信息的保存文件,格式为CSV
-S <string>
:指定搜索的字符串
-u
:指定搜索模块
手动查找ms017 010 smb rce detetion的渗透模块
search name:MS17-010 SMB RCE Detection
2.2第三方查找
如cve漏洞站点和exploitDB等,还支持导入第三方模块
1,通过CVE漏洞网站查找
cve漏洞网站地址 : https://www.cvedetails.com/
2,通过exploitDB
exploitDB漏洞网址 :https://www.exploit-db.com/
3,手动导入第三方模块
从exploitDB网站下载的第三方模块 导入exiftran
将文件改为webtest.rb ,复制到metasploit对应的模块位置
metasploit的默认位置为/root/.msf4/modules
按照模块的分类创建对应的文件夹 这是个渗透模块 这里创建名为exploits的文件夹
为了方便查找模块的位置 再创建一个test目录 将攻击载荷文件webtest.rb复制进去
打开msf已加载
选择webtest模块
导入成功