Proteja seu site: aprenda a identificar vulnerabilidades com WhatWeb

Proteja seu site: aprenda a identificar vulnerabilidades com WhatWeb

Todos nós temos contato direto ou indireto a sites e aplicações web. E, como bem sabemos, essas aplicações são alvos de ataques massivos de hackers e pessoas mau intencionadas. Por isso, vamos aprender agora a identificar informações importantes para a proteção de nosso site e aplicação WEB por meio do WhatWeb, um Scanner capaz de identificar diversas informações sobre sua aplicação!

Descubra informações do seu site com WhatWeb

O WhatWeb é um Scanner web de última geração capaz de identificar as tecnologias utilizadas no seu site. O WhatWeb pode identificar todos os tipos de informações sobre um site ativo, como:

  • Plataforma;
  • Plataforma CMS;
  • Tipo de roteiro;
  • Google Analytics;
  • Plataforma de servidor web;
  • Endereço IP, País;
  • Mais de 900 plugins e suas bibliotecas usadas;
  • Cabeçalhos de servidor, cookies e muito mais.

O Whatweb oferece varredura passiva e testes agressivos. A varredura passiva apenas extrai dados de cabeçalhos HTTP simulando uma visita normal. As opções agressivas se aprofundam com recursão, vários tipos de consultas e identificam todas as tecnologias como um scanner de vulnerabilidades.

Portanto, um pentester pode usar essa ferramenta como ferramenta de reconhecimento e scanner de vulnerabilidade. Existem vários outros recursos, como suporte a proxy, ajuste de varredura, varredura de uma variedade de IPs, spidering etc.

Exploração de sites públicos

Vamos começar fazendo uma enumeração simples em alguns sites. Para isso, vamos utilizar o Kali Linux que está disponível para download aqui.

Se você utiliza Linux, pode seguir os passos abaixo para a instalação.

Abra seu terminal e realize o clone do projeto WhatWeb no GitHub com o comando:

git clone https://github.com/urbanadventurer/WhatWeb/

Entre no diretório clonado com o comando:

cd Whatweb

Agora, dentro do diretório clonado, você pode executar o software com o comando:

./whatweb

Agora, se você utiliza Windows ou outro sistema operacional, pode executar o WhatWeb por meio de um container Docker. Para isso, siga as instruções disponíveis neste link!

Para realizar nossa primeira exploração, vamos executar em nosso terminal:

┌──(kali㉿kali)-[~]

└─$ whatweb app.sgoncalves.local # Aqui voce insere a URL que quer analisar!

Veremos como resultado algo semelhante a:

http://app.sgoncalves.local [200 OK] Apache[2.2.14][mod_mono/2.4.3,mod_perl/2.0.4,mod_python/3.3.1,mod_ssl/2.2.14,proxy_html/3.0.1], Country[RESERVED][ZZ], Email[admin@metacorp.com,admin@owaspbwa.org,bob@ateliergraphique.com,cycloneuser-3@cyclonetransfers.com,jack@metacorp.com,test@thebodgeitstore.com], HTML5, HTTPServer[Ubuntu Linux][Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/4.0.38 mod_perl/2.0.4 Perl/v5.10.1], IP[10.0.2.4], JQuery[1.3.2], OpenSSL[0.9.8k], PHP[5.3.2-1ubuntu4.30][Suhosin-Patch], Passenger[4.0.38], Perl[5.10.1], Python[2.6.5], Script, Title[owaspbwa OWASP Broken Web Applications]

Caso queiramos uma saída mais detalhada, podemos utilizar a flag -v :

┌──(kali㉿kali)-[~]

└─$ whatweb -v app.sgoncalves.local

Obteremos o seguinte resultado:

WhatWeb report for http://app.sgoncalves.local

Status    : 200 OK

Title     : owaspbwa OWASP Broken Web Applications

IP        : 10.0.2.4

Country   : RESERVED, ZZ

 

