Lucene search

K
nessusThis script is Copyright (C) 2002-2013 Digital Defense Inc.DDI_LINKSYS_ROUTER_DEFAULT_PASSWORD.NASL
HistoryJun 05, 2002 - 12:00 a.m.

Linksys Router Default Password

2002-06-0500:00:00
This script is Copyright (C) 2002-2013 Digital Defense Inc.
www.tenable.com
30

The remote Linksys router accepts the default password ‘admin’ for the web administration console. This console provides read/write access to the router’s configuration. An attacker could take advantage of this to reconfigure the router and possibly re-route traffic.

#
# This script is Copyright (C) Digital Defense Inc.
# Author: Forrest Rae <[email protected]>
#
# See the Nessus Scripts License for details
#

include("compat.inc");

if (description)
{
  script_id(10999);
  script_version("$Revision: 1.14 $");
  script_cvs_date("$Date: 2013/12/17 12:13:59 $");

  script_cve_id("CVE-1999-0508");

  script_name(english:"Linksys Router Default Password");
  script_summary(english:"Linksys Router Default Password (admin)");

  script_set_attribute(attribute:"synopsis", value:
"The remote system can be accessed with a default administrator
account.");
  script_set_attribute(attribute:"description", value:
"The remote Linksys router accepts the default password 'admin' for
the web administration console.  This console provides read/write
access to the router's configuration.  An attacker could take
advantage of this to reconfigure the router and possibly re-route
traffic.");
  script_set_attribute(attribute:"solution", value:
"Change the password for this account.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'SNMP Community Scanner');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");

  script_set_attribute(attribute:"plugin_publication_date", value:"2002/06/05");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2002-2013 Digital Defense Inc.");
  script_family(english:"CISCO");

  script_dependencie("http_version.nasl");
  script_exclude_keys("global_settings/supplied_logins_only");
  script_require_ports(80, 8080);
  script_require_keys("Services/www");
  exit(0);
}

#
# The script code starts here
#
include("audit.inc");
include("global_settings.inc");
include("http_func.inc");

if (supplied_logins_only) audit(AUDIT_SUPPLIED_LOGINS_ONLY);

port = 80;
if (!get_port_state(port)) port = 8080;
if (!get_port_state(port)) audit(AUDIT_PORT_CLOSED, port);

svc = get_kb_item("Known/tcp/"+port);
if (!isnull(svc) && svc != "www") exit(0, "The service listening on port "+port+" is not a web server.");

soc = open_sock_tcp(port);
if (!soc) audit(AUDIT_SOCK_FAIL, port);

# HTTP auth = ":admin"
# req = string("GET / HTTP/1.0\r\nAuthorization: Basic OmFkbWlu\r\n\r\n");

# HTTP auth = "admin:admin"
req = string("GET / HTTP/1.0\r\nAuthorization: Basic YWRtaW46YWRtaW4=\r\n\r\n");

# Both work, second is used to be RFC compliant.

send(socket:soc, data:req);
buf = http_recv(socket:soc);
close(soc);

if (
  "Status.htm" >< buf && 
  "DHCP.htm" >< buf && 
  "Log.htm" >< buf &&
  "Security.htm" >< buf
) security_hole(port:port);
else exit(0, "The web server listening on port "+port+" is not affected.");
Related for DDI_LINKSYS_ROUTER_DEFAULT_PASSWORD.NASL