- IIS का डिफॉल्ट पेज बंद गली नहीं, बल्कि bug bounty reconnaissance की शुरुआत हो सकता है; Shodan, Google dork, और response headers की मदद से exposed servers और छिपे vhost को संकुचित किया जा सकता है
- HTTP/1.0 request,
HTTPAPI 2.0 404, SSL certificate, औरHostheader brute-forcing internal IP, Exchange hostname, और virtual host खोजने के शुरुआती संकेत बन सकते हैं - IIS की DOS 8.3 आधारित tilde shortname enumeration directory listing बंद होने पर भी छोटे file/directory names उजागर कर सकती है, और GitHub search, BigQuery, LLM, तथा crunch से पूरे नाम के candidates का अनुमान लगाया जा सकता है
- IIS/.NET-विशिष्ट fuzzing में
web.config,trace.axd,elmah.axd,appsettings.*.json,.aspx/.ashx/.asmx/.configजैसे high-value paths और extensions को पहले निशाना बनाया जाता है web.configexposure, cookieless session path normalization, reverse proxy path confusion, NTFS alternate data stream, upload extension bypass, और HPP यह दिखाते हैं कि misconfiguration और legacy behavior attack surface में बदल सकते हैं
IIS सर्वर खोजने के reconnaissance तरीके
- IIS targets को पहले search engines और internet asset search services में खोजा जा सकता है
- Shodan query target domain के SSL certificate, organization name, और
http.title:"IIS"के संयोजन से IIS servers को संकुचित करती है- उदाहरण targets में staging servers, भुला दिए गए admin panels, और internet पर exposed internal tools शामिल हो सकते हैं
- Shodan के अलावा fofa, censys, netlas, और odin भी अलग-अलग internet indexes प्रदान करते हैं
- Google dorking का उपयोग indexed pages में IIS के संकेत खोजने के लिए होता है
aspnet_clientfolder और_vti_binको IIS संकेत माना जाता हैext:aspxASP.NET pages खोजता है और उसके पीछे IIS होने का संकेत देता हैsite:*.target.com,site:*.*.target.comजैसे wildcard searches सामान्य subdomain enumeration से छूटे nested subdomains खोजने में उपयोगी होते हैं
- Response headers IIS पहचानने का सबसे आसान संकेत हैं
Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET- बड़े पैमाने पर जांच के लिए
httpxयाnucleiसे IIS targets की सूची बनाई जा सकती है
IIS की पुष्टि के बाद मिलने वाले शुरुआती संकेत
- कुछ IIS configurations, खासकर Exchange या OWA fronts, HTTP/1.0 requests पर internal information उजागर कर सकते हैं
Locationheader मेंhttps://192.168.5.237/owa/जैसे internal IP हो सकते हैंX-FEServerheader Exchange server का internal hostname प्रकट कर सकता है- यह जानकारी आगे के चरणों में काम आने वाले information disclosure में बदल सकती है
Automation और छिपे virtual host ढूँढना
- IIS targets की सूची मिल जाने के बाद
nucleiकोmicrosoft,windows,asp,aspx,iis,azure,config,exposureजैसे tags के साथ चलाकर दोहराए जाने वाले काम कम किए जा सकते हैं HTTPAPI 2.0 404का मतलब हमेशा यह नहीं होता कि वास्तव में वहाँ कुछ नहीं है- हो सकता है IIS instance किसी खास virtual host से bind हो, और request का
Hostheader मेल न खाने पर 404 मिले
- हो सकता है IIS instance किसी खास virtual host से bind हो, और request का
- छिपे vhost खोजने के दो तरीके हैं
- SSL certificate के subject या SAN fields से आवश्यक hostname निकालना
- अगर certificate मदद न करे तो
ffufऔरHostheader wordlist से vhost brute-force करना
- सही hostname मिल जाने पर सामान्य 404 के बजाय असली application response दे सकती है
IIS tilde shortname enumeration
- IIS पुराने DOS 8.3 filename rules से जुड़े behavior के कारण विशेष requests से files और directories के छोटे नाम enumerate कर सकता है
- Directory listing disabled होने पर भी
WEB~1.CON,GLOBAL~1.ASA,SITEBA~1.ZIP,ADMIN~1जैसे टुकड़े उजागर हो सकते हैं - shortscan IIS shortname enumeration के लिए इस्तेमाल होने वाला tool है
- burp’s IIS Tilde Enumeration Scanner भी एक विकल्प है
- छोटे नामों को पूरे filenames में बदलने के कई तरीके हैं
- LLM: shortname fragments को शामिल करने वाले संभावित filename candidates बनाना
- GitHub code search:
~1से पहले के पहले 6 अक्षरों और extension के आधार पर असली filenames खोजना - GSNW: shortname fragments लेकर GitHub code search से matching filenames इकट्ठा करता है
- GitHub-IIS-Shortname-Generator: समान तरीके से wordlist बनाता है
- shortnameguesser: scanner output से कई sources को query करके target wordlist बनाता है
- BigQuery तरीका Google BigQuery के public GitHub dataset में shortname patterns से मेल खाने वाले file paths खोजता है
SITEBA~1.ZIPके लिएsitebackup.zip,sitebase.zipजैसे वास्तविक project filename candidates मिल सकते हैं- यह तरीका Assetnote की IIS hidden files BigQuery research से प्रेरित है
- अगर LLM, GitHub, BigQuery विफल हों, तो crunch से बचे हुए string combinations की wordlist बनाकर
ffufसे आज़माया जा सकता है- hyphen, underscore, URL-encoded space, और बिना separator वाले filename variants भी साथ में जांचे जाते हैं
- Windows filenames में spaces की अनुमति देता है और IIS भी उन्हें serve कर सकता है
IIS/.NET-विशिष्ट fuzzing
- सिर्फ सामान्य wordlists पर निर्भर रहने से IIS/.NET ecosystem की विशिष्ट files और endpoints छूट सकते हैं
- पहले जांचने लायक high-value targets में ये शामिल हैं
/web.config,/web.config.bak,/web.config.old,/web.config.txt/global.asax/trace.axd/elmah.axd/connectionstrings.config/appsettings.json,/appsettings.Development.json,/appsettings.Staging.json,/appsettings.Production.json,/appsettings.Local.json/secrets.json/WS_FTP.LOG/_vti_pvt/service.cnf
trace.axdASP.NET trace viewer है; अगर enabled हो तो headers, cookies, और कभी-कभी credentials सहित request/response logs उजागर हो सकते हैंelmah.axdऐसा debug endpoint हो सकता है जिसे developers ने disable नहीं किया हो, और यह error logs दिखा सकता है- IIS-विशिष्ट extension fuzzing targets में
.asp,.aspx,.ashx,.asmx,.wsdl,.wadl,.config,.xml,.zip,.txt,.dll,.jsonशामिल हैं - उपयोगी wordlists में ये शामिल हैं
- secLists IIS.txt: इसमें basic IIS paths, common handlers, और legacy files शामिल हैं
- orwa’s iis.txt: इसे वास्तविक bug bounty programs में इस्तेमाल की गई IIS list के रूप में बताया गया है
- orwa’s aspx.txt: यह
.aspxendpoints-केंद्रित सूची है - wfuzz iis.txt: ज्ञात vulnerable IIS paths पर केंद्रित छोटी सूची
- dirbuster-ng iis.txt: IIS-विशिष्ट कमजोरियों को निशाना बनाने वाली compact सूची
- Assetnote wordlists: वास्तविक crawling data से auto-generate की जाती हैं, हर महीने update होती हैं, और ASP तथा ASPX lists की सिफारिश की जाती है
- OneListForAll:
onelistforallshort.txttarget runs के लिए, और पूरी सूची लंबे runs के लिए उपयोगी है
- IIS case-sensitive नहीं है, इसलिए mixed-case wordlists duplicate requests बना सकती हैं
- lower-case lists का उपयोग करना या
tr '[:upper:]' '[:lower:]' | sort -uसे normalize करना आम तरीका है
- lower-case lists का उपयोग करना या
web.config और code exposure
- अगर
web.configको path traversal, गलत तरीके से exposed backup files, या shortname-आधारित discovery से पढ़ा जा सके, तो IIS targets पर इसका असर बड़ा हो सकता है - IIS
web.configमें ViewState signing और encryption में इस्तेमाल होने वाली machine keys हो सकती हैं - machine keys मिलने पर malicious serialized ViewState payload forge करके deserialization-आधारित remote code execution तक पहुँचा जा सकता है
- ysoserial.net key उपलब्ध होने पर payload generation में मदद करता है
- अगर file download या file read parameter हो, तो
../../web.configऔर उसके URL-encoded variants आज़माने की दिशा में आगे बढ़ा जा सकता है - ASP.NET का legacy cookieless session feature
(S(X))जैसे session tokens को URL path में डाल सकता है- IIS path normalization के दौरान उस segment को हटाकर
/bindirectory access block को bypass कर सकता है Newtonsoft.Json.dllअपने-आप में एक basic library है, इसलिए ज़रूरी नहीं कि उसमें application secrets हों- लेकिन अगर वास्तविक application DLL मिल जाए, तो dotPeek या dnSpy से decompile करके hardcoded credentials, API keys, internal endpoint logic, और custom authentication implementations देखी जा सकती हैं
- IIS path normalization के दौरान उस segment को हटाकर
Path normalization, NTFS, upload, और WAF bypass
- जब IIS reverse proxy के पीछे हो या खुद reverse proxy की भूमिका निभा रहा हो, तो path normalization differences access control bypass में बदल सकती हैं
- proxy encoded path को अलग resource मानकर आगे भेज सकता है, जबकि IIS
%2fको/में decode कर traversal समझकर protected path serve कर सकता है
- proxy encoded path को अलग resource मानकर आगे भेज सकता है, जबकि IIS
- IIS 7.5 और समान versions में NTFS alternate data streams और index allocation behavior के कारण basic authentication bypass संभव हो सकता है
- authentication module protected path के रूप में नहीं पहचानता, लेकिन file system उसे वास्तविक directory की तरह interpret कर सकता है
- file upload features में
.aspx,.aspblocked होने पर भी IIS द्वारा default रूप से HTML के रूप में serve किए जाने वाले extensions से stored XSS संभव हो सकता है- HTML rendering extensions के उदाहरण:
.cer,.hxt,.htm - XML-आधारित XSS vector extensions के उदाहरण:
.dtd,.mno,.vml,.xsl,.xht,.svg,.xml,.xsd,.xsf,.svgz,.xslt,.wsdl,.xhtml
- HTML rendering extensions के उदाहरण:
- IIS filename के अंत में लगे dot को हटा सकता है, इसलिए
shell.aspx.,shell.aspx..,shell.aspx...जैसे upload filter bypass संभव हो सकते हैं - server-side includes targets के लिए
.stm,.shtm,.shtmlextensions सुझाए गए हैं - जब WAF payload block करे, तो HTTP Parameter Pollution से duplicate parameters में payload को बाँटकर भेजा जा सकता है
- IIS और ASP.NET डिफॉल्ट रूप से duplicate parameter values को comma से जोड़ते हैं, और WAF के पीछे payload दोबारा assembled हो सकता है
IIS bug bounty से मिलने वाले सबक और संसाधन
- IIS का bug bounty attack surface बड़ा है, लेकिन कई बार पर्याप्त रूप से test नहीं किया जाता
- Exposed Windows/IIS servers internal IP, config files, और shortname enumeration जैसी चीज़ों के रूप में जानकारी लीक कर सकते हैं
- IIS के डिफॉल्ट पेज पर रुकने के बजाय उससे आगे गहराई में reconnaissance करना व्यावहारिक रूप से महत्वपूर्ण है
- संदर्भ सामग्री
1 टिप्पणियां
Hacker News टिप्पणियाँ
हर honeypot के सामने IIS landing page लगाने की वजह ही यही है कि blackhat लोग उसकी तरफ खिंचे चले आते हैं
यह सोचकर ही बड़ी खुशी होती है कि वे अपनी ही पूँछ पकड़ने में घंटों बर्बाद कर चुके होंगे
ऊपर के blackhat बड़े targets के पीछे जाते हैं, और नीचे वाले Shodan पर मिले आसान शिकार या खुद खोजे गए application zero-day पर ध्यान देते हैं
अगर port scanners को परेशान करने के और तरीके हों, तो उनके बारे में और जानना चाहूँगा
aspnet_client/admin.phpजैसी URL बनाकर उस पर WebObjects headers लौटाना भी एक अच्छा शौक हो सकता है“IIS में पुराने DOS 8.3 filename rules से विरासत में मिला legacy behavior है” — क्या इसका मतलब यह है कि, IIS document root का default रूप से
C:\Inetpubहोना मिलकर underlying operating system behavior को उजागर कर देता है?Windows 10/11 में C drive पर 8.3 filenames default रूप से enabled हैं, लेकिन दूसरी drives पर default रूप से disabled हैं
PS> (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').DisplayVersion→24H2fsutil 8dot3name query C:पर8dot3 name creation is ENABLED, औरfsutil 8dot3name query U:परDISABLEDआता हैc:\inetpubबना दिया थाhttps://www.pcworld.com/article/2684062/why-is-windows-11-la...
DisplayVersioncommand ने जवाब नहीं दिया, और पुराने versions जैसे LTSC में शायद नीचे की तरहReleaseIdइस्तेमाल करना पड़ता है(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ReleaseId→1809लेख की writing style काफ़ी अजीब है
वाह, इससे तो पुरानी यादें ताज़ा हो गईं
एक समय था जब IIS scanners इतने ज़्यादा थे कि server logs लगभग बेकार हो जाते थे
एक directory traversal vulnerability थी जिसमें बस
../को URL encode करना होता था, और उसने कई महीनों तक पूरे internet को जला कर रख दिया थाक्या अभी भी कहीं IIS इस्तेमाल होता है?
HOST/MACHINE.DOMAINजैसी SPN होती हैWindows services और IIS App Pool Identity, (g)MSA या virtual accounts (
NT Service*) से log in करते हैं, इसलिए 30/60/90 दिन के password rotation को हाथ से संभाले बिना managed Kerberos environment ठीक से चल जाता हैMS SQL Server में Kerberos से log in करना, और दूसरे webapps के OAuth2 flow में भी Kerberos से log in करना — सब कुछ स्वाभाविक रूप से काम करता है
default Windows shell से WinRM भी बिना खास setup के चल जाता है, और तकनीकी रूप से 2FA को bypass भी कर सकता है, क्योंकि व्यवहार में यह ऐसे ही काम करता है
Linux पर भी यह संभव है, लेकिन ठीक से configure होने की संभावना workplace के हिसाब से बदलती है, और मेरे अनुभव में अब तक बहुत ज़्यादा नहीं रही
पुराने apps सच में बहुत हैं, और उनमें से कई काफ़ी महत्वपूर्ण भी हैं
अगर कोई enterprise इतना बड़ा है कि intranet चलाता हो, तो कहीं न कहीं, शायद हर जगह IIS चल रहा होगा
यह AD के साथ बहुत अच्छी तरह integrate होता है, इसलिए काफ़ी जटिल काम भी बेहिसाब आसान हो जाते हैं
दुनिया AWS की ओर शिफ्ट होने से इसका इस्तेमाल कम हुआ है, लेकिन वह भी आखिर एक vendor के proprietary product (Amazon) से बंध जाना ही है, इसलिए वही मूर्खता है। बस फ़र्क इतना है कि इस बार hardware भी आपका अपना नहीं है
public sector IT को IIS पसंद है। किसी local government tax या real estate website को देखें, तो अच्छी संभावना है कि वहाँ
.aspxscripts भरे पड़े होंमैंने इसे यूरोप के public sector webapps में भी देखा है, और SQL Server backend वाले custom .NET applications अक्सर पूरी local government चलाते हैं
एशिया, खासकर चीन और ताइवान, IIS को पसंद करते दिखे, और वे इसका इस्तेमाल हर तरह की hosting के लिए करते लगे
दुनिया ज़्यादातर आगे बढ़ चुकी है, यह सही है, लेकिन शहरों और महत्वपूर्ण संस्थाओं को चलाने वाला बहुत सारा legacy code अभी भी IIS पर पड़ा है और शायद बदलेगा नहीं
अगर आपको यह बुरा लगता है, तो अभी भी वेब पर AS/400, Lotus Notes, और Novell GroupWise चलाने वाली जगहें मौजूद हैं
मान लीजिए कोई छोटी कंपनी enterprise .NET Framework code बनाती है, सब कुछ Windows है, customers cloud अपनाना नहीं चाहते, SOAP अब भी मुख्यधारा में है, और अकेले IT admin के पास 2010 के बाद क्या हुआ यह जानने का भी समय नहीं है
पूरा rewrite व्यावहारिक नहीं है, security का कुछ फ़ायदा चाहिए, लेकिन settings में गहराई तक जाने की क्षमता नहीं है, और Kubernetes जैसी जटिल चीज़ पर दाँव भी नहीं लगाया जा सकता
nginx पर भी ऐसा analysis post देखना चाहूँगा
पूरे desktop browser के हिसाब से design सच में बहुत अच्छा है, और content भी बढ़िया है
फिर भी, उसके अलावा बाकी presentation मुझे पसंद आई
लेखक को शायद अभी यह सीखना बाकी है कि सभ्यता कितनी हद तक उन लोगों पर टिकी है जो बिना किसी खास वजह एक-दूसरे के साथ बुरा व्यवहार नहीं करते
समझ नहीं आता कि बाईं sidebar main text के ऊपर क्यों चढ़ रही है