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
tko-subs — Uno strumento che può aiutare a rilevare e impossessarsi di sottodomini con record DNS morti. | Kitploit
Strumenti/GitHubGitHub/anshumanbh/tko-subs
Analisi delle VulnerabilitàPenetration TestingSicurezza CloudEnumerazione SottodominiAnalisi DNS
GitHubanshumanbh/tko-subs

tko-subs

Uno strumento che può aiutare a rilevare e impossessarsi di sottodomini con record DNS morti.

Vedi Repository
77613745 anni 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

tko-subs

Questo strumento permette:

  • Verificare se un sottodominio può essere preso in possesso perché ha:

    • un CNAME pendente che punta a un provider CMS (Heroku, Github, Shopify, Amazon S3, Amazon CloudFront, ecc.) che può essere preso in possesso.
    • un CNAME pendente che punta a un nome di dominio inesistente
    • uno o più record NS errati/digitati male che puntano a un nameserver che può essere preso in possesso da un attaccante per ottenere il controllo dei record DNS del sottodominio
  • Prendere effettivamente possesso di quei sottodomini fornendo un flag -takeover. Attualmente, il takeover è supportato solo per Github Pages e Heroku Apps e di default la funzionalità di takeover è disattivata.

  • Specificare i propri provider CMS e verificarli tramite il file providers-data.csv. In quel file, inserirai il nome del CMS, il suo valore CNAME, la stringa che vuoi cercare e se funziona solo su HTTP o meno. Dai un'occhiata per alcuni esempi.

Avvertenza: NON ESSERE UN IDIOTA!

Inutile dirlo, per favore usa questo strumento con molta attenzione. Gli autori non saranno responsabili per eventuali conseguenze. Di default, questo strumento non permette il takeover dei sottodomini. Se vuoi farlo, specifica il flag -takeover.

Prerequisiti

È necessario avere GO installato. Una volta che hai GO, digita per scaricare lo strumento.

go get github.com/anshumanbh/tko-subs

Una volta scaricato lo strumento, digita tko-subs -h.

La prossima cosa da fare è ottenere le seguenti informazioni:

  • Token di accesso personale di Github - Assicurati che questo token abbia i diritti per creare repository, riferimenti, contenuti, ecc. Puoi creare questo token qui - https://github.com/settings/tokens
  • Nome utente e chiave API di Heroku
  • Nome dell'app Heroku - Puoi creare un'app statica su Heroku con ciò che vuoi venga visualizzato nella sua homepage seguendo le istruzioni qui - https://gist.github.com/wh1tney/2ad13aa5fbdd83f6a489. Una volta creata l'app, usa quel nome dell'app nel flag (vedi sotto). Useremo quell'app per prendere possesso del dominio (con il CNAME pendente verso un'altra app Heroku).

NOTA - Hai bisogno di questi valori solo se vuoi prendere possesso dei sottodomini. Di default, non sono richiesti.

Pacchetti Go richiesti per compilare.

root@kitploit:~
go get github.com/bgentry/heroku-go
go get github.com/gocarina/gocsv
go get github.com/google/go-github/github
go get github.com/olekukonko/tablewriter
go get golang.org/x/net/publicsuffix
go get golang.org/x/oauth2
go get github.com/miekg/dns

Come eseguire?

Una volta che hai tutto installato, cd nella directory e digita: tko-subs -domains=domains.txt -data=providers-data.csv -output=output.csv

Se vuoi anche prendere possesso, il comando sarebbe: tko-subs -domains=domains.txt -data=providers-data.csv -output=output.csv -takeover -githubtoken=<github-token> -herokuusername=<heroku-username> -herokuapikey=<heroku-api-key> -herokuappname=<heroku-app-name>

Se vuoi solo controllare un singolo dominio, digita: tko-subs -domain <nome-dominio>

Se vuoi controllare più domini, digita: tko-subs -domain <nome-dominio-1>,<nome-dominio-2>

Di default:

  • il flag domains è impostato su domains.txt
  • il flag data è impostato su providers-data.csv
  • il flag output è impostato su output.csv
  • il flag takeover non è impostato, quindi nessun takeover di default
  • il flag domain NON è impostato, quindi controllerà sempre tutti i domini menzionati nel file domains.txt. Se il flag domain è menzionato, controllerà solo quel dominio e ignorerà il file domains.txt, anche se presente.
  • il flag threads è impostato su 5

