# T1552 - Unsecured Credentials > [!abstract] Resumo Técnico > **Tática:** Credential Access | **Plataformas:** Windows, Linux, macOS, Cloud, Containers, Network Devices > Adversários buscam ativamente por credenciais armazenadas de forma insegura em sistemas comprometidos. Essa técnica abrange desde arquivos de configuração em texto claro até variáveis de ambiente, histórico de shell, registro do Windows, secrets em containers e APIs de metadados em nuvem. ## Descrição A técnica **T1552 - Unsecured Credentials** descreve como adversários exploram práticas inadequadas de gestão de credenciais para obter senhas, chaves de API, certificados, tokens de acesso e outras informações sensíveis que desenvolvedores, administradores ou usuários deixaram armazenadas de forma insegura em sistemas e ambientes de nuvem. Credenciais não protegidas são um dos vetores de escalada de privilégios e movimentação lateral mais explorados na prática. A razão é simples: desenvolvedores frequentemente hardcodam credenciais em scripts, arquivos de configuração e até mensagens de chat por conveniência; administradores deixam backups de configuração com senhas em claro; pipelines de CI/CD expõem secrets em variáveis de ambiente; e containers podem ter credenciais embutidas em imagens ou volumes acessíveis. O impacto é amplificado em ambientes modernos de nuvem e DevOps, onde uma única credencial comprometida pode conceder acesso a dezenas de recursos - buckets S3, bancos de dados RDS, segredos no Secrets Manager, clusters Kubernetes inteiros. Grupos como [[g1017-volt-typhoon|Volt Typhoon]] e operadores de ransomware como [[darkgaté|DarkGaté]] têm explorado extensivamente credenciais inseguras como caminho para escalada de privilégios em ambientes corporativos. Esta é uma técnica **guarda-chuva** com oito sub-técnicas documentadas que cobrem diferentes superfícies de exposição: | Sub-técnica | Superfície | Impacto | |---|---|---| | [[t1552-001-credentials-in-files\|T1552.001]] | Arquivos de config, scripts, .env | Credenciais em texto claro | | [[t1552-002-credentials-in-registry\|T1552.002]] | Registro do Windows | Hashes e senhas salvas | | [[t1552-003-shell-history\|T1552.003]] | ~/.bash_history, ~/.zsh_history | Comandos com senhas expostas | | [[t1552-004-private-keys\|T1552.004]] | Chaves SSH, certificados TLS | Acesso persistente sem senha | | [[t1552-005-cloud-instance-metadata-api\|T1552.005]] | AWS IMDS, GCP metadata, Azure IMDS | Tokens de instância temporários | | [[t1552-006-group-policy-preferences\|T1552.006]] | GPP do Active Directory | Senha AES-256 com chave pública | | [[t1552-007-container-api\|T1552.007]] | Docker/Kubernetes API | Secrets, service account tokens | | [[t1552-008-chat-messages\|T1552.008]] | Slack, Teams, Discord, email | Credenciais compartilhadas informalmente | ## Como Funciona A técnica se manifesta de forma diferente dependendo do ambiente alvo. Os padrões mais comuns observados em incidentes são: **Em ambientes Windows:** - Busca por arquivos `.config`, `.ini`, `web.config`, `appsettings.json` contendo connection strings com credenciais embutidas - Consulta ao registro do Windows em chaves como `HKLM\SOFTWARE\` para credenciais de aplicações como VNC, PuTTY, WinSCP salvas pelo usuário - Leitura de arquivos de preferência de Group Policy (`Groups.xml` em SYSVOL) que contêm senhas cifradas com AES-256 - mas a chave privada foi públicada pela Microsoft em 2012, tornando a decriptação trivial **Em ambientes Linux/macOS:** - Leitura de `.bash_history`, `.zsh_history`, `.python_history` em busca de comandos com credenciais inline (ex: `mysql -u root -p'senha123'`) - Busca por arquivos `.env`, `config.yml`, `secrets.toml`, `.netrc`, `.pgpass`, `.my.cnf` - Enumeração de chaves SSH privadas em `~/.ssh/`, `/etc/ssh/`, backups e diretórios de deploy **Em ambientes de nuvem (Cloud):** - Acesso à API de metadados de instância (IMDS) - em AWS: `http://169.254.169.254/latest/meta-data/iam/security-credentials/` - retorna credenciais temporárias do IAM Role associado à instância sem autenticação - Enumeração de variáveis de ambiente em funções Lambda, containers ECS e Cloud Functions que frequentemente carregam secrets - Leitura de arquivos de credenciais AWS (`~/.aws/credentials`), GCP application default credentials (`~/.config/gcloud/`) **Em ambientes de containers (Docker/Kubernetes):** - Montagem de volumes contendo secrets - Acesso à API do Docker socket (`/var/run/docker.sock`) para inspecionar variáveis de ambiente de containers em execução - Leitura de Kubernetes Secrets via service account tokens com permissões excessivas (`kubectl get secrets`) **Em ferramentas de colaboração:** - Busca por mensagens em plataformas como Slack, Teams e email corporativo contendo credenciais enviadas informalmente entre desenvolvedores e administradores ## Attack Flow ```mermaid graph TB A[Acesso inicial<br/>Phishing / Exploit / Valid Account] --> B[Reconhecimento de ambiente<br/>Sistema operacional, cloud provider, CI/CD] B --> C{Tipo de ambiente} C -->|Windows| D[Busca no sistema de arquivos<br/>e Registro do Windows] C -->|Linux/macOS| E[Leitura de shell history<br/>e arquivos de config] C -->|Cloud AWS/Azure/GCP| F[Requisição à API<br/>de metadados IMDS] C -->|Container/K8s| G[Acesso à API Docker<br/>e Kubernetes Secrets] C -->|Colaboração| H[Busca em Slack<br/>Teams e email] D --> I[Credenciais obtidas<br/>em texto claro ou cifrado fraco] E --> I F --> I G --> I H --> I I --> J{Tipo de credencial} J -->|Senha/Token| K[Autenticação direta<br/>em serviços e APIs] J -->|Chave SSH/Cert| L[Acesso persistente<br/>sem autenticação] J -->|Credencial Cloud| M[Escalada de privilégios<br/>em IAM/recursos cloud] K --> N[Movimentação lateral<br/>e escalada de privilégio] L --> N M --> N N --> O[Objetivo final<br/>Exfiltração / Ransomware / Persistência] ``` ## Exemplos de Uso ### Caso 1: Volt Typhoon - Extração de Credenciais em Infraestrutura Crítica O grupo [[g1017-volt-typhoon|Volt Typhoon]] (patrocinado pela China) foi documentado coletando credenciais de equipamentos de rede (roteadores, firewalls, VPNs) através de arquivos de configuração que armazenam senhas em texto claro ou com cifras fracas. Em ataques a infraestrutura crítica dos EUA e potencialmente LATAM, o grupo obteve acesso a credenciais administrativas de dispositivos de rede como ponto de entrada para segmentos internos. ### Caso 2: Astaroth/Guildma - Roubo de Credenciais no Brasil O malware [[s0373-astaroth|Astaroth]], extensivamente utilizado em campanhas contra usuários brasileiros, realiza busca sistemática por credenciais armazenadas em navegadores, gerenciadores de senha e arquivos de configuração. A combinação de acesso a arquivos locais com interceptação de digitação torna esse malware um dos vetores mais eficientes de coleta de credenciais inseguras no contexto brasileiro. ### Caso 3: AWS IMDS - Comprometimento de Instâncias EC2 Em ataques documentados a empresas de tecnologia brasileiras que utilizam AWS, adversários com acesso inicial a uma instância EC2 exploram o endpoint IMDS para obter credenciais temporárias do IAM Role associado. Dependendo das permissões configuradas (frequentemente excessivas em startups), essas credenciais permitem acesso a S3, RDS, Secrets Manager e outros serviços - resultando em exfiltração de dados em escala. ### Caso 4: GPP Passwords - Active Directory Legado Em ambientes corporativos brasileiros com infraestrutura legada, a técnica [[t1552-006-group-policy-preferences|T1552.006 - Group Policy Preferences]] ainda é amplamente aplicável. Organizações que criaram políticas de senha via GPP antes do patch MS14-025 têm o arquivo `Groups.xml` no SYSVOL com senhas cifradas com AES-256 usando a chave privada que a Microsoft públicou públicamente, tornando a decriptação trivial via ferramentas como [[s1091-pacu|Pacu]] ou scripts PowerShell. ### Ferramentas utilizadas | Ferramenta | Plataforma | Finalidade | |---|---|---| | [[darkgaté\|DarkGaté]] | Windows | Coleta credentials em arquivos e navegadores | | [[s0373-astaroth\|Astaroth]] | Windows | Credenciais de aplicações e config files | | [[s1091-pacu\|Pacu]] | AWS/Cloud | Framework de exploração AWS - busca credentials | | [[s1131-nppspy\|NPPSPY]] | Windows | Interceptação de credenciais via NPLogonNotify | | LaZagne | Multi | Recuperação de credenciais de dezenas de softwares | | truffleHog | Git/Cloud | Varredura de repositórios por secrets expostos | | gitleaks | Git | Detecção de credenciais em código-fonte | ## Detecção A detecção de T1552 requer monitoramento em múltiplas camadas, combinando análise comportamental, auditoria de acesso a arquivos e correlação de eventos. **Indicadores-chave:** - Acesso incomum a arquivos de configuração por processos não-esperados (ex: `cmd.exe` abrindo `web.config`) - Consultas repetidas ao endpoint IMDS em ambientes cloud (`169.254.169.254`) por processos não-esperados - Leitura massiva de arquivos `.env`, `.ssh/`, histórico de shell por usuário anômalo - Comandos como `Get-GPPPassword`, `findstr /si password`, `grep -r password` em sistemas Windows/Linux - Acesso ao Docker socket por processos não relacionados ao Docker daemon ```yaml title: Busca por Credenciais em Arquivos de Configuração - Windows status: experimental logsource: category: file_access product: windows detection: selection: TargetFilename|contains: - "web.config" - "appsettings.json" - ".env" - "credentials" - "password" - "secret" filter_legitimate: Image|contains: - "\\iis\\*" - "\\dotnet\\*" - "\\visualstudio\\*" condition: selection and not filter_legitimate level: medium tags: - attack.credential_access - attack.t1552.001 ``` ```yaml title: Acesso à API de Metadados AWS IMDS por Processo Suspeito status: experimental logsource: category: network_connection product: windows detection: selection: DestinationIp: "169.254.169.254" DestinationPort: 80 filter_expected: Image|contains: - "amazon-ssm-agent" - "aws-cfn-bootstrap" - "aws-cli" condition: selection and not filter_expected level: high tags: - attack.credential_access - attack.t1552.005 ``` ```yaml title: Enumeração de Credenciais no Registro do Windows status: experimental logsource: product: windows service: security detection: selection: EventID: 4663 ObjectName|contains: - "\\SOFTWARE\\SimonTatham\\PuTTY\\Sessions" - "\\SOFTWARE\\OpenSSH\\Agent\\Keys" - "\\SOFTWARE\\RealVNC" - "\\SOFTWARE\\TightVNC" AccessMask: "0x1" condition: selection level: medium tags: - attack.credential_access - attack.t1552.002 ``` **Fontes de dados recomendadas:** - Windows File System Auditing (Event 4663) - acesso a arquivos sensíveis - Windows Registry Auditing (Event 4657) - leitura de chaves com credenciais - Linux auditd - syscalls `open()`, `read()` em arquivos de config e `.ssh/` - AWS CloudTrail - chamadas GetSecretValue, GetParameter, AssumeRole - Kubernetes audit logs - acesso a Secrets por service accounts - SIEM com correlação de padrões de acesso a múltiplos arquivos de config em curto intervalo ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1041 | [[m1041-encrypt-sensitive-information\|M1041 - Encrypt Sensitive Information]] | Nunca armazenar credenciais em texto claro. Usar cofres de senha (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault). Criptografar arquivos de configuração sensíveis. | | M1051 | [[m1051-update-software\|M1051 - Updaté Software]] | Manter sistemas e aplicações atualizadas para eliminar vulnerabilidades que possam facilitar acesso a arquivos de credenciais. | | M1017 | [[m1017-user-training\|M1017 - User Training]] | Treinar desenvolvedores e administradores sobre os riscos de hardcoding de credenciais. Implementar políticas de desenvolvimento seguro (DevSecOps). | | M1015 | [[m1015-active-directory-configuration\|M1015 - Active Directory Configuration]] | Remover políticas GPP legadas com senhas. Auditar SYSVOL regularmente. Aplicar patch MS14-025 em todos os ambientes. | | M1027 | [[m1027-password-policies\|M1027 - Password Policies]] | Rotação regular de credenciais. Proibir uso de senhas padrão de fabricante. Implementar gestão de credenciais privilegiadas (PAM). | | M1028 | [[m1028-operating-system-configuration\|M1028 - Operating System Configuration]] | Desabilitar armazenamento de credenciais em navegadores em sistemas corporativos. Restringir acesso ao Docker socket. Habilitar IMDSv2 obrigatório na AWS. | | M1037 | [[m1037-filter-network-traffic\|M1037 - Filter Network Traffic]] | Bloquear acesso não autorizado ao endpoint IMDS (169.254.169.254). Implementar controles de rede para limitar acesso a APIs de metadados. | | M1022 | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Permissões mínimas em arquivos de configuração. Chaves SSH com chmod 600. Diretórios de deploy sem leitura pública. | | M1035 | [[m1035-limit-access-to-resource-over-network\|M1035 - Limit Access to Resource Over Network]] | Segmentação de rede para limitar alcance de credenciais comprometidas. Zero-trust para acesso a recursos internos. | | M1047 | [[m1047-audit\|M1047 - Audit]] | Varredura periódica de repositórios de código e sistemas de arquivos por credenciais expostas. Usar ferramentas como truffleHog, gitleaks, detect-secrets. | | M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Usar contas de serviço com privilégios mínimos. Implementar PAM (CyberArk, Delinea) para gestão de credenciais privilegiadas. | ## Sub-técnicas - [[t1552-001-credentials-in-files|T1552.001 - Credentials In Files]] - [[t1552-002-credentials-in-registry|T1552.002 - Credentials in Registry]] - [[t1552-003-shell-history|T1552.003 - Shell History]] - [[t1552-004-private-keys|T1552.004 - Private Keys]] - [[t1552-005-cloud-instance-metadata-api|T1552.005 - Cloud Instance Metadata API]] - [[t1552-006-group-policy-preferences|T1552.006 - Group Policy Preferences]] - [[t1552-007-container-api|T1552.007 - Container API]] - [[t1552-008-chat-messages|T1552.008 - Chat Messages]] ## Contexto Brasil/LATAM O Brasil enfrenta desafios específicos em relação à técnica T1552 por uma combinação de fatores: alta adoção de ambientes cloud (AWS, Azure, GCP) com configurações frequentemente inadequadas; vasta base instalada de Active Directory legado com GPP passwords ainda presentes; e cultura de desenvolvimento que historicamente priorizou velocidade sobre segurança, resultando em alta prevalência de credenciais hardcoded em sistemas de produção. **Tendências observadas no Brasil:** O malware [[s0373-astaroth|Astaroth]] (também chamado Guildma), desenvolvido por grupos criminosos brasileiros, é um dos exemplos mais sofisticados de malware nativo LATAM que implementa T1552 como técnica central. Com milhares de vítimas documentadas no setor financeiro brasileiro, demonstra como a busca por credenciais inseguras é um componente essencial do crime cibernético local. Startups e empresas de tecnologia que operam na AWS sem implementar IMDSv2 e com IAM Roles excessivamente permissivos são alvos frequentes de campanhas que exploram SSRF para acessar o endpoint de metadados e obter credenciais temporárias de alto privilégio. O setor [[government|governo]] e [[_sectors|financeiro]] brasileiro mantém extensas infraestruturas com sistemas legados onde configurações de GPP, arquivos de configuração com credenciais em claro e uso de senhas padrão de fabricante ainda são realidade operacional - criando superfície de ataque significativa para adversários com acesso inicial. **Recomendação prioritária:** Implementação de varredura contínua de credenciais expostas (`truffleHog`, `gitleaks`) em pipelines CI/CD, auditoria de IAM AWS (AWS Access Analyzer), e migração para secrets managers centralizados como HashiCorp Vault ou AWS Secrets Manager. ## Threat Actors que Usam - [[g1017-volt-typhoon|Volt Typhoon]] ## Software Associado - [[darkgaté|DarkGaté]] (malware) - [[s1091-pacu|Pacu]] (ferramenta) - [[s0373-astaroth|Astaroth]] (malware) - [[s1131-nppspy|NPPSPY]] (ferramenta) ## Referências - [MITRE ATT&CK - T1552 Unsecured Credentials](https://attack.mitre.org/techniques/T1552) - [CWE-312: Cleartext Storage of Sensitive Information](https://cwe.mitre.org/data/definitions/312.html) - [AWS - IMDSv2 Migration Guide](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) - [Microsoft - MS14-025: Vulnerability in Group Policy Preferences](https://support.microsoft.com/en-us/topic/ms14-025-vulnerability-in-group-policy-preferences-could-allow-elevation-of-privilege-may-13-2014-60734e15-af79-26ca-ea53-8cd617073c30) - [CERT.br - Gestão de Credenciais em Ambientes Corporativos](https://www.cert.br/) - [[t1003-os-credential-dumping|T1003 - OS Credential Dumping]] (técnica relacionada) - [[t1087-account-discovery|T1087 - Account Discovery]] (técnica relacionada) --- *Fonte: [MITRE ATT&CK - T1552](https://attack.mitre.org/techniques/T1552)*