Lucene search
K

FileZilla Client Installed

🗓️ 13 Aug 2013 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 17 Views

FileZilla Client Installed check script

Refs
Code
SourceLink
filezilla-projectwww.filezilla-project.org/
#
# (C) Tenable, Inc.
#

include("compat.inc");

if (description)
{
  script_id(69475);
  script_version("1.9");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/05/21");

  script_name(english:"FileZilla Client Installed");

  script_set_attribute(attribute:"synopsis", value:"An open source FTP client is installed on the remote host.");
  script_set_attribute(attribute:"description", value:
"FileZilla, an open source FTP/SFTP client, is installed on the remote
host.");
  script_set_attribute(attribute:"see_also", value:"https://filezilla-project.org/");
  script_set_attribute(attribute:"solution", value:"n/a");
  script_set_attribute(attribute:"risk_factor", value:"None");

  script_set_attribute(attribute:"plugin_publication_date", value:"2013/08/13");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:filezilla:filezilla");
  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) 2013-2026 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("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("smb_reg_query.inc");
include("install_func.inc");
include("universal_collection.inc");

# @collection-signature
var signature = {
  'Windows': {
    'Files': [
      {
        'Signature': [
          { 'Name': { 'Equals': 'FileZilla.exe' } }
        ],
        'Get': {
          'PEVersion': [
            { 'Value': 'FileVersion', 'Label': 'FileZilla.exe FileVersion' }
          ]
        }
      }
    ]
  }
};

function live_collect_func()
{
  var paths = [];

  registry_init();
  var hklm = registry_hive_connect(hive:HKEY_LOCAL_MACHINE, exit_on_fail:TRUE);

  var values = get_registry_values(handle:hklm, items:make_list(
    # version 3.x stores it here
    "SOFTWARE\FileZilla Client\",
    # version 2.x stores it here
    "SOFTWARE\FileZilla\Install_Dir"
  ));

  if (!isnull(values["SOFTWARE\FileZilla Client\"]))
    append_element(var:paths, value:values["SOFTWARE\FileZilla Client\"]);

  if (!isnull(values["SOFTWARE\FileZilla\Install_Dir"]))
    append_element(var:paths, value:values["SOFTWARE\FileZilla\Install_Dir"]);

  RegCloseKey(handle:hklm);

  var hku = registry_hive_connect(hive:HKEY_USERS, exit_on_fail:TRUE);
  var subkeys = get_registry_subkeys(handle:hku, key:'');
  var key, hku_path;
  foreach key (subkeys)
  {
    hku_path = get_registry_value(handle:hku, item:key + "\SOFTWARE\FileZilla Client\");

    if(!isnull(hku_path)) # add a path to check
      append_element(var:paths, value:hku_path);
  }
  RegCloseKey(handle:hku);

  if (empty_or_null(paths))
  {
    # no paths found in the registry
    close_registry();
    return NULL;
  }
  close_registry(close:FALSE);

  # If any installs were found, mark it as installed in the KB and issue a report.
  var collector = new universal_collection::collector();
  var path, signature_entry, file_signature, sig_field, sig_operator, exe, file_path, ver, error;

  foreach path (paths)
  {
    foreach signature_entry (signature['Windows']['Files'])
    {
      foreach file_signature (signature_entry['Signature'])
      {
        sig_field = 'Name';
        sig_operator = 'Equals';

        exe = file_signature[sig_field][sig_operator];

        if (empty_or_null(exe)) continue;

        file_path = hotfix_append_path(path:path, value:exe);

        # if we don't already have this file's version
        ver = hotfix_get_fversion(path:file_path);
        
        error = hotfix_handle_error(error_code:ver['error'], file:file_path);
        if (error && ver['error'] != HCF_NOVER)
        {
          dbg::detailed_log(msg:error, lvl:1, src:FUNCTION_NAME);
          continue;
        }

        collector.add_fileversion_match(
          filepath       : file_path,
          version        : ver.version,
          sig_field      : sig_field,
          sig_operator   : sig_operator,
          sig_val        : exe,
          peversion_info : signature_entry['Get']['PEVersion']
        );
      }
    }
  }

  hotfix_check_fversion_end();

  return collector;
}

##
# Main
##
var app = "FileZilla Client";
var cpe = "cpe:/a:filezilla:filezilla";
var kb_base = "SMB/filezilla/";

var collector = get_collector_or_collect(signature:signature, collect_func:@live_collect_func);

var installs = 0;
var finding, filepath, version, version_number, display_version, match_data, matches;

foreach finding (collector.collection)
{
  filepath = finding['CollectData']['FilePath'];

  version = NULL;
  foreach match_data (finding['MatchData'])
  {
    if (match_data['Label'] == 'FileZilla.exe FileVersion')
    {
      version = match_data['Values'][0];
      break;
    }
  }

  # At least one version of FileZilla ends with a letter, which
  # ver_compare() can't handle.
  version_number = 0;
  display_version = NULL;
  if (!isnull(version))
  {
    display_version = version;
    matches = pregmatch(string:version, pattern:"^([0-9.]+)");
    if (!empty_or_null(matches))
      version_number = matches[1];
  }

  # Note: legacy stored the full executable filepath as the 'Path' KB
  set_kb_item(name:kb_base + "install/" + installs + "/Path", value:filepath);

  if (!isnull(version))
    set_kb_item(name:kb_base + "install/" + installs + "/Version", value:version);

  if (!isnull(version_number))
    set_kb_item(name:kb_base + "install/" + installs + "/VersionNumber", value:version_number);

  register_install(
    vendor          : "FileZilla",
    product         : "FileZilla",
    app_name        : app,
    path            : filepath,
    version         : version,
    display_version : display_version,
    cpe             : cpe
  );

  installs++;
}

# If any installs were found, mark it as installed in the KB
if (installs > 0)
{
  set_kb_item(name:kb_base + "Installed", value:TRUE);
  set_kb_item(name:kb_base + "installs", value:installs);
}

get_install_count(app_name:app, exit_if_zero:TRUE);

report_installs(app_name:app, port:kb_smb_transport());

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

21 May 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
17