Most Unicode exploits, if not all, are based on NT commands being in their default directory. For example, the "cmd.exe" command on a Windows 2000 Server is located in the %systemroot%winntsystem32 and the %systemroot%winntsystem32dllcashe directories. The dllcashe folder is for the Windows File Protection (WFP) service in case the file has been replaced/overwritten in the system32 directory.
Knowing the location of the necessary commands for exploitation purposes is half the battle. The rest comes easy with the widely available "canned" scripts for Unicode exploits. The scripts utilize the "cmd, ftp,telnet, etc." command line utilities to create folders, add users and download files from an FTP server.
The Microsoft's Security Checklist for IIS 4.0 included a recommendation for relocating critical command components from the system32 directory to a different folder. You might say security by obscurity; however, it does eliminate the Unicode exploits.
In order to have the same protection from Unicode vulnerabilities for IIS 5.0 and later, the WFP service needs to be disabled. Setting the registry key "SFCDisable" value to ffffff9d does just that. Move the critical files like "cmd, ftp, telnet, etc." from system32 to a different folder. Delete the same files from the dllcashe directory. The WFP service can be re-enabled with the "sfc /enable" command, which does not replace the moved/deleted files. However, running the
The above procedures do not guarantee a secured IIS server. The appropiate permissions for users and ACL for the file system still need to be implemented. Some people might even find it easier to use alternate Web servers. However, other people might not have a choice.
This was first published in August 2001