Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/fzakaria/anubis-fetch
Scripting e AutomazioneBypass WAFSicurezza WebUtilità e FrameworkAnti-BotSpoofing dell'Impronta Digitale
GitHubfzakaria/anubis-fetch

anubis-fetch

Come curl, ma supera i muri anti-bot di Anubis e Cloudflare.

Vedi Repository
301812h 32m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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/

Un CLI veloce (in Go) per recuperare URL dietro i muri proof-of-work di Anubis e i controlli di fingerprint di Cloudflare — risolvendo la sfida in-process e ricorrendo a un browser reale solo quando necessario.

Un numero crescente di siti — lore.kernel.org, GNOME, kernel.org e molti altri — si trovano dietro Anubis, un muro anti-bot che obbliga il browser a risolvere una proof-of-work SHA-256 prima di servire qualsiasi contenuto. È ottimo per fermare gli scraper. Ed è anche ottimo per fermare te quando vuoi semplicemente fare curl di una discussione in una mailing list:

Scarica lo strumento
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>   # 🤢

anubis-fetch ti restituisce la pagina vera:

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

Come funziona

I muri anti-bot vivono su due livelli diversi, e anubis-fetch li gestisce entrambi, partendo dal passo più economico:

  1. Riutilizza un cookie salvato. Anubis rilascia un cookie di autenticazione firmato (techaro.lol-anubis-auth) dopo che hai superato la verifica una volta; un browser non viene nuovamente sfidato alla visita successiva, e nemmeno noi. I cookie vengono salvati per host (vedi Persistenza dei cookie).
  2. Risolve la proof-of-work in-process. La richiesta parte tramite req impersonando un vero Chrome — stessa impronta TLS/JA3 + HTTP/2 — il che supera anche il fingerprinting passivo di Cloudflare. Se la risposta è una sfida Anubis, forziamo il nonce e lo inviamo. Nessun browser, ~0,6s.
  3. Ripiega su un browser reale. Per tutto ciò che il percorso veloce non riesce a fare, pilotiamo Chromium headless tramite chromedp, che esegue qualsiasi JavaScript il sito serva.

[!NOTE] Il ripiego scatta per: i metodi di sfida preact / metarefresh di Anubis, un metodo sconosciuto/futuro, una difficoltà troppo alta per la forza bruta, una soluzione rifiutata, oppure una sfida JavaScript attiva di Cloudflare (Managed Challenge / Turnstile / "I'm Under Attack"). L'impersonificazione supera Cloudflare passivo; solo un browser supera i livelli JavaScript attivi. Quindi anubis-fetch degrada a "più lento", mai "rotto".

Perché non usare un browser per tutto?

Perché è ~4× più lento e trascina un Chromium da ~200 MB in ogni fetch. Il risolutore in-process è il caso comune; il browser è la rete di sicurezza.

PercorsoTempo di attesaRichiede Chromium
Risolutore (proof-of-work Anubis)~0,6sno
Ripiego sul browser~2,0ssì

La proof-of-work di Anubis, in breve

Anubis incorpora una sfida come JSON nella pagina:

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

Risolverla significa trovare un nonce tale che hex(sha256(randomData ‖ nonce)) inizi con difficulty caratteri zero (il nonce è la sua stringa in base 10). Poi consegnamo la risposta:

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

…che imposta il cookie di autenticazione e reindirizza alla pagina reale. La difficoltà 4 (il default su lore/kernel.org/GNOME) richiede ~65k hash — sub-millisecondo in Go.

Installazione

Eseguito direttamente:

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

Installalo nel tuo profilo:

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

Oppure aggiungilo al tuo flake:

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

Utilizzo

root@kitploit:~
$ anubis-fetch [flags] URL
FlagSignificato
--textmostra testo semplice leggibile invece di HTML
--timeout MStimeout per passo in millisecondi (default 30000)
--ua STRINGsovrascrive lo User-Agent
--browsersalta il risolutore; vai direttamente al browser headless
--no-browsernon usare mai il browser; esci con codice 3 se la risoluzione non può essere applicata
--no-cachenon leggere né scrivere il cookie jar persistente
root@kitploit:~
# HTML su stdout
$ anubis-fetch https://lore.kernel.org/linux-mm/some-thread/T/

# testo semplice leggibile
$ anubis-fetch --text https://lore.kernel.org/linux-mm/some-thread/T/

# minimale/veloce — utile negli script; esce con 3 se servirebbe un browser
$ anubis-fetch --no-browser https://example.com/ && echo "got it"

Persistenza dei cookie

Dopo un fetch riuscito, il cookie di autenticazione viene scritto in $XDG_CACHE_HOME/anubis-fetch/cookies/<host>.json (con fallback su ~/.cache/…). L'esecuzione successiva per quell'host viene lasciata passare direttamente — niente proof-of-work, niente browser — esattamente come la rivisitazione di un browser. Anche i cookie ottenuti tramite il ripiego sul browser vengono salvati, così un'esecuzione successiva può seguire il percorso HTTP veloce. Usa --no-cache per disabilitare, oppure elimina il file per forzare una nuova risoluzione.

Sviluppo

Tutto è collegato tramite il flake:

root@kitploit:~
$ nix develop          # shell di sviluppo: go, gopls, chromium, treefmt
$ go test ./...        # test unitari (ermetici — nessuna rete)
$ nix build            # compila il binario wrapper
$ nix flake check      # build + test + formattazione
$ nix fmt              # formatta Go + Nix tramite treefmt (gofmt + alejandra)

L'implementazione della proof-of-work è vincolata al vettore di test pubblicato da Anubis stesso (sha256("hunter" + "0")), così una deriva nella costruzione dell'hash fa fallire un test unitario invece di restituire silenziosamente spazzatura.

Lavori precedenti e ringraziamenti

  • TecharoHQ/anubis — il muro anti-bot con cui questo strumento negozia educatamente.
  • imroc/req — il client HTTP la cui impersonificazione di Chrome supera il fingerprinting passivo di Cloudflare.
  • chromedp/chromedp — pilota il ripiego sul browser headless.