Metasploit基础

认识Metaspliot框架

​ Metaspliot(MSF)渗透测试框架,提供众多的接口、选项、变量、模块以供渗透工作人员使用它完成一系列的渗透攻击。

渗透攻击(Exploit)

​ 渗透攻击是指攻击者利用一个系统、应用或服务件的安全漏洞,进行攻击行为;往往会造成开发者所没有预期到的一种特殊结果。常见的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(SQL注入、XSS、文件漏洞等)以及服务件的配置错误。

攻击载荷(Payload)

​ 攻击载荷是我们期望目标在被攻击后去执行的代码。在Metaspliot框架中可以自由的选择、传送和植入。例如反弹式Shell是一种从目标主机到攻击主机之间创建一个网络连接,并提供命令行Shell的攻击载荷,而bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以丽娜姐这些端口来取得shell交互;攻击载荷可以是简单的在目标操作系统上简单的执行一些命令,如添加用户。

Shell Code

​ shell code是在攻击时作为攻击载荷运行的一组机器指令;shellcode通常用汇编语言编写,在大多数的情况下,目标系统执行了shell code这一组指令之后,才会提供一个命令行shell或者Meterpreter Shell。

模块(Module)

​ 模块指的是Metasploit框架中使用的一段软件代码组件;在某些时候可能会使用到一个渗透攻击模块(Exploit Module),也就是用于实际发起渗透测试的攻击的软件代码组件,而在其它时候,则可能使用一个辅助模块,用来执行一些类似扫描或系统端点的攻击动作;模块的健全是Metasploit框架强大的核心。

监听器(Listener)

​ 监听器是Metasploit框架中用来等待接入网络连接的组件,举例来说,在目标主机被渗透测试攻击之后,它会通过互联网回连攻击主机上,而监听器组件则在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。


Metasploit用户接口

Metasploit框架,有很多的用户接口,包括终端、命令行、图形化界面等;除此之外,功能程序则提供了对Metasploit框架中内部功能的直接访问。

MSF 终端

​ MSF终端(msfconsole)是目前Metasploit框架中最流行的用户接口(打开方式),MSF终端提供了最为灵活的的操作方式。

  • 启动MSF终端: 直接使用msfconsole命令是最快启动msf终端的方法

    root > msfconsole

上图则是在Kali下启动MSF终端后的界面内容

使用help则可以查看msf的帮助文档,而help connect命令则可以通过搜索的方式查看帮助文档。

msf5 > help connect

MSF命令行

MSF命令行是MSF终端为Metasploit框架访问提供了两种截然不同的途径,终端以一种友好的模式提供交互方式,用于访问呢框架的所有功能,而命令行(msfcli)则是主要考虑脚本处理和与其他命令行工具的互操作性。

root > msfcli
root > msfcli -h
  • 但是在新的msf3之后的4和5,不在使用msfcli命令了;但是并没有抛弃命令行模式,而可以使用“-x”标志来实现msfcli之前支持的操作。我们采用msfconsole -x来实现 使用 MS08_067模块。参考:https://blog.csdn.net/zesicus/article/details/49952279
root > msfconsole -x

Armitage界面

MSF图形界面交互式接口

root > armitage

Metaspoit功能程序

MSF攻击载荷生成器

​ MSF攻击载荷生成器可以生成shell code、可执行代码和其他更多的内容。ShellCode可以生成包括C、JavaScript、甚至Web应用中VB脚本在内的多种格式,每种输出格式在不同的场景中使用。比如,Python编写的的一个攻击验证代码【漏洞利用方法】(POC),那么C语言格式输出是最好的;如果编写一个浏览器攻击代码,那么JavaScript语言方式输出的ShellCode是最合适的,在选择输出的格式之后,可以简单的将这个攻击载荷直接加入到一个HTML文件中来触发渗透攻击。

2015年之后msfpayload命令也被移除了,所以被整合在msfvenom中了(msfpayload+msfencode = msfvenom)

root > msfvenom -h

MSF编码器

​ MSF攻击载荷生成器的shellcode完全是可以独立运行的,但是包含了一些NULL空字符,在进行解析的时候会出现一些小问题,空字符会认为是字符串的结束标志,从而使代码在完整的运行之前被截断而终止运行。

​ 同时在网络中明文传输shellcode会被查杀或识别拦截,为此MSF体系下支持自主的编码器对shellcode内容进行编码,防止被查杀或识别拦截。

​ Msfvenom的使用:http://www.zerokeeper.com/tools/use-of-msfvenom.html

