original URL for this page http://www.lokbox.net/index.asp
made a copy here so I don't lose it. (nice work guys)
Checklist for Securing a Windows XP
IIS 5.1 Webserver
by Greg Thatcher, MCSE, CCNA and Niall
Brady, CNA.
This document was inspired by the need for Windows XP Professional IIS 5.1
administrators to have a checklist available for them which clearly explains how
to secure their Web Server from the many Worms and script kiddies who will
inevitably target them. Windows XP Professional includes IIS 5.1, it is not
installed by default, you have to physically install it as an optiontal extra.
By default, XP will install several folders, help files, ASP files, remote web
support and more. If you are reading this document and already have a running XP
Pro IIS Webserver then you should consider backing it up first. XP includes a
backup feature for IIS and it is explained below. If however, you are just
installing IIS for the first time, read this first, then go ahead and install
everything (we're going to remove or disable most of it anyway).
Before implementing any of these changes on your XP machine, it is strongly
recommended that you backup your system (including the "System State")
and also backup IIS. Click here
for examples of how to do this.
- 1.) Verify that Automatic Updates are set to install
automatically. This utility is built into Windows XP and keeps you
notified of Critical Updates and Service Packs. Most hacker attacks target
machines that DO NOT have the latest Service Packs and Hotfixes installed on
them. To see how to set this up click here.
Alternatively you can manually update your system by going to Microsoft at http://windowsupdate.microsoft.com/
- 2.) Disable and Audit the following files: ftp.exe, tftp.exe,
command.com, cmd.exe, telnet.exe, wscript.exe,
and cscript.exe. Regardless of the mechanism a hacker uses to break
into your machine, the goal is the same: to execute the hacker's code on
your machine. The above mentioned programs can be used by hackers to install
hacker software, and also run code of the hackers choice.
By disabling and auditing a file, you prevent the hacker from doing damage,
and also audit the hacker's activities in Event Viewer so that you can
detect the attacks.
It is not recommended that you Delete or Rename any of these files. Windows
XP includes a feature called "Windows File Protection" which will
automatically replace some of these files (e.g. cmd.exe) if they are deleted
or renamed.
If you need access to one of these programs, it is recommended that you make
a copy of the program with a different name (e.g. "cmdsafe.exe" or
"ftp99.exe") -- don't forget to update any shortcuts to these
files. This way, the hacker will not likely be able to find it (only you
will know the name).
- Click here
to learn how to disable a file.
- Click here
to learn how to audit a file.
Important Note: When you lock down a computer, you make it harder for
a hacker to attack, but you also often make it harder for a legitimate user
to use. Disabling files is one of the best ways to safeguard a computer
against attacks, but there are a couple of "gotchas" to watch for:
- 1.) It is important to install Critical Updates and Service Packs soon
after Microsoft releases them (See Item 1. above). Unfortunately,
disabling the files listed above will cause some of these updates to
fail during installation. Before installing a Critical Update or Service
Pack, you should temporarily enable Write access to the above
mentioned files.
- 2.) Some development tools and installation programs need access to
the cmd.exe or command.com executables. For example, when installing an
ASP component (a.k.a "COM component"), the installation
program may need to run the cmd.exe executable (so that it can run the
regsvr32.exe executable.) When running such a development tool or
installation program, you may need to temporarily enable Execute
access to these files.
- 3.) Rename the Administrator account and disable the Guest
account.
By default, winXP creates two accounts that many hackers look for on your
machine, "Guest" and "Administrator". If your machine is
a member of a domain, you will need to do this twice: Once on your machine,
and once in Active Directory (Active Directory is beyond the scope of this
article).
Click here
to see an example of disabling the Guest account, and renaming the
Administrator account.
- 4.) Use strong Account Policies:
The easiest way for a hacker to break into your network is via weak
passwords and account policies. Using "Local Security Settings"
(or Group Policy if you are using Active Directory), you should set the
following:
- Password Policy (these make it hard for hackers to guess passwords)
- Enforce password history: 24 passwords remembered
- Maximum password age: 42 days
- Minimum password age: 2 days
- Minimum password length: 8 characters
- Passwords must meet complexity requirements: Enabled
- Store passwords using reversible encryption: Disabled (this
may create problems for Macintosh or RAS users in your network)
- Account policies (these make it hard to run dictionary attacks against
your machine)
- Account lockout duration: 60 minutes
- Account lockout threshold: 3 invalid logon attempts
- Reset account lockout counter after: 60 minutes
Note that these account lockout policies do not apply to the Administrator
account. It is very important to rename the Administrator account, as
hackers will often run dictionary attacks against the Administrator account.
Click here
to see an example of setting account policies.
- 5.) Auditing Windows XP Pro allows you to audit your machine
through several mechanisms:
- IIS Logs: You should enable IIS Logging on all websites your
machine hosts. You should periodically review these log files for hacker
attempts. Specifically, search these files for failed (e.g. 404)
requests, and also for the following words: echo, copy, rename, dir,
del, format, cmd.exe, command.com, tftp.exe, ftp.exe, and in
general, any .exe, .com, .bat or other file extension which your web
users should not be using. The IIS Log files will also include the IP
address of the attacker. You can use the Whois
Tool included with "LokBox
Lookup" to find out information about the hacker and his ISP
from this IP address.
Click here
to see how to setup IIS logging.
- Event Viewer -- Security Log: Windows XP Pro comes with a tool
called Event Viewer (available under the Programs-Administrative Tools
menu.) This tool logs Application, System, and Security Events.
Unfortunately, the default installation of winXP does not enable any
Security logging; you must turn on Security Auditing manually.
It is recommended that you configure the following using "Local
Security Policy" or Active Directory Group policy (if your machine
is a member of a domain.)
- Audit account logon events: Failure
- Audit account management: Success/Failure
- Audit logon events: Failure
- Audit object Access: Failure
(Note: This allows you to audit failed access to files. In addition
to enabling this policy, you must also explicitly configure the file
or directory for auditing. Click here
to see an example of this.)
- Audit policy change: Success/Failure
- Audit privilege use: Failure
- Audit system events: Success/Failure
Of course, it is very important to periodically review the Event Viewer
Security log. It is strongly recommended that you backup ALL log files
and set Event logs to "Do not overwrite events (clear log
manually)".
Click here
to see an example of setting up Audit Policy.
- 6.) Disable unnecessary services/drivers
- Disable Ftp Service: Ftp sends passwords in cleartext. This
makes it easy for a hacker to "snoop" on traffic to your
machine, and obtain your passwords. If you must run an ftp service on
your webserver, it is strongly recommended that you disable
"Write" access (Click here
for info on how to do this.) If you must enable ftp write access, it is
strongly recommended that you use IPSec to encrypt ftp traffic between
your ftp server and clients. IPSec is beyond the scope of this article.
- Disable SNMP: Recently, many flaws have been found in the
implementation and specification of SNMP. In addition, the default
installation of SNMP allows hackers to obtain information on your server
via the "Public" Community string.
Click here
to learn how to determine if your machine is running an SNMP agent, and
how to remove it.
- Disable Indexing Service: This indexing service allows you (and
hackers) to quickly search for files on your system. Unless your
webserver is using the Indexing Service to create a "Site
Search" of your website, it is strongly recommended that your
remove this service (More on this later.)
Click here
to learn how to remove the Indexing Service.
- Disable Simple TCP/IP Services: These services are not
installed by default, but many Sys Admins install them because they
include such fun services as "Quote of the Day" and
"Daytime". These services have been favorite targets of
attackers for many years.
Click here
to learn how to determine if your machine is running these services.
- Disable Network Monitor Driver. This driver is used by
"Network Monitor" and/or SMS to analyze traffic on your
machine.
- 7.) Default winXP Installation Directories.
Many hacker scripts depend on the default installation of Windows to work.
For example, a hacker may, through a variety of mechanisms, attempt to run
the following command from inside your Web directory: ..\..\windows\system32\cmd.exe
/C del c:\*.*
This command would successfully delete the files on your C drive provided
that:
- A.) Your website was installed in the c:\Inetpub\wwwroot directory.
- B.) Windows is installed in the c:\windows directory.
When installing ANY software on your machine, it is very important that you
not choose the default installation directory. When installing Windows XP,
don't install it in the default c:\windows (or c:\winnt) directory. Instead,
install it in the j:\winXP10 directory (or something else that's hard to
figure out). When creating a website, don't install it in c:\inetpub\wwwroot,
instead, install it in m:\internet\websites\public directory.
Most hackers are running scripts that were written by someone else. These
scripts often make default assumptions about how your server was installed.
By not using the default partitions (or volumes) and directories, you can
"fool" their scripts.
- 8.) IIS Server Configuration
- a.) Remove FrontPage Extensions. There are a number of exploits
against FrontPage. It is strongly recommended that you remove this.
Click here
to learn how.
- b.) Remove Remote Desktop Web Connection (TSWEB). By default, IIS
includes a website that enables you to administer the computer hosting
IIS via a website. Typically that would show up as a url such as http://www.yoursitename.com/tsweb.
Click here
to learn how to remove this.
- c.) Remove unused App Mappings from Web Server. IF YOU DO NOTHING
ELSE, AT LEAST DO THIS!
IIS includes a number of "Application Mappings" that invoke
various programs when a web page with a certain file extension (e.g.
.asp or .pl) is called. Even if you don't have a file in your website
with one of these extensions, your server may still be vulnerable to an
exploit against one of these file types -- and there are MANY exploits
against various Application Mappings.
It is strongly recommended that you remove all unused Application
mappings. "IIS
Security Audit" can help you determine which Application
Mappings you need to remove.
Specifically, you should remove the following: .cer .cdx .asa .htr .idc
.shtm .shtml .stm .printer plx
In addition, if you are not using .asp or Perl files, you should remove
the following application mappings: .asp, .pl
Click here
to learn how to remove Application Mappings.
Click here
to learn more about vulnerabilities against various App Mappings.
- 9.) Website Configuration
- a.) Disable the "Default Web Site" and delete all of its
files. Hackers look for this configuration -- get rid of it. Create your
own website, and don't put it in the c:\inetpub\wwwroot directory.
- b.) Turn off "Index this resource" on ALL websites. If you
want to create a "Site Search" for your website, use a 3rd
party tool that does not index the SOURCE CODE of your server-side
scripts.
- c.) Turn off "Directory browsing" on ALL websites and
virtual directories. Don't allow hackers to "browse" through
your files.
- d.) Delete the "AdminScripts", "IISSamples" and
"Scripts" directories. Hackers know of these default
directories, and know of many exploits against the files that are
installed in these directories in a default installation of IIS. Get rid
of these directories, and never name your directories with these names.
- e.) Remove any residual FrontPage directories. Frontpage installs a
bunch of directories that begin with the "_" character. Delete
all of these directories and files, and get rid of any files or
directories that your website is not using.
- f.) Make sure that none of your websites have the "Write"
Permission turned on.
To learn how to configure an IIS website, click here.
- 10.) Enable auditing on Web and Ftp directories for Write,
Delete, and Change Permissions.
Remember that to enable auditing, you must perform two steps:
- A.) Turn on "Audit object access" in "Local Security
Settings" or "Group Policy".
- B.) Enable auditing for individual files and directories.
You should only enable auditing on files and directories that do not change
often. Do not enable auditing on your mail directories (e.g. mailroot), or
web directories that are generated periodically by log analysis programs
(like Analog).
Be sure to check the Event Viewer - Security log periodically for hacker
attempts.
- 11.) Check all open TCP/IP ports.
First, check to see which ports your machine has open, and figure out which
services the ports map to. For the former, you can use "netstat
-an" from a DOS prompt. Many users may find the Port
Scan feature of InternetPeriscope
easier to use, as it tells you which services are commonly used by which
ports. Install and run InternetPeriscope ON your server for this first test.
Next, perform a Port Scan on your server from a machine that is OUTSIDE of
your firewall. Again, InternetPeriscope
can help you to do this. This will give you an idea of what ports the
hacker's see when they scan your system.
If you see any services on your machine that you do not need, you should
remove them to further "harden" your server's security.
- 12.) Miscellaneous Tasks
- A.) winXP Servers include a "Security Configuration and Analysis
Tool". Unfortunately, this tool is well hidden in a default
installation. Click here
to learn how to use this tool.
- B.) Disable "Enumeration of SAM accounts and Shares (by anonymous
users)". Depending on your configuration, Hackers can sometimes get
a list of the usernames and share names on your machine using a "Null
Session Vulnerability". This information can help the hacker to
more easily crack passwords or take advantage of an unsecured share.
Click here
to learn how to turn off "Enumeration of SAM accounts and Shares
(by anonymous users)".
- 13.) Disable Remote Data Services (RDS)
RDS is known to be vulnerable to hacker attacks that enable a hacker to run
files on your machine. Most websites do not use RDS, so RDS can be safely
disabled. "IIS
Security Audit" can help you determine if your machine is
vulnerable to an RDS attack.
Click here
to learn more about the RDS vulnerability.
- 14.) Disable ODBC Shell Access Vulnerability
IIS is vulnerable to an attack via the Jet Database Engine that can enable a
malicious user to execute programs on an IIS Server. "IIS
Security Audit" can help you determine if your machine is
vulnerable to an ODBC Shell Access attack.
Click here
to learn more about the ODBC vulnerability.
- 15.) Check Startup Files for Hacker Software
Windows has a number of methods for automatically launching software when a
machine first boots or when a user first logs in. If your machine is
attacked by hackers or infected by a Trojan, it is very likely that
malicious software will be installed that uses one of these
"auto-starting" mechanisms.
It is recommended that you periodically check and document which software is
configured to "auto-start" on your server. If you believe your
machine has been compromised, it is important that you check for
"auto-starting" software before you reboot your machine.
"InternetPeriscope"
can help you check for "auto-starting" software on your machine.
Click here
to learn more about the "auto-starting" methods used by hackers.
- 16.) Use NTFS permissions to block Write Access
For many companies, the most horrifying danger posed by hackers is the
modification of their web or ftp site. Specifically, they don't want hackers
to deface their web pages or install trojan software on their ftp site.
Fortunately, this is easy to prevent using NTFS.
NTFS allows you to specify which users can read or write specific
directories and files. Unfortunately, the group "Everyone" is
given the "Full Control" permission by default. This means that
anyone who gains access to your web directory can write to it through a
variety of hacks.
It is strongly recommended that you either "Deny" or remove the
"Write" permission from the "Everyone" Group on your web
and ftp directories. This way even if a hacker gains access to your system,
it very unlikely that he will be able to modify your web or ftp files,
causing your company great embarrasment.
Click here
to learn how to change NTFS permissions.
- 17.) Remove Remote Access capability to your Windows XP
computer.