Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
anubis-fetch — Como o curl, mas atravessa as proteções anti-bot do Anubis e do Cloudflare. | Kitploit
Ferramentas/GitHubGitHub/fzakaria/anubis-fetch
Scripting e AutomaçãoBypass de WAFSegurança WebUtilitários e FrameworksAnti-BotFalsificação de Impressão Digital
GitHubfzakaria/anubis-fetch

anubis-fetch

Como o curl, mas atravessa as proteções anti-bot do Anubis e do Cloudflare.

Ver Repositório
3018há 12h 33mRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

anubis-fetch

Built with Nix CI License: MIT

root@kitploit:~
$ nix run github:fzakaria/anubis-fetch -- https://lore.kernel.org/linux-mm/some-thread/T/

Um CLI rápido (em Go) para buscar URLs atrás de muros de proof-of-work do Anubis e verificações de impressão digital da Cloudflare — resolvendo o desafio em processo, e só indo para um navegador real quando necessário.

Um número crescente de sites — lore.kernel.org, GNOME, kernel.org e muitos outros — ficam atrás do Anubis, um muro anti-bots que faz o seu navegador resolver um proof-of-work SHA-256 antes de servir qualquer conteúdo. Ele é ótimo para impedir scrapers. Também é ótimo para impedir você quando você só quer usar curl em um tópico de lista de discussão:

root@kitploit:~
$ curl -s https://lore.kernel.org/linux-mm/some-thread/T/ | grep -o '<title>.*</title>'
<title>Making sure you&#39;re not a bot!</title>   # 🤢

O anubis-fetch traz a página real:

root@kitploit:~
$ anubis-fetch https://lore.kernel.org/linux-mm/some-thread/T/ | grep -o '<title>.*</title>'
<title>[PATCH 0/2] ...</title>                     # 🥳

Como funciona

Os muros anti-bots vivem em duas camadas diferentes, e o anubis-fetch lida com ambas, começando pelo passo mais barato:

  1. Reutilizar um cookie salvo. O Anubis emite um cookie de autenticação assinado (techaro.lol-anubis-auth) depois que você passa uma vez; um navegador não é desafiado novamente na próxima visita, e nós também não. Os cookies são persistidos por host (veja Persistência de cookies).
  2. Resolver o proof-of-work em processo. A requisição é enviada via req personificando um Chrome real — mesma impressão digital TLS/JA3 + HTTP/2 — o que também elimina a impressão digital passiva da Cloudflare. Se a resposta for um desafio do Anubis, forçamos o nonce por brute force e o submetemos. Sem navegador, ~0.6s.
  3. Recorrer a um navegador real. Para qualquer coisa que o caminho rápido não consiga, usamos Chromium headless via chromedp, que executa qualquer JavaScript que o site sirva.

[!NOTE] O fallback é acionado para: métodos de desafio preact / metarefresh do Anubis, um método desconhecido/futuro, uma dificuldade alta demais para brute force, uma solução rejeitada, ou um desafio JS ativo da Cloudflare (Managed Challenge / Turnstile / "I'm Under Attack"). A personificação elimina o Cloudflare passivo; apenas um navegador elimina as camadas JS ativas. Então o anubis-fetch degrada para "mais lento", nunca "quebrado".

Por que não usar só um navegador para tudo?

Porque é ~4× mais lento e arrasta um Chromium de ~200 MB em cada busca. O resolvedor em processo é o caso comum; o navegador é a rede de segurança.

CaminhoTempo decorridoPrecisa de Chromium
Resolvedor (proof-of-work do Anubis)~0.6snão
Fallback do navegador~2.0ssim

O proof-of-work do Anubis, resumidamente

O Anubis incorpora um desafio como JSON na página:

root@kitploit:~
{"rules":{"algorithm":"fast","difficulty":4},
 "challenge":{"id":"…","method":"fast","randomData":"6214bd88…","difficulty":4}}

Resolvê-lo significa encontrar um nonce tal que hex(sha256(randomData ‖ nonce)) comece com difficulty caracteres zero (o nonce é sua string em base 10). Em seguida, devolvemos a resposta:

root@kitploit:~
GET /.within.website/x/cmd/anubis/api/pass-challenge?id=…&response=<hash>&nonce=<n>&redir=<url>&elapsedTime=<ms>

…o que define o cookie de autenticação e redireciona para a página real. A dificuldade 4 (o padrão em lore/kernel.org/GNOME) é ~65 mil hashes — submilissegundo em Go.

Instalação

Execute diretamente:

root@kitploit:~
$ nix run github:fzakaria/anubis-fetch -- <url>

Instale no seu perfil:

root@kitploit:~
$ nix profile install github:fzakaria/anubis-fetch

Ou adicione ao seu próprio flake:

root@kitploit:~
{
  inputs.anubis-fetch.url = "github:fzakaria/anubis-fetch";
  # then, e.g. in home.packages / environment.systemPackages:
  #   inputs.anubis-fetch.packages.${system}.default
}

Uso

root@kitploit:~
$ anubis-fetch [flags] URL
FlagDescrição
--textrenderizar texto simples legível em vez de HTML
--timeout MStimeout por etapa em milissegundos (padrão 30000)
--ua STRINGsubstituir o User-Agent
--browserpular o resolvedor; ir direto para o navegador headless
--no-browsernunca usar o navegador; sair com 3 se a resolução não puder ser aplicada
--no-cachenão ler nem gravar o cookie jar persistente
root@kitploit:~
# HTML to stdout
$ anubis-fetch https://lore.kernel.org/linux-mm/some-thread/T/

# readable plain text
$ anubis-fetch --text https://lore.kernel.org/linux-mm/some-thread/T/

# lean/fast only — useful in scripts; exits 3 if it would need a browser
$ anubis-fetch --no-browser https://example.com/ && echo "got it"

Persistência de cookies

Após uma busca bem-sucedida, o cookie de autenticação é gravado em $XDG_CACHE_HOME/anubis-fetch/cookies/<host>.json (com fallback para ~/.cache/…). A próxima execução para aquele host passa direto — sem proof-of-work, sem navegador — exatamente como uma revisita do navegador. Cookies obtidos pelo fallback do navegador também são salvos, então uma execução posterior pode usar o caminho rápido HTTP. Use --no-cache para desativar, ou apenas delete o arquivo para forçar uma nova resolução.

Desenvolvimento

Tudo é configurado através do flake:

root@kitploit:~
$ nix develop          # dev shell: go, gopls, chromium, treefmt
$ go test ./...        # unit tests (hermetic — no network)
$ nix build            # build the wrapped binary
$ nix flake check      # build + tests + formatting
$ nix fmt              # format Go + Nix via treefmt (gofmt + alejandra)

A implementação do proof-of-work é fixada em relação ao vetor de teste publicado pelo próprio Anubis (sha256("hunter" + "0")), de modo que uma divergência na construção do hash falha em um teste unitário em vez de retornar lixo silenciosamente.

Trabalhos anteriores e agradecimentos

  • TecharoHQ/anubis — o muro anti-bots com o qual este projeto negocia educadamente.
  • imroc/req — o cliente HTTP cuja personificação do Chrome elimina a impressão digital passiva da Cloudflare.
  • chromedp/chromedp — controla o fallback do navegador headless.
Baixar ferramenta