注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途。

一、什么是MSF框架

Metasploit就是一个漏洞利用框架,全称是The Metasploit Framework,简称MSF(美少妇),使用ruby语言编写的,语法类似python。
Metasploit是一个免费的、可下载的框架,通过它可以很容易的获取、开发并对计算机软件漏洞实施攻击,它本身附带数百个已知软件漏洞的专业级漏洞利用工具。
当 H.D. Moore 在 2003 年发布 Metasploit 时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit 团队一直都在努力开发各种攻击工具,并将它们 贡献给所有 Metasploit 用户。
访问官网:https://www.metasploit.com/

关于版本
社区版:
集成在 kali 系统中,目前基于社区力量维护。早期版本需要先启动数据库再启动 MSF,从msf5版本以
后已经集成到 msf 里面了,可以直接一键启动。现在已经是msf6了
Pro 版:企业版(收费,但可以试用)的几个优势
1、企业版出的检测报告非常强大,给客户汇报起来很方便。
2、AV 免杀,社区版的免杀大家都知道了,但是企业级的免杀他们说过可以达到百分之九十甚至百分之百。
3、IDS / IPS 绕过(入侵检测系统/入侵防御系统)
4、VPN Pivotin

二、为什么要有MSF

渗透测试者的困扰:在众多漏洞的工具中,不知道如何选择。认为需要掌握数百个工具软件,上千个命令参数,实在记不住。而且有的工具只能利用一些老的漏洞,对新出现的漏洞是没有用的,你很有可能要针对这个新的漏洞再学一款新的工具,这样就要花费很多时间去学习新工具的使用,及其浪费时间,而且新出现的漏洞POC/EXP 有不同的运行环境要求,准备工作繁琐。如果能统一就好了,于是 Metasploit 就产生了。

三、MSF如何使用

1、启动MSF

启动命令:

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

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

命令补充:

# 查看msf版本信息
┌──(root@kali)-[~]
└─# msfconsole -v
Framework Version: 6.0.22-dev# -q是指quite , 静默输出 , 不会打印banner信息
┌──(root@kali)-[~]
└─# msfconsole

启动补充:

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 自动补全,支持外部命令的执行(系统命令等)

2、更新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

# 更新软件包
apt-get update         # 更新一下软件包的数据库,不进行软件的更新# 更新msf框架
apt-get  install metasploit-framework

如果在更新后出现以下问题:

root@kali:~# msfconsole Could not find reline-0.1.5 in any of the sourcesRun   bundle install  to install missing gems.

则使用以下方法解决:

root@kaliew:~# sudo gem install bundlerroot@kaliew:~# bundle update celluloid

3、退出MSF

# 退出msf框架
msf6 > exit

四、MSF的目录结构


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

1、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 , 各种漏洞利用的脚本。主要的攻击代码全在这里利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)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 msf中的混淆模块 , 更新了后  自带windows denfender的混淆 , 效果一般 早不免杀了 , 总比没有好  自己配合其他手段免杀

2、data目录

cd data

存放 meterpreter、passivex、vnc、dlls等工具和一些用户接口代码,msfweb和一些其他模块用到的数据文件

3、Plugins目录


这个模块需要使用 load 加载,提供数据库连接插件,和各种要用到的插件。即插件目录

4、Scripts目录


这个目录下的文件都是meterpreter利用的脚本

五、MSF基础命令

1、help

当你刚进入msf终端时,可以使用help查看msf的命令有哪些,以及解释。

msf6 > help
msf6 > ?


显示某一命令的用法

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

2、banner

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

3、search

搜索模块

4、use

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

5、其他常用命令

background                    # 会话放到后台
sessions                          #sessions –h 查看帮助
sessions -i <ID值>         #进入会话   -k  杀死会话
back                               #返回上一步
run/exploit                     #执行已有的模块,输入run后按两下tab,列出已有的脚本   -j , 后台运行
info                                 #查看已有模块信息
load                                #加载插件
jobs                                #显示和管理作业
kill                                  # 杀死一个job  , kill 0
nmap                             # msf控制台内置的有nmap工具

