Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:973
HistoryNov 24, 2000 - 12:00 a.m.

[Update] NSFOCUS SA2000-07: Microsoft IIS 4.0/5.0 CGI File Name Inspection Vulnerability

2000-11-2400:00:00
vulners.com
37

NSFOCUS Security Advisory(SA2000-07)

Topic: Microsoft IIS 4.0/5.0 CGI File Name Inspection Vulnerability

Release DateЈє Nov 7th, 2000
Update DateЈє Nov 23rd, 2000

CVE Candidate Numbers: CAN-2000-0886
BUGTRAQ ID : 1912

Affected system:

  • Microsoft IIS 4.0
  • Microsoft IIS 5.0

Impact:

NSFOCUS security team has found a security flaw in Microsoft IIS 4.0/
5.0 when handling a CGI file name. Exploitation of it, attacker can
read system file and run arbitrary system command.

DescriptionЈє

In CGI application (.exe, .pl, .php etc.) handling, Microsoft IIS 4.0/
5.0 do not present an integrated security inspection of CGI file name,
which may cause IIS to mistakenly open or run a file if a special
character is contained in the file name.

  1. Providing a malformed HTTP request that calls IIS to run a ".exe"
    or ".com" program under executable directory, IIS will try to load
    the program and check file existence and file type first. Attacker can
    trap the loading program to check a non-requested file by inserting
    a special character in the file name.

If fulfilling these terms:

(1) Target file exists
(2) Target file is a batch file or ".cmd" file
(3) Target file is a plain text file longer than zero byte

IIS will automatically call "cmd.exe" to interpret it. Other part of
file name requested is pass to "cmd.exe" as parameters of the batch
file. Thus, an attacker can run arbitrary command by inserting some
characters like "&".

  1. If some script interpreter(php.exe, perl.exe etc.) and relevant
    mapping are installed, IIS will call them to interpret the file name
    submitted by user to run the corresponding CGI script. Inserting some
    special characters, attacker can trap the interpreter to open some
    file outside of WEB directory. Depending on the execution method of
    the interpreter, attacker may read part or even the full file content.

Exploit:

  1. Run arbitrary command

    Create a batch file "test.bat" with arbitrary content like "abc"
    under an executable directory(e.g. /scripts ). Submit the following
    URL:

    http://site/scripts/test.bat"+&+dir+c:/+.exe (for IIS 5.0)
    or
    http://site/scripts/test.bat"+&+dir+c:/+.com

    You get file list under C:\

    Double quotation marks will be attached on the executable file
    name by IIS. That's why the of request is turned into the following
    format when it is passed to "CMD.exe".

    CMD.exe "D:\interpub\scripts\test.bat" & dir C:/ .exe"

    So, an attacker can run arbitrary command with IUSER_machinename
    privilege, while the executable virtual directory is unnecessary
    to be on the same driver of "WINNT\system32\CMD.exe".

    For IIS 4.0 <SP6 and IIS 4.0/5.0 with the patch for MS00-057, we can
    use the following URL:
    http://site/scripts/test.bat&quot;+&quot;&amp;+dir+c:/+.exe

    For IIS 4.0 + SP6/SP6a, we have to combine with "%c1%1c" vulnerability:

    http://site/scripts/test.bat&quot;+&quot;+&amp;+dir+c:/+/..&#37;c1&#37;9c..&#37;c1&#37;9c
    …%c1%9c…%c1%9cwinnt/system32/route.exe
    ("winnt/system32/route.exe" can be replaced with any existing
    executable program with a ".com" or ".exe" suffix.)

Note: Commands can be inserted in the URL parameter , for example:
http://site/scripts/a.bat&quot;+&quot;.exe?+&amp;+dir
An old patch for IIS 5.0 previously provided by Microsoft did
not take it into consideration. We suggest you to apply the new
patch as soon as possible.

Whereas IIS executable directory do not have any batch file under
default installation, attacker can make use of this flaw:

(1) On occasion that system administrator install some CGI program
which allow users to create files under executable directory.
For example, some counter programs allow user to create and
name a data file though he can't control the file content.
Attacker may take the chance and run any command.

(2) MSSQL and Perl packages have their own batch files. On occasion
that system administrator install MSSQL or Perl, and happened to
be in the same driver of some IIS executable virtual directory,
intruder may carry out the attack with this combining with
"%c1%1c" vulnerability .
(read NSFOCUS Security Advisory SA2000-06:
http://www.nsfocus.com/english/homepage/sa_06.htm )

   For instance, NSSQL7 has 2 batch files under &quot;&#92;install&quot; under
   default installation:
   D:&#92;mssql7&#92;install&#92;pubimage.bat
   D:&#92;mssql7&#92;install&#92;pubtext.bat
   &#40;MSSQL7 is supposed to be installed in D:&#92;&#41;

   We can run arbitrary command by submitting the following URL
   if &quot;&#92;scripts&quot; directory of IIS has been mapped to
   &quot;D:&#92;interpub&#92;scripts&quot;:

   http://site/scripts/..&#37;c1&#37;1c../..&#37;c1&#37;1c../mssql7/install/
   pubtext.bat&quot;+&amp;+dir+c:&#92;+.exe

   In addition, websites allow users to upload &quot;.bat&quot; or &quot;.cmd&quot; file
   may also suffer from this kind of attack.
  1. expose file content

    For system installed php.exe(PHP3), attacker may read some files
    outside of WEB directory:
    http://target/.&quot;./.&quot;./winnt/win.ini&#37;20.php3

Workaround:

  1. Always remove unnecessary batch and ".cmd" files, and keep
    necessary batch or ".cmd" files in a different driver of any
    executable virtual directory.
  2. Deny the access privilege of "guests" group to "CMD.exe".

Vendor Status:

Microsoft has been informed on Oct 20th, 2000.
Microsoft has released one security bulletin concerning this flaw on
Nov 6th, 2000.

Microsoft has updated MS00-086 and released some new patches in
November 21, 2000.

The bulletin is live at :

http://www.microsoft.com/technet/security/bulletin/MS00-086.asp

Patches are available at:

. Internet Information Server 4.0:

http://www.microsoft.com/ntserver/nts/downloads/critical/q277873

. Internet Information Services 5.0:

http://www.microsoft.com/Windows2000/downloads/critical/q277873

Additional Information:

The Common Vulnerabilities and Exposures (CVE) project has
assigned the name CAN-2000-0886 to this issue. This is a
candidate for inclusion in the CVE list (http://cve.mitre.org),
which standardizes names for security problems. Candidates
may change significantly before they become official CVE entries.

DISCLAIMS:

THE INFORMATION PROVIDED IS RELEASED BY NSFOCUS "AS IS" WITHOUT WARRANTY OF ANY
KIND. NSFOCUS DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, EXCEPT FOR
THE WARRANTIES OF MERCHANTABILITY. IN NO EVENTSHALL NSFOCUS BE LIABLE FOR ANY
DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,CONSEQUENTIAL, LOSS OF
BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF NSFOCUS HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. DISTRIBUTION OR REPRODUTION OF THE INFORMATION IS
PROVIDED THAT THE ADVISORY IS NOT MODIFIED IN ANY WAY.

Copyright 1999-2000 NSFOCUS. All Rights Reserved. Terms of use.

NSFOCUS Security Team <[email protected]>
NSFOCUS INFORMATION TECHNOLOGY CO.,LTD
(http://www.nsfocus.com)

Related for SECURITYVULNS:DOC:973