ataque do tipo SERVER-WEBAPP .htpasswd Access Attempt - Análise Técnica

ataque do tipo SERVER-WEBAPP .htpasswd Access Attempt

Análise técnica profissional de tentativa de acesso ao arquivo .htpasswd, com visão de cibersegurança, exemplos práticos, logs, IOCs, regras de detecção, mitigação e recomendações de hardening.

Reconhecimento Exposição de Credenciais Web Application Security Apache / Nginx / WAF

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ão

3. 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

  1. Identificar arquivos sensíveis expostos.
  2. Obter usuários e hashes de senha.
  3. Realizar quebra offline dos hashes.
  4. Reutilizar credenciais em painéis administrativos, VPNs, webmail, WordPress, cPanel ou sistemas internos.
  5. 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

  1. Validar o código HTTP retornado ao atacante.
  2. Confirmar se o conteúdo do arquivo foi exposto.
  3. Preservar logs de acesso, WAF, IPS e aplicação.
  4. Identificar IP de origem, ASN, país e histórico de requisições.
  5. Verificar tentativas subsequentes de login ou brute force.
  6. Bloquear origem maliciosa no firewall/WAF, se aplicável.
  7. Corrigir configuração do servidor web.
  8. Rotacionar senhas presentes no arquivo, caso tenha havido exposição.
  9. Verificar reutilização das credenciais em outros sistemas.
  10. Executar hunting por acessos suspeitos após o horário do evento.

Perguntas técnicas para investigação

  • O servidor retornou 403, 404 ou 200?
  • O arquivo .htpasswd existe dentro do DocumentRoot?
  • Há arquivos de backup como .htpasswd.bak ou .htpasswd.old?
  • O mesmo IP tentou acessar .env, .git ou 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.

Relatório técnico de cibersegurança | SERVER-WEBAPP .htpasswd Access Attempt | Uso recomendado para análise SOC, hardening web e resposta a incidente.