Quindi, eseguire semplicemente tko-subs funzionerà con i valori predefiniti sopra menzionati.

Com'è formattato providers-data.csv?

name,cname,string,http

  • name: Il nome del provider (es. github)
  • cname: Il CNAME usato per mappare un sito web al contenuto del provider (es. github.io)
  • string: Il messaggio di errore restituito per un sottodominio non rivendicato (es. "There isn't a GitHub Pages site here")
  • http: Se usare http (non https, che è il default) per connettersi al sito (true/false)

Com'è formattato l'output?

Domain,CNAME,Provider,IsVulnerable,IsTakenOver,Response

  • Domain: Il dominio controllato
  • CNAME: Il CNAME del dominio
  • Provider: Il provider che il dominio è risultato utilizzare
  • IsVulnerable: Se il dominio è risultato vulnerabile o no (true/false)
  • IsTakenOver: Se il dominio è stato preso in possesso o no (true/false)
  • Response: Il messaggio contro cui è stato controllato il sottodominio

Se viene trovato un record DNS morto, Provider viene lasciato vuoto. Se viene trovato un nameserver malfunzionante, Provider e CNAME vengono lasciati vuoti.

Cosa succede sotto il cofano?

Questo itererà su tutti i domini (concorrentemente usando GoRoutines) nel file subdomains.txt e:

  • Verifica se hanno un nameserver autoritativo malfunzionante; se sì, contrassegna quel dominio come vulnerabile.
  • Verifica se hanno record CNAME pendenti (record DNS morti); se sì, contrassegna quel dominio come vulnerabile.
  • Se un sottodominio supera questi due test, prova a fare curl e ottenere una risposta e poi cerca di vedere se quella risposta corrisponde a una qualsiasi delle stringhe dei provider dati menzionate nel file providers-data.csv.
  • Se la risposta corrisponde, contrassegna quel dominio come vulnerabile.
  • Successivamente, a seconda se il flag takeover è menzionato o no, proverà a prendere possesso di quel sottodominio vulnerabile.
  • Ad esempio, per prendere possesso di una Github Page, il codice:
    • Crea un repo
    • Crea un ramo gh-pages in quel repo
    • Carica CNAME e index.html nel ramo gh-pages di quel repo. Qui, CNAME contiene il dominio che deve essere preso in possesso. index.html contiene il testo This domain is temporarily suspended che verrà visualizzato una volta preso possesso del dominio.
  • Similmente, per le app Heroku, il codice:
    • Aggiunge il dominio pendente alla tua app Heroku (di cui fornirai il nome nel file .env)
  • E, questo è tutto!

Lavori Futuri

  • Prendere il nome del CMS e l'espressione regolare dall'utente o dal file .env e poi agganciarli automaticamente allo strumento per essere in grado di trovarli. FATTO
  • Aggiungere takeover per più CMS
  • Aggiungere più provider CMS

Crediti

  • Grazie a Luke Young (@TheBoredEng) per avermi aiutato con la libreria go-github.
  • Grazie a Frans Rosen (@fransrosen) per avermi aiutato a capire i dettagli tecnici necessari per alcuni dei takeover.
  • Grazie a Mohammed Diaa (@mhmdiaa) per aver dedicato del tempo per implementare la funzionalità dei dati dei provider e far funzionare il codice.
  • Grazie a high-stakes per un rinfresco di codice tanto necessario.

Changelog

5/27

  • Aggiunto nuovo Dockerfile riducendo le dimensioni dell'immagine
  • Aggiunto file domains.txt di esempio per testare
  • mhmdiaa ha aggiunto la logica per i takeover di DNS morti. Documentazione aggiornata. Grazie mille!

11/6

  • high-stakes ha inviato una PR con un mucchio di nuovo codice che corregge alcuni bug e rende il codice più pulito

9/22

  • Aggiunto un flag opzionale per controllare un singolo dominio
  • Reso più semplice da installare ed eseguire

6/25

  • Reso il codice molto più veloce implementando goroutine
  • Invece di controllare usando la funzione LookupCNAME dei pacchetti net di Golang, fatto in modo da usare solo dig poiché fornisce anche record DNS morti. Più superficie di attacco!!
Scarica lo strumento