Windows系统安全之SLMail缓冲区溢出漏洞复现

本文详细复现了Windows系统中SLMail 5.5.0 Mail Server的缓冲区溢出漏洞利用过程,包括环境搭建、附加进程到调试器、FUZZ测试确定溢出点、寻找跳板以及Shellcode生成与利用。通过实验,作者对Windows的安全机制和漏洞利用有了更深入的理解。
摘要由CSDN通过智能技术生成

原文链接
在我大二时任技术交流协会信安部部长时我曾给学弟学妹们介绍过这个关于SLMail的缓冲区溢出漏洞,给他们讲的原因是想扩展一下他们的知识面,现在我再重新温习一下这个漏洞来跟现阶段学习的Linux缓冲区漏洞做一个对比


环境搭建

首先需要搭建实验环境,系统可选用Windows_XP,因为Windows7及以上的系统内置了多种安全措施使得此漏洞难以利用,本实验用到的软件及下载链接如下:

SLMail 5.5.0 Mail Server

ImmunityDebugger_1_85_setup

mona.py

其中软件的安装都按照默认安装即可,mona.py需要放到Immunity Debugger的安装目录中:\Immunity Inc\Immunity Debugger\PyCommands

至此环境配置完成,查看一下邮件的相关服务是否已经开启

netstat -nao

win+r
向运行窗口中输入services.msc
查看相关服务的状态

可以看到服务已经启动

附加进程到调试器

此时打开Immunity Debugger,点击菜单栏中的File选中Attach

选择如图的进程,此进程监听的端口包含110端口

附加此进程后调试器界面如下

此调试器的各个窗口我就不多介绍了,跟其他调试器大同小异

附加到进程后此进程会进入暂停状态,需要点击运行按钮使此进程正常进行

远程连接,进行FUZZ测试

程序正常运行后可以打开Kali Linux对此进程进行远程连接

我们已知此程序的PASS字段存在缓冲区溢出漏洞,现需确认产生溢出的位置,可使用脚本对不同长度的PASS字段的值进行FUZZ测试,当socket连接失败时及代表程序崩溃,已产生溢出,也可以使用pattern_creat产生足够长度的字符串

FUZZ脚本如下

#/usr/bin/python
#coding:utf-8
from pwn import *

payload="PASS "
len=0
while 1:
	r=remote('192.168.229.134',110)
	r.send("USER administrator\n")
	print r.recv()
	payload+="A"*200
	len
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值