Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
s3dns — Server DNS passivo che rileva bucket di archiviazione cloud esposti (AWS S3, GCP, Azure) risolvendo richieste DNS, tracciando catene CNAME e segnalando potenziali takeover di sottodomini durante la ricognizione. | Kitploit
Strumenti/GitHubGitHub/olizimmermann/s3dns
OSINT (Open Source Intelligence)RicognizioneAnalisi delle VulnerabilitàRaccolta InformazioniPenetration TestingSicurezza CloudEnumerazione SottodominiAnalisi DNS
GitHubolizimmermann/s3dns

s3dns

Server DNS passivo che rileva bucket di archiviazione cloud esposti (AWS S3, GCP, Azure) risolvendo richieste DNS, tracciando catene CNAME e segnalando potenziali takeover di sottodomini durante la ricognizione.

12913321 giorno 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
Vedi Repository
Sito web

S3DNS

s3dns è un server DNS leggero che aiuta a scoprire bucket di cloud storage (AWS S3, Google Cloud Storage e Azure Blob) risolvendo richieste DNS, tracciando i CNAME e confrontando i pattern URL noti dei bucket.

È un pratico compagno per pentester, cacciatori di bug bounty e analisti di sicurezza cloud che vogliono intercettare bucket cloud esposti durante l'analisi del traffico DNS.

Se S3DNS ti fa risparmiare tempo durante una sessione di ricognizione, considera di dargli una ⭐️ — aiuta altri a trovare il progetto.



🆕 Aggiornamento 2026/03/06

  • Supporto TCP/53 — S3DNS ora ascolta sia sulla porta UDP 53 che TCP 53. I client che ritentano su TCP dopo una risposta UDP troncata vengono gestiti correttamente, con la query inoltrata a monte su TCP per recuperare la risposta completa.
  • Buffer DNS più grande — Il buffer di ricezione UDP è stato aumentato da 512 a 4096 byte. Le opzioni EDNS0 del client vengono passate al resolver a monte senza modifiche.
  • Cache delle risposte — Cache LRU basata su TTL per le risposte DNS condivisa tra i percorsi UDP e TCP. Riduce il carico a monte e la latenza durante sessioni di ricognizione attive. Configurabile tramite CACHE_SIZE (default: 1000 voci, impostare a 0 per disabilitare).
  • Rate limiting — Limite di richieste per IP client per prevenire abusi. Configurabile tramite RATE_LIMIT (default: 100 req/s, impostare a 0 per disabilitare).
  • Rilevamento subdomain takeover — Quando un dominio corrisponde a un pattern di cloud storage ma restituisce NXDOMAIN, S3DNS lo segnala come possibile domain takeover. Ciò indica un record DNS pendente che punta a un bucket non rivendicato che un attaccante potrebbe registrare.
  • Controlli su range IP IPv6 — I record AAAA vengono ora anch'essi risolti e controllati rispetto ai range IP noti dei cloud storage. I prefissi AWS S3 IPv6 vengono caricati insieme ai range IPv4.
  • Limite di profondità CNAME — La catena CNAME ricorsiva è ora limitata (default: 10 hop) per prevenire loop infiniti su record artificiosi o ciclici. Configurabile tramite il parametro max_cname_depth.

Aggiornamento 2025/08/19

  • Aggiunti range IP AWS offline come file JSON.
  • Aggiunti range IP Azure Storage offline come file JSON.
  • Aggiunta l'opzione per disabilitare il controllo dei range IP per ciascun servizio utilizzando:
    • AZURE_IP_RANGES=false o AWS_IP_RANGES=false (default è true).
  • Spostati regex_patterns e pattern hardcoded nella cartella patterns come file YAML. Puoi aggiungere i tuoi pattern.
    • I pattern regex devono iniziare con regex_.
  • Aggiunti molti altri provider cloud
    • IBM Cloud Object Storage
    • Oracle Object Storage
    • Alibaba OSS
    • Backblaze B2
    • Linode Object Storage
    • Scaleway Object Storage
    • Vultr Object Storage
    • Cloudflare R2

Aggiornamento 2025/06/21

  • Aggiunto supporto per AWS GovCloud.

