Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
tko-subs — Ein Tool, das dabei helfen kann, Subdomains mit toten DNS-Einträgen zu erkennen und zu übernehmen. | Kitploit
Tools/GitHubGitHub/anshumanbh/tko-subs
SchwachstellenanalysePenetrationstestsCloud-SicherheitSubdomain-EnumerationDNS-Analyse
GitHubanshumanbh/tko-subs

tko-subs

Ein Tool, das dabei helfen kann, Subdomains mit toten DNS-Einträgen zu erkennen und zu übernehmen.

Repository anzeigen
7761374vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

tko-subs

Dieses Tool ermöglicht:

  • Zu überprüfen, ob eine Subdomain übernommen werden kann, weil sie hat:

    • einen verwaisten CNAME-Eintrag, der auf einen CMS-Anbieter (Heroku, Github, Shopify, Amazon S3, Amazon CloudFront, etc.) zeigt, der übernommen werden kann.
    • einen verwaisten CNAME-Eintrag, der auf einen nicht existierenden Domainnamen zeigt
    • einen oder mehrere falsche/vertippte NS-Einträge, die auf einen Nameserver zeigen, der von einem Angreifer übernommen werden kann, um die Kontrolle über die DNS-Einträge der Subdomain zu erlangen
  • Diese Subdomains tatsächlich zu übernehmen, indem ein Flag -takeover bereitgestellt wird. Derzeit wird die Übernahme nur für Github Pages und Heroku Apps unterstützt, und standardmäßig ist die Übernahmefunktion deaktiviert.

  • Eigene CMS-Anbieter anzugeben und über die Datei providers-data.csv zu überprüfen. In dieser Datei geben Sie den CMS-Namen, den CNAME-Wert, die Zeichenfolge, nach der Sie suchen möchten, und an, ob es nur über HTTP funktioniert oder nicht. Schauen Sie sich einige Beispiele an.

Haftungsausschluss: SEI KEIN JERK!

Selbstverständlich, bitte verwenden Sie dieses Tool sehr, sehr vorsichtig. Die Autoren übernehmen keine Verantwortung für etwaige Konsequenzen. Standardmäßig erlaubt dieses Tool keine Übernahme von Subdomains. Wenn Sie dies tun möchten, geben Sie einfach das Flag -takeover an.

Voraussetzungen

Wir benötigen eine installierte GO-Umgebung. Sobald Sie GO haben, geben Sie einfach go get github.com/anshumanbh/tko-subs ein, um das Tool herunterzuladen.

Sobald das Tool heruntergeladen ist, geben Sie tko-subs -h ein.

Als nächstes müssen wir die folgenden Informationen besorgen:

  • Github-Personal-Access-Token – Stellen Sie sicher, dass dieses Token die Berechtigung zum Erstellen von Repositories, Referenzen, Inhalten usw. hat. Sie können dieses Token hier erstellen – https://github.com/settings/tokens
  • Heroku-Benutzername und API-Schlüssel
  • Heroku-App-Name – Sie können eine statische App auf Heroku erstellen, die auf ihrer Startseite anzeigt, was Sie möchten, indem Sie den Anweisungen hier folgen – https://gist.github.com/wh1tney/2ad13aa5fbdd83f6a489. Sobald Sie diese App erstellt haben, verwenden Sie diesen App-Namen im Flag (siehe unten). Wir werden diese App verwenden, um die Domain (mit dem verwaisten CNAME auf eine andere Heroku-App) zu übernehmen.

HINWEIS – Diese Werte werden nur benötigt, wenn Sie Subdomains übernehmen möchten. Standardmäßig ist das nicht erforderlich.

Erforderliche Go-Pakete zum Bauen.

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

Wie führe ich es aus?

Sobald alles installiert ist, wechseln Sie mit cd in das Verzeichnis und geben Sie ein: tko-subs -domains=domains.txt -data=providers-data.csv -output=output.csv

Wenn Sie auch übernehmen möchten, lautet der Befehl: 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>

Wenn Sie nur eine einzelne Domain überprüfen möchten, geben Sie ein: tko-subs -domain <domain-name>

Wenn Sie mehrere Domains überprüfen möchten, geben Sie ein: tko-subs -domain <domain-name-1>,<domain-name-2>

Standardmäßig:

  • das domains-Flag ist auf domains.txt gesetzt
  • das data-Flag ist auf providers-data.csv gesetzt
  • das output-Flag ist auf output.csv gesetzt
  • das takeover-Flag ist nicht gesetzt, daher standardmäßig keine Übernahme
  • das domain-Flag ist NICHT gesetzt, daher wird immer nach allen in der domains.txt-Datei genannten Domains gesucht. Wenn das domain-Flag angegeben ist, wird nur diese Domain überprüft und die domains.txt-Datei ignoriert, selbst wenn sie vorhanden ist.
  • das threads-Flag ist auf 5 gesetzt

