From 6444a814b05317335d552f3e572d3f3a5df9c5d3 Mon Sep 17 00:00:00 2001 From: peignerpausz Date: Thu, 20 Aug 2026 14:10:03 +0200 Subject: [PATCH] Improved domainchecker.sh (non-interactive and interactive), various addendums to the documentation. --- domaintools/README.md | 70 ++++++++++++++++++ domaintools/domainchecker/domainchecker.sh | 86 +++++++++++++++------- domaintools/histodomain/README.md | 5 +- 3 files changed, 130 insertions(+), 31 deletions(-) create mode 100644 domaintools/README.md diff --git a/domaintools/README.md b/domaintools/README.md new file mode 100644 index 0000000..1d5f396 --- /dev/null +++ b/domaintools/README.md @@ -0,0 +1,70 @@ +# Domain Tools + +Sammlung von Bash-Skripten für diversen Abfragen zu Domains. Enthält Tools zur Massenabfrage von DNS-Einträgen sowie zur Anzeige historischer DNS-Einträge. + +--- + +### Inhaltsverzeichnis + +- [Übersicht](#Übersicht) +- [Enthaltene Tools](#enthaltene-Tools) +- [Voraussetzungen](#Voraussetzungen) +- [Lizenz/Sichtbarkeit](#lizenz--sichtbarkeit) + +--- + +## Übersicht + +****** + +--- + +## enthaltene Tools + +### [`domainchecker`](./domainchecker/) +Tool zur dig-Massenabfrage von Domains und DNS-Records. + +- [Dokumentation & Beispiele](./domainchecker/README.md) + +### [`histodomain`](./histodomain/) +Abfrage zu historischen DNS-Einträgen über die Securitytrails-API. + +- [Dokumentation & Beispiele](./histodomain/README.md) + +--- + +## Voraussetzungen + +### generelle Voraussetzungen +- kann auch von außerhalb der Connect genutzt werden, sofern eine lokale `bash` verwendbar ist +- **Kerberos-Setup**: Funktionierende Kerberos-Konfiguration +- **SSH-Zugriff**: Berechtigungen für easyname-Infrastruktur + +### Setup-Anleitung + +1. Kerberos-Ticket erstellen: + ```bash + kinit deinusername@NESSUS.AT + # oder mit go-Tool: + go kinit + ``` + +2. Tool in PATH hinzufügen oder Alias erstellen: + ```bash + # Option 1: Alias + alias domainchecker="/pfad/zu/domaintools/domainchecker/domainchecker.sh" + + # Option 2: Symlink + ln -s /pfad/zu/domaintools/domainchecker/domainchecker.sh ~/bin/domainchecker + ``` + +--- + +## Lizenz / Sichtbarkeit + +> Dieses Repository ist **intern** für easyname Support. +> Falls eine Freigabe nach extern geplant ist, bitte vorab mit Teamleitung abklären. + +--- + +*Diese Tools wurden mit Hilfe von Microsoft Copilot erstellt.* diff --git a/domaintools/domainchecker/domainchecker.sh b/domaintools/domainchecker/domainchecker.sh index f8cbf44..b4caafe 100644 --- a/domaintools/domainchecker/domainchecker.sh +++ b/domaintools/domainchecker/domainchecker.sh @@ -3,38 +3,68 @@ # Maintainer: peignerpausz # Version: 1.2 -set -eou pipefail +set -eo pipefail +declare -a DOMAINS=() +declare -a RECORDS=() + usage() { cat < Welche Domains sollen gesucht werden? - > domain1.tld domain2.tld domain3.tld ... - > Welcher Record soll untersucht werden? - > A/AAAA/MX/TXT/SOA/NS/... + Verwendung: + $0 [OPTIONEN] + Oder interaktiv: $0 + + Optionen: + -d, --domains DOMAIN [DOMAINS...] + Zu prüfende Domains + -r, --records RECORD [RECORDS...] + Zu prüfende DNS-Records, z.B. A MX TXT + -h, --help + Diese Hilfe anzeigen + + Beispiele: + $0 -d domain1.tld domain2.tld -r MX TXT + + $0 --domains domain1.tld domain2.tld --records MX TXT USAGE } -echo "Welche Domains sollen gesucht werden? " -read DOMAINS -if [[ -z "$DOMAINS" ]]; then - { - echo -e "Fehler: Bitte Domains einfügen. \n" >&2 +while [[ $# -gt 0 ]]; do + case "$1" in + -d | --domains) + shift + while [[ $# -gt 0 && "$1" != -* ]]; do + DOMAINS+=("$1") + shift + done + ;; + -r | --records) + shift + while [[ $# -gt 0 && "$1" != -* ]]; do + RECORDS+=("$1") + shift + done + ;; + -h | --help) usage - exit 1 - } -fi -echo "Welcher Record soll untersucht werden? " -read RECORD -if [[ -z "$RECORD" ]]; then - { - echo -e "Fehler: Bitte Record einsetzen. \n" >&2 - usage - exit 1 - } -fi -printf "\n" -for a in $DOMAINS; do - checker=$(dig +short $RECORD $a) - printf "+++Suchergebnisse für %s+++ \n%s\n %s\n====\n" "$a" "$checker" + exit 0 + ;; + esac +done + +[[ ${#DOMAINS[@]} -eq 0 ]] && read -ra DOMAINS -p "Welche Domains sollen gesucht werden? " DOMAINS +[[ ${#RECORDS[@]} -eq 0 ]] && read -ra RECORDS -p "Welcher Records sollen gesucht werden? " + +for domain in "${DOMAINS[@]}"; do + printf "\n==== %s ====\n" "$domain" + for record in "${RECORDS[@]}"; do + printf "++++ %s ++++\n" "$record" + + result=$(dig +short "$record" "$domain") + if [[ -n "$result" ]]; then + printf "%s" "$result" + else + printf "Keine Einträge gefunden." + fi + echo + done done diff --git a/domaintools/histodomain/README.md b/domaintools/histodomain/README.md index cb62721..e15ad81 100644 --- a/domaintools/histodomain/README.md +++ b/domaintools/histodomain/README.md @@ -1,4 +1,4 @@ -# +# histodomain - historische DNS-Abfragen Skript zur schnellen Abfrage historischer Domain-Records im json-Format. Zur Abfrage wird ein API-Key von Securitytrails.com benötigt. @@ -61,7 +61,7 @@ histodomain > a > API-Key für Securitytrails angeben: ``` -``` + --- ## Setup-Hinweise @@ -78,4 +78,3 @@ alias ='~/pfad/zum/repo/domaintools/histodomain/histodomain.sh' - Free-Version von Securitytrails ermöglicht bis zu 50 kostenlose Abpfragen über die API/Monat - To-Do - Non-interaktive Version bauen -