
🔎 Encontre servidores de origem de sites protegidos pelo CloudFlare usando dados de varredura da Internet do Censys.
Nota importante: A partir do final de 2024, a Censys não fornece mais acesso à API para contas gratuitas. Isso significa que o CloudFlair não funciona mais com contas gratuitas da Censys.
O CloudFlair é uma ferramenta para encontrar servidores de origem de sites protegidos pelo CloudFlare (ou CloudFront) que estão expostos publicamente e não restringem adequadamente o acesso à rede das faixas de IP da CDN relevante.
A ferramenta utiliza dados de varredura em toda a Internet do Censys para encontrar hosts IPv4 expostos que apresentam um certificado SSL associado ao nome de domÃnio do alvo. Chaves de API são necessárias e podem ser obtidas na sua conta Censys.
Para mais detalhes sobre essa má configuração comum e como o CloudFlair funciona, consulte o post do blog complementar em https://blog.christophetd.fr/bypassing-cloudflare-using-internet-wide-scan-data/.
Veja o CloudFlair em ação.
$ python cloudflair.py myvulnerable.site
[*] The target appears to be behind CloudFlare.
[*] Looking for certificates matching "myvulnerable.site" using Censys
[*] 75 certificates matching "myvulnerable.site" found.
[*] Looking for IPv4 hosts presenting these certificates...
[*] 10 IPv4 hosts presenting a certificate issued to "myvulnerable.site" were found.
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
- 127.200.220.231
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83
[*] Retrieving target homepage at https://myvulnerable.site
[*] Testing candidate origin servers
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
responded with an unexpected HTTP status code 404
- 127.200.220.231
timed out after 3 seconds
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83
[*] Found 2 likely origin servers of myvulnerable.site!
- 177.67.208.72 (HTML content identical to myvulnerable.site)
- 182.102.141.194 (HTML content identical to myvulnerable.site)
(Os endereços IP neste exemplo foram ofuscados e substituÃdos por IPs gerados aleatoriamente)
$ export CENSYS_API_ID=...
$ export CENSYS_API_SECRET=...
$ git clone https://github.com/christophetd/CloudFlair.git
cd CloudFlair
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python cloudflair.py myvulnerable.site
ou para CloudFront
python cloudflair.py myvulnerable.site --cloudfront
$ python cloudflair.py --help
usage: cloudflair.py [-h] [-o OUTPUT_FILE] [--censys-api-id CENSYS_API_ID] [--censys-api-secret CENSYS_API_SECRET] [--cloudfront] domain
positional arguments:
domain The domain to scan
options:
-h, --help show this help message and exit
-o OUTPUT_FILE, --output OUTPUT_FILE
A file to output likely origin servers to (default: None)
--censys-api-id CENSYS_API_ID
Censys API ID. Can also be defined using the CENSYS_API_ID environment variable (default: None)
--censys-api-secret CENSYS_API_SECRET
Censys API secret. Can also be defined using the CENSYS_API_SECRET environment variable (default: None)
--cloudfront Check Cloudfront instead of CloudFlare. (default: False)
Uma imagem Docker leve do CloudFlair (christophetd/cloudflair) é fornecida. Uma varredura pode ser facilmente iniciada usando o seguinte comando.
$ docker run --rm -e CENSYS_API_ID=your-id -e CENSYS_API_SECRET=your-secret christophetd/cloudflair myvulnerable.site
Você também pode criar um arquivo contendo a definição das variáveis de ambiente e usar a opção --env-file do Docker.
$ cat censys.env
CENSYS_API_ID=your-id
CENSYS_API_SECRET=your-secret
$ docker run --rm --env-file=censys.env christophetd/cloudflair myvulnerable.site
Testado no Python 3.6. Fique à vontade para abrir uma issue se tiver relatos de bugs ou perguntas.