Wenn Sie also einfach tko-subs ausführen, wird es mit den oben genannten Standardwerten ausgeführt.

Wie ist providers-data.csv formatiert?

name,cname,string,http

  • name: Der Name des Anbieters (z.B. github)
  • cname: Der CNAME, der verwendet wird, um eine Website auf den Inhalt des Anbieters abzubilden (z.B. github.io)
  • string: Die Fehlermeldung, die für eine nicht beanspruchte Subdomain zurückgegeben wird (z.B. "There isn't a GitHub Pages site here")
  • http: Ob http (nicht https, was der Standard ist) zur Verbindung mit der Website verwendet werden soll (true/false)

Wie ist die Ausgabe formatiert?

Domain,CNAME,Provider,IsVulnerable,IsTakenOver,Response

  • Domain: Die überprüfte Domain
  • CNAME: Der CNAME der Domain
  • Provider: Der Anbieter, den die Domain verwendet
  • IsVulnerable: Ob die Domain als verwundbar befunden wurde oder nicht (true/false)
  • IsTakenOver: Ob die Domain übernommen wurde oder nicht (true/false)
  • Response: Die Nachricht, gegen die die Subdomain geprüft wurde

Wenn ein verwaister DNS-Eintrag gefunden wird, bleibt Provider leer. Wenn ein fehlerhafter Nameserver gefunden wird, bleiben Provider und CNAME leer

Was passiert unter der Haube?

Dies wird über alle Domains (gleichzeitig mittels GoRoutines) in der Datei subdomains.txt iterieren und:

  • Prüfen, ob sie einen fehlerhaften autoritativen Nameserver haben; wenn ja, markieren wir diese Domain als verwundbar.
  • Prüfen, ob sie verwaiste CNAME-Einträge (auch tote DNS-Einträge) haben; wenn ja, markieren wir diese Domain als verwundbar.
  • Wenn eine Subdomain diese beiden Tests besteht, versucht sie, diese zu cURLen und eine Antwort zu erhalten, und prüft dann, ob diese Antwort mit einer der im providers-data.csv genannten Datenanbieter-Zeichenfolgen übereinstimmt.
  • Wenn die Antwort übereinstimmt, markieren wir diese Domain als verwundbar.
  • Als nächstes, abhängig davon, ob das takeover-Flag angegeben ist oder nicht, wird versucht, diese verwundbare Subdomain zu übernehmen.
  • Zum Beispiel, um eine Github Page zu übernehmen, wird der Code:
    • Ein Repository erstellen
    • Einen Branch gh-pages in diesem Repository erstellen
    • CNAME und index.html in den gh-pages-Branch dieses Repositories hochladen. Hier enthält CNAME die zu übernehmende Domain. index.html enthält den Text This domain is temporarily suspended, der angezeigt wird, sobald die Domain übernommen wurde.
  • Ähnlich für Heroku-Apps wird der Code:
    • Die verwaiste Domain zu Ihrer Heroku-App hinzufügen (deren Namen Sie in der .env-Datei angeben werden)
  • Und das war's!

Zukünftige Arbeiten

  • CMS-Name und Regex vom Benutzer oder aus der .env-Datei übernehmen und dann automatisch in das Tool einhängen, um sie finden zu können. ERLEDIGT
  • Übernahmen für weitere CMS hinzufügen
  • Weitere CMS-Anbieter hinzufügen

Danksagungen

  • Danke an Luke Young (@TheBoredEng) für die Hilfe mit der go-github-Bibliothek.
  • Danke an Frans Rosen (@fransrosen) für das Verständnis der technischen Details, die für einige der Übernahmen erforderlich sind.
  • Danke an Mohammed Diaa (@mhmdiaa) für die Zeit, die er in die Implementierung der Providerdaten-Funktionalität und das Laufen des Codes investiert hat.
  • Danke an high-stakes für eine dringend benötigte Code-Auffrischung.

Änderungsprotokoll

5/27

  • Neues Dockerfile hinzugefügt, um die Größe des Images zu reduzieren
  • Beispieldatei domains.txt zum Testen hinzugefügt
  • mhmdiaa hat die Logik für tote DNS-Übernahmen hinzugefügt. Dokumentation aktualisiert. Vielen Dank!

11/6

  • high-stakes hat einen PR mit einer Menge neuem Code erstellt, der einige Fehler behebt und den Code sauberer macht

9/22

  • Optionales Flag zur Überprüfung einer einzelnen Domain hinzugefügt
  • Installation und Ausführung erleichtert

6/25

  • Code durch Implementierung von Goroutinen viel schneller gemacht
  • Anstatt mit der LookupCNAME-Funktion von Golangs net-Paketen zu prüfen, wurde es so geändert, dass nur Dig verwendet wird, da dies auch tote DNS-Einträge liefert. Mehr Angriffsfläche!!
Tool herunterladen