Summary   : Apache[2.2.14][mod_mono/2.4.3,mod_perl/2.0.4,mod_python/3.3.1,mod_ssl/2.2.14,proxy_html/3.0.1], Email[admin@metacorp.com,admin@owaspbwa.org,bob@ateliergraphique.com,cycloneuser-3@cyclonetransfers.com,jack@metacorp.com,test@thebodgeitstore.com], HTML5, HTTPServer[Ubuntu Linux][Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/4.0.38 mod_perl/2.0.4 Perl/v5.10.1], JQuery[1.3.2], OpenSSL[0.9.8k], Passenger[4.0.38], Perl[5.10.1], PHP[5.3.2-1ubuntu4.30][Suhosin-Patch], Python[2.6.5], Script

 

Detected Plugins:

[ Apache ]

        The Apache HTTP Server Project is an effort to develop and 

        maintain an open-source HTTP server for modern operating 

        systems including UNIX and Windows NT. The goal of this 

        project is to provide a secure, efficient and extensible 

        server that provides HTTP services in sync with the current 

        HTTP standards. 

 

        Version      : 2.2.14 (from HTTP Server Header)

        Module       : mod_mono/2.4.3,mod_perl/2.0.4,mod_python/3.3.1,mod_ssl/2.2.14

        Module       : proxy_html/3.0.1

        Google Dorks: (3)

        Website     : http://httpd.apache.org/

 

[ Email ]

        Extract email addresses. Find valid email address and 

        syntactically invalid email addresses from mailto: link 

        tags. We match syntactically invalid links containing 

        mailto: to catch anti-spam email addresses, eg. bob at 

        gmail.com. This uses the simplified email regular 

        expression from 

        http://www.regular-expressions.info/email.html for valid 

        email address matching. 

 

        String       : admin@metacorp.com,admin@owaspbwa.org,bob@ateliergraphique.com,cycloneuser-3@cyclonetransfers.com,jack@metacorp.com,test@thebodgeitstore.com                                                                                                                               

 

[ HTML5 ]

        HTML version 5, detected by the doctype declaration 

 

[ HTTPServer ]

        HTTP server header string. This plugin also attempts to 

        identify the operating system from the server header. 

 

        OS           : Ubuntu Linux

        String       : Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/4.0.38 mod_perl/2.0.4 Perl/v5.10.1 (from server string)                                      

 

[ JQuery ]

        A fast, concise, JavaScript that simplifies how to traverse 

        HTML documents, handle events, perform animations, and add 

        AJAX. 

 

        Version      : 1.3.2

        Website     : http://jquery.com/

 

[ OpenSSL ]

        The OpenSSL Project is a collaborative effort to develop a 

        robust, commercial-grade, full-featured, and Open Source 

        toolkit implementing the Secure Sockets Layer (SSL v2/v3) 

        and Transport Layer Security (TLS v1) protocols as well as 

        a full-strength general purpose cryptography library. 

 

        Version      : 0.9.8k

        Website     : http://www.openssl.org/

 

[ PHP ]

        PHP is a widely-used general-purpose scripting language 

        that is especially suited for Web development and can be 

        embedded into HTML. This plugin identifies PHP errors, 

        modules and versions and extracts the local file path and 

        username if present. 

 

        Version      : 5.3.2-1ubuntu4.30

        Module       : Suhosin-Patch

        Google Dorks: (2)

        Website     : http://www.php.net/

 

[ Passenger ]

        Phusion Passenger – a.k.a. mod_rails or mod_rack – makes 

        deployment of Ruby web applications, such as those built on 

        the revolutionary Ruby on Rails web framework, a breeze. It 

        follows the usual Ruby on Rails conventions, such as 

        “Dont-Repeat-Yourself”” website “http://www.modrails.com/ 

 

        Version      : 4.0.38

 

[ Perl ]

        Perl is a highly capable, feature-rich programming language 

        with over 22 years of development. 

 

        Version      : 5.10.1

        Website     : http://www.perl.org/

 

[ Python ]

        Python is a programming language that lets you work more 

        quickly and integrate your systems more effectively. You 

        can learn to use Python and see almost immediate gains in 

        productivity and lower maintenance costs. 

 

        Version      : 2.6.5

        Website     : http://www.python.org/

 

[ Script ]

        This plugin detects instances of script HTML elements and 

        returns the script language/type. 

 

        String       : text/javascript

 