生命在于学习——MSF初体验(一)相关推荐

  1. 有道智能学习灯 初体验

    有道词典笔在业内树立了一个标杆,自认为有道出品必须精品! 但是今天刚初步体验了一下有道智能学习灯,硬件方面说实话有点意外,猜测这应该不是有道词典 笔团队打造的硬件产品吧. 现在将个人体验感受表格化陈述 ...

  2. 后端开发工程师的生命周期,生命在于学习

    后端开发工程师的生命周期 1 职业发展方向: 标准:需要不断学习.主动思考.不断锻炼.多提问 技术专家:三年.五年.八年的时间节点 2 后端学习成长路线 2.1 后端技术图谱 2.2 Go语言技术图谱 ...

  3. 生命在于学习——免杀

    注意:本篇文章仅用于学习以及笔记记录,不得用于其他违规用途. 一.什么是免杀 免杀,也就是病毒与反间谍的对立面,英文为Anti-AntiVirus(简写Virus AV),翻译为"反杀毒技术 ...

  4. 生命在于学习——docker逃逸

    注意:本篇文章仅用于学习记录,不得用于其他用途. 一.docker逃逸 docker逃逸就是从当前docker容器权限中逃逸出来,获得宿主机的权限. 二.常见的逃逸方法 1.配置不当引起的逃逸 (1) ...

  5. RNN:深度学习噪声抑制(初体验)

    参考资料 1.RNNoise: Learning Noise Suppression(深度学习噪声抑制) 2.rnnoise 训练步骤 1.项目地址:https://github.com/xiph/r ...

  6. 生命在于学习——框架-中间件的学习(一)

    声明:本篇文章仅用于学习笔记记录,不得用于其他用途. 一.什么是框架 Web框架(Web framework)或者叫做Web应用框架(Web application framework),是用于进行W ...

  7. Talent Plan 学习营初体验:交流+坚持 开源协作课程学习的不二路径

    Talent Plan 是 PingCAP 联合华东师范大学.华中科技大学.中国科学技术大学.武汉大学和神州数码面向高校和工程师的未来数据库内核人才培养计划.通过结业考核的学员将获得官方认证的证书,并 ...

  8. AE学习:初体验AE

    体验AE 半夜爬起来学AE 定位日期 半夜爬起来学AE 大晚上睡不着,在三点的时候爬了起来体验AE.在b站找到相关的教学视频,跟着做了一个行星.选择一张图像,然后生成一个球形物体,然后图像全附着在球形 ...

  9. 生命在于学习——文件解析

    本篇文章只是学习笔记. 一.概述 文件解析漏洞,是指web容器(Apache.nginx.iss等)在解析文件时出现了漏洞,以其他格式执行出脚本格式的效果从而黑客可以利用该漏洞实现非法文件的解析. 二 ...

最新文章

  1. 小程序swiper(tab)高度自适应
  2. Python 读写当前路径下文件错误 UnboundLocalError: local variable 'file' referenced before assignment
  3. 由于CRS磁盘dismount造成的CRS进程无法启动问题
  4. android 动态添加颜色,Android绘制一个三角形并且可动态改变颜色
  5. nth-child和蝉原则实现的奇妙随机效果(译)
  6. vscode python debug venv_Visual Studio Code Python开发调试环境设置
  7. JDK8新特性(十)之Stream流的map和reduce组合使用、mapToInt()、concat()方法
  8. 怎么设置某个用户生成hdfs文件的权限_管理 HDFS 服务
  9. 勒索病毒全系列补丁下载链接
  10. 西门子s7-200解密软件下载_西门子S7200软件工具——调试应用程序
  11. 【数电基础知识】各逻辑运算符号盘点
  12. Cannot negotiate authentication mechanism svn: Unable to connect to a repository at URL 'svn://gite
  13. RuntimeError: mat1 dim 1 must match mat2 dim 0
  14. python自动办公 pdf_别再问如何用 Python 提取 PDF 内容了!
  15. 《Chrome插件英雄榜》第88篇更新!知乎网页助手让网页版知乎更好用
  16. WorldFirst如何注册?WorldFirst收款账号注册流程!
  17. vm虚拟机安装lede旁路由_利用VMM虚拟机 安装LEDE旁路由 实现软路由超强功能
  18. 酷我音乐盒去广告方法(我用的是酷我音乐盒2010贺岁版)
  19. 利用MSF打包加固APK对安卓手机进行控制
  20. 10Bootstrap5徽章

热门文章

  1. python控制结构(一)if分支入门_【2020Python修炼记12】Python语法入门—流程控制(if分支结构+while/for循环结构)...
  2. HTML5-day1、2
  3. 音乐主Activity
  4. resharper字体_【更新】ReSharper v2018.3发布
  5. css中contain和cover的区别(转载)
  6. 安装win7 缺少所需的CD/DVD驱动器设备驱动程序
  7. Android ConstraintLayout 设置子 view maxWidth 是父 ConstraintLayout width 的百分比
  8. FFmpeg代码实现最简版本小咖秀
  9. input失去焦点验证格式_JS使用正则表达式判断输入框失去焦点事件
  10. hdu 3498 whosyourdaddy 重复覆盖