Desabilitar Verificação de Certificado TLS no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como lidar com situações em que o Gobuster encontra erros de certificado TLS, especificamente ao lidar com certificados autoassinados ou inválidos. Por padrão, o Gobuster, assim como muitas outras ferramentas, realiza uma verificação rigorosa de certificados TLS para garantir a comunicação segura. No entanto, em certos cenários de teste, você pode precisar contornar essa verificação. Este laboratório irá guiá-lo na identificação de um alvo desse tipo, observando o erro padrão e, em seguida, usando a flag -k para desabilitar a verificação de certificado, permitindo que o escaneamento prossiga. Finalmente, discutiremos as implicações de segurança de desabilitar a verificação TLS.

Identificar um Alvo com um Certificado TLS Autoassinado ou Inválido

Nesta etapa, você identificará uma URL de destino que usa um certificado TLS autoassinado ou inválido de outra forma. Para fins deste laboratório, usaremos um site de teste publicamente disponível conhecido por ter problemas de certificado que o Gobuster sinalizará. Isso nos permite demonstrar de forma confiável o problema e sua solução.

Abra seu terminal e use curl para tentar acessar a URL de destino. Você deverá observar um erro de certificado, indicando que o certificado não é confiável pelo seu sistema. Este é o tipo de cenário em que o Gobuster também encontraria problemas.

Execute o seguinte comando:

curl https://self-signed.badssl.com/

Você deverá ver uma saída semelhante a esta, indicando um problema de certificado:

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about such a situation and
how to fix it, please consult the relevant articles in the links above.

Esta saída confirma que o destino https://self-signed.badssl.com/ apresenta um certificado que não é confiável por padrão, que é exatamente o que precisamos para este laboratório.

Tentar um Scan e Observar o Erro de Certificado

Nesta etapa, você tentará executar o Gobuster contra o alvo identificado sem desabilitar a verificação do certificado TLS. Como esperado, o Gobuster encontrará o certificado autoassinado e será encerrado com um erro, semelhante ao que o curl mostrou. Isso demonstra o comportamento padrão do Gobuster de impor uma validação rigorosa de certificado.

Execute o seguinte comando Gobuster:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -q
  • dir: Especifica que estamos realizando um scan de força bruta de diretórios/arquivos.
  • -u https://self-signed.badssl.com/: Define a URL de destino.
  • -w /usr/share/wordlists/dirb/common.txt: Especifica a wordlist a ser usada para força bruta.
  • -q: Suprime o banner e outras saídas não essenciais, tornando o erro mais claro.

Você deverá observar uma saída semelhante a esta, indicando um erro de handshake TLS:

[!] GoBuster is unable to connect to the target: Get "https://self-signed.badssl.com/": x509: certificate signed by unknown authority

Esta mensagem de erro confirma que o Gobuster falhou em estabelecer uma conexão devido ao certificado não confiável, impedindo que o scan prossiga.

Reexecutar o Scan com a Flag -k

Nesta etapa, você reexecutará o scan do Gobuster, mas desta vez incluirá a flag -k. A flag -k (abreviação de --no-tls-validation) instrui o Gobuster a pular a verificação do certificado TLS. Isso é útil em ambientes controlados ou ao testar contra alvos com certificados autoassinados onde você confia explicitamente no alvo, apesar do aviso do certificado.

Execute o seguinte comando Gobuster, adicionando a flag -k:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k -q
  • -k: Esta é a flag crucial que desabilita a verificação do certificado TLS.

Desta vez, o Gobuster não deverá encerrar imediatamente com um erro de certificado. Em vez disso, ele iniciará o processo de força bruta de diretórios. Você pode não ver saída imediata se a wordlist for grande e nenhum diretório for encontrado rapidamente, mas a ausência do erro anterior indica sucesso.

Observe que o Scan Agora Prossegue

Nesta etapa, você confirmará que o scan do Gobuster está agora ativo e processando a wordlist, graças à flag -k. Como a flag -q foi usada para suprimir a maior parte da saída, você pode não ver muita atividade a menos que um diretório seja encontrado. Para tornar o progresso mais visível, removeremos a flag -q e deixaremos o Gobuster rodar por um curto período.

Execute o comando novamente, mas desta vez sem a flag -q, para que você possa ver o progresso:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k

