缓冲区溢出漏洞_电脑基于堆栈的缓冲区溢出

缓冲区溢出漏洞_电脑基于堆栈的缓冲区溢出缓冲区溢出缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下了隐患。操作系统所使用的缓冲区,又被称为”堆栈”。在各个操作进程之间,指令会被临时储存在“堆栈”中,“堆栈”也会出现缓冲区溢出。缓冲区溢出的危害…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

缓冲区溢出

缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。

理想的情况是:程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下了隐患。操作系统所使用的缓冲区,又被称为”堆栈”。在各个操作进程之间,指令会被临时储存在“堆栈”中,“堆栈”也会出现缓冲区溢出。缓冲区溢出的危害:在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害是:一种情况是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。

MS12-020漏洞

微软于2012年3月12日发布安全公告,公布了MS12-020漏洞,漏洞级别为严重,这个级别是微软所有漏洞级别的最高级别,意即会对服务和企业运营造成巨大损失。
这个漏洞的定义是指操作系统的远程桌面协议存在重大漏洞,入侵者(黑客)可以通过向远程桌面默认端口(3389)发一系列特定RDP包,从而获取超级管理员权限,进而入侵系统。
若该主机同时提供80端口服务,那么疑似有相对更大的隐患。
根据微软的安全公告,Windows全系列操作系统(WinXP/Vista/Win7/Win2000/ Win2003/Win2008)均存在受控威胁。但因为远程桌面管理的特殊性,几乎所发现的主机都是服务器,PC机暂未发生。

Metasploit工具

Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并对安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,密码审计,Web应用程序扫描,社会工程等。
Metasploit是一个攻击工具开发平台,可以扩展的模型将负载控制,编码器,无操作生成器和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。最新版本的 MSF 包含了750多种流行的操作系统及应用软件的漏洞,以及224个 shellcode 。作为安全工具,它在安全检测中用着不容忽视的作用,并为漏洞自动化探测和及时检测系统漏洞提供了有力保障。

信息来源——合天网安实验室

接下来开始复现,使用合天网安所提供的实验环境。靶机ip地址为:10.1.1.2

  1. 进入实验环境,查看并测试环境所提供的buffer.c程序,其中buffer.c的源代码如下(这一步旨在帮助理解缓冲区溢出漏洞的原理):
    /buffer.c/
    #include <stdio.h>
    int main()
    {

    char name[8];
    printf(“Please input your name: ”);
    gets(name);
    printf(“your name is : %s!”, name);
    return 0;
    }

测试一下这段代码:
在这里插入图片描述

  1. 使用溢出工具获取靶机(10.1.1.2)的shell特权

在cmd中查看溢出工具dns.exe并运行dns.exe,查看它的介绍及使用方法,红框中的为比较重要的。
在这里插入图片描述

根据介绍开始尝试使用这个dns.exe工具,扫描靶机
在这里插入图片描述

可以看到1027四个数字后面写着“易受攻击的”,根据dns.exe的介绍,加上我们用dns扫描出来的成果可以使用dns -t来对靶机进行溢出。
在这里插入图片描述

“port”是端口的意思,“bind”是捆绑的意思,大概读一下发现我们可以从1100这个端口进行攻击,接下来开始用telnet连接靶机!

使用telnet 10.1.1.2 1100命令,进入如下页面
在这里插入图片描述

接下来,我们确认一下我们是否拿到了靶机的shell,使用ipconfig来确定ip地址是否为10.1.1.2
在这里插入图片描述

成功了,我们已经通过dns这个溢出工具拿到了靶机的shell!接下来我们利用漏洞使靶机瘫痪!

  1. 使用MS12-020漏洞溢出靶机系统

我们先启动metasploit console,博客的开始有介绍metasploit,可以再翻回去看一下
这里有metasploit的用法:https://www.cnblogs.com/panisme/p/8341598.html

成功进入界面如下
在这里插入图片描述

接下来,在msf>下使用db_nmap -sT -p3389 10.1.1.2对靶机进行扫描,简单分析一下得到的信息
在这里插入图片描述

下一步,我们要使用ms12_020漏洞进行攻击,所以我们先搜索一下这个漏洞的利用模块:search ms12_020
在这里插入图片描述

简单分析一下,红框下面有个“scanner”,所以它应该不能用来攻击,那我们就试试用红框里的
输入use auxiliary/dos/windows/rdp/ms12_020_maxchannelids并设置上参数,即靶机的ip地址,再用show options查看确认
在这里插入图片描述在这里插入图片描述

好的,万事具备,使用exploit命令开始攻击!
在这里插入图片描述

攻击完毕,我们在cmd中ping一下靶机的ip地址看看有什么结果。
这里说明一下,在合天上正常的显示应该是数据延迟,ping不出来东西,但我在做的时候,exploit攻击完毕后,cmd中会显示与主机断开连接,ping 10.1.1.2却还是正常的,只有数据的接受时间与延迟前后不太一样,我前前后后试了有六七次都是这样,有可能是这个漏洞年代久远,也可能是其它原因,所以,这个漏洞复现并没有完全成功,我会再寻找它的原因的!
在这里插入图片描述

总结一下:攻击与防御思路真的很重要,每一步做什么,怎么做都至关重要,跳做一步,少做一步,都有可能使攻击失败,只有脑海中有大概的思路,明确每一步做什么,一步一步走,而且千万要细心,有时候打错一个大小写就要重新来一遍。

如需转载,请注明原文出处,作者:vergilben

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234056.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • FCoin币改试验区(主版C)筹备公告(5号)「建议收藏」

    7月9日,币改试验区筹备组已经完成了一轮投票,通过了16位新成员,当前群成员总数26人。今日启动第二轮投票的前期准备工作。我们欢迎热心通证经济实践的社会各界有识之士继续报…

  • 测试18

    测试18文章目录系统测试概述功能测试性能测试负载测试压力测试性能测试、压力测试、负载测试的关系兼容性测试安全测试健壮性测试配置测试可用性测试文档测试系统测试概述系统测试的定义将已

  • 【原创】纯干货,Spring-data-jpa详解,全方位介绍。

    【原创】纯干货,Spring-data-jpa详解,全方位介绍。本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第…

  • 金士顿16g u盘量产[通俗易懂]

    金士顿16g u盘量产[通俗易懂]1.首先用最新版本chipgenius查看芯片,如果老版本是识别不出来的。2.点击MPALL_F1_9000_v329_0B3.点击update出现芯片4.点击loadlastsetting。5.打开autodetect选项,mode为21,cdromsize为MB不填写自动分区,最后选择ISO文件本人是选…

  • Linux虚拟机连接网络,CentOS的联网技巧

    Linux虚拟机连接网络,CentOS的联网技巧Linux虚拟机连接网络大前提:电脑联网为WIFI小提示:电脑有线网的虚拟机联网方式1.打开Linux虚拟机,在菜单栏虚拟机->虚拟机设置->网络适配器,设置网络连接,NAT模式2.打开宿主机的设置->状态->更改适配器选项3.按照以下要求更改4.注意VMnet8的修改5.在Linux虚拟机中,菜单栏编辑->虚拟网络编辑器6.进入虚拟机修改(首先打开控制台)7.改好ens32或ens33文件后,重启用dhclient配置连

  • 如何把本地项目上传到Github

    如何把本地项目上传到Github

    2021年10月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号