man dig?
Du fragst deinen recursive resolver und der sagt dir "NOTIMP". Dann fragst du den Server, der im SOA Record der Domain steht, also den autoritativen Server für die Domain, und der gibt dir die Antwort.
man dig?
Du fragst deinen recursive resolver und der sagt dir "NOTIMP". Dann fragst du den Server, der im SOA Record der Domain steht, also den autoritativen Server für die Domain, und der gibt dir die Antwort.
Es gibt auch was von Rustiopharm -> mhost
alias host='mhost -q l --all -w'
mhost -q l --all -w netcup.de
∙ SOA: origin NS root-dns.netcup.net., responsible party dnsadmin.netcup.net., serial 16, refresh 8h, retry 2h, expire 14days, negative response TTL 2h expires in 1h 9m 3s (1)
∙ NS: acns02.xaas.systems. expires in 1h 17m 11s (1)
∙ NS: acns05.xaas.systems. expires in 1h 17m 11s (1)
∙ NS: acns03.xaas.systems. expires in 1h 17m 11s (1)
∙ NS: acns04.xaas.systems. expires in 1h 17m 11s (1)
∙ NS: acns01.xaas.systems. expires in 1h 17m 11s (1)
∙ MX: backupmx-fra1.netcup.net. with preference 20 expires in 1h 23m 4s (1)
∙ MX: smtp.netcup.net. with preference 10 expires in 1h 23m 4s (1)
∙ TXT: SPF version=1 expires in 1h 23m 4s (1)
∙ Pass for IPv4 range 212.123.34.96/28
∙ Pass for IPv4 212.123.36.25
∙ Pass for IPv4 188.65.77.204
∙ Pass for IPv6 2a03:4000:0:1::e1aa
∙ Pass for MX records of this domain
∙ Pass for IPv4 range 212.123.41.224/28
∙ Pass for IPv4 45.132.63.68
∙ Pass for include from _spf.hostedemail.com
∙ Fail for all
∙ TXT: site verification for google with XDly02N5dgwwk-oPdSjsfchNFpV-jyDfUl45Vd75NIg expires in 1h 23m 4s (1)
∙ A: 46.38.224.30 expires in 1h 23m 4s (1)
∙ AAAA: 2a03:4000::e01e expires in 1h 23m 4s (1)
∙ 46.38.224.30/32 AS 197540, Prefix 46.38.224.0/20, Net name DE-NETCUP-20101202, Org -, Authority RIPE, Location Nuremberg, DE
∙ 2a03:4000::e01e/128 AS 197540, Prefix 2a03:4000::/32, Net name DE-NETCUP-20101202, Org netcup GmbH, Authority RIPE, Location Nuremberg, DE
Alles anzeigen
Ähnlich wäre auch loo
Geht aber bei netcup.de auch nicht, eventuell hat KB19 recht
geht schon, wenn man den aktuellen NS nimmt.
dig @$(dig +short ns netcup.de | head -1) any netcup.de
man dig?
man dig? => 55.963 => Doku entspricht man ![]()
Nur zur Dokumentation (einem wesentlichen sinnspendenten Grund für ein Forum) hier meine mit Quellen unterlegte Erklärung zu meiner Frage: ![]()
dig domain.tld any liefert alle Einträge eines DNS-Servers (was mein Ziel war)
Ich habe Cloudflare abgefragt.
Cloudflare hat jedoch bereits 2019 ANY aus Sicherheitsgründen gesperrt. Quelle
Das ist gemäß RFC 8482 "legal", auf die Anfrage ANY kann geantwortet werden, muss aber nicht:
Zitat von RFC 8482 - ANY queryThe operator of an authoritative DNS server might choose not to respond to such queries for reasons of local policy, motivated by security, performance, or other reasons.
Cloudflare hat sich für die abweisende Meldung für NOTIMP entschieden, diesen response code findet man z.B. im RFC 2136.
Der Code
dig any netcup.de @`dig +short SOA netcup.de | cut -d' ' -f1`
verschachtelt nun die Anfrage des angefragten DNS-Servers "@server" durch die Abfrage
dig +short SOA netcup.de | cut -d
deren Ergebnis den SOA-Eintrag in Kurzform ausgibt:
root-dns.netcup.net. dnsadmin.netcup.net. 16 28800 7200 1209600 7200
SOA steht nach RFC 1035 für den Start of Authority, also den Beginn der Zone samt E-Mail-Adresse
dnsadmin@netcup.de
cut -d setzt das Leerzeichen ' ' als delimiter und wählt mit -f1 das erste Feld aus.
Somit ergibt sich als Ergebnis dieser Anfrage:
root-dns.netcup.net.
Der gesamte Code (s.o.) funktioniert also nur deshalb, weil netcup in ihrem autoritativen DNS-Server ANY noch nicht gesperrt hat.
Nach RFC 8482 dürfte netcup das deaktivieren, dann hat man wie bei cloudflare keine Liste mehr mit allen Records.
Olivetti => auch die NS (in diesem Beispiel z.B. die acns0x.xaas.systems.) dürfen ANY sperren.
Google verzichtet mit dem 8.8.8.8 noch darauf (darf & könnte das aber jederzeit ändern)
Es bleibt also aus technischer Sicht nur die einzelne Abfrage aller DNS-Records.
Das geht dann auch mit dig.
Mit der Ausgabe meines folgenden Codes bin ich noch nicht zufrieden:
for record in A AAAA CNAME SOA NS HINFO MX TXT WKS PTR; do dig +short $record netcup.de | xargs echo -e $record '\t\t'; done
A 46.38.224.30
AAAA 2a03:4000::e01e
CNAME
SOA root-dns.netcup.net. dnsadmin.netcup.net. 16 28800 7200 1209600 7200
NS acns05.xaas.systems. acns02.xaas.systems. acns01.xaas.systems. acns03.xaas.systems. acns04.xaas.systems.
HINFO
MX 20 backupmx-fra1.netcup.net. 10 smtp.netcup.net.
TXT v=spf1 ip4:212.123.34.96/28 ip4:212.123.36.25 ip4:188.65.77.204 ip6:2a03:4000:0:1::e1aa mx ip4:212.123.41.224/28 ip4:45.132.63.68 include:_spf.hostedemail.com -all google-site-verification=XDly02N5dgwwk-oPdSjsfchNFpV-jyDfUl45Vd75NIg
WKS
PTR
Alles anzeigen
Mit der xargs echo Geschichte bin ich mir überhaupt nicht sicher ob das so gehört.
Da ich kein Softwareenwickler bin, ist mir die Formatierungs-Pipe-Variablen-Verarbeitung hier nicht geläufig.
Bei der Ausgabe gefällt mir nicht, dass die zwei separaten Zeilen der TXT-Records (in diesem Beispiel) zusammengefügt ausgegeben werden. Auch bei den anderen Records hätte ich gerne separate Zeilen.
So würde ich mir das wünschen:
A 46.38.224.30
AAAA 2a03:4000::e01e
CNAME
SOA root-dns.netcup.net. dnsadmin.netcup.net. 16 28800 7200 1209600 7200
NS acns05.xaas.systems.
acns02.xaas.systems.
acns01.xaas.systems.
acns03.xaas.systems.
acns04.xaas.systems.
HINFO
MX 20 backupmx-fra1.netcup.net.
10 smtp.netcup.net.
TXT v=spf1 ip4:212.123.34.96/28 ip4:212.123.36.25 ip4:188.65.77.204 ip6:2a03:4000:0:1::e1aa mx ip4:212.123.41.224/28 ip4:45.132.63.68 include:_spf.hostedemail.com -all
google-site-verification=XDly02N5dgwwk-oPdSjsfchNFpV-jyDfUl45Vd75NIg
WKS
PTR
Alles anzeigen
Ich frag' jetzt aber lieber nicht wie man die Ausgabe "Schönreparieren" kann, sonst bekomme ich nur man echo und man xargs als wertvollen Tipp... ![]()
So würde ich mir das wünschen:
Reicht dir der folgende Befehl nicht aus?
...
;netcup.de. IN ANY
;; ANSWER SECTION:
netcup.de. 7200 IN TXT "google-site-verification=XDly02N5dgwwk-oPdSjsfchNFpV-jyDfUl45Vd75NIg"
netcup.de. 7200 IN TXT "v=spf1 ip4:212.123.34.96/28 ip4:212.123.36.25 ip4:188.65.77.204 ip6:2a03:4000:0:1::e1aa mx ip4:212.123.41.224/28 ip4:45.132.63.68 include:_spf.hostedemail.com -all"
netcup.de. 7200 IN SOA root-dns.netcup.net. dnsadmin.netcup.net. 16 28800 7200 1209600 7200
netcup.de. 7200 IN NS acns04.xaas.systems.
netcup.de. 7200 IN NS acns05.xaas.systems.
netcup.de. 7200 IN NS acns03.xaas.systems.
netcup.de. 7200 IN NS acns02.xaas.systems.
netcup.de. 7200 IN NS acns01.xaas.systems.
netcup.de. 7200 IN MX 10 smtp.netcup.net.
netcup.de. 7200 IN MX 20 backupmx-fra1.netcup.net.
netcup.de. 7200 IN AAAA 2a03:4000::e01e
netcup.de. 7200 IN A 46.38.224.30
...
Alles anzeigen
Denn, alle Records, die du mühsam über deine Schleife versuchst herauszubekommen, gibt dieser Befehl über einen Einzeiler auch schon aus.
Leere Records werden nicht mit ausgegeben.
"Schönreparieren"
domain="${1:-netcup.de}"
types=( a aaaa cname mx txt soa ns hinfo )
max=$(printf '%s\n' "${types[@]}" | wc -L)
printf "%-${max}s\t%s\n" "#" "${domain}"
for type in ${types[@]}; do
while read line; do
printf "%-${max}s\t%s\n" "${type}" "${line}"
type=""
done<<<$(dig +short "${type}" "${domain}")
done
Alles anzeigen
du kannst auch bei echo -e "\t\t" bleiben, solange die längen in der 1. reihe (type: a txt aaa hinfo) tablängengleich, also nicht allzu unterschiedlich bleiben.
ansonsten man printf ![]()
wie ich es mir erhoffte
Wozu denkst du es denn zu brauchen?
Mit any kommt keine Liste aller DNS-Einträge (wie ich es mir erhoffte):
Wie definierst du denn "alle Einträge"?
Die gibt nämlich das obige garnicht aus.
Da fehlt ja z.B. www. oder server. oder cloud. etc.
Das Obige gibt dir nur alle Eintragungstypen eines einzelnen angefragten Hostnamens.
Wozu denkst du es denn zu brauchen?
Wie definierst du denn "alle Einträge"?
Die gibt nämlich das obige garnicht aus.
Da fehlt ja z.B. www. oder server. oder cloud. etc.
Das Obige gibt dir nur alle Eintragungstypen eines einzelnen angefragten Hostnamens.
Geht meines Wissens auch nicht, sonst müssten Pentester keine DNS Enumeration machen, um auf etwaige vergessene Subdomains zu stossen.
[…] DNS Enumeration […]
Stichworte im Kontext: Zone Walking, NSEC3.
Stichworte im Kontext: Zone Walking, NSEC3.
Kannte ich noch gar nicht. Danke!
geht schon, wenn man den aktuellen NS nimmt
Nein, das habe ich ja versucht in meinem Beitrag zum Ausdruck zu bringen.
=> ob ANY funktioniert oder nicht, hängt vom Willen der Admins des verwendete DNS-Servers ab:
Cloudflare unterstützt ANY auf 1.1.1.1 nicht mehr, wie lange Google das bei 8.8.8.8 noch unterstützt und netcup die DNS-Sicherheit (und die Last der Angriffe samt Reflections die damit einhergeht) durch die Sperrung von ANYerhöht, liegt allein bei deren Admins.
Daher bleibe ich bei meiner Feststellung, dass eine garantierte Abrufbarkeit aller DNS-Records seit Verabschiedung des RFC 8482 nur noch einzeln erfolgen kann:
Es bleibt also aus technischer Sicht nur die einzelne Abfrage aller DNS-Records.
Wozu denkst du es denn zu brauchen?
Weil laut Anleitung von dig der Parameter ANY alle Ressource Records zeigt - was inzwischen aber nicht mehr zutrifft (RFC 8482)
Wie definierst du denn "alle Einträge"?
Gar nicht, die wurden bereits im RFC 1035 definiert.
Das Obige gibt dir nur alle Eintragungstypen eines einzelnen angefragten Hostnamens.
Genau, darum geht es, um die Ressource Records. Kann man meiner Eingangsfrage auch so entnehmen.
Nochmal wiederholt => ANY ist nicht mehr zuverlässig verwendbar und die Nutzbarkeit liegt in der Entscheidungsgewalt der DNS-Server-Admins.
Das haben - direkt folgend auf meine Eingangsfrage - KB19 , engine und ASS auch so verstanden:
ich würde vermuten, dass man ANY serverseitig beim Nameserver oder Resolver filtern bzw. ignorieren kann
Geht aber bei netcup.de auch nicht, eventuell hat KB19 recht
Hat er. In meinen NS sind Zonentransfers auch gesperrt.
Reicht dir der folgende Befehl nicht aus?
Nein, weil ich nicht von der individuellen Entscheidung von DNS-Server-Admins abhängig sein will.
ANY ist nicht mehr zuverlässig verwendbar und die Nutzbarkeit liegt in der Entscheidungsgewalt der DNS-Server-Admins.
Das hatte ich in meinem Beitrag versucht strukturiert und mit Quellen hinterlegt zu erarbeiten und darzustellen.
"Schönreparieren"
...du kannst auch bei echo -e "\t\t" bleiben, solange die längen in der 1. reihe (type: a txt aaa hinfo) tablängengleich, also nicht allzu unterschiedlich bleiben...
Danke für den Vorschlag.
Hab ich inzwischen mit meinem Code selbst hinbekommen, mit einer kleinen SED-Wurst, genauso wie ich es mir vorgestellt habe.
Die Ressource Record Abkürzungen sind kürzer als zwei Tabs, sollte sich der RFC 1035 ändern oder ergänzt werden, investiere ich in weitere - kosten ja nix... ![]()
Fazit:
Ziel erreicht, das dig netcup.de any hab ich nun unabhängig vom genutzten DNS-Server meinem Wunsch entsprechend mit Hilfe von Standardsystemtools dig xargs echo sed ersetzt und dabei wieder einiges gelernt (und mir selbst beigebracht, mit Originalquellen und ohne ChatGPT-Rotz) ![]()
A 46.38.224.30
AAAA 2a03:4000::e01e
CNAME -
SOA root-dns.netcup.net. dnsadmin.netcup.net. 16 28800 7200 1209600 7200
NS acns01.xaas.systems.
acns03.xaas.systems.
acns04.xaas.systems.
acns02.xaas.systems.
acns05.xaas.systems.
HINFO -
MX 10 smtp.netcup.net.
20 backupmx-fra1.netcup.net.
TXT google-site-verification=XDly02N5dgwwk-oPdSjsfchNFpV-jyDfUl45Vd75NIg
v=spf1 ip4:212.123.34.96/28 ip4:212.123.36.25 ip4:188.65.77.204 ip6:2a03:4000:0:1::e1aa mx ip4:212.123.41.224/28 ip4:45.132.63.68 include:_spf.hostedemail.com -all
WKS -
PTR -
Alles anzeigen
Du redest immer noch von Resolvern, nicht von autoritativen Servern. Deine Chance, für "any" eine vollständige Antwort zu bekommen, sinkt mit jedem zusätzlichen beteiligten Server. Der Grund, warum es mit dem Codestück funktioniert, ist die direkte Ansprache des Primary Master der Domain. Wenn der die Antwort darauf verweigert, was er darf, aber auch tun könnte, wenn er es nicht dürfte, hat kein Resolver eine Chance. Wenn der die Antwort geben würde, aber dein Resolver dich das nicht abfragen lässt, bekommst du die Antwort nicht. Der Server (und alle möglichen anderen) können dich auch in anderer Hinsicht belügen, was viele auch tun. Du bekommst immer nur die Sicht auf das DNS, die dir der Server geben will. Die Zone kann z.B. auch mit Einzelabfragen von anderen IP-Adressen ganz anders aussehen.
Olivetti => auch die NS (in diesem Beispiel z.B. die acns0x.xaas.systems.) dürfen ANY sperren.
Es bleibt also aus technischer Sicht nur die einzelne Abfrage aller DNS-Records.
seltsame logik – es geht ausschliesslich um die nameserver.
anexia hat ANY nicht gesperrt, deshalb funktioniert es nach wie vor (auch mit netcup.de). wenn sie wollen, dürfen sie natürlich sperren.
und die zuständigen nameserver stehen manchmal nicht im oben verwendeten SOA-record, was ja schon den kardinalfehler darstellt, den hierfür abzufragen.
Nein, weil ich nicht von der individuellen Entscheidung von DNS-Server-Admins abhängig sein will.
ANY ist nicht mehr zuverlässig verwendbar und die Nutzbarkeit liegt in der Entscheidungsgewalt der DNS-Server-Admins.
Das hatte ich in meinem Beitrag versucht strukturiert und mit Quellen hinterlegt zu erarbeiten und darzustellen.
Nein, das habe ich ja versucht in meinem Beitrag zum Ausdruck zu bringen.
=> ob ANY funktioniert oder nicht, hängt vom Willen der Admins des verwendete DNS-Servers ab:
…
Daher bleibe ich bei meiner Feststellung, dass eine garantierte Abrufbarkeit aller DNS-Records seit Verabschiedung des RFC 8482 nur noch einzeln erfolgen kann:
jamei, ich hätte einfach beachten sollen, daß wir hier im Längsten sind… ![]()
...anexia hat ANY nicht gesperrt, deshalb funktioniert es nach wie vor. und wenn sie wollen, dürfen sie natürlich sperren.
so ist das halt im internet – mal geht was, und woanders geht es anders oder einfach überhaupt nicht...
Jetzt ist mir Einiges klarer geworden.
Herzlichen Dank ![]()
Wie haltet ihr bei euren Mailservern/Domains eigentlich die DMARC Settings?
Ich hatte es irgendwann mal eingerichtet und dann vergessen. Lief jetzt lange auf
Fange jetzt langsam an das mal hochzustufen.
Mein Plan ist via Quarantine erst mal in 4 Steps bis zu 100% und danach das gleiche noch mal nur mit reject.
Jede Woche eine Stufe härter mit Monitoring via DMARC(Auge in Englisch).com
Wie haltet ihr bei euren Mailservern/Domains eigentlich die DMARC Settings?
Hab auch erstmal nur mit p=none; gearbeitet, mir aber zeitgleich von https://dmarc.postmarkapp.com/ Reports schicken lassen. Damit habe ich dann recht einfach prüfen könne, ob ich noch irgendeinen Server für SPF vergessen habe und ob irgendeiner noch nicht mit DKIM signiert. Als ich mir dann sicher war, habe ich auf p=reject; gewechselt.
TIL das SAS nicht auf SATA passt 🫠
TIL das SAS nicht auf SATA passt 🫠
Wie viel hat der Fehlkauf gekostet? Oder noch vorher drauf gekommen? ![]()
Wollte fürs NAS eine günstige 3TB Platte. Hab das günstigste auf eBay genommen, waren nur 15€. Könnt ich auch zurück schicken, aber das lohnt sich vom Aufwand her nicht.
TIL das SAS nicht auf SATA passt 🫠
Aber immerhin andersrum ![]()
Ich hab damals als Frischling etwas Geld in den Sand gesetzt, da ich nicht wusste, dass SFP+ nicht in SFP funktioniert, aber andersrum ![]()