Skip to content

Commit 10100df

Browse files
committed
report_service
1 parent b0bbce1 commit 10100df

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

modules/auxiliary/gather/memcached_extractor.rb

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,33 @@ def data_for_keys(keys = [])
8282
def determine_version
8383
sock.send("stats\r\n", 0)
8484
stats = sock.recv(4096)
85-
matches = /^STAT (?<version>version (\.|\d)*)/.match(stats)
86-
matches[:version] || 'unkown version'
85+
if /^STAT version (?<version>[\d\.]+)/ =~ stats
86+
version
87+
else
88+
nil
89+
end
8790
end
8891

8992
def run_host(ip)
9093
peer = "#{ip}:#{rport}"
9194
vprint_status("#{peer} - Connecting to memcached server...")
9295
begin
9396
connect
94-
vprint_good("#{peer} Connected to memcached #{determine_version}")
97+
if version = determine_version
98+
vprint_good("#{peer} - Connected to memcached version #{version}")
99+
report_service(
100+
host: ip,
101+
name: 'memcached',
102+
port: rport,
103+
proto: 'tcp',
104+
info: version
105+
)
106+
else
107+
print_error("#{peer} - unable to determine memcached protocol version")
108+
return
109+
end
95110
keys = enumerate_keys
96-
print_good("#{peer} Found #{keys.size} keys")
111+
print_good("#{peer} - Found #{keys.size} keys")
97112
return if keys.size == 0
98113

99114
data = data_for_keys(keys)

0 commit comments

Comments
 (0)