
Ein praktischer DNS-Dienst, geschrieben in Go, der bei der Erkennung mehrerer Arten von blinden Schwachstellen hilft. Er überwacht den Server eines Pentesters auf Out-of-Band-DNS-Interaktionen und sendet Lookup-Benachrichtigungen über Slack.
Ein praktischer DNS-Dienst, geschrieben in Go, um die Erkennung mehrerer Arten von blinden Schwachstellen zu unterstützen. Er überwacht den Server eines Pentesters auf Out-of-Band-DNS-Interaktionen und sendet Benachrichtigungen mit den Details der empfangenen Anfrage über Slack. DNSObserver kann Ihnen helfen, Fehler wie blinde OS-Befehlsinjektion, blinde SQLi, blinde XXE und viele mehr zu finden!

Eine ausführlichere Übersicht und Setup-Anleitungen finden Sie unter:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
Was Sie benötigen:
Wenn Sie noch keinen VPS zur Verfügung haben, erstellen Sie einen neuen Linux-VPS bei Ihrem bevorzugten Anbieter. Notieren Sie sich seine öffentliche IP-Adresse.
Registrieren Sie einen neuen Domainnamen bei Ihrem bevorzugten Registrar – jeder Registrar sollte in Ordnung sein, solange er das Festlegen eigener Nameserver und Glue Records ermöglicht.
Gehen Sie zu den DNS-Einstellungen Ihrer neuen Domain und suchen Sie den Bereich „Glue Records“. Fügen Sie hier zwei Einträge hinzu, einen für jeden neuen Nameserver, und geben Sie beiden die öffentliche IP-Adresse Ihres VPS.
Ändern Sie als nächstes die Standard-Nameserver zu:
ns1.<IHRE-DOMAIN>
ns2.<IHRE-DOMAIN>
SSH auf Ihren VPS und führen Sie diese Schritte aus:
Installieren Sie Go, falls noch nicht geschehen. Installationsanweisungen finden Sie hier
Stellen Sie sicher, dass die Standard-DNS-Ports geöffnet sind – 53/UDP und 53/TCP. Führen Sie aus:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
Holen Sie sich DNSObserver und seine Abhängigkeiten:
go get github.com/allyomalley/dnsobserver/...
Es gibt zwei erforderliche Argumente und zwei optionale Argumente:
domain [ERFORDERLICH]
Ihr neuer Domainname.
ip [ERFORDERLICH]
Die öffentliche IP-Adresse Ihres VPS.
webhook [Optional]
Wenn Sie Benachrichtigungen erhalten möchten, geben Sie Ihre Slack-Webhook-URL an. Sie werden über alle Lookups Ihrer Domain oder von Subdomains Ihrer Domain benachrichtigt (ich habe Benachrichtigungen für Abfragen anderer Apex-Domains und Ihrer benutzerdefinierten Nameserver ausgeschlossen, um übermäßige oder zufällige Benachrichtigungen zu vermeiden). Wenn Sie keinen Webhook angeben, werden Interaktionen stattdessen in der Standardausgabe protokolliert. Anleitungen zum Einrichten von Webhooks finden Sie hier.
recordsFile [Optional]
Standardmäßig antwortet DNSObserver nur mit einer Antwort auf Anfragen nach Ihrer Domain oder einem ihrer Nameserver. Für jeden anderen Host benachrichtigt es Sie dennoch über die Interaktion (solange es Ihre Domain oder eine Subdomain ist), sendet aber eine leere Antwort zurück. Wenn Sie möchten, dass DNSObserver auf A-Lookups für bestimmte Hosts mit einer Adresse antwortet, können Sie entweder die in diesem Projekt enthaltene config.yml-Datei bearbeiten oder Ihre eigene basierend auf dieser Vorlage erstellen:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
Derzeit verwendet das Tool nur A-Einträge – in Zukunft werde ich möglicherweise CNAME, AAAA usw. hinzufügen. Hier ist ein Beispiel einer vollständigen benutzerdefinierten Records-Datei:
a_records:
- hostname: "google.com"
ip: "1.2.3.4"
- hostname: "github.com"
ip: "5.6.7.8"
Diese Einstellungen bedeuten, dass ich auf Anfragen nach 'google.com' mit '1.2.3.4' und auf Anfragen nach 'github.com' mit '5.6.7.8' antworten möchte.
Jetzt sind wir bereit, zuzuhören! Wenn Sie während des DNSObserver-Laufs andere Arbeiten auf Ihrem VPS erledigen möchten, starten Sie zuerst eine neue tmux-Sitzung.
Für das Standard-Setup übergeben Sie die erforderlichen Argumente und Ihren Webhook:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX
Um das Obige zu erreichen, aber auch einige benutzerdefinierte A-Lookup-Antworten hinzuzufügen, fügen Sie das Argument für Ihre Records-Datei hinzu:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX --recordsFile my_records.yml
Angenommen, Sie haben alles korrekt eingerichtet, sollte DNSObserver jetzt laufen. Um zu überprüfen, ob es funktioniert, öffnen Sie ein Terminal auf Ihrem Desktop und führen Sie einen Lookup Ihrer neuen Domain (in dieser Demo 'example.com') durch:
dig example.com
Sie sollten jetzt eine Slack-Benachrichtigung mit den Details der Anfrage erhalten!