# Domain Analyzer 🔍 Ein umfassendes Python-Tool zur Analyse von Domains und Mailservern. Findet heraus, wer wirklich hinter einer Domain steckt! ## Features ✅ **DNS-Analyse**: Alle wichtigen DNS-Records (A, AAAA, MX, NS, TXT, SOA, CAA, CNAME) ✅ **WHOIS-Informationen**: Automatische Erkennung von Subdomains und Prüfung der Hauptdomain ✅ **IP-Analyse**: Reverse DNS, ASN, Organisation, Geolocation ✅ **Email-Sicherheit**: SPF, DMARC, DKIM-Checks ✅ **Port-Scanning**: Erkennung offener Ports und Services ✅ **SSL/TLS-Zertifikate**: Aussteller, Gültigkeit, SANs ✅ **HTTP-Analyse**: Server-Informationen und Security-Headers ✅ **Subdomain-Enumeration**: Findet häufige Subdomains ✅ **Multi-Domain-Support**: Analysiere mehrere Domains gleichzeitig ✅ **Inhaber-Identifikation**: Klare Anzeige wer für die Domain verantwortlich ist ## Installation ### Arch Linux ```bash # System-Pakete sudo pacman -S whois # Python-Pakete pip install -r requirements.txt --break-system-packages ``` ### Debian/Ubuntu ```bash # System-Pakete sudo apt install whois # Python-Pakete pip install -r requirements.txt ``` ### Andere Systeme ```bash # Python-Pakete pip install dnspython requests ``` ## Verwendung ### Einzelne Domain analysieren ```bash python3 domain_analyzer.py example.com ``` ### Mehrere Domains analysieren ```bash # Als Argumente python3 domain_analyzer.py example.com google.com github.com # Aus Datei (eine Domain pro Zeile) python3 domain_analyzer.py -f domains.txt # Mit Verzögerung zwischen Domains (empfohlen bei vielen Domains) python3 domain_analyzer.py -f domains.txt --delay 2.0 ``` ### Ergebnisse speichern ```bash # Einzelne Domain als JSON python3 domain_analyzer.py example.com -o result.json # Mehrere Domains in separaten JSON-Dateien python3 domain_analyzer.py -f domains.txt --output-dir results/ ``` ### Weitere Optionen ```bash # Ohne Farben (für Logs/Pipes) python3 domain_analyzer.py example.com --no-color # Hilfe anzeigen python3 domain_analyzer.py --help ``` ## Domain-Datei Format Erstelle eine Textdatei mit einer Domain pro Zeile: ```txt example.com google.com github.com # Kommentare werden ignoriert subdomain.example.com ``` ## Beispiel-Output ``` ================================================================================ DOMAIN ANALYSE: secure-tinyurl.com ================================================================================ [*] DNS Records ├─ A: 1 Record(s) 178.22.63.44 ├─ MX: 2 Record(s) 10 mail.example.com 20 mail2.example.com [*] WHOIS Information ├─ Registrant Organization: Awaretrain b.v. ├─ Registrant Country: NL ├─ Registrar: Hosting Concepts B.V. ├─ Creation Date: 2018-06-15 ├─ Expiration Date: 2026-06-15 ================================================================================ 🔍 DOMAIN-INHABER ================================================================================ ✓ Organisation: Awaretrain b.v. ├─ Land: NL ├─ Registrar: Hosting Concepts B.V. [*] Email-Sicherheit ⚠ SPF: Nicht gefunden! ✓ DMARC: Vorhanden ✓ DKIM: default, google [*] Port-Scan (häufige Ports) ✓ Port 80 (HTTP): OFFEN ✓ Port 443 (HTTPS): OFFEN [*] SSL/TLS-Zertifikate ├─ Port 443: Zertifikat gefunden Aussteller: Let's Encrypt Gültig bis: 2025-02-15 ================================================================================ 📋 ZUSAMMENFASSUNG VERANTWORTLICHKEIT ================================================================================ ✓ Domain-Inhaber: Awaretrain b.v. ├─ Registrar: Hosting Concepts B.V. ├─ Hosting: BIT BV ``` ## Besondere Features ### Subdomain-Handling Das Tool erkennt automatisch wenn eine Subdomain eingegeben wird und prüft die WHOIS-Informationen der Hauptdomain: ```bash # Analysiert jtl-software.secure-tinyurl.com # Prüft aber WHOIS von secure-tinyurl.com python3 domain_analyzer.py jtl-software.secure-tinyurl.com ``` ### Umfassende Inhaber-Recherche Das Tool kombiniert verschiedene Quellen um den Inhaber zu identifizieren: - WHOIS-Daten (Registrant Organization/Name) - ASN/IP-Informationen (Hosting-Provider) - Nameserver-Besitzer - SSL-Zertifikat-Informationen ### JSON-Export Alle Ergebnisse können als strukturiertes JSON exportiert werden für weitere Verarbeitung: ```json { "domain": "example.com", "timestamp": "2025-11-28T10:30:00", "dns": { "A": ["93.184.216.34"], "MX": ["10 mail.example.com"] }, "whois": { "registrant_organization": ["Example Inc."], "registrar": ["Example Registrar"] }, "ips": [...], "ports": {...}, "ssl_certificates": [...], "email_security": {...} } ``` ## Häufig gescannte Ports Das Tool prüft folgende Ports: | Port | Service | |------|---------| | 21 | FTP | | 22 | SSH | | 25 | SMTP | | 53 | DNS | | 80 | HTTP | | 110 | POP3 | | 143 | IMAP | | 443 | HTTPS | | 465 | SMTPS | | 587 | SMTP Submission | | 993 | IMAPS | | 995 | POP3S | | 3306 | MySQL | | 3389 | RDP | | 5432 | PostgreSQL | | 8080 | HTTP-Alt | | 8443 | HTTPS-Alt | ## Email-Sicherheits-Checks ### SPF (Sender Policy Framework) Prüft ob die Domain einen SPF-Record hat, der angibt welche Server berechtigt sind Emails zu senden. ### DMARC (Domain-based Message Authentication) Prüft die DMARC-Policy der Domain für Email-Authentifizierung. ### DKIM (DomainKeys Identified Mail) Testet häufige DKIM-Selektoren: `default`, `google`, `k1`, `k2`, `selector1`, `selector2`, `mail`, `dkim` ## Tipps & Best Practices ### Rate-Limiting vermeiden Bei der Analyse vieler Domains solltest du eine Verzögerung einbauen: ```bash python3 domain_analyzer.py -f domains.txt --delay 2.0 ``` ### Privacy Protection Viele Domains verwenden WHOIS Privacy Protection. In diesen Fällen wird "REDACTED FOR PRIVACY" angezeigt. Das Tool filtert diese automatisch heraus und zeigt nur verfügbare Informationen an. ### Subdomain-Enumeration Das Tool testet nur häufige Subdomains. Für umfassende Subdomain-Enumeration empfehlen sich spezialisierte Tools wie: - `sublist3r` - `amass` - `subfinder` ### Ergänzende Tools Für noch detailliertere Analysen können folgende Tools ergänzend verwendet werden: - `nmap` - Umfassenderer Port-Scan - `testssl.sh` - Detaillierte SSL/TLS-Analyse - `dig` - Manuelle DNS-Abfragen - `mxtoolbox.com` - Online-Tools für Email-Server-Tests ## Troubleshooting ### WHOIS-Fehler **Problem**: "WHOIS-Abfrage fehlgeschlagen" **Lösung**: ```bash # Prüfe ob whois installiert ist which whois # Falls nicht, installieren: sudo pacman -S whois # Arch sudo apt install whois # Debian/Ubuntu ``` ### DNS-Fehler **Problem**: "NXDOMAIN" - Domain existiert nicht **Lösung**: Prüfe die Schreibweise der Domain. Keine `http://` oder `https://` verwenden, nur die Domain selbst. ### Timeout-Fehler **Problem**: Timeouts bei Port-Scans oder WHOIS-Abfragen **Lösung**: - Prüfe deine Internetverbindung - Manche Domains/IPs blockieren Port-Scans - Erhöhe die Verzögerung mit `--delay` ### Import-Fehler **Problem**: `ModuleNotFoundError: No module named 'dns'` **Lösung**: ```bash pip install dnspython requests --break-system-packages ``` ## Rechtliche Hinweise ⚠️ **Wichtig**: - Verwende dieses Tool nur für Domains, für die du berechtigt bist - Respektiere die Nutzungsbedingungen von WHOIS-Servern - Exzessive Abfragen können zu IP-Blocks führen - Port-Scanning ohne Erlaubnis kann rechtliche Konsequenzen haben - Dieses Tool dient der Informationsbeschaffung für legitime Zwecke (Sicherheitsanalyse eigener Domains, Due Diligence, etc.) ## Lizenz MIT License - Siehe LICENSE Datei für Details ## Beiträge Pull Requests sind willkommen! Für größere Änderungen öffne bitte zuerst ein Issue um zu diskutieren was du ändern möchtest. ## Support Bei Problemen oder Fragen öffne ein Issue auf GitHub. ## Changelog ### Version 1.0.0 (2025-11-28) - Initiales Release - DNS-Analyse - WHOIS-Integration mit automatischer Hauptdomain-Erkennung - IP-Analyse mit ASN-Lookup - Email-Sicherheitschecks (SPF, DMARC, DKIM) - Port-Scanning - SSL/TLS-Zertifikat-Analyse - HTTP-Header-Analyse - Subdomain-Enumeration - Multi-Domain-Support - JSON-Export - Farbiger Terminal-Output --- **Autor**: Erstellt mit Claude **Sprache**: Python 3.7+ **Abhängigkeiten**: dnspython, requests, whois (system package)