Neste artigo, exploraremos uma ferramenta para te auxiliar na fase de RECON de um ambiente, nesse artigo irá ser mostrado a forma de utilização e como ela pode economizar muito seu tempo.
Vale lembrar que para aprender essa técnica e muitas outras, conheça nossa plataforma de treinamentos de cibersegurança: https://hackersec.com/academy/
O que é a ferramenta HTTPX?
HTTPX é um kit de ferramentas HTTP rápido e multifuncional que permite executar vários testes usando a biblioteca retryablehttp. Fazendo teste em uma lista de domínios para poupar tempo e fazer com que o usuário não precise entrar em cada domínio para saber o conteúdo dele.
Instalando o go 1.21
No terminal digite
# wget https://golang.org/dl/go1.21.1.linux-amd64.tar.gz |
descompacte o arquivo com o comando:
# tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz |
Edite o arquivo ~/.zshrc ou ~/.bashrc com o comando:
# nano ~/.zshrc |
Nas últimas linhas do arquivo adicione:
export GOROOT=/usr/local/go export GOPATH=/root/go-workspace export PATH=$PATH:$GOROOT/bin:$GOPATH/bin |
Recarregue o arquivo com o comando:
# source ~/.zshrc |
Verifique se o go foi instalado corretamente com o comando:
# go version |
Instalando a ferramenta HTTPX
# go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest |
Verifique se o HTTPX foi instalado corretamente com o comando:
# httpx –help |
Formas de utilização.
O HTTPX pode ser utilizado de várias maneiras, vamos abortar do uso básico até o uso mais avançado combinando outra ferramenta.
Um uso básico é a verificação da disponibilidade de uma única URL, utilizando o seguinte comando.
# echo “http://hackersec.com” | httpx projectdiscovery.io [INF] Current httpx version v1.6.0 (latest) https://hackersec.com |
Outra utilização é combianandos parâmetros da própria ferramenta para mostrar mais informações sobre o ambiente
Aqui, foi feita uma solicitação que atinge apenas a página web com algumas opções básicas.
# echo “http://hackersec.com” | httpx -title -status-code -tech-detect -follow-redirects projectdiscovery.io [INF] Current httpx version v1.6.0 (latest) https://hackersec.com [200] [HackerSec – Cibersegurança Avançada] [Cloudflare,Google Tag Manager,HSTS,HTTP/3,Linkedin Ads,MySQL,PHP,Site Kit:1.127.0,WordPress:6.5.3,Yoast SEO:22.7,wpBakery] |
-title: exibe o título da página da web
-status-code: exibe o código de resposta. 200 sendo status válido ou OK enquanto 404 é o código para não encontrado
-tech-detect: detecta tecnologia em execução por trás da página da web
-follow-redirects: ativa os seguintes redirecionamentos e verifica a página seguinte também
É possível fazer uma varredura em uma lista de domínios ou subdomínios que podem ser passadas na ferramenta usando a opção “-l”
# httpx -l lista.txt -title -status-code -tech-detect -follow-redirect projectdiscovery.io [INF] Current httpx version v1.6.0 (latest) https://novpn.hackersec.com [200] [Welcome to nginx!] [Nginx:1.24.0] https://vpn-ctf.hackersec.com [200] [Welcome to nginx!] [Nginx:1.24.0] https://lab.hackersec.com [200] [Nginx:1.24.0,PHP:7.4.33] https://has.hackersec.com [200] [Entrar – HAS – HackerSec] [Bootstrap,HSTS,Nginx,PHP] https://hackersec.com [200] [HackerSec – Cibersegurança Avançada] [Cloudflare,Google Tag Manager,HSTS,HTTP/3,Linkedin Ads,MySQL,PHP,Site Kit:1.127.0,WordPress:6.5.3,Yoast SEO:22.7,wpBakery] https://www.hackersec.com [301,200] [HackerSec – Cibersegurança Avançada] [https://hackersec.com/] [Cloudflare,Google Tag Manager,HSTS,HTTP/3,Linkedin Ads,MySQL,PHP,SiteKit:1.127.0,WordPress:6.5.3,Yoast SEO:22.7,wpBakery] |
Uma forma mais avançada é combinar ferramentas, nesse caso será feita uma enumeração de subdomínios com a ferramenta subfinder mais o HTTPX
# subfinder -d vulnweb.com | httpx -title -status-code -tech-detect -follow-redirects projectdiscovery.io [INF] Current httpx version v1.6.0 (latest) [INF] Current subfinder version v2.6.6 (latest) [INF] Loading provider config from /root/.config/subfinder/provider-config.yaml [INF] Enumerating subdomains for vulnweb.com [INF] Found 25 subdomains for vulnweb.com in 1 second 436 milliseconds http://testphp.vulnweb.com [200] [Home of Acunetix Art] [DreamWeaver,Nginx:1.19.0,PHP:5.6.40,Ubuntu] http://testasp.vulnweb.com [200] [acuforum forums] [DreamWeaver,IIS:8.5,Microsoft ASP.NET,Windows Server] http://rest.vulnweb.com [200] [Acunetix Vulnerable REST API] [Apache HTTP Server:2.4.25,Debian,PHP:7.1.26] http://www.vulnweb.com [200] [Acunetix Web Vulnerability Scanner – Test websites] [Nginx:1.19.0] http://testhtml5.vulnweb.com [200] [SecurityTweets – HTML5 test website for Acunetix Web Vulnerability Scanner] [AngularJS,Nginx:1.19.0] http://testaspnet.vulnweb.com [200] [acublog news] [IIS:8.5,Microsoft ASP.NET,Microsoft Visual Studio,Windows Server] |
Outras formas de utilizar a ferramenta HTTPX para te auxiliar no seu RECON.
É sempre importante conhecer todas as funções que a ferramenta pode oferecer. Dessa forma, ao testar um ambiente, você não ficará limitado apenas a comandos básicos. A ferramenta oferece múltiplas formas de realizar o reconhecimento (RECON) de um ambiente, permitindo uma análise mais abrangente e detalhada.
-probe: exibe o status de uma única verificação (sucesso/falha)
-ip: exibe o IP do servidor web
-cdn: exibe o CDN/WAF, se presente
# echo “hackersec.com” | httpx -lc -wc |
-lc: exibe a contagem de linhas da página da web digitalizada
-wc: exibe a contagem de palavras da página da web digitalizada
# cat list | httpx -mc 200,301,302 -sc |
-mc: combina o código de resposta HTTP com os códigos fornecidos na lista
# cat list | httpx -mlc 110 -lc |
-mlc: corresponde à contagem de linhas com a entrada fornecida
# cat list | httpx -ml 3563 -cl |
-cl: exibe o comprimento do conteúdo de uma página da web
-ml: corresponde ao comprimento do conteúdo com a entrada fornecida e exibe apenas os resultados que correspondem ao comprimento do conteúdo
# cat list | httpx -mwc 580 -wc |
-mwc: corresponde à contagem de palavras e exibe apenas os resultados com a mesma contagem de palavras
# cat list | httpx -ms “login” |
-ms: exibe apenas os resultados onde o texto em uma página corresponde à string fornecida. Aqui, as páginas com “login” no texto são carregadas.
Conclusão
O propósito deste artigo foi fornecer uma referência rápida para alguns dos parâmetros disponíveis na ferramenta httpx, auxiliando nos seus testes e estudos. Lembrando que existem muitos outros parâmetros; você pode encontrar mais informações no repositório oficial no GitHub (https://github.com/projectdiscovery/httpx)