在前几篇的博客中:我介绍了OpenVAS和Nessus这两个强大的自动化漏洞扫描器

但是,在计算机领域中有种叫做0day漏洞:没有公开只掌握在某些人手中

那么,这些0day漏洞是如何被发现的呢?

接下来就介绍下这一类漏洞中最典型的一种:缓冲区溢出

通过缓冲区溢出,甚至可以控制目标机器

什么是缓冲区:内存中一个片段

使用程序,就会调用参数和变量,程序会提交数据给计算机,先放入内存,

再交由CPU运算处理,然后可能会写入计算机硬盘进行保存。

程序不像是图片文字不变的,它会根据用户的操作而有不同的反应

计算机所有漏洞基本原理:程序提交给计算机一段代码和一些数据,而我们使用一些手段

使计算机把代码当成数据,把数据当成代码,然后错误执行,这样就会导致一些内存注入漏洞

进而,可以破坏程序,甚至是提权

接下来用一个shell脚本来分析基本的漏洞:

#!/bin/bash
echo $

这个脚本很简单

功能:执行的时候输出你输入的参数

比如我输入一个666(第一行是给脚本执行权限)

这样的话脚本执行没问题,但是,我如果后边输入的不是666,而是一段系统指令,结果会怎样呢?

发现并没有执行异常,是不是说明这个脚本就没有漏洞呢?

不是,加个分号,结果就不一样了

(其实,用|或&或其他一些字符,都可以导致执行异常)

看到这里并没有输出;ls,而是执行了ls命令

接下来,就可以用nc命令连接服务器,控制服务器等等

那么我们如何去发现缓冲区漏洞呢?

通常发现漏洞的方式:

1.源码审计:需要有源码

2.逆向工程:另外一个领域

3.模糊测试:重点关注

这里要注意模糊测试:

向程序堆栈发送半随机的数据,根据内存变换判断溢出

这里就要用到数据生成器,测试工具

可以使用别人写好的数据生成工具,当然如果可以自己写,功能会更有针对性

接下来看看具体的缓冲区溢出案例:

Windows系统的缓冲区溢出:

这里会使用一个有缓冲区溢出漏洞的程序SLMail5.5

还有一个需要用到的工具:ImmunityDebug1.85

一个小工具:mona-master.zip

我把他们上传到了百度网盘:

链接:https://pan.baidu.com/s/1H4QqRnG2d9_lBTM1czxJ7A
提取码:9t6c

测试来看,不建议使用本机,开一个win2003虚拟机即可

高版本WINDOWS也不建议,漏洞一般都被微软处理了

安装邮件服务器

注意记住IP,等会测试这个IP

后边这一项注意:由于只是本地虚拟机之间测试,选择如下

后边随便设置一个域名:

这样一步一步安装好之后重启电脑,查看端口,如果开放了这几个端口,那么就安装成功!

为确保安装完成,再次检查service:

发现这几个和邮件相关的服务都启动了,注意为了测试把windows机器的防火墙关了

接下来安装调试工具:ImmunityDebugger

这个不必多说,下一步点击傻瓜式安装即可

安装好之后,打开安装目录,把刚才我提供的MONA.PY放到PYCOMMONDS文件夹中

准备工作到此完成

开启Kali机器准备测试:

连接目标机器25端口:

继续测试发现110端口也是开启状态:

到这里准备工作就做完了

接下来我们使用Kali机器对邮件服务器发送命令来模糊测试缓冲区溢出

