MSF渗透测试框架介绍

一. MSF
1. MSF介绍
MSF全称Metasploit,是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以 “可以黑掉整个宇宙” 之名的强
大渗透测试框架。
Metasploit是一款开源的渗诱测过框架平台,到目前为止,msf已经内置了数千个已披露的漏洞相关的模块和渗透测试工具。
模块使用ruby语言编写,这使得使用者能够根据需要对模块进行适当修改,甚至是调用自己写的测试模块。
选定需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程自动化、简单化。
MSF安装使用
MSF在kail中已经内置好了,直接在kail命令行中输入msfconsole
就可以使用了。
MSF在kali中的更新
配置源,kali的更新,kali软件包的更新等等,这里就不多介绍了。
我们在命令行输入这个命令
1 | apt-get install metasploit-framework |
问我们是否继续执行,输入 ‘y’
开始进行安装了。等待完成即可。
2. MSF图形化
Viper是一款图形化内网渗透工具,将内网渗透过程中常用的战术及技术进行模块化及武器化
集成杀软绕过内网隧道,文件管理,命令行等基础功能
当前已集成70+个模块覆盖初始访问/持久化/权限提升/防御绕过/凭证访问/信息收集/横向移动等大类
在Kali上通过Docker安装Viper(炫彩蛇)
1、安装docker
我们先update一下
1 | apt-get update |
等待更新完毕,更新好了之后我们就可以开始拉docker了
1 | apt-get install docker.io |
然后等待安装完成后,我们查询一下docker的状态
1 | docker version |
我们再设置一下docker的开机自启动
1 | systemctl start docker |
2、安装docker-compose
我们输入这个命令
1 | curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose |
这里就拉了一个脚本,我们再输入
1 | chmod +x /usr/local/bin/docker-compose |
然后设定一个安装目录
1 | export VIPER_DIR=/root/VIPER |
然后我们生成一个安装目录
1 | mkdir -p $VIPER_DIR && cd $VIPER_DIR |
然后我们输入这些代码,生成一个.yml文件
1 | tee docker-compose.yml <<-'EOF' |
注意一定要一摸一样,空格,冒号,缩进,符号,不能差了。
然后我们设置一个登录密码
1 | export VIPER_PASSWORD=root(你自己的密码) |
然后我们将密码写到yml文件里头
1 | sed -i "s/VIPER_PASSWORD/$VIPER_PASSWORD/g" docker-compose.yml |
我们来检查一下
1 | cat docker-compose.yml |
可以看到root已经写进去了
3、创建启动VIPER
进到viper的目录
1 | cd $VIPER_DIR |
创建启动docker
1 | docker-compose up -d |
viper安装完成
然后我们在浏览器中访问
1 | http://你的IP:60000 |
比如我的就是
1 | http://192.168.40.129:60000 |
输入账号密码,按照刚才设置的话,账号密码都是root。
成功进入。
二. MSF的目录结构
1. 主目录
我们在终端中进入这个目录
1 | /usr/share/metasploit-framework |
输入 ‘ls’
这里就是MSF的一些文件夹
这其中包括了config配置文件、plugins插件、tools工具、db数据库文件、modules模块文件以及msfconsole、msfdb等命令。
modules中的文件为我们最常用的模块文件,其中每个模块中都根据不同的操作系统,分为不同平台不同协议功能对应的漏洞利用文件,这些文件用ruby编写。
以下是文件的介绍
文件名 | 功能 |
config | metasploit的环境配置信息,数据库配置信息 |
data | 后渗透模块的一些工具及payload,第三方小工具集合,用户字典等数据信息 |
db | rails编译生成msf的web框架时的数据库信息 |
documentation | 用户说明文档及开发文档 |
lib | metasploit的一些基础类和第三方模块类 |
log | msf运行时的一些系统信息和其他信息 |
modules | metasploit的系统工具模块,包括顶辅助模块(auxiliary),渗透模块(exploits)攻击荷载(pavloads)和后渗透模块 |
msfconsole | metasploit的基本命令行,集成了各种功能。 |
msfd | metasploit服务,非持久性服务 |
msfrpc | metasploit的服务端,非持久性的rpc服务 |
msfrpcd | 持久性的metasploit本地服务,可以给远程用户提供rpc服务以及其他的http服务,可以通过xml进行数据传输。 |
msfupdate | metasploit更新模块,可以用来更新metasploit模块 |
msfvenom | 集成了msfpayload和msfencode的功能,效率更高,替代msfpayload和msfencode |
plugins | metasploit的第三方插件接口 |
scripts | metasplit的常用后渗透模块,区别于data里的后渗透模块,不需要加post参数和绝对路径,可以直接运行 |
tools | 额外的小工具和第三方脚本工具 |
2. 模块
我们看看modules文件夹
所在位置: /usr/share/metasploit-framework/modules
模块名 | 中文解释 | 功能描述 |
Auxiliaries | 辅助模块 | 该模块不会直接在测试者和目标主机之间建立访问, 它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试 |
Exploit | 漏洞利用模块 | 漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透测试攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码每个漏洞都有相应的攻击代码。 |
Payload | 攻击载荷模块 | 攻击载荷是我们期望目标系统在被渗透攻击之后完成实际供给功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等 |
Post | 后期渗透模块 | 该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等 |
Encoders | 编码工具模块 | 该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来 |
evasion | 混淆模块 | 能够生成绕过杀毒软件的shell (目前只适用于Windows) |
Meterpreter | 后续利用模块 | 作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。通常也作为后渗透测试功能使用。 |
(1) Auxiliaries
这个模块是来辅助渗透的,比如端口扫描啊,漏洞验证啊,登录密码爆破啊等等这些东西
我们在MSF中看一下,命令行输入msfconsole
打开MSF,然后通过search
来找到和Auxiliaries相关的内容
1 | search auxiliary |
可以看到有这么多东西。
(2) Exploit
Exploit模块,这是一个漏洞利用模块,包含主流的漏洞利用脚本,通常是对默写可能存在漏洞的目标进行漏洞利用
(3) 其他的自行查看就行了。
剩下的自己看看就行了,这里就不作过多的介绍