1. Resumo Executivo
O alerta SERVER-WEBAPP .htpasswd access attempt indica uma tentativa de acesso direto
ao arquivo .htpasswd em um servidor web. Esse comportamento normalmente está associado a atividades
de reconhecimento, varreduras automatizadas de vulnerabilidades, enumeração de arquivos sensíveis ou tentativa
de obtenção de credenciais usadas em autenticação HTTP Basic.
Em ambientes corretamente configurados, o acesso deve retornar 403 Forbidden ou
404 Not Found. Caso o servidor retorne 200 OK, o risco se torna alto, pois o atacante
pode obter hashes de senha e realizar quebra offline.
2. Índice
3. O que é o arquivo .htpasswd? 4. Como ocorre o ataque 5. Exemplo de tráfego HTTP 6. Cyber Kill Chain e MITRE ATT&CK 7. Ferramentas usadas por atacantes 8. Cenário real de comprometimento 9. Logs e evidências 10. Indicadores de Comprometimento 11. Regras de detecção 12. Análise de criticidade 13. Mitigações e hardening 14. Resposta a incidente 15. Conclusão3. O que é o arquivo .htpasswd?
O arquivo .htpasswd é utilizado principalmente em servidores Apache para armazenar credenciais
de usuários que acessam áreas protegidas por autenticação HTTP Basic.
Exemplo de conteúdo
admin:$apr1$QXgK1...$Fj4F8yL5sM7P3nA/
usuario:$apr1$Ty8K2...$Dd6L8pP7rS9hWk/
Estrutura básica:
usuario:hash_da_senha
Tipos comuns de hash
| Tipo | Algoritmo | Observação Técnica |
|---|---|---|
| crypt | DES | Antigo e fraco para padrões atuais. |
| APR1 | Apache MD5 | Muito comum em ambientes Apache legados. |
| SHA1 | SHA-1 | Não recomendado para novas implementações. |
| bcrypt | Blowfish/Bcrypt | Mais resistente a ataques offline. |
Exemplo de configuração Apache
AuthType Basic
AuthName "Área Restrita"
AuthUserFile /var/www/.htpasswd
Require valid-user
O ponto crítico é que o arquivo .htpasswd nunca deve estar acessível publicamente pela web.
O ideal é armazená-lo fora do DocumentRoot.
4. Como ocorre o ataque
O atacante envia requisições HTTP tentando localizar arquivos ocultos, arquivos de backup ou arquivos sensíveis publicados indevidamente no servidor.
Requisição direta
GET /.htpasswd HTTP/1.1
Host: alvo.com
Variações comuns
GET /.htpasswd
GET /backup/.htpasswd
GET /admin/.htpasswd
GET /.htpasswd.bak
GET /.htpasswd.old
GET /.htpasswd.save
GET /.htaccess
Objetivos do atacante
- Identificar arquivos sensíveis expostos.
- Obter usuários e hashes de senha.
- Realizar quebra offline dos hashes.
- Reutilizar credenciais em painéis administrativos, VPNs, webmail, WordPress, cPanel ou sistemas internos.
- Escalar acesso para comprometimento maior da aplicação ou infraestrutura.
5. Exemplo de tráfego HTTP
Requisição suspeita
GET /.htpasswd HTTP/1.1
Host: empresa.com.br
User-Agent: Mozilla/5.0
Accept: */*
Resposta segura
HTTP/1.1 403 Forbidden
Content-Type: text/html
ou:
HTTP/1.1 404 Not Found
Content-Type: text/html
Resposta vulnerável
HTTP/1.1 200 OK
Content-Type: text/plain
admin:$apr1$KD8x...
user:$apr1$S92m...
A resposta 200 OK com conteúdo do arquivo indica exposição real de credenciais.
Este cenário deve ser tratado como incidente de segurança.
6. Cyber Kill Chain e MITRE ATT&CK
Cyber Kill Chain
| Etapa | Aplicável? | Análise |
|---|---|---|
| Reconnaissance | Sim | Atacante identifica arquivos sensíveis e superfície de exposição. |
| Weaponization | Não diretamente | Não há criação de artefato malicioso nesta etapa. |
| Delivery | Não diretamente | A ação é uma requisição HTTP simples. |
| Exploitation | Sim | Exploração de má configuração no servidor web. |
| Installation | Não | Não há instalação nesta fase. |
| Command & Control | Não | Não há canal C2 neste evento isolado. |
| Actions on Objectives | Possível | Pode ocorrer após quebra e reutilização de credenciais. |
MITRE ATT&CK
| Técnica | Nome | Aplicação no Evento |
|---|---|---|
| T1595 | Active Scanning | Varredura ativa em busca de arquivos e endpoints sensíveis. |
| T1190 | Exploit Public-Facing Application | Exploração de aplicação ou servidor web exposto incorretamente. |
| T1087 | Account Discovery | Possível descoberta de nomes de usuários no arquivo exposto. |
7. Ferramentas usadas por atacantes
Nuclei
nuclei -u https://alvo.com
Template conceitual:
GET /.htpasswd
Nikto
nikto -h https://alvo.com
Exemplo de saída:
+ OSVDB-3092: /.htpasswd accessible
Gobuster
gobuster dir \
-u https://alvo.com \
-w common.txt
Dirsearch
dirsearch -u https://alvo.com
Outras ferramentas comuns
- ZGrab
- curl
- python-requests
- Masscan combinado com scanners HTTP
- Scanners de exposição de arquivos ocultos
8. Cenário real de comprometimento
Etapa 1: Descoberta
https://empresa.com/.htpasswd
Etapa 2: Exposição
admin:$apr1$R2a...
operador:$apr1$Hx91...
Etapa 3: Quebra offline
Após obter hashes, o atacante pode tentar descobrir senhas offline usando ferramentas especializadas. O risco aumenta quando senhas fracas, reutilizadas ou baseadas no nome da empresa são utilizadas.
Etapa 4: Reutilização de credenciais
admin:empresa123
Etapa 5: Tentativas de acesso em outros sistemas
- WordPress
- cPanel
- Zimbra
- VPN
- Webmail
- Painéis administrativos
- Aplicações internas expostas
Etapa 6: Comprometimento ampliado
Caso as credenciais sejam reutilizadas, o atacante pode obter acesso administrativo, modificar conteúdo, implantar webshells, acessar dados sensíveis ou iniciar movimentação lateral.
9. Logs e evidências
Log Apache
192.168.1.100 - - [10/Jun/2026:12:35:44 -0300] "GET /.htpasswd HTTP/1.1" 403 199 "-" "Mozilla/5.0"
Log Nginx
192.168.1.100 - - [10/Jun/2026:12:35:44 -0300] "GET /.htpasswd HTTP/1.1" 403 153 "-" "curl/8.0"
Interpretação profissional
| Código HTTP | Significado | Risco |
|---|---|---|
| 403 | Acesso bloqueado. | Baixo a médio, dependendo da recorrência. |
| 404 | Arquivo não encontrado. | Baixo, normalmente reconhecimento automatizado. |
| 200 | Arquivo entregue ao cliente. | Alto ou crítico. |
| 301/302 | Redirecionamento. | Requer validação manual do destino. |
10. Indicadores de Comprometimento
URIs suspeitas
/.htpasswd
/.htpasswd.bak
/.htpasswd.old
/.htpasswd.save
/.htpasswd.txt
/.htaccess
/admin/.htpasswd
/backup/.htpasswd
/test/.htpasswd
User-Agents suspeitos
curl
python-requests
Go-http-client
masscan
zgrab
nuclei
nikto
dirsearch
gobuster
Comportamentos correlacionados
- Múltiplas requisições para arquivos ocultos.
- Enumeração de diretórios.
- Tentativas contra
.env,.git, backups e arquivos compactados. - Variação de User-Agent em curto período.
- Origem em ASN de cloud pública, VPS barato ou rede conhecida por scanning.
- Requisições seguidas por brute force em painéis administrativos.
11. Regras de detecção
Filtro conceitual em Firewall/WAF
URI contains ".htpasswd"
OR URI contains ".htaccess"
OR URI matches "^/.*\.ht"
Sophos XGS
Locais úteis para investigação:
- Web Server Protection
- WAF logs
- IPS logs
- Firewall logs
- Web Filter logs, quando aplicável
Filtro sugerido:
url contains .htpasswd
FortiGate
URI contains ".htpasswd"
Palo Alto
url contains .htpasswd
Regra Sigma
title: HTpasswd Access Attempt
status: experimental
description: Detecta tentativa de acesso ao arquivo .htpasswd em logs web.
logsource:
category: webserver
detection:
selection:
request|contains:
- ".htpasswd"
- ".htaccess"
condition: selection
level: medium
fields:
- src_ip
- request
- status
- user_agent
Regra Suricata
alert http any any -> $HOME_NET any (
msg:"WEBAPP .htpasswd Access Attempt";
flow:to_server,established;
http.uri;
content:".htpasswd";
nocase;
sid:1000001;
rev:1;
)
Regra Snort
alert tcp any any -> $HOME_NET $HTTP_PORTS (
msg:"WEBAPP .htpasswd Access Attempt";
flow:to_server,established;
content:".htpasswd";
http_uri;
nocase;
sid:1000001;
rev:1;
)
12. Análise de criticidade
Baixa criticidade
- Resposta HTTP 403 ou 404.
- Tentativa isolada.
- Origem conhecida e autorizada, como scanner interno.
- Sem correlação com outros eventos suspeitos.
Média criticidade
- Diversas tentativas em sequência.
- Enumeração de arquivos ocultos e diretórios administrativos.
- Origem em ASN de cloud pública, VPS ou rede de scanning.
- Tentativas contra
.env,.git, backups e arquivos compactados.
Alta ou crítica criticidade
- Resposta HTTP 200.
- Conteúdo do arquivo exposto.
- Hashes de senhas visualizados ou baixados.
- Eventos posteriores de brute force ou login bem-sucedido.
- Uso das mesmas credenciais em outros sistemas.
13. Mitigações e hardening
Apache: bloquear arquivos .ht*
<Files ".ht*">
Require all denied
</Files>
Apache 2.2 legado
<Files ".ht*">
Order allow,deny
Deny from all
</Files>
Nginx: bloquear arquivos ocultos .ht
location ~ /\.ht {
deny all;
return 403;
}
Melhor prática: mover para fora do DocumentRoot
/var/www/html # DocumentRoot público
/var/secure/.htpasswd # Arquivo fora da raiz pública
WAF
- Bloquear requisições contendo
.htpasswd. - Bloquear requisições contendo
.htaccess. - Ativar regras para arquivos sensíveis:
.env,.git, backups e dumps. - Aplicar rate limit em endpoints sensíveis.
- Registrar e alertar tentativas repetidas por IP, ASN ou país de origem.
Recomendações adicionais
- Usar senhas fortes e únicas.
- Preferir bcrypt quando possível.
- Não reutilizar senhas entre Basic Auth, WordPress, cPanel, VPN ou e-mail.
- Ativar MFA nos painéis administrativos.
- Revisar permissões de arquivos e diretórios.
- Executar varredura interna para identificar arquivos sensíveis expostos.
- Monitorar logs de acesso web continuamente.
14. Resposta a incidente
Checklist imediato
- Validar o código HTTP retornado ao atacante.
- Confirmar se o conteúdo do arquivo foi exposto.
- Preservar logs de acesso, WAF, IPS e aplicação.
- Identificar IP de origem, ASN, país e histórico de requisições.
- Verificar tentativas subsequentes de login ou brute force.
- Bloquear origem maliciosa no firewall/WAF, se aplicável.
- Corrigir configuração do servidor web.
- Rotacionar senhas presentes no arquivo, caso tenha havido exposição.
- Verificar reutilização das credenciais em outros sistemas.
- Executar hunting por acessos suspeitos após o horário do evento.
Perguntas técnicas para investigação
- O servidor retornou
403,404ou200? - O arquivo
.htpasswdexiste dentro do DocumentRoot? - Há arquivos de backup como
.htpasswd.bakou.htpasswd.old? - O mesmo IP tentou acessar
.env,.gitou painéis administrativos? - Houve login bem-sucedido após a tentativa?
- As senhas armazenadas no arquivo são reutilizadas em outros sistemas?
15. Conclusão
O evento SERVER-WEBAPP .htpasswd access attempt normalmente representa uma tentativa
automatizada de reconhecimento em busca de arquivos sensíveis. Quando o servidor responde com
403 ou 404, o impacto tende a ser baixo, embora o evento ainda indique exposição da
superfície web a scanners externos.
Porém, se houver resposta 200 OK e o conteúdo do arquivo for entregue, o incidente deve ser tratado
como exposição de credenciais. Nesse cenário, é necessário corrigir a configuração, remover o arquivo da raiz
pública, rotacionar senhas, revisar acessos posteriores e implementar bloqueios no WAF/Firewall.
A abordagem profissional não deve considerar esse alerta apenas como ruído. Ele deve ser usado como sinal de validação do hardening web, da proteção de arquivos sensíveis e da maturidade dos controles de detecção.