Skip to content

Commit 896421d

Browse files
committed
ftp_version: report_service if missing banner
1 parent 3f0911f commit 896421d

1 file changed

Lines changed: 26 additions & 15 deletions

File tree

modules/auxiliary/scanner/ftp/ftp_version.rb

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,38 @@ def sanitize_ftp_response(str)
3737
Rex::Text.to_hex_ascii(str.to_s.gsub(/^\d{3}[\s-]/, '').strip.gsub(/\A\(|\)\z/, ''))
3838
end
3939

40+
def report_ftp_service
41+
# Cleaned up FTP banner
42+
report_service(
43+
host: rhost,
44+
port: rport,
45+
name: 'ftp',
46+
proto: 'tcp',
47+
info: banner ? @banner_version : nil
48+
)
49+
50+
return unless banner
51+
52+
# Raw FTP banner
53+
report_note(
54+
host: rhost,
55+
port: rport,
56+
proto: 'tcp',
57+
type: 'ftp.banner',
58+
data: { banner: banner.strip }
59+
)
60+
end
61+
4062
def run_host(_target_host)
4163
connect(true, false)
4264

4365
if banner
44-
banner_sanitized = sanitize_ftp_response(banner)
45-
print_good("FTP Banner: #{banner_sanitized}")
46-
report_service(
47-
host: rhost,
48-
port: rport,
49-
name: 'ftp',
50-
info: banner_sanitized
51-
)
52-
report_note(
53-
host: rhost,
54-
port: rport,
55-
proto: 'tcp',
56-
type: 'ftp.banner',
57-
data: { banner: banner.strip }
58-
)
66+
print_good("FTP Banner: #{@banner_version}")
67+
else
68+
vprint_warning('No FTP banner received')
5969
end
6070

71+
report_ftp_service
6172
rescue ::Rex::TimeoutError, ::Rex::ConnectionError, ::EOFError, ::Errno::ECONNREFUSED => e
6273
vprint_error(e.message)
6374
report_host(host: rhost)

0 commit comments

Comments
 (0)