O Ngrok é uma ferramenta que permite criar túneis seguros entre a sua máquina local e a internet, permitindo que você exponha serviços locais para o mundo exterior. Com o Ngrok, você pode testar, compartilhar e demonstrar aplicações web, APIs, servidores, dispositivos IoT e muito mais, sem a necessidade de configurar servidores, domínios, firewalls ou portas .
O que é um túnel?
Um túnel é uma conexão bidirecional entre a sua máquina local e um servidor remoto, que permite que o tráfego HTTP ou TCP seja encaminhado entre eles. O túnel é criado por um cliente, que é um programa que roda na sua máquina local, e um servidor, que é um serviço que roda na nuvem .
O cliente se conecta ao servidor usando um protocolo chamado ngrok, que é baseado em TLS (Transport Layer Security). O servidor aloca um endereço público (URL ou IP) para o seu túnel, que pode ser usado para acessar o seu serviço local a partir de qualquer lugar da internet. O servidor também mantém uma conexão persistente com o cliente, que permite que o tráfego seja enviado de volta para o seu serviço local .
Como usar o Ngrok?
Para usar o Ngrok, você precisa baixar e instalar o cliente na sua máquina local. Você pode encontrar o cliente para o seu sistema operacional no site oficial do Ngrok. Depois de baixar e descompactar o arquivo, você pode executar o cliente a partir da linha de comando.
O comando básico para criar um túnel é:
ngrok http <porta>
Onde <porta>
é a porta do seu serviço local que você quer expor. Por exemplo, se você tem um servidor web rodando na porta 8000, você pode criar um túnel com o comando:
ngrok http 8000
O cliente vai se conectar ao servidor do Ngrok e criar um túnel. Você vai ver uma tela como esta:
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account <your_account> (Plan: Free)
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://<random_string>.ngrok.io -> http://localhost:8000
Forwarding https://<random_string>.ngrok.io -> http://localhost:8000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Aqui você pode ver algumas informações sobre o seu túnel, como o status, a conta, a versão, a região, a interface web e os endereços de encaminhamento. Os endereços de encaminhamento são os URLs públicos que você pode usar para acessar o seu serviço local. Note que o Ngrok gera um endereço aleatório para cada túnel, que pode ser HTTP ou HTTPS. Você também pode ver as estatísticas das conexões, como o número total, o número aberto, os tempos de resposta e os percentis .
Agora você pode usar o seu navegador ou qualquer outro cliente HTTP para acessar o seu serviço local usando o endereço de encaminhamento. Por exemplo, se você acessar http://<random_string>.ngrok.io
, você vai ver o mesmo conteúdo que você veria se acessasse http://localhost:8000
na sua máquina local. Você também pode compartilhar esse endereço com outras pessoas, que poderão acessar o seu serviço local a partir de qualquer lugar da internet .
Você também pode acessar a interface web do Ngrok, que é um painel de controle que mostra informações detalhadas sobre o seu túnel, como os logs das requisições, as respostas, os cabeçalhos, os corpos, os cookies, os parâmetros e muito mais. Você pode acessar a interface web usando o endereço http://127.0.0.1:4040
na sua máquina local .
Para encerrar o seu túnel, você pode pressionar Ctrl+C
na linha de comando onde você executou o cliente do Ngrok. Isso vai desconectar o cliente do servidor e liberar o endereço de encaminhamento.
Para aqueles que querem aprender mais sobre o ngrok e diversas outras ferramentas de pentest, mas não tem nenhum conhecimento na área, ou querem aprimorá-las ainda mais, o curso de Pentest do Zero ao Profissional da Solyd Offensive Security é uma ótima opção. São 250 horas de conteúdo prático e teórico, divididos em mais de 350 aulas com materiais de estudos. Os alunos matriculados têm acesso a fóruns de dúvidas, suporte técnico com os professores e certificado de conclusão, além de uma plataforma exclusiva de CTF com dezenas de laboratórios para serem testados. O curso também oferece um voucher para o exame de certificação SYCP (Solyd Certified Pentester) que é um certificado hacking de peso internacional, e uma premiação de 3 mil reais em bitcoin para o primeiro colocado no ranking da plataforma.