20145319 《网络渗透》MS08_067安全漏洞
20145319 《网络渗透》MS08_067安全漏洞
一 实验内容
- 了解掌握metasploit平台的一些基本操作,能学会利用已知信息完成简单的渗透操作
- 了解漏洞MS08_067的相关知识
- 安全公告:KB958644
- 时间:2008年底
- 原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC请求,通过MSRPC接口调用serve服务函数
NetPathCanonicalize函数
对进行远程访问的路径规范化,而此函数中存在栈缓冲区内存漏洞,可被利用实施远程代码执行 - 详细原理说明:在规范化路径操作中,就是将路径字符串中'/'置换成''以及出去相对路径(例如:'\.'),而服务程序在这部分的地址空间检查存在逻辑漏洞,攻击者可以在函数除去“\..”字符串时,将路径字符串中的内容复制到路径串之前的地址空间中,覆盖掉返回地址执行shellcode(原理类似我们之前所做的缓冲区溢出攻击)
- 受影响的操作系统:windows 2000/xp/server 2003/server 2008/vista/7 Beta
- 影响:能远程主动发起对漏洞主机端口的扫描,并且能直接获得漏洞主机的系统权限,属于最高严重级别的漏洞
- 本次实验渗透对象: Windows 2003 SP3
二 实验步骤
- 进入控制台之后,首先,我们可以使用
search命令
搜寻一下有关于漏洞MS08_067的相关信息 - 得到相应模块名之后,我们使用该模块,使用
show payloads命令
确定我们需要的攻击载荷 - 阅读每一个payload的功能描述,选择自己需要的payload,这里我选择
generic/shell_reverse_tcp
来获取漏洞主机的shell(选择我们之前用的windows/meterpreter/reverse_tcp
也是可以的,只是步骤和最后效果可能有些许不同) set payload generic/shell_reverse_tcp
选择payload,并查看相关信息- 按照上述信息,我们需要设置好监听ip,监听端口以及攻击Ip(这里需要利用RPC请求发起攻击,所以RPORT设置为445不需要修改)
- 我们可以通过修改target的值,来选择我们具体想要攻击的计算机系统(通常可以采用自动选取,即target设置为0)
- 设置完成后,使用
exploit命令
发起渗透攻击,结果如下
三 问题
- 很多同学看了上述步骤也许早就开始动手实践起来,感觉自己像电影里的黑客高手一样,流畅而优雅的对目标主机进行攻击,输入
exploit命令
成功的界面似乎下一秒就要跳出来,但是你却遇到了一些意料之外的事情 - 可能是它
- 或者是它
- 什么,这和说好的不一样!!不要心急,我们可以从错误信息来慢慢分析
- 首先第一种情况,错误报告为
connectionRefused
我们的连接被拒绝了,第一时间我们可以对目标机进行ping命令尝试,发现可以ping通,这时候我们就要慢慢从渗透工作的开始重新来过 - 第一步,我们要先搜集关于目标机的信息,我们可以使用Nmap来探测有关于目标机的端口以及其他信息
- 我们找到了真正原因,目标的445端口是关闭的
- 这时候我们可以通过目标机的计算机管理中,启动server服务,将445端口打开
- 或者打开注册表管理,依次点击注册表选项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters
,进入NetBT这个服务,将SMBDeviceEnabled值
修改 - 之后有了上面的经验我们来分析第二个错误,同样我们依照上述思路对目标机进行收集,此外这里就不得不提nmap的强大功能,这次我们将使用到nmap的script模块,脚本功能,我们使用的vuln脚本将会扫描目标机存在的漏洞
- 我们注意到HOST SCRIPT RESULT块的信息,发现其中并没有我们想要的结果MS08_067
- 这时候我们可以在目标主机中输入
systeminfo命令
看到第123条,KB958644,正是漏洞MS08_067的安全公告编号(看来刘老师拷给我们的靶机实在是固若金汤,居然早已经下好了补丁),我们已经找到原因了,目标主机居然是安全的!!这时我们只有选择将这个补丁卸载(貌似会导致其他服务也无法启动),可是我们已经学到了如何利用MS08_067漏洞进行渗透的思路和手法,不如青山不改绿水长流,去渗透其他具有漏洞的主机吧
四 其他
- 这次ms08_067漏洞渗透的原理其实是与我们之前的缓冲区溢出攻击类似的,因此也受到数据执行保护,和地址随机化的影响,但是我们现在的计算机操作系统多半都有DEP机制(数据执行保护),所以实验不成功的伙伴们可以考虑关闭掉这个机制
- xp系统下,找到系统文件boot.ini修改最后一行将
/noexecute=optin
为/execute
20145319 《网络渗透》MS08_067安全漏洞的更多相关文章
- 20145319 《网络渗透》MS11-050漏洞渗透
20145319 <网络渗透>MS11-050漏洞渗透 一 实验内容 初步掌握平台matesploit的使用 有了初步完成渗透操作的思路 了解MS11_050相关知识: - 安全公告:KB ...
- 20145211《网络渗透》MS12-004漏洞渗透
20145211<网络渗透>MS12-004漏洞渗透 一 实验原理 初步掌握平台matesploit的使用 有了初步完成渗透操作的思路 在这里我选择对的不是老师推荐的MS11_050,而是 ...
- 20145319 《网络渗透》MS12_020安全漏洞
20145319 <网络渗透>MS12_020安全漏洞 一 实验内容 初步掌握平台matesploit辅助模块aux的使用 辅助模块包括扫描等众多辅助功能 本次展示DOS攻击的实现 有了初 ...
- 20145211 《网络渗透》MS08_067安全漏洞
20145211 <网络渗透>MS08_067安全漏洞 一.实验原理 ms08_067是服务器服务中一个秘密报告的漏洞,于2008年被发现.攻击者利用靶机默认开放的SMB服务的445端口, ...
- 20145319 《网络渗透》MSF基础应用
20145319 <网络渗透>MSF基础应用 一 实验链接 渗透实验一:MS08_067渗透实验 渗透实验二:MS11_050渗透实验 渗透实验三:Adobe阅读器渗透实验 渗透实验四:M ...
- 20145319 《网络渗透》web基础
20145319 <网络渗透>web基础 实验要求 掌握网页编程的基本知识 html语法 javascript php 前端,后台,数据库之间如何建立连接 掌握数据库的使用 mysql的启 ...
- 20145319 《网络渗透》免考—API拦截技术
20145319 <网络渗透>免考-API拦截技术 概述 本次实验在window环境下进行,主要通过编写hook代码和注入程序,将我们的hook代码通过dll文件的形式注入到目标中,拦截其 ...
- 20145319 《网络渗透》web安全基础实践
20145319 <网络渗透>web安全基础实践 问题回答 Sql注入攻击原理,如何防御 攻击原理:由于对于用户输入并没做出相应限制,因此可以通过构造特定的sql语句,达到自身的一些非法目 ...
- 20145319 《网络渗透》DNS欺骗
20145319 <网络渗透>DNS欺骗 实验内容 dns欺骗实质上就是一种通过修改dns文件来改变目标想访问的域名和对应ip的攻击,使得目标在访问自己常用域名时不知不觉落入我们的圈套(可 ...
随机推荐
- Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案
1.问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.为什么?其实不是HtmlReport不被执行,也不是HtmlRep ...
- springboot整合mybatis遇到无法扫描MaperScan包的问题
1.启动类加上@MaperScan注解后,一直报错如下: Error creating bean with name 'platUserMapper' defined in file [D:\work ...
- vue中父组件给子组件传值,子组件给父组件传值
1.父组件传给子组件 父元素中 子元素中(通过props传值) 2.子组件传给父组件 子元素中(this.$emit(传过去的名字,传的参数)) 父元素中 通过changeShow的参数data 把修 ...
- 超哥教你发布CRM
发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(W ...
- java service 安装
sudo ln -s /var/services/video/video-live.jar /etc/init.d/live-service sudo chmod +x /var/services/v ...
- python继承和多态
继承 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不 ...
- java中main函数的String[] args
写java程序时main函数必须有一个字符串数组即String[] args 作用:用来获取用户从命令行输入的参数 如果main函数中不写字符串数组,则将会报错
- 【Oracle入门】数据库的二级映像
数据库系统 的模式.内模式.外模式之间有很大的差别,为了实现用户和数据之间的透明化,DBMS提供了两层映像:外模式.模式映像和模式/内模式u映像.有了这两层映像,用户就能逻辑地.抽象地处理数据,而不必 ...
- 拓扑排序bfs_dfs
dfs #include <cstdio> #include <cstring> using namespace std; ; struct Edge{ int lst; in ...
- oc语言的Foundation框架(学习笔记1)
Foundation框架 1.Foundation框架介绍 框架是由许多类.方法.函数以及文档按照一定的规则组合的起来的集合. cocoa程序编写主要用到2个框架Foundation和Applicat ...