Lucene search
+L

BlackBerry Enterprise Service 10 / BlackBerry Enterprise Server / BlackBerry Unite! Detection

🗓️ 20 Feb 2006 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 57 Views

A messaging service is installed on the remote Windows host. BlackBerry Enterprise Service 10, BlackBerry Enterprise Server, or BlackBerry Unite! is installed on the remote host. These applications are software suites for linking wireless networks and devices with messaging and application servers

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

include("compat.inc");

if (description)
{
  script_id(20949);
  script_version("1.22");
  script_set_attribute(attribute:"plugin_modification_date", value:"2023/01/31");

  script_name(english:"BlackBerry Enterprise Service 10 / BlackBerry Enterprise Server / BlackBerry Unite! Detection");
  script_summary(english:"Detects BlackBerry Enterprise Service 10 / BlackBerry Enterprise Server / Unite!");

  script_set_attribute(attribute:"synopsis", value:
"A messaging service is installed on the remote Windows host.");
  script_set_attribute(attribute:"description", value:
"BlackBerry Enterprise Service 10, BlackBerry Enterprise Server, or
BlackBerry Unite! is installed on the remote host. These applications
are software suites for linking wireless networks and devices with
messaging and application servers.");
  script_set_attribute(attribute:"see_also", value:"https://www.blackberry.com/us/en/products/endpoint-management/blackberry-uem");
  script_set_attribute(attribute:"solution", value:"n/a");
  script_set_attribute(attribute:"risk_factor", value:"None");

  script_set_attribute(attribute:"plugin_publication_date", value:"2006/02/20");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:blackberry:blackberry_enterprise_service");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:rim:blackberry_enterprise_server");
  script_set_attribute(attribute:"asset_inventory", value:"True");
  script_set_attribute(attribute:"asset_inventory_category", value:"software_enumeration");
  script_set_attribute(attribute:"agent", value:"windows");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2006-2023 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("smb_hotfixes.nasl");
  script_require_keys("SMB/Registry/Enumerated");
  script_require_ports(139, 445);

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("smb_func.inc");
include("smb_reg_query.inc");
include("install_func.inc");

app = "BlackBerry Enterprise Service";

get_kb_item_or_exit("SMB/Registry/Enumerated");

port    =  kb_smb_transport();
login   =  kb_smb_login();
pass    =  kb_smb_password();
domain  =  kb_smb_domain();

if(! smb_session_init()) audit(AUDIT_FN_FAIL, 'smb_session_init');
rc = NetUseAdd(login:login, password:pass, domain:domain, share:"IPC$");
if (rc != 1)
{
  NetUseDel();
  audit(AUDIT_SHARE_FAIL, "IPC$");
}

# Connect to remote registry.
hklm = RegConnectRegistry(hkey:HKEY_LOCAL_MACHINE);
if (isnull(hklm))
{
  NetUseDel();
  audit(AUDIT_REG_FAIL);
}

# Get some info about the install.
path = NULL;
prod_ver = NULL;
subkey = NULL;

key = "SOFTWARE\Research In Motion\BlackBerry Enterprise Server\Setup";
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  item = RegQueryValue(handle:key_h, item:"BasePath");
  if (!isnull(item))
  {
    path = item[1];
    path = ereg_replace(pattern:"^(.+)\\$", replace:"\1", string:path);
  }

  # nb: this leads to the actual product installed, including any
  # service packs / hotfixes.
  item = RegQueryValue(handle:key_h, item:"ConfigProductCode");
  if (!isnull(item)) subkey = item[1];

  item = RegQueryValue(handle:key_h, item:"ProductVersion");
  if (!isnull(item)) prod_ver = item[1];

  RegCloseKey(handle:key_h);
}

# Check for BlackBerry Attachment Server
attachserver = FALSE;
key = "SOFTWARE\Research In Motion\BBAttachServer";
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  item = RegQueryValue(handle:key_h, item:"ServiceType");
  if (!isnull(item)) attachserver = TRUE;

  RegCloseKey(handle:key_h);
}

if (!isnull(path) && !isnull(subkey))
{
  # Get info about the current install.
  key = "SMB/Registry/HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/" +  subkey +  "/DisplayName";
  name = get_kb_item(key);

  if ("Unite!" >< name && !isnull(prod_ver))
  {
    ver = prod_ver;
  }
  else
  {
    key = "SMB/Registry/HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/" +  subkey +  "/DisplayVersion";
    ver = get_kb_item(key);
  }
}

# Check for BlackBerry Enterprise Service 10+
key = "SOFTWARE\Research In Motion\BlackBerry Enterprise Service\Setup";
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  item = RegQueryValue(handle:key_h, item:"ConfigDLLPath");
  if (!isnull(item))
  {
    path = item[1];
    path = ereg_replace(pattern:"^(.+)\\ConfigTool\\$", replace:"\1", string:path);
  }

  item = RegQueryValue(handle:key_h, item:"InstallVersion");
  if (!isnull(item)) ver = item[1];

  name = "BlackBerry Enterprise Service";

  RegCloseKey(handle:key_h);
}

# Check for BlackBerry Enterprise Service 12.x
key = "SOFTWARE\BlackBerry\BES12";
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  item = RegQueryValue(handle:key_h, item:"InstallationFolder");
  if (!isnull(item))
    path = item[1];

  item = RegQueryValue(handle:key_h, item:"MarketingVersion");
  if (!isnull(item)) ver = item[1];

  RegCloseKey(handle:key_h);

  # Newer versions of BES12 do not seem to have the above registry values -- check uninstall info
  key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\BES12";
  if (empty_or_null(path))
  {
    item = get_registry_value(handle:hklm, item:key + "\InstallLocation");
    if (!empty_or_null(item))
    {
      # The path appears with backslashes instead of forward slashes (e.g. C:/Program Files/BES)
      path = str_replace(string:item, find:"/", replace:"\");  
    }
  }   
  if (empty_or_null(ver))
  {
    item = get_registry_value(handle:hklm, item:key + "\DisplayVersion");
    if (!empty_or_null(item))
    {
      match = pregmatch(string:item, pattern:"^(12\.[0-9.]+)(?:[^0-9|$])");
      if (!isnull(match) && !empty_or_null(match[1]))
        ver = match[1];
    }
  }
  name = "BlackBerry Enterprise Service";
}

RegCloseKey(handle:hklm);
NetUseDel();

# Generate report and save info in KB.
if (!empty_or_null(name) && !empty_or_null(ver) && !empty_or_null(path))
{
  set_kb_item(name:"BlackBerry_ES/Product", value:name);
  set_kb_item(name:"BlackBerry_ES/Version", value:ver);
  set_kb_item(name:"BlackBerry_ES/Path",    value:path);
  if (attachserver) set_kb_item(name:"BlackBerry_ES/AttachmentServer", value:TRUE);

  register_install(
    vendor:"BlackBerry",
    product:"BlackBerry Enterprise Service",
    app_name:app,
    path:path,
    version:ver,
    extra:make_array("Product", name),
    cpe:"cpe:/a:blackberry:blackberry_enterprise_service");

  report_installs(app_name:app, port:port);
}
else audit(AUDIT_NOT_INST, "BlackBerry Enterprise Service / BlackBerry Enterprise Server / BlackBerry Unite!");

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation