Lucene search

K
nessusThis script is Copyright (C) 2006-2018 Tenable Network Security, Inc.SMB_NT_MS06-039.NASL
HistoryJul 11, 2006 - 12:00 a.m.

MS06-039: Vulnerabilities in Microsoft Office Filters Could Allow Remote Code Execution (915384)

2006-07-1100:00:00
This script is Copyright (C) 2006-2018 Tenable Network Security, Inc.
www.tenable.com
15

The remote host is running a version of some Microsoft Office filters that are subject to various flaws which could allow arbitrary code to be run.

An attacker could use these to execute arbitrary code on this host.

To succeed, the attacker would have to send a rogue file to a user of the remote computer and have it import it with Microsoft Office.

#
# Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
 script_id(22033);
 script_version("1.36");
 script_cvs_date("Date: 2018/11/15 20:50:30");

 script_cve_id("CVE-2006-0033", "CVE-2006-0007");
 script_bugtraq_id(18915, 18913);
 script_xref(name:"CERT", value:"459388");
 script_xref(name:"CERT", value:"668564");
 script_xref(name:"MSFT", value:"MS06-039");
 script_xref(name:"MSKB", value:"915384");

 script_name(english:"MS06-039: Vulnerabilities in Microsoft Office Filters Could Allow Remote Code Execution (915384)");
 script_summary(english:"Determines the version of some MS filters");

 script_set_attribute(attribute:"synopsis", value:
"Arbitrary code can be executed on the remote host through the
Microsoft Office filters.");
 script_set_attribute(attribute:"description", value:
"The remote host is running a version of some Microsoft Office filters
that are subject to various flaws which could allow arbitrary code to
be run.

An attacker could use these to execute arbitrary code on this host.

To succeed, the attacker would have to send a rogue file to a user of
the remote computer and have it import it with Microsoft Office.");
 script_set_attribute(attribute:"see_also", value:"https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2006/ms06-039");
 script_set_attribute(attribute:"solution", value:"Microsoft has released a set of patches for Office 2000, XP and 2003.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:P/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
 script_cwe_id(119);

 script_set_attribute(attribute:"vuln_publication_date", value:"2006/07/11");
 script_set_attribute(attribute:"patch_publication_date", value:"2006/07/11");
 script_set_attribute(attribute:"plugin_publication_date", value:"2006/07/11");

 script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:office");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:frontpage");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:onenote");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:project");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:works");
 script_end_attributes();

 script_category(ACT_GATHER_INFO);

 script_copyright(english:"This script is Copyright (C) 2006-2018 Tenable Network Security, Inc.");
 script_family(english:"Windows : Microsoft Bulletins");

 script_dependencies("smb_hotfixes.nasl", "ms_bulletin_checks_possible.nasl");
 script_require_keys("SMB/MS_Bulletin_Checks/Possible");
 script_require_ports(139, 445, 'Host/patch_management_checks');
 exit(0);
}


include("audit.inc");
include("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("misc_func.inc");


get_kb_item_or_exit("SMB/MS_Bulletin_Checks/Possible");

bulletin = 'MS06-039';
kb = '915384';

kbs = make_list(kb);
if (get_kb_item("Host/patch_management_checks")) hotfix_check_3rd_party(bulletin:bulletin, kbs:kbs, severity:SECURITY_WARNING);


get_kb_item_or_exit("SMB/WindowsVersion", exit_code:1);

office_versions = hotfix_check_office_version ();
if ( !office_versions ) exit(0, "Microsoft Office not found.");

rootfiles = hotfix_get_officecommonfilesdir();
if ( ! rootfiles ) exit(1, "Failed to get Office Common Files directory.");

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

if(! smb_session_init()) audit(AUDIT_FN_FAIL, "smb_session_init");

share = '';
lastshare = '';
vuln = FALSE;
checkedfiles = make_array();
foreach ver (keys(office_versions))
{
  if (ver == "9.0" || ver == "10.0" || ver == "11.0")
  {
    if (typeof(rootfiles) == 'array') rootfile = rootfiles[ver];
    else rootfile = rootfiles;
    share = ereg_replace(pattern:"^([A-Za-z]):.*", replace:"\1$", string:rootfile);

    dll1  =  ereg_replace(pattern:"^[A-Za-z]:(.*)", replace:"\1\Microsoft Shared\Grphflt\Gifimp32.flt", string:rootfile);
    dll2 =  ereg_replace(pattern:"^[A-Za-z]:(.*)", replace:"\1\Microsoft Shared\Grphflt\Gifimp32.flt_1033", string:rootfile);
    if(checkedfiles[dll1] || checkedfiles[dll2]) continue;

    share = hotfix_path2share(path:rootfile);
    if (share != lastshare)
    {
      NetUseDel(close:FALSE);
      r = NetUseAdd(login:login, password:pass, domain:domain, share:share);
      if ( r != 1 ) audit(AUDIT_SHARE_FAIL,share);

      handle =  CreateFile (file:dll2, desired_access:GENERIC_READ, file_attributes:FILE_ATTRIBUTE_NORMAL, share_mode:FILE_SHARE_READ, create_disposition:OPEN_EXISTING);
      dll = dll2;
      if ( isnull(handle) )
      {
        dll = dll1;
        handle =  CreateFile (file:dll1, desired_access:GENERIC_READ, file_attributes:FILE_ATTRIBUTE_NORMAL, share_mode:FILE_SHARE_READ, create_disposition:OPEN_EXISTING);
      }

      if ( ! isnull(handle) )
      {
        checkedfiles[dll1] = 1;
        checkedfiles[dll2] = 1;
        v = GetFileVersion(handle:handle);
        CloseFile(handle:handle);
        if ( !isnull(v) )
        {
          # v < 2003.1100.8020.0 => vulnerable
          if ( ( v[0] == 2003 &&  v[1] == 1100 && v[2] < 8020)  ||
	           ( v[0] == 2003 &&  v[1] < 1100 ) ||
	           ( v[0] < 2003 ) )
          {
            vuln = TRUE;
            hotfix_add_report('\nPath : '+share-'$'+':'+dll+
                              '\nVersion : '+join(v, sep:'.')+
                              '\nShould be : 2003.1100.8020.0\n',
                              bulletin:bulletin, kb:kb);
            break;
          }
        }
      }
    }
  }
}

NetUseDel();
if (vuln)
{
  set_kb_item(name:"SMB/Missing/"+bulletin, value:TRUE);
  hotfix_security_warning();
  exit(0);
}
else
{
  audit(AUDIT_HOST_NOT, 'affected');
}
VendorProductVersionCPE
microsoftofficecpe:/a:microsoft:office
microsoftfrontpagecpe:/a:microsoft:frontpage
microsoftonenotecpe:/a:microsoft:onenote
microsoftprojectcpe:/a:microsoft:project
microsoftworkscpe:/a:microsoft:works