Agora você deverá ver a saída normal do Gobuster, indicando que ele está escaneando ativamente o alvo. A saída mostrará o progresso e quaisquer diretórios ou arquivos descobertos. Por exemplo:

===============================================================
Gobuster vX.X.X                -- by OJ <@_odejim> & @Neohapsis
===============================================================
[+] Url:                     https://self-signed.badssl.com/
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Status codes:            200,204,301,302,307,401,403,405
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
[+] Allow redirects:         false
[+] Follow new location:     false
[+] No TLS validation:       true
===============================================================
2023/10/27 10:30:00 Starting gobuster in directory enumeration mode
/admin                (Status: 301)
/login                (Status: 301)
...

Você pode pressionar Ctrl+C para parar o scan assim que confirmar que ele está em execução. O ponto principal é que o scan foi iniciado com sucesso sem o erro de certificado anterior.

Compreenda as Implicações de Segurança de Desabilitar a Verificação

Nesta etapa final, discutiremos as implicações de segurança de desabilitar a verificação do certificado TLS. Embora a flag -k seja útil para cenários de teste específicos, é crucial entender por que ela deve ser usada com cautela e apenas quando necessário.

Quando você desabilita a verificação do certificado TLS, você está essencialmente dizendo ao Gobuster (ou a qualquer outra ferramenta) para confiar em qualquer certificado apresentado pelo servidor, independentemente de ser válido, expirado, autoassinado ou emitido por uma autoridade não confiável. Isso abre a porta para vários riscos de segurança:

  1. Ataques Man-in-the-Middle (MitM): Um atacante poderia interceptar sua conexão a um servidor legítimo e apresentar seu próprio certificado forjado. Se a verificação estiver desabilitada, sua ferramenta se conectaria inadvertidamente ao servidor do atacante, permitindo que ele espionasse ou manipulasse seu tráfego.
  2. Impersonação: Você pode acidentalmente se conectar a um servidor malicioso que se passa por seu alvo pretendido. Sem a verificação do certificado, não há garantia criptográfica de que você está se comunicando com o servidor genuíno.
  3. Comprometimento da Integridade e Confidencialidade dos Dados: Se um atacante conseguir realizar com sucesso um ataque MitM, ele poderá ler, modificar ou injetar dados em sua comunicação, comprometendo tanto a confidencialidade quanto a integridade.

Quando é aceitável usar -k?

  • Ambientes de Teste Controlados: Quando você está testando uma aplicação ou servidor em um ambiente de laboratório onde você controla explicitamente o servidor e está ciente de seus certificados autoassinados ou inválidos.
  • Redes Internas: Para ferramentas internas que se comunicam dentro de uma rede confiável onde você tem controle total sobre todos os endpoints e entende os riscos.
  • Depuração: Temporariamente para fins de depuração, mas sempre reabilite a verificação para operações de produção ou sensíveis.

Melhor Prática: Sempre priorize a verificação forte do certificado TLS. Desabilite-a apenas quando absolutamente necessário e com total compreensão dos riscos associados. Para sistemas de produção, certifique-se de que certificados válidos e confiáveis sejam sempre utilizados.

Isso conclui o laboratório sobre a desabilitação da verificação do certificado TLS no Gobuster. Você aprendeu como identificar um alvo com problemas de certificado, observar o comportamento padrão do Gobuster e, em seguida, contornar a verificação usando a flag -k, ao mesmo tempo em que compreende as implicações críticas de segurança.

Resumo

Neste laboratório, você aprendeu com sucesso como gerenciar a verificação de certificados TLS no Gobuster. Você começou identificando um alvo com um certificado autoassinado usando curl, o que demonstrou o erro de certificado típico. Em seguida, observou como o Gobuster, por padrão, falha ao escanear tal alvo devido à validação TLS rigorosa. O cerne do laboratório envolveu o uso da flag -k com o Gobuster para contornar a verificação do certificado, permitindo que o scan prosseguisse. Finalmente, você obteve uma compreensão das implicações de segurança significativas de desabilitar a verificação TLS, enfatizando seu uso cauteloso apenas em cenários de teste controlados ou específicos. Esse conhecimento é crucial para o uso eficaz e seguro de ferramentas de escaneamento web.