IIS 8.3 Short Name Disclosure
IIS on Windows exposes 8.3 short filenames through HTTP response code differences when path segments contain a tilde character. A request to /ADMINI~1/ returns a different response than /ZZZZZZ~1/ when the directory exists — regardless of whether directory listing is disabled. This reveals file and directory name prefixes (up to 6 characters) without any authentication. Use discovered prefixes to seed targeted content bruteforce against the full names.
Manual Probe — Confirm Vulnerability
The vulnerability is present when a valid short name prefix returns a different response than a clearly invalid one. Compare the responses:
HTTP/1.1 404 Not Found
HTTP/1.1 403 Forbidden
A 403 Forbidden for ASPNET~1 versus 404 for ZZZZZZ~1 confirms the vulnerability — the server is distinguishing between existing and non-existing 8.3 paths. A 400 Bad Request on tilde paths means the server is patched or the feature is disabled.
Automated Scan — nmap NSE
| http-iis-short-name-brute: | Found 4 short names | ADMINI~1 (directory) | ASPNET~1 (directory) | UPLOAD~1 (directory) |_ BACKUP~1.ZIP (file)
Explain command
| -p 80,443 | Scan only ports 80 and 443. |
| --script http-iis-short-name-brute | Run NSE script to brute-force IIS 8.3 short file/folder names. |
| $TARGET_IP | Target host IP address variable. |
Automated Scan — IIS-ShortName-Scanner
More thorough than the nmap script. Requires Java:
Explain command
| https://github.com/irsdl/IIS-ShortName-Scanner.git | URL of the remote Git repository to clone locally. |
[+] Directory: ADMINI~1 [+] Directory: ASPNET~1 [+] Directory: UPLOAD~1 [+] File: BACKUP~1.ZIP [+] File: WEBCON~1.BAK
Explain command
| -jar | Executes the specified JAR file as the main application. |
| iis_shortname_scanner.jar | JAR tool that scans IIS servers for 8.3 shortname vulnerabilities. |
| 2 | Thread count or scan mode level passed as first positional argument. |
| 20 | Maximum number of requests or retries passed as second positional argument. |
| https://$DOMAIN/ | Target URL with placeholder domain to scan for IIS shortname disclosure. |
Expand Prefixes to Full Names
Use the discovered 6-character prefixes to generate candidate full names and brute force the actual paths:
administrator administration admin_interface administrators
administrator [Status: 302, Size: 0]
Explain command
| -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt | Specifies the wordlist file to use for fuzzing. |
| -u http://$TARGET_IP/FUZZ | Target URL with FUZZ keyword as the injection point. |
| $TARGET_IP | Placeholder for the target host IP address. |
| -mc 200,301,302,403 | Match only responses with these HTTP status codes. |
| -ic | Ignore wordlist comments (lines starting with #). |
| grep -iE '^admini' | Filter output to lines starting with 'admini' (case-insensitive, regex). |
ADMINI~1 resolving to /administrator/ confirms the admin panel path. For file prefixes like BACKUP~1.ZIP, test common suffixes:
404 /backup.zip 200 /backup_2024.zip 404 /backup_old.zip
File Extension Targeting
When a file prefix is found, enumerate IIS-specific extensions against it:
200 /webcon.bak 404 /webcon.aspx
References
-
IIS-ShortName-Scannergithub.com/irsdl/IIS-ShortName-Scanner (opens in new tab)
Java-based scanner for 8.3 shortname enumeration on IIS
-
nmap — http-iis-short-name-brute NSEnmap.org/nsedoc/scripts/http-iis-short-name-brute.html (opens in new tab)
Nmap script for IIS 8.3 shortname brute enumeration
Was this helpful?
Your feedback helps improve this page.