• Kali学习笔记20:缓冲区溢出实验环境准备


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

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

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

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

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

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

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

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

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

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

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

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

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

    #!/bin/bash
    echo $1

    这个脚本很简单

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

    比如我输入一个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机器对邮件服务器发送命令来模糊测试缓冲区溢出

  • 相关阅读:
    取某个关键词以及之后的数据
    从SQL下载大量数据到Excel
    SQL 分页
    whereis linux文件搜索
    crontab Linux定时器工具
    Angular
    工具
    百度OAuth2.0登录
    JS事件学习 拖拽,鼠标键盘事件实例汇总
    信息栏滚动效果学习总结
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/9835561.html
Copyright © 2020-2023  润新知