Uma análise whois revela uma grande quantidade de dados sobre quem detém um domínio na internet. Em sistemas Linux, estas análises podem ser efetuadas diretamente na linha de comandos. Vamos explicar o processo.
O que é o sistema whois?
O sistema whois é um diretório de registos que contém informações detalhadas sobre a posse de domínios e os seus proprietários. A Internet Corporation for Assigned Names and Numbers (ICANN) supervisiona o registo e a titularidade dos nomes de domínio, mas as listas de registos são geridas por diversas empresas, conhecidas como registos.
Qualquer pessoa pode consultar estas listas de registos. Quando o faz, um dos registos processa o pedido e fornece os dados do registo whois correspondente.
Antes de avançarmos, é essencial familiarizarmo-nos com alguns termos básicos:
Registo: Uma entidade que gere uma lista que contém um conjunto de nomes de domínio (existem várias entidades deste tipo).
Registrante: A pessoa ou entidade legal proprietária do domínio; o domínio está registado em seu nome.
Registrador: Um registrador é usado pelo registrante para efetuar o seu registo.
Um registo whois contém todos os detalhes de contacto da pessoa, empresa ou outra entidade que registou o nome de domínio. Alguns registos incluem mais detalhes do que outros, e o volume de informações fornecidas pode variar.
Um registo whois normal incluirá os seguintes dados:
- O nome e dados de contacto do registrante: O proprietário do domínio.
- O nome e dados de contacto do registrador: A organização que registou o nome de domínio.
- A data do registo.
- A data da última atualização das informações.
- A data de expiração.
As consultas whois podem ser efetuadas na internet, mas o comando whois no Linux permite executar análises diretamente na linha de comandos. Isto é útil quando precisa de efetuar uma consulta a partir de um computador sem interface gráfica ou através de um script shell.
Instalação do whois
O comando whois já está instalado no Ubuntu 20.04. Caso necessite de o instalar na sua versão do Ubuntu, pode utilizar o seguinte comando:
sudo apt-get install whois
No Fedora, utilize o seguinte comando:
sudo dnf install whois
Finalmente, no Manjaro, execute o seguinte comando:
sudo pacman -Syu whois
Utilização do whois com um nome de domínio
Pode utilizar o comando whois com nomes de domínio ou endereços de protocolo de internet (IP). O tipo de informação devolvida varia ligeiramente consoante o que é pesquisado.
Vamos usar um nome de domínio para o primeiro exemplo:
whois cnn.com
A resposta do registo whois começa com um resumo, seguido de informações adicionais. O exemplo abaixo inclui declarações de marca registada e termos de utilização removidos:
Domain Name: CNN.COM Registry Domain ID: 3269879_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.corporatedomains.com Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html Updated Date: 2018-04-10T16:43:38Z Creation Date: 1993-09-22T04:00:00Z Registry Expiry Date: 2026-09-21T04:00:00Z Registrar: CSC Corporate Domains, Inc. Registrar IANA ID: 299 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: 8887802723 Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited Name Server: NS-1086.AWSDNS-07.ORG Name Server: NS-1630.AWSDNS-11.CO.UK Name Server: NS-47.AWSDNS-05.COM Name Server: NS-576.AWSDNS-08.NET DNSSEC: unsigned
Esta informação é bastante clara. Podemos ver detalhes sobre o registrador e o registo, incluindo dados de contacto, datas de registo, etc. Existem algumas entradas que podem não ser óbvias.
A Internet Assigned Numbers Authority (IANA) supervisiona e coordena áreas como as zonas do Sistema de Nomes de Domínio, sistemas de endereçamento do protocolo IP, e a lista de registos. O registo neste caso tem o número 299, indicado na lista como “IANA ID: 299”.
As linhas “status do domínio” mostram o estado do domínio, que pode ter vários estados em simultâneo. Estes estados são definidos pelo Protocolo de Aprovisionamento Extensível. Alguns destes estados são raros e outros estão restritos a situações específicas, como disputas judiciais.
Os seguintes estados estão anexados a este registo:
- clientTransferProhibited: O registo do domínio recusará pedidos para transferir o domínio do registrador atual para outro.
- serverDeleteProhibited: O domínio não pode ser eliminado.
- serverTransferProhibited: O domínio não pode ser transferido para outro registrador.
- serverUpdateProhibited: O domínio não pode ser atualizado.
Os últimos três estados são geralmente ativados a pedido do registrante ou em casos de disputa judicial. Neste caso, a CNN provavelmente pediu que estes estados fossem aplicados para “bloquear” o domínio da empresa.
“DNSSEC” significa Extensões de Segurança do Sistema de Nomes de Domínio, um sistema que permite a um resolvedor de nomes DNS verificar criptograficamente se os dados obtidos da zona DNS são válidos e não foram adulterados.
A parte mais extensa da resposta é apresentada abaixo:
Domain Name: cnn.com Registry Domain ID: 3269879_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.corporatedomains.com Registrar URL: www.cscprotectsbrands.com Updated Date: 2018-04-10T16:43:38Z Creation Date: 1993-09-22T04:00:00Z Registrar Registration Expiration Date: 2026-09-21T04:00:00Z Registrar: CSC CORPORATE DOMAINS, INC. Registrar IANA ID: 299 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +1.8887802723 Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited Domain Status: serverTransferProhibited http://www.icann.org/epp#serverTransferProhibited Domain Status: serverUpdateProhibited http://www.icann.org/epp#serverUpdateProhibited Registry Registrant ID: Registrant Name: Domain Name Manager Registrant Organization: Turner Broadcasting System, Inc. Registrant Street: One CNN Center Registrant City: Atlanta Registrant State/Province: GA Registrant Postal Code: 30303 Registrant Country: US Registrant Phone: +1.4048275000 Registrant Phone Ext: Registrant Fax: +1.4048271995 Registrant Fax Ext: Registrant Email: [email protected] Registry Admin ID: Admin Name: Domain Name Manager Admin Organization: Turner Broadcasting System, Inc. Admin Street: One CNN Center Admin City: Atlanta Admin State/Province: GA Admin Postal Code: 30303 Admin Country: US Admin Phone: +1.4048275000 Admin Phone Ext: Admin Fax: +1.4048271995 Admin Fax Ext: Admin Email: [email protected] Registry Tech ID: Tech Name: TBS Server Operations Tech Organization: Turner Broadcasting System, Inc. Tech Street: One CNN Center Tech City: Atlanta Tech State/Province: GA Tech Postal Code: 30303 Tech Country: US Tech Phone: +1.4048275000 Tech Phone Ext: Tech Fax: +1.4048271593 Tech Fax Ext: Tech Email: [email protected] Name Server: ns-576.awsdns-08.net Name Server: ns-1086.awsdns-07.org Name Server: ns-47.awsdns-05.com Name Server: ns-1630.awsdns-11.co.uk DNSSEC: unsigned
Esta informação fornece-nos praticamente a mesma informação que o resumo, com secções adicionais sobre o registrante e os seus dados de contacto para fins administrativos e técnicos.
O nome do registrante surge como “Domain Name Manager”. Algumas empresas optam, mediante pagamento, por permitir que o seu registrador registe o domínio em seu nome, usando um nome genérico que o registrador mantém para o efeito. Parece ser o caso aqui. No entanto, como o endereço do registrante é “1 CCN Center”, é óbvio quem é o titular.
Utilização do whois com um endereço IP
Utilizar o whois com um endereço IP é tão simples como com um nome de domínio. Basta especificar um endereço IP após o comando whois, da seguinte forma:
whois 205.251.242.103
Esta é a saída devolvida pelo whois:
NetRange: 205.251.192.0 - 205.251.255.255 CIDR: 205.251.192.0/18 NetName: AMAZON-05 NetHandle: NET-205-251-192-0-1 Parent: NET205 (NET-205-0-0-0-0) NetType: Direct Allocation OriginAS: AS16509, AS39111, AS7224 Organization: Amazon.com, Inc. (AMAZON-4) RegDate: 2010-08-27 Updated: 2015-09-24 Ref: https://rdap.arin.net/registry/ip/205.251.192.0 OrgName: Amazon.com, Inc. OrgId: AMAZON-4 Address: 1918 8th Ave City: SEATTLE StateProv: WA PostalCode: 98101-1244 Country: US RegDate: 1995-01-23 Updated: 2020-03-31 Ref: https://rdap.arin.net/registry/entity/AMAZON-4 OrgAbuseHandle: AEA8-ARIN OrgAbuseName: Amazon EC2 Abuse OrgAbusePhone: +1-206-266-4064 OrgAbuseEmail: [email protected] OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN OrgNOCHandle: AANO1-ARIN OrgNOCName: Amazon AWS Network Operations OrgNOCPhone: +1-206-266-4064 OrgNOCEmail: [email protected] OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN OrgRoutingHandle: ADR29-ARIN OrgRoutingName: AWS Dogfish Routing OrgRoutingPhone: +1-206-266-4064 OrgRoutingEmail: [email protected] OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN OrgRoutingHandle: IPROU3-ARIN OrgRoutingName: IP Routing OrgRoutingPhone: +1-206-266-4064 OrgRoutingEmail: [email protected] OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN OrgTechHandle: ANO24-ARIN OrgTechName: Amazon EC2 Network Operations OrgTechPhone: +1-206-266-4064 OrgTechEmail: [email protected] OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN RTechHandle: ROLEA19-ARIN RTechName: Role Account RTechPhone: +1-206-266-4064 RTechEmail: [email protected] RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN RAbuseHandle: ROLEA19-ARIN RAbuseName: Role Account RAbusePhone: +1-206-266-4064 RAbuseEmail: [email protected] RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN RNOCHandle: ROLEA19-ARIN RNOCName: Role Account RNOCPhone: +1-206-266-4064 RNOCEmail: [email protected] RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN
A primeira secção contém informação sobre a entidade que detém o endereço IP que procuramos (neste caso, um dos muitos pertencentes à Amazon). Recebemos também alguns identificadores usados para identificar a Amazon.com, Inc. internamente pelo registo.
A segunda secção inclui o endereço e o nome do titular, Amazon.com, Inc. O endereço web no campo “Ref:” contém esta informação em formato de Notação de Objeto JavaScript (JSON).
As restantes secções contêm dados de contacto para reportar problemas relativos a abusos, operação de rede, encaminhamento de tráfego, etc.
Utilização do whois num script
Para usar o whois num script, suponhamos que temos um conjunto de domínios cujas datas de validade precisamos de verificar. Podemos usar um pequeno script shell para o efeito.
Digite o seguinte num editor e guarde-o como “get-expiry.sh”:
#!/bin/bash DOMAIN_LIST="wdzwdz.com reviewgeek.com lifesavvy.com cloudsavvyit.com" echo "Expiration dates:" for domain in $DOMAIN_LIST do echo -n "$domain :: " whois $domain | grep 'Expiration' | awk '{print $5}' done
Torne o script executável usando o comando chmod, como mostrado abaixo:
chmod +x get-expiry.sh
Execute o script chamando-o pelo nome:
./get-expiry.sh
A data de expiração de cada domínio é extraída da resposta whois usando o grep para encontrar linhas que contenham a string “Expiration” e o awk para imprimir o quinto item dessa linha.
Comodidade e automatização
É verdade que também é possível efetuar análises whois online. No entanto, ter o comando whois disponível na janela do terminal e em scripts proporciona comodidade, flexibilidade, e permite automatizar parte do seu trabalho.