Kali学习笔记20:缓冲区溢出实验环境准备的更多相关文章

  1. Kali学习笔记21:缓冲区溢出实验(漏洞发现)

    上一篇文章,我已经做好了缓冲区溢出实验的准备工作: https://www.cnblogs.com/xuyiqing/p/9835561.html 下面就是Kali虚拟机对缓冲区溢出的测试: 已经知道 ...

  2. Kali学习笔记33:Linux系统缓冲区溢出实验

    之前做过一个Windows应用SLmail的缓冲区溢出的实验 这次来做一个Linux平台的缓冲区溢出实验: 缓冲区溢出是什么? 学过汇编的应该知道,当缓冲区边界限制不严格时,由于变量传入畸形数据或程序 ...

  3. Kali学习笔记22:缓冲区溢出漏洞利用实验

    实验机器: Kali虚拟机一台(192.168.163.133) Windows XP虚拟机一台(192.168.163.130) 如何用Kali虚拟机一步一步“黑掉”这个windowsXP虚拟机呢? ...

  4. SEED缓冲区溢出实验笔记

    缓冲区溢出实验(Linux 32位) 参考教程与材料:http://www.cis.syr.edu/~wedu/seed/Labs_12.04/Software/Buffer_Overflow/ (本 ...

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

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

  6. 2018-2019-2 20165232《网络对抗技术》Exp1 缓冲区溢出实验

    2018-2019-2 20165232<网络对抗技术>Exp1 缓冲区溢出实验 实验点1:逆向及Bof基础实践 实践任务 用一个pwn1文件. 该程序正常执行流程是:main调用foo函 ...

  7. 2018-2019-2 20165225《网络对抗技术》Exp1 缓冲区溢出实验

    2018-2019-2 20165225<网络对抗技术>Exp1 缓冲区溢出实验 声明 虽然老师在邮箱中要求要把虚拟机名改为个人名字缩写,但是我的kali好像不是很听话...重启数次也没用 ...

  8. kvm虚拟化学习笔记(一)之kvm虚拟化环境安装

    平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉 ...

  9. Redis学习笔记六:持久化实验(AOF,RDB)

    作者:Grey 原文地址:Redis学习笔记六:持久化实验(AOF,RDB) Redis几种持久化方案介绍和对比 AOF方式:https://blog.csdn.net/ctwctw/article/ ...

随机推荐

  1. IDEA 上 Tigase8.0 源代码编译运行

    Tigase交流群 :310790965 一些小伙伴们经常问Tigase8 check下来的源代码怎么跑起来,因为我不能及时一 一回答,所以还是写个博文来演示一下吧,一般针对新手而言,老手的话,就跳过 ...

  2. Linux服务器上监控网络带宽的18个常用命令 zz

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  3. CSS3扫描动画效果

    .swiper-animate { position: absolute; width: 100%; height: 100%; left:; top:; z-index:; background: ...

  4. Saliency Detection via Graph-Based Manifold Ranking

    Saliency Detection via Graph-Based Manifold Ranking https://www.yuque.com/lart/papers 本文不是按照之前的论文那样, ...

  5. sqlite基本用法

    DDL-数据定义语言 CREATE 创建一个新的表,一个表的视图,或者数据库中的其他对象. ALTER 修改数据库中的某个已有的数据库对象,比如一个表. DROP 删除整个表,或者表的视图,或者数据库 ...

  6. IDEA 错误: 找不到符号

    在IDEA添加了一个新的Mapper.xml文件,然后删除,重新编译该文件所在的模块时,提示我编写的类找不到符合. 解决方法:右键.java文件,选择“complile ....”(ctrl+shif ...

  7. 从信息论的角度分析DNN的工作原理

    在前面的文章里,使用神经网络的任意函数拟合性结合了一点黎曼几何的坐标系变化的知识,解释了神经网络是怎样根据输入x,计算出每个分类下的能量Ei(x)的,再之后使用能量模型推算出了概率,从而展示了理论上可 ...

  8. 关于下载calipso数据集以及用python将其读到记事本小结

    今天终于把老板交代的事情忙完了,对于我这位计算机语言的小白来说,其中的艰辛不用说,一把辛酸泪啊!在有计算机语言经验的老手而言,我这些问题似乎也不能算是问题,但我却卡了很久,对此,想把自己所遇到的困难和 ...

  9. 使用kbmmw 的REST 服务实现上传大文件

    我们在使用kbmmw的REST 服务时,经常会下载和上传大文件.例如100M以上的.kbmmw的rest服务中 提供标准的文件下载,上传功能,基本上就是打开文件,发送,接收,没有做特殊处理.这些对于文 ...

  10. gensim和jieba分词进行主题分析,文本相似度

    参考链接:https://blog.csdn.net/whzhcahzxh/article/details/17528261 demo1:结巴分词: # 构造分词库,格式如下: ''' [['楼下', ...