
Forensische Triage von DNS-Cache-Poisoning bei Legacy-Hardware. Beinhaltet PCAP-Analyse von 839-Byte unaufgeforderten Record-Injektionen, CVE-2025-40778-Zuordnung und Behebung durch gehärteten Unbound (DoT) auf Arch Linux.
Eine lehrreiche Übung zur Paketanalyse und Resolver-Härtung, durchgeführt auf einer Arch-Linux-Workstation.
Umfang: Dieses Repository ist ein Lernprojekt. Der enthaltene Mitschnitt ist nützlich, um DNS- und ARP-Inspektion zu üben, beweist aber für sich genommen keinen aktiven Cache-Poisoning-Angriff, keine bösartige Hardware, keine Ausnutzung einer bestimmten CVE und keinen kausalen Zusammenhang mit einer NetworkManager-Routingmetrik.
Mein erster Bericht behandelte mehrere Beobachtungen als bestätigte Ursachen. Das war zu stark. Ein DNS-Frame mit 839 Bytes ist nicht automatisch fehlerhaft oder bösartig, und DNS-over-TLS schützt den DNS-Verkehr zum konfigurierten Upstream-Resolver – es stoppt ARP-Spoofing oder jeden Layer-2/3-Angriff nicht.
Die überarbeitete Version behält die nützlichen Teile des Labs und trennt:
Diese Unterscheidung ist Teil guter Vorfallsarbeit. Es ist besser, eine Schlussfolgerung einzugrenzen, als mehr zu behaupten als die Beweise stützen.
tshark untersuchen.tsharkdigDie genauen Paketversionen sollten aufgezeichnet werden, wenn das Lab erneut durchgeführt wird. Das aktuelle Repository enthält nicht genügend Versionsmetadaten, um den Verkehr einer Produktschwachstelle zuzuordnen.
sha256sum evidence/incident_triage_snippet.pcap
capinfos evidence/incident_triage_snippet.pcap
Speichern Sie den Hash und die Mitschnitt-Metadaten mit Ihren Notizen. Nennen Sie den Mitschnitt nicht „vollständige Vorfallsbeweise“; es ist ein Ausschnitt.
tshark -r evidence/incident_triage_snippet.pcap -Y arp \
-T fields -e frame.number -e frame.time_relative \
-e arp.opcode -e arp.src.proto_ipv4 -e arp.src.hw_mac \
-e arp.dst.proto_ipv4 -e arp.dst.hw_mac
Achten Sie auf wiederholte oder widersprüchliche IP-zu-MAC-Angaben. Ein Konflikt ist ein Hinweis zur Untersuchung, kein automatischer Beweis für einen Angreifer. Überprüfen Sie, ob die Adressen synthetische Laborwerte sind, ob ein Gerät sich legitimerweise geändert hat und ob der Zeitpunkt die Hypothese stützt.
tshark -r evidence/incident_triage_snippet.pcap -Y dns \
-T fields -e frame.number -e frame.time_relative \
-e ip.src -e ip.dst -e udp.srcport -e udp.dstport \
-e dns.id -e dns.flags.response -e dns.qry.name \
-e dns.count.answers -e frame.len
Nützliche Folgefilter:
dns && frame.len == 839
dns.flags.response == 1
dns.qry.name == "."
arp.duplicate-address-detected || arp.duplicate-address-frame
Die Paketgröße allein ist kein Urteil. DNS-Antwortgrößen können aufgrund der Anzahl der Einträge, EDNS, DNSSEC und des Transportverhaltens variieren. Untersuchen Sie die decodierten Einträge und vergleichen Sie sie mit einer bekannten guten Basislinie.
chmod +x scripts/checkdns.sh
./scripts/checkdns.sh example.com
Das Skript kennzeichnet eine direkte dig @1.1.1.1-Abfrage korrekt als Klartext-DNS auf Port 53. Wenn kdig verfügbar ist, führt es auch einen separaten TLS-Test durch.
Überprüfen Sie configs/unbound.conf, passen Sie die Zertifikatspfade für das lokale System an und validieren Sie vor der Verwendung:
sudo unbound-checkconf configs/unbound.conf
sudo ss -tnp | grep ':853'
dig @127.0.0.1 example.com
Eine erfolgreiche Abfrage plus eine hergestellte Verbindung zu TCP/853 unterstützt die engere Schlussfolgerung, dass Unbound an den konfigurierten Upstream über TLS weiterleitet. Es beweist nicht, dass ein nicht damit zusammenhängendes ARP- oder Routing-Problem beseitigt wurde.
Verwenden Sie Paketmitschnitt- und Netzwerktest-Tools nur auf Systemen und Netzwerken, die Sie besitzen oder zu deren Test Sie berechtigt sind. Überprüfen Sie Mitschnitte auf private Adressen, Hostnamen, Tokens, Anmeldeinformationen und personenbezogene Daten, bevor Sie sie veröffentlichen.
| Pfad | Zweck |
|---|
evidence/incident_triage_snippet.pcap | Kleiner Paketmitschnitt, der für die DNS/ARP-Inspektion verwendet wird |
evidence/wireshark_anomoly.png | Alter Screenshot-Dateiname, aus Repository-Verlauf beibehalten; anomaly ist die korrekte Schreibweise |
reports/ANALYSIS.md | Evidenzbasierte Überprüfung und Einschränkungen |
scripts/checkdns.sh | Vergleicht Resolver-Ausgabe und kennzeichnet Transport deutlich |
configs/unbound.conf | Beispiel für Unbound-Weiterleitungskonfiguration mit DNS-over-TLS |
logs/remediation_validation.txt | Beispiel-Validierungsausgabe mit korrigierten Schlussfolgerungen |
CVE_RESEARCH.md | Erklärt, warum die verfügbaren Beweise keine CVE-Zuordnung unterstützen |