HTTP Headers:

        HTTP/1.1 200 OK

        Date: Mon, 25 Apr 2022 13:18:42 GMT

        Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/4.0.38 mod_perl/2.0.4 Perl/v5.10.1

        Last-Modified: Fri, 31 Jul 2015 02:55:52 GMT

        ETag: “45f13-6da3-51c22f5365e00”

        Accept-Ranges: bytes

        Vary: Accept-Encoding

        Content-Encoding: gzip

        Content-Length: 4785

        Connection: close

        Content-Type: text/html

De posse destas informações é possível avaliar se o site em questão possui alguma versão de software vulnerável, ou mesmo desatualizada. Também podemos até descobrir se o site está executando uma versão vulnerável de um CMS como WordPress ou Joomla. O importante é compreender que assim você pode descobrir as vulnerabilidades e exploits para diferentes versões de tecnologias utilizadas em seu site.

Outro teste possível é utilizar um bloco de IPs para análise, como por exemplo:

┌──(kali㉿kali)-[~]

└─$ whatweb -v 192.168.0.1/24

Caso você queira realizar a análise em mais de um site ao mesmo tempo, basta enfileirar os domínios separados por um espaço ao executar o comando, como no exemplo:

┌──(kali㉿kali)-[~]

└─$ whatweb -v meudominio.com.br meunovodominio.com.br meuterceirodominio.com.br

Descobrindo informações diretamente pelo navegador com Wappalyzer

O Wappalyzer é uma ferramenta de código aberto disponível no GitHub e 100% gratuita que foi criada em 2009 e tem como objetivo identificar as tecnologias usadas em um site.

É bastante simples de utilizar, bastando instalar no navegador. Vou exemplificar o uso no Mozilla Firefox.

Primeiro, acesse este link para chegar à página de instalação:

 

Selecione seu navegador na lista.

 

Selecione a opção para instalar:

 

Selecione e instale no seu navegador

 

Depois da extensão instalada, basta acessar o site que deseja obter informações, e verá o seguinte:

 

Wappalyzer em ação!

 

 

Como podemos perceber, acabamos de descobrir qual o servidor Web, o Sistema operacional, e outros detalhes do site em questão, simplesmente acessando ele!

É importante lembrar que essas informações são o insumo necessário para que você possa corrigir problemas sérios de segurança em suas aplicações. Execute-as em sua estrutura, descubra as informações e corrija o que estiver ao seu alcance.

Se você deseja saber mais sobre segurança em aplicações web de maneira prática e com resultados reais, saiba mais sobre meu curso e se inscreva! Ele está em promoção, vale a pena conferir. É só clicar aqui!

Obrigado por chegar até aqui!

Compartilhe este link com seus contatos!

Abraço!

 

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Gerenciamento eficiente de índices no Elasticsearch com o Index Lifecycle Management
Próxima Desvendando o Mundo da Computação: Processos, Programas e Comunicação

About author

Samuel Gonçalves
Samuel Gonçalves 6 posts

Saudações! Eu possuo mais de 9 anos de experiência em Tecnologia, várias certificações, um monte de projetos dos quais faço parte! Sou Especialista em Segurança Ofensiva e DevOps. Também possuo MBA em Data Science e IoT. O que mais importa é: vamos nos conectar? É só me chamar!

View all posts by this author →

Você pode gostar também

Desenvolvimento

Curso Gratuito de Containers: Aprenda sem precisar de conta na nuvem

É isso mesmo, acabamos de criar um novo curso de containers gratuito! E sabe o que é mais legal? Você não precisa de uma conta na nuvem e muito menos

Infraestrutura TI

Guia completo para instalar e personalizar o Arch Linux

Introdução     Arch Linux é um sistema operacional rolling release baseado em Linux com arquitetura x86_64 ( suportada oficialmente), desenvolvido pelo programador canadense Judd Vinet em 2002, que se inspirou

Infraestrutura TI

Como Configurar Alta Disponibilidade de Interfaces de Rede com Bonding no Linux

Quando falamos de infraestrutura, um dos pré-requisitos é se pensar em alta disponibilidade, seja ela de: Máquinas Virtuais Storages Máquinas Físicas Links de Internet E etc. Nesse post vou explicar