缓冲区溢出

缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下了隐患。

操作系统所使用的缓冲区,又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在“堆栈”中,“堆栈”也会出现缓冲区溢出。

缓冲区溢出的危害:在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害是:一种情况是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。


MS12-020漏洞

微软于2012年3月12日发布安全公告,公布了MS12-020漏洞,漏洞级别为严重,这个级别是微软所有漏洞级别的最高级别,意即会对服务和企业运营造成巨大损失。

这个漏洞的定义是指操作系统的远程桌面协议存在重大漏洞,入侵者(黑客)可以通过向远程桌面默认端口(3389)发一系列特定RDP包,从而获取超级管理员权限,进而入侵系统。

若该主机同时提供80端口服务,那么疑似有相对更大的隐患。

根据微软的安全公告,Windows全系列操作系统(WinXP/Vista/Win7/Win2000/ Win2003/Win2008)均存在受控威胁。但因为远程桌面管理的特殊性,几乎所发现的主机都是服务器,PC机暂未发生。


使用给定的程序测试缓冲区溢出

        先看一段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;
}

可以看到代碼給name變量分配了8個字節的空格,如果輸入超過8個字節會發生什麼呢?

输入my name is bjhit,这时候程序出现异常!


利用溢出工具溢出目标系统,获取目标系统shell

        文件dns.exe,这个文件即是我们本次实验的溢出工具。如下图所示:

运行dns.exe工具,运行dns.exe工具,如下图所示:

对目标主机进行溢出

使用telnet与远程主机建立连接。 输入ipconfig命令查看目标主机信息,看是否拿到目标主机shell。


利用MS12-020漏洞溢出目标系统,使目标系统瘫痪

        Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并对安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,密码审计,Web应用程序扫描,社会工程等。

在msf>提示符下输入命令:db_nmap -sT -p3389  10.1.1.2, 收集目标主机信息,并对返回的信息进行分析。

可以看到目标主机的相关信息,开放了3389远程桌面等等。

利用模块:search ms12_020,利用ms12_020漏洞,对目标机进行攻击。置相关的参数,如下图:

使用exploit命令进行利用,查看攻击结果,ping 目标主机,查看主机是否瘫痪。


缓冲区溢出基础与实践相关推荐

  1. 缓冲区溢出基础实践(二)——ROP 与 hijack GOT

    3.ROP ROP 即 Return Oritented Programming ,其主要思想是在栈缓冲区溢出的基础上,通过程序和库函数中已有的小片段(gadgets)构造一组串联的指令序列,形成攻击 ...

  2. 【软件安全】缓冲区溢出攻击(stack overflow)实践

    文章目录 前言 攻击准备 攻击目标与原理 漏洞程序 攻击程序 攻击步骤 关闭现有安全机制 以root身份编译漏洞程序 确定`shellcode`在内存中位置 执行攻击程序 总结 参考资料 前言 最近在 ...

  3. 计算机系统基础学习笔记(7)-缓冲区溢出攻击实验

    缓冲区溢出攻击实验 实验介绍 实验任务 实验数据 目标程序 bufbomb 说明 bufbomb 程序接受下列命令行参数 目标程序bufbomb中函数之间的调用关系 缓冲区溢出理解 目标程序调用的ge ...

  4. 使您的软件运行起来: 了解有关缓冲区溢出方面的基础知识

    本周专栏包括了最初由 Tom O'Connor(Surety.Com 的软件工程师)编写的一些材料. 几十年来,缓冲区溢出一直引起许多严重的安全性问题.其中最著名的例子是:1988 年,因特网蠕虫程序 ...

  5. 计算机系统基础-缓冲区溢出攻击

    实验目的 这项作业将帮助你发展对 IA-32 调用约定和堆栈组织的详细理解.它包括对实验室目录中的可执 行文件 bufbomb 进行一系列缓冲区溢出攻击 实验要求 本实验的各个阶段需要每个学生提供稍微 ...

  6. 使用Linux进行缓冲区溢出实验的配置记录

    在基础的软件安全实验中,缓冲区溢出是一个基础而又经典的问题.最基本的缓冲区溢出即通过合理的构造输入数据,使得输入数据量超过原始缓冲区的大小,从而覆盖数据输入缓冲区之外的数据,达到诸如修改函数返回地址等 ...

  7. 堆栈 cookie 检测代码检测到基于堆栈的缓冲区溢出_WhatsApp缓冲区漏洞曝光 攻击者可通过MP4文件执行远程代码...

    Facebook 刚刚披露了 WhatsApp 缓冲区漏洞的部分细节.在上周的一份安全公告中,其表示 CVE-2019-11931 是由基于堆栈的缓冲区溢出 bug 引发,导致攻击者可向受害者发送精心 ...

  8. 缓冲区溢出漏洞_缓冲区溢出漏洞简介

    缓冲区溢出漏洞 重点 (Top highlight) 缓冲 (Buffer) A buffer is a temporary storage, usually present in the physi ...

  9. 软件漏洞及缓冲区溢出

    软件漏洞及缓冲区溢出 文章作者:davy_yan 本文是我做溢出的一点心得,希望大家提出宝贵的修改意见,也希望对大家有一定的帮助:) 软件漏洞及缓冲区溢出 一.     缓冲区溢出的发展简史 1.   ...

最新文章

  1. 电动车逆变器的基础知识
  2. Drupal 7中 page.tpl.php 的可用变量
  3. Android Notification 手机系统横幅弹出提示框调用,横幅通知,RemoteViews使用实例
  4. mysql-5.7.24初始化数据库_MySQL5.7.28 初始化数据库
  5. 0x00000116
  6. 繁体中文转换为简体中文的PHP函数
  7. 中科大计算机竞赛夺冠,中科大斩获全国唯一特等奖,力压清华捧得华为毕昇杯...
  8. HttpWebRequest,HttpWebResponse
  9. 小知识--DOS命令2
  10. 在vs中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足)
  11. 如何创建C语言的项目
  12. CPC客户端离线升级失败,不能获取updatesipo信息,可能你的软件在线更新程序没有安装
  13. 随机过程通过线性系统matlab,随机信号分析实验:随机过程通过线性系统的分析.doc...
  14. 【最优化】最优化理论的基本概念
  15. python中撤销的快捷键_python常用快捷键
  16. 快速切换node版本
  17. STN(Spatial Transformer Networks)
  18. 分集增益的不同合并方式的性能分析
  19. 01百思不得其姐基本配置
  20. 【Druid】(四)Apache Druid 部署和配置(单机版 / Docker 容器版 / Kubernetes 集群版)

热门文章

  1. 雨棚板弹性法计算简图_顾祥林梁板结构PPT课件.ppt-资源下载人人文库网
  2. 前端面试题个人汇总(精简知识要点 总结话术) / 前端小知识 保持学习 (年终奖年终奖 心心念念年终奖)
  3. Citavi在Word中无法启用 的解决方法
  4. 南大通用数据库-Gbase-8a-学习-30-多VC安装
  5. Swin-Transformer:Hierarchical Vision Transformer using Shifted Windows详细解读
  6. 小程序登录+DouPHP笔记
  7. 光纤收发器接口类型、连接、指示灯说明及故障症断
  8. Tomcat8源码分析系列-spring boot集成tomcat
  9. 拥塞控制算法——BBR
  10. 【开学季】再见大一,你好大二 | 完成自己的未完成