Date: Mon, 22 Feb 1999 11:26:41 +0100 From: Patrick CHAMBET To: sans@clark.net Subject: Alert: IIS 4.0 metabase can reveal plaintext passwords Hi all, We knew that Windows NT passwords are stored in 7 different places across the system. Here is a 8th place: the IIS 4.0 metabase. IIS 4.0 uses its own configuration database, named "metabase", which can be compared to the Windows Registry: the metabase is organised in Hives, Keys and Values. It is stored in the following file: C:\WINNT\system32\inetsrv\MetaBase.bin The IIS 4.0 metabase contains these passwords: - IUSR_ComputerName account password (only if you have typed it in the MMC) - IWAM_ComputerName account password (ALWAYS !) - UNC username and password used to connect to another server if one of your virtual directories is located there. - The user name and password used to connect to the ODBC DSN called "HTTPLOG" (if you chose to store your Logs into a database). Note that the usernames are in unicode, clear text, that the passwords are srambled in the metabase.ini file, and that only Administrators and SYSTEM have permissions on this file. BUT a few lines of script in a WSH script or in an ASP page allow to print these passwords in CLEAR TEXT. The user name and password used to connect to the Logs DSN could allow a malicious user to delete traces of his activities on the server. Obviously this represents a significant risk for Web servers that allow logons and/or remote access, although I did not see any exploit of the problem I am reporting yet. Here is an example of what can be gathered: " IIS 4.0 Metabase © Patrick Chambet 1998 - pchambet@club-internet.fr --- UNC User --- UNC User name: 'Lou' UNC User password: 'Microsoft' UNC Authentication Pass Through: 'False' --- Anonymous User --- Anonymous User name: 'IUSR_SERVER' Anonymous User password: 'x1fj5h_iopNNsp' Password synchronization: 'False' --- IIS Logs DSN User --- ODBC DSN name: 'HTTPLOG' ODBC table name: 'InternetLog' ODBC User name: 'InternetAdmin' ODBC User password: 'xxxxxx' --- Web Applications User --- WAM User name: 'IWAM_SERVER' WAM User password: 'Aj8_g2sAhjlk2' Default Logon Domain: '' " For example, you can imagine the following scenario: A user Bob is allowed to logon only on a server hosting IIS 4.0, say server (a). He need not to be an Administrator. He can be for example an IIS 4.0 Web Site Operator. Then, he launches a WSH script that extracts the login name and password of the account used to access to a virtual directory located on another server, say (b). Now, Bob can use these login name and passord to logon on server (b). And so forth... Microsoft was informed of this vulnerability. _______________________________________________________________________ Patrick CHAMBET - pchambet@club-internet.fr MCP NT 4.0 Internet, Security and Microsoft solutions e-business Services IBM Global Services