Arugizer Backdoor Detection - Nessus

Critical   Plugin ID: 45005

This page contains detailed information about the Arugizer Backdoor Detection Nessus plugin including available exploits and PoCs found on GitHub, in Metasploit or Exploit-DB for verifying of this vulnerability.

Plugin Overview


ID: 45005
Name: Arugizer Backdoor Detection
Filename: arugizer_backdoor.nasl
Vulnerability Published: 2010-03-05
This Plugin Published: 2010-03-08
Last Modification Time: 2018-11-15
Plugin Version: 1.15
Plugin Type: remote
Plugin Family: Backdoors
Dependencies: find_service1.nasl

Vulnerability Information


Severity: Critical
Vulnerability Published: 2010-03-05
Patch Published: N/A
CVE [?]: CVE-2010-0103
CPE [?]: N/A

Synopsis

The remote Windows host has a backdoor.

Description

The remote Windows host appears to be running the Arugizer backdoor.

An unauthenticated, remote attacker who connects to this port can use the backdoor to list directories, send and receive files, and execute programs.

Solution

Verify whether the remote host has been compromised and reinstall the operating system if necessary.

Public Exploits


Target Network Port(s): 7777
Target Asset(s): N/A
Exploit Available: True (Metasploit Framework, Exploit-DB)
Exploit Ease: Exploits are available

Here's the list of publicly known exploits and PoCs for verifying the Arugizer Backdoor Detection vulnerability:

  1. Metasploit: exploit/windows/backdoor/energizer_duo_payload
    [Energizer DUO USB Battery Charger Arucer.dll Trojan Code Execution]
  2. Metasploit: auxiliary/scanner/backdoor/energizer_duo_detect
    [Energizer DUO Trojan Scanner]
  3. Exploit-DB: exploits/windows/remote/16390.rb
    [EDB-16390: Arugizer Trojan Horse (Energizer DUO) - Code Execution (Metasploit)]

Before running any exploit against any system, make sure you are authorized by the owner of the target system(s) to perform such activity. In any other case, this would be considered as an illegal activity.

WARNING: Beware of using unverified exploits from sources such as GitHub or Exploit-DB. These exploits and PoCs could contain malware. For more information, see how to use exploits safely.

Risk Information


CVSS V2 Vector [?]: AV:N/AC:L/Au:N/C:C/I:C/A:C/E:F/RL:U/RC:ND
CVSS Base Score:10.0 (High)
Impact Subscore:10.0
Exploitability Subscore:10.0
CVSS Temporal Score:9.5 (High)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:9.5 (High)

Go back to menu.

Plugin Source


This is the arugizer_backdoor.nasl nessus plugin source code. This script is Copyright (C) 2010-2018 Tenable Network Security, Inc.

#
# (C) Tenable Network Security, Inc.
#


include("compat.inc");


if (description)
{
  script_id(45005);
  script_version("1.15");

  script_cve_id("CVE-2010-0103");
  script_bugtraq_id(38571);
  script_xref(name:"CERT", value:"154421");

  script_name(english:"Arugizer Backdoor Detection");
  script_summary(english:"Tries to read a file using the backdoor");
 
  script_set_attribute(
    attribute:"synopsis",
    value:"The remote Windows host has a backdoor."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"The remote Windows host appears to be running the Arugizer backdoor. 

An unauthenticated, remote attacker who connects to this port can use
the backdoor to list directories, send and receive files, and execute
programs."
  );
  script_set_attribute(
    attribute:"see_also", 
    value:"http://www.nessus.org/u?2702ecd9"
  );
  script_set_attribute(
    attribute:"solution", 
    value:
"Verify whether the remote host has been compromised and reinstall the
operating system if necessary."
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:U/RC:ND");
  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:'Energizer DUO USB Battery Charger Arucer.dll Trojan Code Execution');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
script_cwe_id(94);
  script_set_attribute(attribute:"vuln_publication_date", value: "2010/03/05");
  script_set_attribute(attribute:"plugin_publication_date", value: "2010/03/08");
 script_cvs_date("Date: 2018/11/15 20:50:16");
  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_end_attributes();
 
  script_category(ACT_GATHER_INFO);
  script_family(english:"Backdoors");

  script_copyright(english:"This script is Copyright (C) 2010-2018 Tenable Network Security, Inc.");

  script_dependencies("find_service1.nasl");
  script_require_ports(7777);

  exit(0);
}


include("byte_func.inc");
include("global_settings.inc");
include("misc_func.inc");


port = 7777;
if (known_service(port:port)) exit(0, "The service listening on port "+port+" is known.");
if (!get_tcp_port_state(port)) exit(0, "Port "+port+" is not open.");


set_byte_order(BYTE_ORDER_LITTLE_ENDIAN);


