A identificação de alvos é uma etapa crucial em testes de penetração e segurança ofensiva. Este processo envolve a coleta de informações detalhadas sobre a infraestrutura de um sistema, incluindo sua arquitetura, serviços em execução, possíveis defesas como Web Application Firewalls (WAFs) e honeypots, e configurações de rede.
Pontos Chave:
- Varredura de Portas e Protocolos: Identificar quais portas estão abertas e quais serviços estão rodando nelas é fundamental. Isso ajuda a mapear a superfície de ataque.
- Identificação de WAF: Detectar a presença e o tipo de Web Application Firewall em uso permite planejar estratégias para contornar ou explorar suas vulnerabilidades.
- Identificação de Honeypots: Reconhecer sistemas configurados como honeypots é importante para evitar perder tempo em armadilhas ou, em alguns casos, para obter informações sobre as táticas dos atacantes.
Detalhes Técnicos:
- Linguagens de Desenvolvimento Comuns: PHP, Java, Ruby, Python, C#, JavaScript, etc.
- Servidores Web: Apache, Nginx, IIS, lighttpd.
- Servidores de Aplicação: Tomcat, JBoss, WebLogic, WebSphere.
- Bancos de Dados: MySQL, SQL Server, Oracle, Redis, MongoDB.
- Sistemas Operacionais: Linux, Windows.
- Serviços de Rede: FTP, SSH, RDP, SMB, SMTP, LDAP, Rsync.
- Serviços de CDN: Akamai, Cloudflare, AWS CloudFront, Alibaba Cloud CDN.
- Soluções de WAF: ModSecurity, FortiWeb, Imperva, Sucuri WAF.
- Plataformas de Honeypot: HFish, Cowrie, Dionaea, T-Pot, Glastopf.
- Outros Componentes: Fastjson, Apache Shiro, Log4j, sistemas de gestão de escritório (OA).
A tabela abaixo resume portas comuns, seus serviços associados e potenciais vetores de exploração em um cenário de pentest:
| Porta TCP/UDP | Serviço | Vetores de Exploração |
|---|---|---|
| 20, 21 | FTP | Upload/download anônimo, força bruta, sniffing, escalonamento de privilégios, RCE. |
| 22 | SSH | Força bruta, ataques Man-in-the-Middle (v1), túneis SSH, proxy. |
| 23 | Telnet | Força bruta, sniffing, senhas fracas em dispositivos de rede. |
| 25 | SMTP | Falsificação de e-mail, enumeração de usuários (VRFY/EXPN). |
| 53 | DNS | Transferência de zona, sequestro de DNS, envenenamento de cache, túneis DNS. |
| 69 | TFTP | Download de arquivos de configuração. |
| 80-89, 443, 8080-8089 | Serviços Web | Exploração de vulnerabilidades em aplicações web, painéis de administração, etc. |
| 110 | POP3 | Força bruta, sniffing. |
| 111, 2049 | NFS | Configuração incorreta de permissões. |
| 137, 139, 445 | Samba/SMB | Força bruta, exploração de vulnerabilidades de RCE (ex: MS08-067, MS17-010). |
| 143 | IMAP | Força bruta. |
| 161 | SNMP | Força bruta de community strings, coleta de informações. |
| 389 | LDAP | Injeção de LDAP, acesso anônimo, senhas fracas. |
| 512, 513, 514 | Rexec/Rlogin | Força bruta. |
| 873 | Rsync | Acesso anônimo, upload de arquivos. |
| 1194 | OpenVPN | Roubo de credenciais VPN para acesso interno. |
| 1352 | Lotus Notes | Senhas fracas, vazamento de informações. |
| 1433 | SQL Server | Injeção SQL, escalonamento de privilégios, força bruta de SA. |
| 1521 | Oracle | Força bruta TNS, injeção SQL. |
| 2082, 2083 | cPanel | Força bruta. |
| 2181 | ZooKeeper | Acesso não autorizado. |
| 3306 | MySQL | Injeção SQL, escalonamento de privilégios, força bruta. |
| 3389 | RDP | Força bruta, exploração de vulnerabilidades (ex: BlueKeep). |
| 3690 | SVN | Vazamento de repositório, acesso não autorizado. |
| 4848 | GlassFish | Senhas fracas. |
| 5000 | Sybase/DB2 | Força bruta, injeção SQL. |
| 5432 | PostgreSQL | Força bruta, injeção SQL, senhas fracas. |
| 5900-5902 | VNC | Força bruta de senhas fracas. |
| 5984 | CouchDB | Execução remota de comandos devido a acesso não autorizado. |
| 6379 | Redis | Acesso não autorizado, senhas fracas. |
| 7001, 7002 | WebLogic | Deserialização remota, senhas fracas. |
| 8000 | Ajenti | Senhas fracas. |
| 8009 | Tomcat AJP | Vulnerabilidades no protocolo AJP. |
| 8080-8089 | Jenkins, JBoss | Deserialização, senhas fracas em painéis de controle. |
| 9200, 9300 | Elasticsearch | Execução remota de comandos devido a acesso não autorizado. |
| 11211 | Memcached | Acesso não autorizado. |
| 27017, 27018 | MongoDB | Força bruta, acesso não autorizado. |
| 50070, 50030 | Hadoop | Acesso não autorizado a painéis de gestão. |
Identificação de Honeypots (Usando Quake como exemplo):
| Tipo de Honeypot | Sintaxe de Busca no Quake |
|---|---|
| Struts Honeypot | app:"StrutsHoneypot" |
| Conpot (HTTP, Modbus, S7) | app:"Conpot Http Honeypot", app:"Conpot modbus Honeypot", app:"Conpot s7 Honeypot" |
| Kippo Honeypot | app:"kippo Honeypot" |
| Honeypy (HTTP, ES) | app:"Honeypy Http Honeypot", app:"Honeypy ES Honeypot" |
| Amun (IMAP, HTTP) | app:"amun imap Honeypot", app:"amun http Honeypot" |
| Nepenthes (Netbios, FTP) | app:"Nepenthes netbios Honeypot", app:"Nepenthes FTP Honeypot" |
| SshEsame SSH Honeypot | app:"sshesame ssh Honeypot" |
| OpenCanary Admin | app:"opencanary Honeypot Admin" |
| Dionaea (SIP, SMB, HTTP, etc.) | app:"Dionaea sipd Honeypot", app:"Dionaea smbd Honeypot", app:"Dionaea Http Honeypot", app:"Dionaea MSSQL Honeypot", app:"Dionaea ftp Honeypot", app:"Dionaea Memcached Honeypot" |
| Kojoney SSH Honeypot | app:"Kojoney SSH Honeypot" |
| WebLogic Honyepot | app:"weblogic Honeypot" |
| MySQL Honeypot | app:"MySQL Honeypot" |
| HFish Honeypot | app:"HFish Honeypot", app:"HFish Honeypot Admin" |
| HoneyThing IoT Honeypot | app:"honeything IoT Honeypot" |
| Elasticsearch Honeypot | app:"elasticsearch Honeypot" |
| HostUS Honeypot | app:"HostUS Honeypot" |
| WhoisScanMe Honeypot | app:"whoisscanme Honeypot" |
| Unknown Honeypot | app:"Unknown Honeypot" |
| Cowrie Telnetd Honeypot | app:"Cowrie telnetd Honeypot" |
| Glastopf Honeypot | app:"glastopf Honeypot" |
Processo de Identificação:
- Identificação de Servidores Web:
- Análise de Cabeçalhos HTTP: Inspecionar as respostas HTTP (usando ferramentas como Burp Suite ou o DevTools do navegador) pode revelar o servidor web (ex:
Server: Apache,Server: Nginx). - Varredura de Portas: Utilizar Nmap ou Masscan para identificar portas abertas. Nmap é mais detalhado para análise de serviços, enquanto Masscan é otimizado para varreduras rápidas em larga escala.
- Nmap:
nmap -sV -p- <target_ip>(Varredura intensa em todas as portas com detecção de versão de serviço). - Masscan:
masscan -p 1-65535 <target_ip>(Varredura rápida de todas as portas). - Ferramentas de Prospecção: Utilizar plataformas de busca de vulnerabilidades e informações de sistemas expostos na internet (ex: Shodan, Censys, Quake).
- Identificação de Servidores de Aplicação e Outros Serviços:
- A varredura de portas (Nmap, Masscan) é o método primário. A análise dos serviços em execução nas portas abertas (ex: Tomcat na porta 8080, JBoss na 8080/8089, Oracle TNS na 1521) permite inferir o tipo de servidor de aplicação ou banco de dados.
- Ferramentas específicas de detecção de middleware podem ser usadas.
- Identificação de WAFs:
- Padrões de Bloqueio: WAFs frequentemente retornam páginas de erro ou bloqueio com assinnaturas específicas (ex: "Forbidden", "Access Denied", mensagens personalizadas).
- Ferramentas Automatizadas:
wafw00f: Uma ferramenta dedicada a identificar WAFs comuns.- Instalação:
pip install wafw00f - Uso:
wafw00f https://<target_url> identYwaf: Outra ferramenta para detecção de WAFs.- Uso:
python identYwaf.py https://<target_url> - Análise de Requisições: Enviar requisições maliciosas e observar como o WAF responde pode ajudar na identificação.
- Identificação de Honeypots:
- Padrões de Serviço: Alguns honeypots simulam serviços conhecidos, mas com comportamento anômalo ou portas inesperadas.
- Plataformas de Inteligência de Ameaças: Ferramentas como Quake (360), Shodan, ou outros scanners de superfície de ataque podem ser usadas com consultas específicas para encontarr assinaturas de honeypots conhecidos.
- Análise Manual: Observar características como tráfego excessivo em portas incomuns, respostas lentas ou padrões de log suspeitos.
- Ferramentas de Prospecção de Honeypots: Existem projetos focados em identificar honeypots (ex: Heimdallr).
Exemplo de Configuração de Honeypot (HFish em Linux):
A instalação de um honeypot como o HFish em um ambiente Linux pode ser simplificada com um script de implantação automática. É crucial configurar o firewall corretamente.
- Configurar Firewall (Exemplo com
firewalld):
sudo firewall-cmd --add-port=4433/tcp --permanent # Porta da interface web
sudo firewall-cmd --add-port=4434/tcp --permanent # Porta de comunicação do nó
sudo firewall-cmd --reload
Se o honeypot precisar expor outros serviços, as portas correspondentes devem ser abertas.
- Executar Script de Instalação:
bash <(curl -sS -L https://hfish.net/webinstall.sh)
- **Acessar a Interface de Gerenciamento:**Após a instalação, a interface geralmente fica acessível via
https://<ip_do_servidor>:4433/web/. As credenciais padrão sãoadmin/HFish2021.
Observações:
- Ao acessar interfaces de gerenciamento ou serviços simulados, certifique-se de usar
https://quando aplicável. - É fundamental habilitar os serviços e portas desejados no firewall do honeypot para que eles sejam acessíveis.
- A varredura de portas pode ser influenciada por firewalls de rede ou regras de segurança do próprio sistema operacional, podendo resultar em estados como
Closed,Open, ouFiltered. - Em ambientes de rede interna, a visibilidade das portas pode ser diferente da internet pública devido a firewalls internos ou segmentação de rede.