| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【网络安全】brainpan-windows缓冲区溢出详解 -> 正文阅读 |
|
[网络协议]【网络安全】brainpan-windows缓冲区溢出详解 |
简介渗透测试
一、前言缓冲区溢出(buffer overflow),是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。 项目十七:brainpan-1,专门考验缓冲区溢出知识,该项目仅仅开放了10000端口作为web端,经过简单的目录爆破就能发现存在brainpan.exe文件,该项目是乌班图环境并且安装了win的模块运行着exe文件,该文件启动了9999端口支撑服务,该环境就和AWD中的PWN题目一样,直播教学会有多种方法详细解释如何理解缓冲区溢出,如何发现缓冲区溢出,遇到缓冲区溢出如何利用,栈是什么等等问题详解。 接下来我分享其中方法一,欢迎大佬们指点。 测试是否存在缓冲区溢出:
通过对程序发送1~1500位不等字符进行验证,提示程序崩溃,存在缓冲区溢出! 二、windows缓冲区溢出1、windows 10打开Immunity DebuggerImmunity Debugger-漏洞分析专用调试器,没有的百度到处是下载地址! Immunity Debugger 安装参考:
开始利用操作: 运行出数据后的界面: 该界面是最初始的程序开启界面,需要点击右箭头图标才可运行程序: 开启完程序后,EAX值会清零,这时候本地程序会正常运行,并开启9999端口! 2、查询偏移量1)利用pattern_create.rb生成1000位随机数值
2)修改脚本brainpan1 3)发送1000位随机去覆盖程序
在kali执行对44的windows9999服务进行冲击。 可看到ESP已经被覆盖,得出EIP的值:35724134 4)EIP查看偏移量
偏移量524! 5)解析下如何得到的 首先要知道内存地址和平常书写地址是相反的,内存会把内存低地址放在高位,内存高地址放在低位,所以排列顺序是:
对比ASCII表:
对照ASCII表信息是:4Ar# 所以对照的就是pattern_create.rb生成的1000字符中524位的地方存在溢出,pattern_offset.rb会自动计算在1000个字符中4Ar5位置在哪儿! 3、查看shellcode空间大小思路: 这里将放入472个字节C去测试!
EBP栈底指针已经被524个A覆盖,EIP已经指出四个B,ESP已经覆盖了472个C字节。 在ESP位置右键选择:Follow in Dump 在左下视图右键选择:Hex-Hex/ASCII(16 bytes) 选择十六个字节一行显示去观察! 可看到起始位:005ff910,结束位:005FFAE0 1D0是十六进制,转换十进制: 最少的shellcode需要300字节,现在寄存器的大小是464,足以存放一个shellcode! 4、查找坏字符不同类型的程序、协议、漏洞,会将某些字符认为是坏字符,这些字符有固定用途:
思路: 接下来查看坏字符,重新运行程序:brainpan2
或者是查看:右键选择Follow in Dump 可看到选择16字节显示后,最右边都是19F说明没有坏字符! 对比发现除了00外,其余都很正常! 5、漏洞利用开发重定向数据流:
变通思路:
SafeSEH、ASLR、NXCompat都是内存保护机制所保护的模块! 现在进入该模块去查找有没有jmp esp的命令! 查找JMP ESP:
可看到jmp esp地址:\xff\xe4 首先我们需要找到EIP offset,也就是正好覆盖到EIP的偏移量以便我们精准的覆盖EIP寄存器。所以我们要知道哪4个 a是放入到了EIP寄存器中,这就很复杂了,当然方法是有的,这里我们使用Immunity Debugger的插件mona,这样我们就避免了平常复杂的寻找方法。 安装mona: 将mona.py放在Immunity Debugger安装目录PyCommands下就行了!
获得JMP ESP地址:0x311712f3 shellcode生成:
生成shellcode后进行脚本编写! brainpan4: 将shellcode防止对端! windows10开启brainpan.exe: kali运行脚本: 成功缓冲区溢出,获得反弹shell: 这时候要反弹linux的shellcode:brainpan5
然后替换脚本shellcode: 替换后进行执行:
MSF成功获得反弹shell! 三、总结今天学到windows缓冲区溢出中windows 10使用Immunity Debugger逆向分析工具,熟悉栈如何查找栈空间,如何查看坏字符,如何编写EXP利用等等操作,最后远程代码执行控制服务器等操作,学到了非常多的小技巧和干货,希望小伙伴能实际操作复现一遍!来巩固告知企业单位的漏洞情况,并尽快进行加固巩固安全! 希望大家提高安全意识,没有网络安全就没有国家安全! 今天基础牢固就到这里,虽然基础,但是必须牢记于心。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:21:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |