Skip to content

Commit ef41dca

Browse files
author
Tod Beardsley
committed
Land #8, @hmoore-r7's updates to SM modules
2 parents b9caf09 + 6b43d94 commit ef41dca

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

modules/auxiliary/scanner/http/supermicro_ipmi_bof.rb renamed to modules/auxiliary/scanner/http/smt_ipmi_cgi_scanner.rb

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@ class Metasploit3 < Msf::Auxiliary
1414

1515
def initialize(info = {})
1616
super(update_info(info,
17-
'Name' => 'Supermicro Onboard IPMI Buffer Overflow Scanner',
17+
'Name' => 'Supermicro Onboard IPMI CGI Vulnerability Scanner',
1818
'Description' => %q{
19-
This module checks a Supermicro Onboard IPMI web interface against
20-
several unauthenticated buffer overflows. The vulnerabilities exist
21-
on the login.cgi and close_window.cgi components.
19+
This module checks for known vulnerabilities in the CGI applications of
20+
Supermicro Onboard IPMI controllers. These issues currently include
21+
several unauthenticated buffer overflows in the login.cgi and close_window.cgi
22+
components.
2223
},
2324
'Author' =>
2425
[
25-
'hdm', #Discovery and Metasploit module
26+
'hdm', # Discovery and analysis
2627
'juan vazquez' # Metaspliot module
2728
],
2829
'License' => MSF_LICENSE,
@@ -118,11 +119,11 @@ def check_login
118119

119120

120121
def run_host(ip)
121-
vprint_status("#{peer} - Checking if it's a Supermicro web interface...")
122+
vprint_status("#{peer} - Checking if it's a Supermicro IPMI web interface...")
122123
if is_supermicro?
123-
vprint_good("#{peer} - Supermicro web interface found")
124+
vprint_good("#{peer} - Supermicro IPMI web interface found")
124125
else
125-
vprint_error("#{peer} - Supermicro web interface not found")
126+
vprint_error("#{peer} - Supermicro IPMI web interface not found")
126127
return
127128
end
128129

@@ -139,10 +140,10 @@ def run_host(ip)
139140
})
140141
end
141142

142-
vprint_status("#{peer} - Checking CVE-2013-3623 (close_window.gi buffer overflow) ...")
143+
vprint_status("#{peer} - Checking CVE-2013-3623 (close_window.gi Buffer Overflow) ...")
143144
result = check_close_window
144145
if result
145-
print_good("#{peer} - Vulnerable to CVE-2013-3623 (close_window.cgi buffer overflow)")
146+
print_good("#{peer} - Vulnerable to CVE-2013-3623 (close_window.cgi Buffer Overflow)")
146147
report_vuln({
147148
:host => rhost,
148149
:port => rport,

modules/auxiliary/scanner/http/supermicro_ipmi_cert.rb renamed to modules/auxiliary/scanner/http/smt_ipmi_static_cert_scanner.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,17 @@ class Metasploit3 < Msf::Auxiliary
3232

3333
def initialize
3434
super(
35-
'Name' => 'Supermicro Onboard IPMI Static Encryption Key Scanner',
35+
'Name' => 'Supermicro Onboard IPMI Static SSL Certificate Scanner',
3636
'Description' => %q{
37-
This module checks the certificate of the specified web servers. The Supermicro Onboard
38-
IPMI firmware ships with harcoded private encryption keys for both the Lighttpd web server
39-
SSL interface and the Dropbear SSH daemon. An attacker with access to the publicly available
40-
Supermicro firmware can perform man-in-the-middle and offline decryption of communication to
41-
the firmware. This module has been on Supermicro Onboard IPMI (X9SCL/X9SCM) with firmware
42-
SMT_X9_214.
37+
This module checks for a static SSL certificate shipped with Supermicro Onboard IPMI
38+
controllers. An attacker with access to the publicly-available firmware can perform
39+
man-in-the-middle attacks and offline decryption of communication to the controller.
40+
This module has been on a Supermicro Onboard IPMI (X9SCL/X9SCM) with firmware
41+
version SMT_X9_214.
4342
},
4443
'Author' =>
4544
[
46-
'hdm', # Discovery and Metasploit module
45+
'hdm', # Discovery and analysis
4746
'juan' # Metasploit module
4847
],
4948
'License' => MSF_LICENSE,
@@ -76,7 +75,7 @@ def run_host(ip)
7675
result = cert.verify(pkey)
7776

7877
if result
79-
print_good("#{ip}:#{rport} - Found service using Supermicro IPMI static private key to encrypt communications")
78+
print_good("#{ip}:#{rport} - Vulnerable to CVE-2013-3619 (Static SSL Certificate)")
8079
# Report with the the SSL Private Key hash for the host
8180
digest = OpenSSL::Digest::SHA1.new(pkey.public_key.to_der).to_s.scan(/../).join(":")
8281
report_note(
@@ -91,7 +90,7 @@ def run_host(ip)
9190
:host => rhost,
9291
:port => rport,
9392
:proto => 'tcp',
94-
:name => "Supermicro Onboard IPMI Static Encryption Keys",
93+
:name => "Supermicro Onboard IPMI Static SSL Certificate",
9594
:refs => self.references
9695
})
9796
end

modules/auxiliary/admin/supermicro_ipmi_traversal.rb renamed to modules/auxiliary/scanner/http/smt_ipmi_url_redirect_traversal.rb

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ class Metasploit3 < Msf::Auxiliary
1515

1616
def initialize(info = {})
1717
super(update_info(info,
18-
'Name' => 'Supermicro Onboard IPMI Directory Taversal',
18+
'Name' => 'Supermicro Onboard IPMI url_redirect.cgi Authenticated Directory Traversal',
1919
'Description' => %q{
20-
This module abuses a directory traversal on the web interface for Supermicro Onboard IPMI. The
21-
vulnerability exists in the url_redirect.cgi CGI application, due to a lack of sanitization
22-
of the url_name parameter. This may allow an attacker with a valid, but not necessarily
23-
administrator-level account, to access the contents of any file on the system. This includes
24-
the /nv/PSBlock file, which contains the cleartext credentials for all configured accounts.
25-
This module has been tested on Supermicro Onboard IPMI (X9SCL/X9SCM) with firmware SMT_X9_214.
20+
This module abuses a directory traversal vulnerability in the url_redirect.cgi application
21+
accessible through the web interface of Supermicro Onboard IPMI controllers. The vulnerability
22+
is present due to a lack of sanitization of the url_name parameter. This allows an attacker with
23+
a valid, but not necessarily administrator-level account, to access the contents of any file
24+
on the system. This includes the /nv/PSBlock file, which contains the cleartext credentials for
25+
all configured accounts. This module has been tested on a Supermicro Onboard IPMI (X9SCL/X9SCM)
26+
with firmware version SMT_X9_214.
2627
},
2728
'Author' =>
2829
[
@@ -57,7 +58,7 @@ def is_supermicro?
5758
"method" => "GET"
5859
})
5960

60-
if res and res.code == 200 and res.body =~ /ATEN International Co Ltd\./
61+
if res and res.code == 200 and res.body.to_s =~ /ATEN International Co Ltd\./
6162
return true
6263
else
6364
return false

0 commit comments

Comments
 (0)