这是我们的实验环境

kali 172.18.5.118
smtp windows2003  172.18.5.117  pop3 110 smtp 25
本机 172.18.5.114

已经知道slmail存在PASS处的缓冲区溢出漏洞 当你输入的足够长的时候会缓冲区溢出

缓存区溢出之slmail fuzzing

但是如果我们进行手动测试会显得很麻烦 所有这里我们使用脚本来跑这是01.py

import socket
s = socket.socket(socket.AF_INET,socket.SOCKET_STREAM)
try:
    print"\nSending evil buffer..."
    s.connect(('172.18.5.117',110))
    data = s.recv(1024)
    print data


    s.send('USER Aadministrator'+'\r\n')
    data =s.recv(1024)
    print data


    s.send('PASS password\r\n')
    data =s.recv(1024)
    print data


    
    s.close()
    print "\nDone!"

except:
    print "Could not connect to POP3"

先建立一个链接

发送魔鬼buffer \n是换行的意思

s.connect是连接目标的110端口

data 是回显的信息 pirnt输出显示信息

s.send是你要发送的内容

然后close这个链接

最后是未执行成功的报错(except)

但是小编这里遇到了这个问题 原来是windows的py与liunx不兼容造成的

以下是解决链接

https://blog.csdn.net/u010383937/article/details/73161475

这里是在kali里面在创一个记事本然后复制代码上去 改名为001.py完成的不兼容绕过

改好后

缓存区溢出之slmail fuzzing

 

用户名收到 OK 密码回显错误 脚本是可以的

我们不断的增大向目标服务器的数据数量

接下来是002.py

缓存区溢出之slmail fuzzing

 

缓存区溢出之slmail fuzzing

 在服务器端观察一下进程是如何溢出的

 缓存区溢出之slmail fuzzing

进入

缓存区溢出之slmail fuzzing进来是默认的暂停状态

缓存区溢出之slmail fuzzing

点击播放来实时的监管这个344端口的进程

然后我们从客服端向服务器发送 数据在服务端在查看  这是进行的002.py

缓存区溢出之slmail fuzzing

发到2900的时候发现他一直没有动了 那我们来到服务端来看一下

缓存区溢出之slmail fuzzing

这是ASCII编码转换为10进制后就是40+1

EIP是下一步这个进程要进行的操作的地址 我们在这里发送大量的A将其复制了

缓存区溢出之slmail fuzzing

所有说这里下一步的进程被我们发送的大量的A覆盖了 简单说就是这个程序被搞崩溃了。因为414141不是原来要执行的地址

这里我们进行重新启动一下

将A改成B

缓存区溢出之slmail fuzzing

可以看出slmail的PASS命令存在缓冲区溢出的漏洞

EIP是存放下一条指令的地址  这是原来的EIP

缓存区溢出之slmail fuzzing

精确的定位溢出位置 继续查找 刚才2900停了

现在我们发2700个A

缓存区溢出之slmail fuzzing

 

 2700个A也发生EIP寄存器的溢出了

缓存区溢出之slmail fuzzing

 

 我们试试2600个A

发现存在溢出了但是 2600不足以溢出到EIP

缓存区溢出之slmail fuzzing

我们可以用以下方法

缓存区溢出之slmail fuzzing

 

 用kali里面现成的脚本来实现唯一字符串

下是的事目录 kali里面的默认目录

usr/share/metasploit-framework/tools/pattern_create.rb 2700 

 

sploit-framework/tools/pattern_create.rb 2700

缓存区溢出之slmail fuzzing

现在EIP里面存在了这么一串字符串

 39 69 44 38

38 69 44 39

8 D i 9

但是windows内存里面的存放规则是高位 

缓存区溢出之slmail fuzzing

 ./pattern.offset.rb 39694438

自动计算后面的数字在数组里面产生的位置  也就是偏移量

缓存区溢出之slmail fuzzing

找到位置是2606 所以我们在2607开始填充

验证EIP溢出位置是否真确

我们在2067位置填充BBBB

缓存区溢出之slmail fuzzing

ASCII?是42424242

验证成功 溢出位置正确

紧跟着eip的是ESP20个c一个不少

我们可以在后面不填充20个C 从而让你的服务器来连接我的一个端口这样 就可以访问我的服务端口来访问你的服务器了

 

 

usr/share/metasploit-framework/tools/pattern_create.rb 2700

相关文章:

  • 2021-12-12
  • 2022-02-17
猜你喜欢
  • 2021-10-29
  • 2021-06-04
  • 2021-12-21
  • 2021-09-20
  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
相关资源
相似解决方案