Msfvenom 在 2015 年 6 月 8 日已经替代了 msfpayload 与 msfenocde 命令,它是这两个命令的结合体。

认识Metasploit框架的更多相关文章

  1. 4.Metasploit框架更新

    Metasploit 进阶第二讲  框架更新   EDB平台-互联网安全漏洞库   Exploit_DB是一个面向全世界安全工作人员的漏洞提交平台,是一份公开已知漏洞的存档,便于企业改善公司的安全情况 ...

  2. Metasploit框架问题

    1.使用nmap 扫描SMB服务漏洞信息 nmap -P0 --script=smb-check-vulns 10.10.15.123 2.sql语句绕过后台 这部分我待会补充 只有尽可能的过滤,没有 ...

  3. (一)走进Metasploit渗透测试框架

    渗透测试的流程 渗透测试是一种有目的性的,针对目标机构计算机系统安全的检测评估方法,渗透测试的主要目的是改善目标机构的安全性.渗透测试各个阶段的基本工作: 1.前期交互阶段 在这个阶段,渗透测试工程师 ...

  4. [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架【翻译】

    [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架[翻译] 标记声明:蓝色汉子为翻译上段英 ...

  5. metasploit 一款开源的渗透测试框架

    渗透神器漏洞利用框架metasploit from: https://zhuanlan.zhihu.com/p/30743401 metasploit是一款开源的渗透测试框架软件也是一个逐步发展与成熟 ...

  6. chapter1 渗透测试与metasploit

    网络对抗技术课程学习 chapter1 渗透测试与metasploit 一.读书笔记 二.渗透测试 通过模拟恶意攻击者的技术与方法进行攻击,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响 ...

  7. CentOS 6.x安装Metasploit

    现在开始安装Metasploit框架,前面的包安装成功之后,我们需要再安装一些Metasploit依赖的Ruby库,命令如下: gem install wirble pg sqlite3 msgpac ...

  8. KALI LINUX WEB 渗透测试视频教程—第十九课-METASPLOIT基础

    原文链接:Kali Linux Web渗透测试视频教程—第十九课-metasploit基础 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第十九课-metasploit基础..... ...

  9. Metasploit基础命令

    msf > show exploits 列Metasploip的所有可用的渗透测试框架.在MSF终端中可以针对渗透测试中发现的安全漏洞来实施相应的渗透攻击. msf > show auxi ...

随机推荐

  1. PHP安全之道学习笔记4:系统命令注入

    系统命令注入 我们有时候写代码会用php脚本去调用系统函数完成业务功能,但是一些系统函数属于高危操作,一旦被webshell或者抓住漏洞则后患极大. 下面整理如下风险系统函数. exec() 函数 该 ...

  2. Web前端基础(9):JavaScript(三)

    1. 常用内置对象 所谓内置对象就是ECMAScript提供出来的一些对象,我们知道对象都是有相应的属性和方法. 1.1 数组Array 1.1.1 数组的创建方式 字面量方式创建(推荐大家使用这种方 ...

  3. 【C#】学习笔记 Linq相关

    Language-Integrated Query(语言集成查询) 写了个demo,具体看

  4. OpenCV:图像的开运算与闭运算

    导包: import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) ...

  5. 微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装(一)

    在做web开发时,表单验证插件我们前端用的是jqueryValidate,由于个人主要精力是在后台JAVA开发上,为了让插件与后台更好的结合和使用,通过JAVA的自定义组件将表单全部重新写了一边,同时 ...

  6. 转战物联网·基础篇05-通俗理解MQTT协议的实现原理和异步方式

      网络上搜索MQTT协议,会出现太多的解释,这里就不做官方标准释义的复制了.这一节我们从实战理解角度,通俗的将MQTT协议的作用及实现原理说一下,旨在可以快速理解MQTT协议.所以可能会出现很多看似 ...

  7. numpy中array和matrix的区别

    两者相似但执行相同的运算可能得到不同的结果 显然,array只能通过dot()实现"矩阵乘法",array的"*"运算实现的是两个纬度相同的"矩阵&q ...

  8. vue预览本地图片

    <template> <div> <a href="javascript:void(0);" @change="addImage" ...

  9. 解决“QGtkStyle could not resolve GTK……”问题

    如果出现错误 QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries 或者出现错误 err ...

  10. 【转】Java中的关键字 transient

    阅读目录 先解释下Java中的对象序列化 关于transient关键字 举个例子 参考资料 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Jav ...