设为首页 - 加入收藏
广告 1000x90
您的当前位置:144177黄大仙有求必应 > 静态缓冲区 > 正文

kali渗透测试之缓冲区溢出实例-windowsPOP3SLmail

来源:未知 编辑:admin 时间:2019-06-12

  空间存储了用户程序的函数栈帧(包括参数、局部数据等),实现函数调用机制,它的数据增长方向是低地址方向。堆空间存储了程序运行时动态申请的内存数据等,数据增长方向是高地址方向。除了代码段和受操作系统保护的数据区域,其他的内存区域都可能作为缓冲区,因此缓冲区溢出的位置可能在数据段,也可能在堆、栈段。如果程序的代码有软件漏洞,恶意程序会“教唆”程序计数器从上述缓冲区内取指,执行恶意程序提供的数据代码!

  在进行本机调试时,需把kali的防火墙设置一下,防止在学习渗透过程中受到攻击。

  POP3 PASS命令存在缓冲区溢出漏洞,无需身份验证实现远程代码执行。

  DEP:一种结合软硬件安全机制,阻止代码从内存数据页中被执行;【可绕过】

  ASLR(动态内存分配):随机内存地址加载执行程序和DLL,每次重启,内存地址变化

  利用原理:“PASS”命令后,当一些特殊定制的命令输入,会造成缓冲区溢出,上传shellcode,可控制目标系统,则不需要经过身份验证,获得权限

  【注:如何了解应用/协议能接受的固定指令:1、Wireshark 2、RFC【必须理解系统底层和协议底层】】

  02.py【不断增大发送量,通过Debug确定是否会溢出】【若发到数目很大,还没溢出,则可放弃】##大概确定范围

  ##通过调试工具查看是否异常?【静态调试(汇编)、动态调试(正在运行的进程:attach)】

  #EIP:下一跳指令的内存地址,若下一跳指令被修改,则可执行某一地址空间,运行shellcode

  #缓冲区溢出虽然发生了,但A未修改EIP,则证明溢出的字符数目应在2600~2700之间

  #生成2700个每四个字符为一组的唯一字符串,使用kali中metasploit脚本工具

  思路:将EIP修改为shellcode代码的内存地址,将shellcode写入到该地址空间,程序读取EIP寄存器数值,将跳转到shellcode代码段并执行

  06.py【手动修改C数值,判断内存空间大小是否能放一下shellcode,本章假设ESP寄存器可放3500】

  #从第一个出现C的地址计算到最后一个C的地址 #可以通过右键Hex,选择16进制表示,方便阅读

  #使用科学计算器,windows下,calc-查看-十六进制,减去结果再转化为十进制,得结果为416

  #在做模糊测试过程中,因为不同类型的程序、协议、漏洞,会将某些字符认为是坏字符,,这些字符有固定用途。如:null byte (0x00)空字符,用于终止字符串的拷贝操作;return (0x0D)回车操作,表示POP3 PASS指令操作完毕。注:返回地址、shellcode、buffer都不能出现坏字符

  07.py【思路:发送0x00-0xff 256个字符,查找所有的坏字符】

  #此字符后,数据显示异常,则该字符(0A)可能有问题,进行下一步验证【修改0A为某一正常字符重新发送】

  #验证得0A 为坏字符 ;0D为坏字符不出现,缩进一格,全部检查,发现00也被过滤,则可发现该实验中坏字符为:0x00 0x0D 0x0A

  重定向数据流,用ESP的地址替换EIP的值,但是ESP的地址是变化的,不能使用硬编码。在SLMali线程应用程序中,操作系统为每个线程分配一段的地址范围,每个线程地址范围不确定

  变通思路:在内存地址中寻找固定的系统模块,在模块中寻找JMP ESP指令的地址跳转,再由该指令简介跳转到ESP,从而执行shellcode。利用mona.py脚本识别内存模块,搜素“return address”是JMP ESP指令的模块,寻找无DEP、ALSP保护的内存地址【内存地址不能包含坏字符】{从EIP跳到JMP ESP,再跳到ESP}

  #OS dll:操作系统动态连接库,表示可运行在任意系统中,若为false则可能在其他系统中不能运行

  双击任意一个指令,在内存数据框中,右键-Disassemble切换为汇编语言

  ##因为SLmail本身不支持DEP和ASLR等内存保护机制,所以应该任意一个指令都可以实现跳转。如果有DEP保护,必须寻找到code行Access列中有R E两个权限(属于绕过DEP)

  ./msfencode -b【编码工具,可将病毒的特征字符编得面目全非,一定程度上可以实现免杀】

  09.py【“0x90”表示无操作,防止shellcode前部分代码被擦除】

  ##可完美地重复连接,但有些shellcode执行结束会以exitprocess方式退出整个进程,将导致邮件服务奔溃,会引起管理员注意,不过新版本的metasploit已经进行优化。

  ##因Slmail是一个基于线程的应用,使用ExitThread方式可以避免整个服务崩溃,可是实现重复溢出

  打开防火墙的3389端口,也可以用修改注册表来实现【windows系统下几乎所有操作都可用修改注册表来实现】

  ##可使用regsnap【进行注册表实现现状快照,可通过比较修改注册表前后键值变化,找出具体目标,动作需快速】

  主动信息收集 被动信息收集可能不准确,可以用主动信息收集验证 特点:直接与目标系统交互通信,无法避免留下访问痕迹 解决方法:1.使用受控的第三方电脑进行探测,使用代理 (做好被封杀的准备) 2 ...

  发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...

  三层发现 三层协议有:IP以及ICMP协议(internet管理协议).icmp的作用是用来实现intenet管理的,进行路径的发现,网路通信情况,或者目标主机的状态:在三层发现中主要使用icmp协议 ...

  抓包嗅探 通过抓包嗅探目标机器的流量,发现账号密码. Windows系统view 4.Sniffpass 只会抓取识别传输密码的明文协议, ...

  本地提权 简单地说,本地提权漏洞就是说一个本来非常低权限.受限制的用户,可以提升到系统至高无上的权限.权限提升漏洞通常是一种辅助性质的漏洞,当黑客已经通过某种手段进入了目标机器 ...

本文链接:http://that-a-way.com/jingtaihuanchongqu/153.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top