Aggiornamento 2025/04/16

  • Pattern regex aggiornati.
  • Output migliorato per una migliore visibilità (visualizzazione del dominio originale per i CNAME, l'IP del client e gli indicatori di range IP).
  • Scaricamento automatico dei range IP da AWS — ora li controlliamo anche!
  • Opzione per aggiungere i propri range IP (regolare manualmente i pattern o i range IP nella classe).

Aggiornamento 2025/04/14

  • Aggiunto supporto regex per bucket Google Cloud Storage e Azure Blob Storage.

🚀 Funzionalità

  • Funziona come server DNS sulla porta 53 (UDP e TCP)
  • Rileva potenziali bucket di cloud storage nelle richieste DNS:
    • AWS S3 (stile virtual-host e path, incluso GovCloud)
    • Bucket GCP
    • Contenitori Azure Blob
    • DigitalOcean Spaces, Wasabi, IBM COS, Oracle Object Storage, Alibaba OSS, Backblaze B2, Linode, Scaleway, Vultr, Cloudflare R2
  • Segue catene CNAME in modo ricorsivo (limite di profondità configurabile) per intercettare collegamenti mascherati a bucket cloud
  • Segnala potenziali subdomain takeover — pattern di cloud storage che restituiscono NXDOMAIN
  • Controlla gli IP risolti (sia A che AAAA) rispetto ai range IP noti di AWS S3 e Azure Storage
  • Cache delle risposte sensibile al TTL per ridurre latenza e carico a monte durante la ricognizione
  • Rate limiting per IP per prevenire abusi
  • Registra tutte le scoperte su console e file
  • Amichevole per i container

⚙️ Come funziona

S3DNS ascolta sulla porta 53 (UDP e TCP) per le query DNS. Per ogni richiesta:

  1. Estrae il dominio richiesto
  2. Controlla la cache delle risposte — se esiste una risposta in cache valida, viene restituita immediatamente
  3. Inoltra la richiesta a un resolver DNS reale (es. 1.1.1.1) — su UDP per client UDP, su TCP per client TCP
  4. Restituisce la risposta DNS valida al client

In parallelo:

  • Controlla i pattern dei bucket di cloud storage (corrispondenza regex e hostname hardcoded)
  • Controlla gli IP risolti rispetto ai range noti di AWS S3 e Azure Storage (IPv4 e IPv6)
  • Segue le catene CNAME in modo ricorsivo fino alla profondità configurata
  • Segnala i colpi NXDOMAIN su pattern corrispondenti come possibili candidati per subdomain takeover
  • Registra tutte le scoperte su console e s3dns.log

⚡ Usalo come tuo DNS durante la ricognizione e rivelerà passivamente bucket cloud e candidati takeover per ogni dominio che i tuoi strumenti o browser risolvono.


🧱 Prerequisiti

Avrai bisogno solo di uno dei seguenti:

  • Python 3.11+
  • Docker (opzionale, ma raccomandato)

🔧 Installazione

Necessario solo se vuoi eseguirlo localmente con Python

Clona il repository

git clone https://github.com/olizimmermann/s3dns.git
cd s3dns

Installa le dipendenze

(Si consiglia l'uso di un ambiente virtuale)

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

🧪 Utilizzo

Esecuzione con Python

La porta 53 richiede privilegi elevati:

sudo python s3dns.py

Se sudo segnala un modulo mancante, prova: sudo venv/bin/python s3dns.py

  • Se costruisci l'immagine da solo, assicurati di taggarla con lo stesso nome della versione su Docker Hub per coerenza: docker build -t ozimmermann/s3dns:latest .

Utilizzo con Docker

Il modo più semplice per iniziare con S3DNS.

docker pull ozimmermann/s3dns:latest
docker run --rm -p 53:53/udp -p 53:53/tcp \
  -v "./bucket_findings/:/app/buckets/" \
  --name "s3dns" \
  ozimmermann/s3dns:latest

Costruisci ed esegui con Docker

docker build -t ozimmermann/s3dns:latest .
docker run --rm -p 53:53/udp -p 53:53/tcp \
  -v "./bucket_findings/:/app/buckets/" \
  --name "s3dns" \
  ozimmermann/s3dns:latest

I risultati vengono salvati:

  • Nel terminale, e/o
  • In ./bucket_findings/

Risoluzione dei problemi

Quando usi S3DNS sulla stessa macchina in cui esegui l'analisi, può essere utile impostare il flag --network host:

docker run --rm -p 53:53/udp -p 53:53/tcp \
  -v "./bucket_findings/:/app/buckets/" \
  --network host \
  --name "s3dns" \
  ozimmermann/s3dns:latest

Poiché la porta 53 richiede privilegi elevati, alcuni utenti (es. utenti Mac) potrebbero aver bisogno di sudo:

sudo docker run --rm -p 53:53/udp -p 53:53/tcp \
  -v "./bucket_findings/:/app/buckets/" \
  --name "s3dns" \
  ozimmermann/s3dns:latest

🌐 Utilizzo di S3DNS nella ricognizione

Imposta il resolver DNS del tuo sistema o strumento sulla tua istanza S3DNS.

Scarica lo strumento