Automatiza a consulta de registros de domínio e contatos técnicos.
Contexto
O protocolo WHOIS é uma consulta a bancos de dados que armazenam os detentores de domínios de internet. Em um Pentest, essa ferramenta é vital para:
- Identificar o Alvo: Confirmar se o domínio pertence realmente à empresa contratante.
- Engenharia Social: Descobrir e-mails e nomes de administradores ou técnicos responsáveis.
- Mapeamento de Infraestrutura: Verificar servidores de nome (DNS) e datas de criação/expiração (domínios antigos tendem a ter menos manutenção).
Possibilidades de implementação
- Bibliotecas Prontas: Usar a biblioteca
python-whois, que já faz o "parsing" (organização) dos dados brutos. - Sockets Puros: Conectar diretamente na porta 43 dos servidores WHOIS (mais complexo, pois cada TLD como .com ou .org tem um formato diferente).
- Automação em Lote: Criar um script que recebe uma lista de domínios e exporta os e-mails dos responsáveis para uma campanha de phishing simulada.
Código
Para esta lição, utilizaremos a biblioteca python-whois. Ela é a ferramenta padrão para transformar o texto bruto do servidor WHOIS em um objeto Python fácil de manipular.
Requisito: pip install python-whois
import whois
def perform_whois(domain):
print(f"[*] --- 30 Lessons in Python for Pentest: Lição 02 ---")
print(f"[*] Consultando informações de registro para: {domain}\n")
try:
# Realiza a consulta ao servidor WHOIS correspondente
w = whois.whois(domain)
# Exibindo informações cruciais para o Pentester
print(f"[+] Domínio: {w.domain_name}")
print(f"[+] Registrador: {w.registrar}")
print(f"[+] Organização: {w.org}")
print(f"[+] Data de Criação: {w.creation_date}")
print(f"[+] E-mails de Contato: {w.emails}")
print(f"[+] Servidores DNS: {w.name_servers}")
print(f"[+] Localização: {w.city}, {w.state}, {w.country}")
except Exception as e:
print(f"[!] Erro ao realizar consulta: {e}")
if __name__ == "__main__":
# Alvo da lição
alvo = "google.com"
perform_whois(alvo)