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 a opção para instalar:
Depois da extensão instalada, basta acessar o site que deseja obter informações, e verá o seguinte:
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:
About author
Você pode gostar também
Entenda o funcionamento do pseudo filesystem /proc no Linux
O que é o “/proc” ? O “/proc” ou “procfs” é um pseudo filesystem que nos permite interagir e observar as estruturas internas do kernel Linux em formato de arquivos.
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
Guia prático: Como criar grupos e aplicar regras de política com SUDO no FreeIPA
Este é o terceiro post de uma série de publicações sobre o FreeIPA. Até aqui vimos em outros posts como subir um servidor IPA e também seus clientes, como criar