function arugizer_send_recv(cmd)
{
  local_var arg, i, l, req, res, soc;

  if (isnull(cmd)) return NULL;

  soc = open_sock_tcp(port);
  if (!soc) exit(1, "Failed to open a socket on port "+port+".");

  # Construct the request.
  req = mkdword(strlen(cmd)+1) + cmd + mkbyte(0);
  foreach arg (_FCT_ANON_ARGS)
    req += mkdword(strlen(arg)+1) + arg + mkbyte(0);

  # XOR each byte with 0xe5.
  l = strlen(req);
  for (i=0; i<l; i++)
    req[i] = mkbyte(ord(req[i]) ^ 0xe5);

  send(socket:soc, data:req);
  if ('{E2AC5089-3820-43fe-8A4D-A7028FAD8C28}' >< cmd) l = 3;
  else
  {
    res = recv(socket:soc, length:4, min:4);
    if (strlen(res) != 4)
    {
      close(soc);
      return NULL;
    }

    for (i=0; i<4; i++)
      res[i] = mkbyte(ord(res[i]) ^ 0xe5);

    l = getdword(blob:res, pos:0);
    # nb: assume it's not the service if length > 10K.
    if (l > 10240)
    {
      close(soc);
      return NULL;
    }
  }

  res = recv(socket:soc, length:l, min:l);
  if (strlen(res) != l)
  {
    close(soc);
    return NULL;
  }

  for (i=0; i<l; i++)
    res[i] = mkbyte(ord(res[i]) ^ 0xe5);

  close(soc);
  return(res);
}


# Send a YES command and validate the result.
res = arugizer_send_recv(cmd:'{E2AC5089-3820-43fe-8A4D-A7028FAD8C28}');
if (isnull(res)) exit(0, "The service on port "+port+" does not appear to be the Arugizer backdoor.");
if (res != 'YES') exit(0, "The service on port "+port+" didn't respond as expected to a 'YES' command.");

register_service(port:port, proto:"arugizer");


# Retrieve a file.
file = 'c:\\boot.ini';

res = arugizer_send_recv(cmd:'{F6C43E1A-1551-4000-A483-C361969AEC41}', file);
if (isnull(res)) exit(0, "The service on port "+port+" does not appear to be the Arugizer backdoor.");


if ("[boot loader]" >< res)
{
  if (report_verbosity > 0)
  {
    report = '\n' +
      'Nessus was able to use the backdoor to retrieve the contents of\n' +
      "'" + file + "' on the remote host." + '\n';

    if (report_verbosity > 1)
      report += '\n' +
        'Here are its contents :\n' +
        '\n' +
        crap(data:"-", length:30) + " snip " + crap(data:"-", length:30) + '\n' +
        res +
        crap(data:"-", length:30) + " snip " + crap(data:"-", length:30) + '\n';

    security_hole(port:port, extra:report);
  }
  else security_hole(port);
  exit(0);
}
else exit(1, "The response from the service on port "+port+" does not look like the contents of '"+file+"'.");

The latest version of this script can be found in these locations depending on your platform:

  • Linux / Unix:
    /opt/nessus/lib/nessus/plugins/arugizer_backdoor.nasl
  • Windows:
    C:\ProgramData\Tenable\Nessus\nessus\plugins\arugizer_backdoor.nasl
  • Mac OS X:
    /Library/Nessus/run/lib/nessus/plugins/arugizer_backdoor.nasl

Go back to menu.

How to Run


Here is how to run the Arugizer Backdoor Detection as a standalone plugin via the Nessus web user interface (https://localhost:8834/):

  1. Click to start a New Scan.
  2. Select Advanced Scan.
  3. Navigate to the Plugins tab.
  4. On the top right corner click to Disable All plugins.
  5. On the left side table select Backdoors plugin family.
  6. On the right side table select Arugizer Backdoor Detection plugin ID 45005.
  7. Specify the target on the Settings tab and click to Save the scan.
  8. Run the scan.

Here are a few examples of how to run the plugin in the command line. Note that the examples below demonstrate the usage on the Linux / Unix platform.

Basic usage:

/opt/nessus/bin/nasl arugizer_backdoor.nasl -t <IP/HOST>

Run the plugin with audit trail message on the console:

/opt/nessus/bin/nasl -a arugizer_backdoor.nasl -t <IP/HOST>

Run the plugin with trace script execution written to the console (useful for debugging):

/opt/nessus/bin/nasl -T - arugizer_backdoor.nasl -t <IP/HOST>

Run the plugin with using a state file for the target and updating it (useful for running multiple plugins on the target):

/opt/nessus/bin/nasl -K /tmp/state arugizer_backdoor.nasl -t <IP/HOST>

Go back to menu.

References


BID | SecurityFocus Bugtraq ID: CERT | Computer Emergency Response Team: CWE | Common Weakness Enumeration:
  • CWE-94 (Weakness) Improper Control of Generation of Code ('Code Injection')
See also: Similar and related Nessus plugins:
  • 45006 - Energizer DUO USB Battery Charger Software Backdoor (credentialed check)

Version


This page has been produced using Nessus Professional 10.1.2 (#68) LINUX, Plugin set 202205072148.
Plugin file arugizer_backdoor.nasl version 1.15. For more plugins, visit the Nessus Plugin Library.

Go back to menu.