Osint reconnaissance tools
Diese Anleitung behandelt die wichtigsten Tools zur Netzwerk-Aufklärung und Open Source Intelligence (OSINT). Diese Werkzeuge werden von Sicherheitsforschern, Penetrationstestern und IT-Administratoren verwendet, um die eigene Infrastruktur zu überprüfen und potenzielle Schwachstellen zu identifizieren.
Rechtlicher Hinweis: Die Nutzung dieser Tools gegen Systeme ohne ausdrückliche Genehmigung ist in Deutschland nach §202a-c StGB strafbar. Verwende diese Werkzeuge ausschließlich für autorisierte Sicherheitsüberprüfungen, Forschungszwecke oder zur Analyse deiner eigenen Infrastruktur.
Shodan – Die Suchmaschine für das Internet der Dinge
Überblick
Shodan ist eine Suchmaschine, die das Internet nach verbundenen Geräten durchsucht. Im Gegensatz zu Google, das Webseiten-Inhalte indexiert, sammelt Shodan Metadaten von Diensten wie HTTP, FTP, SSH, Telnet, SNMP und vielen weiteren Protokollen.
Grundlegende Nutzung
Die Web-Oberfläche erreichst du unter shodan.io. Nach der kostenlosen Registrierung erhältst du Zugang zu grundlegenden Suchfunktionen.
Einfache Suchanfragen
# Suche nach Apache-Webservern
apache
# Suche nach einem bestimmten Produkt
product:nginx
# Suche nach einem Port
port:22
# Suche nach einem Betriebssystem
os:"Windows Server 2019"
Filter und Operatoren
| Filter | Beschreibung | Beispiel |
|---|---|---|
country: |
Filtert nach Ländercode (ISO 3166-1) | country:DE |
city: |
Filtert nach Stadt | city:"Berlin" |
org: |
Filtert nach Organisation/ISP | org:"Deutsche Telekom" |
hostname: |
Filtert nach Hostname | hostname:.de |
net: |
Filtert nach IP-Bereich (CIDR) | net:192.168.0.0/16 |
port: |
Filtert nach offenem Port | port:3389 |
before: / after: |
Zeitliche Eingrenzung | after:01/01/2024 |
has_screenshot:true |
Nur Ergebnisse mit Screenshot | has_screenshot:true port:5900 |
vuln: |
Suche nach CVE (kostenpflichtig) | vuln:CVE-2021-44228 |
ssl: |
SSL-Zertifikatsinformationen | ssl:"Let's Encrypt" |
http.title: |
HTML-Seitentitel | http.title:"Dashboard" |
Komplexe Suchanfragen
# Webcams in Deutschland
country:DE port:554 has_screenshot:true
# Ungesicherte MongoDB-Datenbanken
product:MongoDB port:27017 -authentication
# Industriesteuerungen (SCADA/ICS)
port:502 country:DE
# Router mit Standard-Login-Seite
http.title:"Router" country:DE port:80
# Elasticsearch-Cluster ohne Authentifizierung
product:Elastic port:9200 "cluster_name"
# RDP-Server mit BlueKeep-Schwachstelle (kostenpflichtig)
vuln:CVE-2019-0708
Shodan CLI
Das Kommandozeilen-Tool bietet erweiterte Funktionen für Automatisierung und Scripting.
Installation
# Installation via pip
pip install shodan
# API-Key konfigurieren (von account.shodan.io)
shodan init DEIN_API_KEY
Wichtige Befehle
# Informationen zu einer IP-Adresse abrufen
shodan host 8.8.8.8
# Suche durchführen
shodan search "apache country:DE" --limit 100
# Ergebnisse als JSON exportieren
shodan search "nginx" --limit 1000 -O ergebnisse.json.gz
# Download von Ergebnissen (mit Credits)
shodan download ergebnisse "apache country:DE"
# Statistiken zu einer Suche
shodan stats "port:22 country:DE"
# Eigene öffentliche IP analysieren
shodan myip
# Echtzeit-Stream (Enterprise)
shodan stream --ports 22,80,443
Shodan API mit Python
import shodan
# API initialisieren
api = shodan.Shodan('DEIN_API_KEY')
# Host-Informationen abrufen
def host_info(ip):
try:
host = api.host(ip)
print(f"IP: {host['ip_str']}")
print(f"Organisation: {host.get('org', 'n/a')}")
print(f"Betriebssystem: {host.get('os', 'n/a')}")
print(f"Offene Ports: {host['ports']}")
for item in host['data']:
print(f"\nPort: {item['port']}")
print(f"Banner: {item['data'][:200]}")
except shodan.APIError as e:
print(f"Fehler: {e}")
# Suche durchführen
def search_shodan(query):
try:
results = api.search(query)
print(f"Gefundene Ergebnisse: {results['total']}")
for result in results['matches']:
print(f"{result['ip_str']}:{result['port']}")
print(f" → {result.get('product', 'Unbekannt')}")
except shodan.APIError as e:
print(f"Fehler: {e}")
# Beispielaufrufe
host_info('1.1.1.1')
search_shodan('apache country:DE')
Censys – Akademische Netzwerk-Suchmaschine
Überblick
Censys wurde an der University of Michigan entwickelt und scannt das gesamte IPv4-Internet regelmäßig. Es bietet detaillierte Einblicke in Hosts, Zertifikate und Websites mit einem Fokus auf Sicherheitsforschung.
Suchtypen
Censys unterscheidet drei Hauptbereiche:
- Hosts: IP-Adressen und deren Dienste
- Certificates: TLS/SSL-Zertifikate
- Websites: HTTP/HTTPS-Webseiten (veraltet, in Hosts integriert)
Censys Search Language (CSL)
Grundlegende Syntax
# Einfache Textsuche
nginx
# Feldbasierte Suche
services.service_name: SSH
# Mehrere Bedingungen (AND ist implizit)
services.port: 22 AND location.country: Germany
# ODER-Verknüpfung
services.port: 80 OR services.port: 443
# Negation
NOT services.service_name: HTTP
# Bereichssuche
services.port: [1 TO 1024]
# Wildcard-Suche
services.http.response.html_title: *admin*
# Reguläre Ausdrücke
services.banner: /^SSH-2\.0/
Wichtige Felder für Host-Suchen
| Feld | Beschreibung | Beispiel |
|---|---|---|
ip: |
IP-Adresse oder CIDR | ip: 192.168.0.0/16 |
services.port: |
Offener Port | services.port: 3306 |
services.service_name: |
Erkannter Dienst | services.service_name: MYSQL |
services.software.product: |
Softwareprodukt | services.software.product: OpenSSH |
services.software.version: |
Softwareversion | services.software.version: 7.4 |
location.country: |
Land (Name) | location.country: Germany |
location.country_code: |
Ländercode | location.country_code: DE |
autonomous_system.name: |
AS-Name (ISP) | autonomous_system.name: HETZNER |
autonomous_system.asn: |
AS-Nummer | autonomous_system.asn: 24940 |
services.http.response.status_code: |
HTTP-Statuscode | services.http.response.status_code: 200 |
services.http.response.html_title: |
HTML-Titel | services.http.response.html_title: "Login" |
services.tls.certificates.leaf_data.subject.common_name: |
Zertifikats-CN | ...common_name: *.example.de |
labels: |
Censys-Labels | labels: c2 (Command & Control) |
Komplexe Suchanfragen
# MySQL-Server in Deutschland ohne TLS
services.service_name: MYSQL AND location.country_code: DE AND NOT services.tls
# Webserver mit bestimmtem Titel
services.http.response.html_title: "phpMyAdmin" AND location.country_code: DE
# Veraltete SSH-Versionen
services.software.product: OpenSSH AND services.software.version: [1.0 TO 6.9]
# Hosts mit selbstsignierten Zertifikaten
services.tls.certificates.leaf_data.issuer.common_name: services.tls.certificates.leaf_data.subject.common_name
# IoT-Geräte (MQTT-Broker)
services.port: 1883 AND services.service_name: MQTT
# Kubernetes-API-Server
services.port: 6443 AND services.http.response.body: *kubernetes*
# Hosts bei Hetzner mit offener Redis-Instanz
autonomous_system.name: HETZNER AND services.service_name: REDIS
Zertifikatssuche
# Zertifikate für eine Domain
parsed.names: example.de
# Abgelaufene Zertifikate
parsed.validity.end: [* TO 2024-01-01]
# Zertifikate mit schwacher Signatur
parsed.signature.signature_algorithm.name: *sha1*
# Wildcard-Zertifikate
parsed.names: \*.example.de
# Zertifikate einer bestimmten CA
parsed.issuer.organization: "Let's Encrypt"
Censys CLI und Python SDK
Installation
# Installation
pip install censys
# Konfiguration (API-Credentials von search.censys.io/account/api)
censys config
CLI-Nutzung
# Host-Suche
censys search 'services.port: 22 AND location.country_code: DE' --index-type hosts
# Einzelnen Host abfragen
censys view 8.8.8.8 --index-type hosts
# Zertifikatssuche
censys search 'parsed.names: example.de' --index-type certificates
# Ausgabe als JSON
censys search 'services.service_name: SSH' --index-type hosts -o json > results.json
Python SDK
from censys.search import CensysHosts, CensysCertificates
# Hosts durchsuchen
h = CensysHosts()
# Einfache Suche
for host in h.search("services.port: 22 AND location.country_code: DE", per_page=10):
print(f"{host['ip']}: {host.get('services', [])}")
# Host-Details abrufen
host = h.view("8.8.8.8")
print(f"Services: {[s['service_name'] for s in host.get('services', [])]}")
# Aggregationen
report = h.aggregate(
"services.port: 22 AND location.country_code: DE",
field="services.software.product",
num_buckets=10
)
for bucket in report:
print(f"{bucket['key']}: {bucket['count']}")
# Zertifikate durchsuchen
c = CensysCertificates()
for cert in c.search("parsed.names: example.de", per_page=5):
print(f"Fingerprint: {cert['fingerprint_sha256']}")
print(f"Namen: {cert['parsed']['names']}")
Nmap – Der Netzwerk-Scanner
Überblick
Nmap (Network Mapper) ist das Standardwerkzeug für Netzwerk-Discovery und Sicherheitsaudits. Es ermöglicht Port-Scanning, Diensterkennung, Betriebssystem-Fingerprinting und Schwachstellenanalyse.
Installation
# Debian/Ubuntu
sudo apt install nmap
# Arch Linux
sudo pacman -S nmap
# macOS
brew install nmap
Grundlegende Scan-Typen
Host-Discovery
# Ping-Scan (nur Host-Discovery, keine Ports)
nmap -sn 192.168.1.0/24
# Ping-Scan ohne DNS-Auflösung
nmap -sn -n 192.168.1.0/24
# ARP-Scan (nur lokales Netzwerk)
nmap -PR 192.168.1.0/24
# Host-Discovery überspringen (Ports direkt scannen)
nmap -Pn 192.168.1.1
Port-Scanning
| Option | Scan-Typ | Beschreibung |
|---|---|---|
-sT |
TCP Connect | Vollständiger TCP-Handshake (Standard ohne root) |
-sS |
TCP SYN (Stealth) | Halb-offener Scan, schnell und unauffällig (Standard mit root) |
-sU |
UDP | UDP-Port-Scan (langsam) |
-sA |
TCP ACK | Firewall-Regeln ermitteln |
-sN |
TCP Null | Keine Flags gesetzt |
-sF |
TCP FIN | Nur FIN-Flag gesetzt |
-sX |
TCP Xmas | FIN, PSH, URG Flags |
Port-Auswahl
# Einzelne Ports
nmap -p 22,80,443 192.168.1.1
# Port-Bereich
nmap -p 1-1024 192.168.1.1
# Alle Ports
nmap -p- 192.168.1.1
# Top-Ports
nmap --top-ports 100 192.168.1.1
# Schneller Scan (Top 100 Ports)
nmap -F 192.168.1.1
Dienst- und Versionserkennung
# Versionserkennung
nmap -sV 192.168.1.1
# Aggressivere Erkennung
nmap -sV --version-intensity 5 192.168.1.1
# Leichte Erkennung (schneller)
nmap -sV --version-light 192.168.1.1
# Betriebssystem-Erkennung
nmap -O 192.168.1.1
# Kombiniert: Version + OS + Scripts + Traceroute
nmap -A 192.168.1.1
Nmap Scripting Engine (NSE)
NSE ermöglicht automatisierte Schwachstellen-Tests und erweiterte Analysen.
Script-Kategorien
# Standard-Scripts (sicher)
nmap -sC 192.168.1.1
# Bestimmte Kategorie
nmap --script=vuln 192.168.1.1
# Mehrere Kategorien
nmap --script="vuln,safe" 192.168.1.1
# Einzelnes Script
nmap --script=http-title 192.168.1.1
# Wildcard-Suche
nmap --script="http-*" 192.168.1.1
# Scripts mit Argumenten
nmap --script=http-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1
Nützliche Scripts
| Script | Beschreibung |
|---|---|
ssl-heartbleed |
Heartbleed-Schwachstelle prüfen |
smb-vuln-* |
SMB-Schwachstellen (EternalBlue, etc.) |
http-vuln-* |
HTTP-Schwachstellen |
ssh-brute |
SSH-Brute-Force |
dns-zone-transfer |
DNS-Zonentransfer testen |
http-enum |
Web-Verzeichnisse aufzählen |
banner |
Banner grabbing |
vulners |
CVE-Suche für gefundene Versionen |
Timing und Performance
# Timing-Templates (T0=paranoid bis T5=insane)
nmap -T4 192.168.1.1
# Parallelität
nmap --min-parallelism 10 --max-parallelism 100 192.168.1.1
# Rate-Limiting
nmap --max-rate 1000 192.168.1.1
# Verzögerung zwischen Probes
nmap --scan-delay 1s 192.168.1.1
Ausgabeformate
# Normal
nmap -oN scan.txt 192.168.1.1
# XML (für Parsing)
nmap -oX scan.xml 192.168.1.1
# Grepable
nmap -oG scan.gnmap 192.168.1.1
# Alle Formate
nmap -oA scan 192.168.1.1
# Script Kiddie (für Spaß)
nmap -oS scan.txt 192.168.1.1
Praktische Beispiele
# Schneller Netzwerk-Überblick
sudo nmap -sn 192.168.1.0/24 -oG - | grep "Up"
# Vollständiger Scan eines Hosts
sudo nmap -sS -sV -sC -O -p- -T4 192.168.1.1
# Schwachstellen-Scan
sudo nmap -sV --script=vuln 192.168.1.1
# Web-Server analysieren
nmap -p 80,443 --script=http-headers,http-methods,http-title 192.168.1.1
# SMB-Enumeration
nmap -p 445 --script=smb-enum-shares,smb-enum-users 192.168.1.1
# SSL/TLS-Analyse
nmap -p 443 --script=ssl-enum-ciphers,ssl-cert 192.168.1.1
# Firewall-Evasion
sudo nmap -sS -f -D RND:5 --source-port 53 192.168.1.1
Amass – DNS-Enumeration und Asset Discovery
Überblick
Amass ist ein OWASP-Projekt für DNS-Enumeration und Asset Discovery. Es kombiniert passive Datenquellen mit aktiven Scanning-Techniken, um Subdomains und zugehörige Netzwerk-Infrastruktur zu kartieren.
Installation
# Go Installation
go install -v github.com/owasp-amass/amass/v4/...@master
# Snap
sudo snap install amass
# Docker
docker pull caffix/amass
Modi
Intel – Organisationsinformationen sammeln
# ASN für eine Organisation finden
amass intel -org "Deutsche Telekom"
# Reverse Whois
amass intel -whois -d example.de
# IP-Bereiche einer Organisation
amass intel -asn 3320
Enum – Subdomain-Enumeration
# Passive Enumeration (keine DNS-Anfragen)
amass enum -passive -d example.de
# Aktive Enumeration
amass enum -d example.de
# Mit Brute-Force
amass enum -brute -d example.de
# Mit Wordlist
amass enum -brute -w /usr/share/wordlists/subdomains.txt -d example.de
# Mehrere Domains
amass enum -d example.de -d example.com
# Einschränkung auf bestimmte Datenquellen
amass enum -passive -src -d example.de
# Output als JSON
amass enum -d example.de -json output.json
# Mit Konfigurationsdatei
amass enum -config config.yaml -d example.de
Konfigurationsdatei (config.yaml)
options:
resolvers:
- 8.8.8.8
- 1.1.1.1
- 9.9.9.9
timeout: 30
scope:
domains:
- example.de
blacklisted:
- subdomain.example.de
data_sources:
SecurityTrails:
api_key: DEIN_API_KEY
Shodan:
api_key: DEIN_SHODAN_KEY
VirusTotal:
api_key: DEIN_VT_KEY
Censys:
api_id: DEIN_CENSYS_ID
api_secret: DEIN_CENSYS_SECRET
PassiveTotal:
username: dein@email.de
api_key: DEIN_PT_KEY
Ergebnisverarbeitung
# Datenbank abfragen
amass db -names -d example.de
# ASN-Informationen
amass db -show -d example.de
# Graphen exportieren
amass viz -d3 -d example.de
# Maltego-Format
amass viz -maltego -d example.de
# Historie anzeigen
amass track -d example.de
theHarvester – E-Mail und Subdomain Reconnaissance
Überblick
theHarvester sammelt E-Mail-Adressen, Subdomains, virtuelle Hosts und offene Ports aus verschiedenen öffentlichen Quellen wie Suchmaschinen und PGP-Servern.
Installation
# Python
pip install theHarvester
# Kali Linux (vorinstalliert)
theHarvester -h
# Docker
docker run --rm theharvester/theharvester -h
Grundlegende Nutzung
# Einfache Suche mit Google
theHarvester -d example.de -b google
# Mehrere Quellen
theHarvester -d example.de -b google,bing,linkedin
# Alle verfügbaren Quellen
theHarvester -d example.de -b all
# Mit DNS-Brute-Force
theHarvester -d example.de -b all -c
# DNS-Lookup durchführen
theHarvester -d example.de -b all -n
# Shodan-Hosts hinzufügen
theHarvester -d example.de -b all -s
# Screenshot der Hosts
theHarvester -d example.de -b all --screenshot output/
# Als HTML speichern
theHarvester -d example.de -b all -f bericht
Verfügbare Datenquellen
| Quelle | Typ | API-Key erforderlich |
|---|---|---|
google |
Suchmaschine | Nein (Rate-Limited) |
bing |
Suchmaschine | Nein |
duckduckgo |
Suchmaschine | Nein |
linkedin |
Soziales Netzwerk | Nein |
twitter |
Soziales Netzwerk | Ja |
shodan |
IoT-Suchmaschine | Ja |
censys |
Zertifikate/Hosts | Ja |
securitytrails |
DNS-Daten | Ja |
virustotal |
Domain-Analyse | Ja |
hunter |
E-Mail-Finder | Ja |
crtsh |
Zertifikats-Transparenz | Nein |
Maltego – Grafische Link-Analyse
Überblick
Maltego ist ein kommerzielles Tool für grafische Link-Analyse und OSINT. Es visualisiert Beziehungen zwischen Entitäten wie Personen, Unternehmen, Domains, IP-Adressen und Social-Media-Profilen.
Kernkonzepte
- Entities: Objekte wie Domain, IP, Person, E-Mail, etc.
- Transforms: Aktionen, die aus einer Entity neue Entities erzeugen
- Graph: Visuelle Darstellung der Beziehungen
Wichtige Transform-Kategorien
| Kategorie | Beispiel-Transforms |
|---|---|
| DNS | Domain zu IP, DNS-Namen, MX-Records |
| Whois | Domain zu Registrant, Nameserver |
| Domain zu E-Mails, E-Mail zu Person | |
| Social Media | Person zu Twitter/LinkedIn-Profilen |
| Shodan | IP zu offenen Ports, Bannern |
| Threat Intelligence | IP/Domain zu Malware-Assoziationen |
Workflow-Beispiel: Domain-Analyse
- Neue Domain-Entity erstellen
- Transform "To DNS Name" ausführen → Subdomains
- Transform "To IP Address" auf jede Subdomain → IPs
- Transform "To Website" → Webseiten-Informationen
- Transform "To Email Addresses" → E-Mail-Adressen
- Transform "To Person" auf E-Mails → Personen
Recon-ng – Modulares Reconnaissance Framework
Überblick
Recon-ng ist ein modulares Web-Reconnaissance-Framework mit einer Metasploit-ähnlichen Oberfläche. Es vereint zahlreiche OSINT-Quellen in einem einheitlichen Interface.
Installation
# Python
pip install recon-ng
# Kali Linux
sudo apt install recon-ng
# Starten
recon-ng
Grundlegende Bedienung
# Workspace erstellen
workspaces create beispiel-projekt
# Module anzeigen
modules search
# Modul laden
modules load recon/domains-hosts/hackertarget
# Modul-Infos anzeigen
info
# Optionen setzen
options set SOURCE example.de
# Modul ausführen
run
# Ergebnisse anzeigen
show hosts
show contacts
show credentials
Wichtige Module
# Subdomain-Enumeration
modules load recon/domains-hosts/hackertarget
modules load recon/domains-hosts/certificate_transparency
modules load recon/domains-hosts/threatcrowd
# E-Mail-Harvesting
modules load recon/domains-contacts/whois_pocs
modules load recon/domains-contacts/pgp_search
# Social Media
modules load recon/profiles-profiles/twitter_mentioned
modules load recon/profiles-profiles/github_repos
# IP-Geolocation
modules load recon/hosts-hosts/resolve
modules load recon/hosts-hosts/ipinfodb
# Schwachstellen
modules load recon/hosts-vulnerabilities/shodan_hostname
API-Keys konfigurieren
# Alle Keys anzeigen
keys list
# Key hinzufügen
keys add shodan_api DEIN_SHODAN_KEY
keys add censys_id DEIN_CENSYS_ID
keys add censys_secret DEIN_CENSYS_SECRET
keys add virustotal_api DEIN_VT_KEY
Reporting
# Module für Reports
modules load reporting/html
options set FILENAME bericht.html
run
modules load reporting/csv
modules load reporting/json
modules load reporting/xml
SpiderFoot – Automatisierte OSINT
Überblick
SpiderFoot ist ein automatisiertes OSINT-Tool, das über 200 Datenquellen integriert. Es bietet sowohl eine Kommandozeilen- als auch eine Web-Oberfläche.
Installation
# Docker
docker run -p 5001:5001 spiderfoot
# Python
git clone https://github.com/smicallef/spiderfoot.git
cd spiderfoot
pip install -r requirements.txt
python sf.py -l 127.0.0.1:5001
Web-Interface
Nach dem Start erreichbar unter http://127.0.0.1:5001
Scan-Typen
- All: Alle verfügbaren Module
- Footprint: Grundlegende Reconnaissance
- Investigate: Tiefergehende Analyse
- Passive: Nur passive Quellen (keine aktiven Scans)
CLI-Nutzung
# Scan starten
python sf.py -s example.de -t DOMAIN
# Mit bestimmten Modulen
python sf.py -s example.de -t DOMAIN -m sfp_dnsresolve,sfp_shodan
# Passiv-Modus
python sf.py -s example.de -t DOMAIN -o spidered -q
# Als JSON exportieren
python sf.py -s example.de -t DOMAIN -o json > ergebnis.json
Unterstützte Target-Typen
| Typ | Beschreibung | Beispiel |
|---|---|---|
| DOMAIN | Domain-Namen | example.de |
| IP_ADDRESS | Einzelne IP | 192.168.1.1 |
| NETBLOCK | IP-Bereich | 192.168.1.0/24 |
| E-Mail-Adresse | user@example.de | |
| PERSON | Personenname | "Max Mustermann" |
| USERNAME | Benutzername | maxmuster |
| PHONE | Telefonnummer | +49123456789 |
| BITCOIN_ADDRESS | BTC-Adresse | 1A1zP1... |
Zusätzliche Tools und Ressourcen
Zertifikats-Transparenz
crt.sh
# Web-Interface
https://crt.sh/?q=%.example.de
# API-Abfrage
curl -s "https://crt.sh/?q=%.example.de&output=json" | jq '.[].name_value' | sort -u
Certspotter
curl -s "https://api.certspotter.com/v1/issuances?domain=example.de&include_subdomains=true"
DNS-Tools
DNSdumpster
Web-basiert unter dnsdumpster.com – automatische DNS-Reconnaissance mit grafischer Darstellung.
dig und host
# Alle Records
dig example.de ANY
# Zonentransfer versuchen
dig axfr example.de @ns1.example.de
# Reverse-DNS
dig -x 192.168.1.1
# Spezifischer Record-Typ
dig MX example.de
dig TXT example.de
fierce
# DNS-Enumeration
fierce --domain example.de
# Mit Wortliste
fierce --domain example.de --subdomain-file wordlist.txt
Web-Reconnaissance
WhatWeb
# Technologie-Erkennung
whatweb example.de
# Aggressiver Modus
whatweb -a 3 example.de
# Mehrere Ziele
whatweb -i urls.txt
Wappalyzer CLI
npm install -g wappalyzer
wappalyzer https://example.de
Nikto
# Web-Server-Scan
nikto -h https://example.de
# Mit SSL
nikto -h https://example.de -ssl
Google Dorking
# Datei-Typen finden
site:example.de filetype:pdf
# Verzeichnislisting
site:example.de intitle:"index of"
# Login-Seiten
site:example.de inurl:admin OR inurl:login
# Sensible Dateien
site:example.de ext:sql OR ext:bak OR ext:log
# WordPress-Installationen
site:example.de inurl:wp-content
# Offene Redirects
site:example.de inurl:redirect= OR inurl:url=
Best Practices und Workflow
Empfohlener Reconnaissance-Workflow
- Passive Reconnaissance
- Whois-Abfragen für Domain-Informationen
- DNS-Records sammeln (MX, TXT, NS)
- Zertifikats-Transparenz (crt.sh)
- Shodan/Censys für bereits gescannte Daten
- Google Dorking für indexierte Informationen
- Semi-Passive Reconnaissance
- theHarvester für E-Mails und Subdomains
- Amass im passiven Modus
- SpiderFoot für automatisierte Sammlung
- Aktive Reconnaissance
- DNS-Brute-Force mit Amass
- Nmap für Port-Scanning
- Nikto/WhatWeb für Web-Analyse
- Dokumentation und Analyse
- Ergebnisse in Maltego visualisieren
- Reports mit Recon-ng erstellen
- Findings priorisieren
Tipps zur Vermeidung von Entdeckung
- Passive Quellen bevorzugen, wo möglich
- Rate-Limiting einhalten
- VPN oder Tor für Anonymität
- Scans auf verschiedene Zeiträume verteilen
- User-Agents rotieren bei Web-Anfragen
Dokumentation
- Alle Schritte protokollieren
- Zeitstempel für alle Aktionen
- Rohdaten sichern (JSON, XML)
- Screenshots wichtiger Funde
- Hash-Werte für Beweissicherung
Rechtliche Rahmenbedingungen in Deutschland
Wichtig: Die folgenden Informationen ersetzen keine Rechtsberatung. Im Zweifelsfall immer einen Fachanwalt konsultieren.
Relevante Gesetze
- §202a StGB – Ausspähen von Daten: Das unbefugte Verschaffen von Zugang zu besonders gesicherten Daten ist strafbar.
- §202b StGB – Abfangen von Daten: Das unbefugte Abfangen von Daten ist strafbar.
- §202c StGB – Vorbereiten des Ausspähens: Das Verschaffen oder Zugänglichmachen von Tools ("Hackertools") kann strafbar sein, wenn die Absicht einer Straftat nach §202a/b besteht.
- §303a StGB – Datenveränderung: Das Löschen, Unterdrücken, Unbrauchbarmachen oder Verändern von Daten ist strafbar.
- §303b StGB – Computersabotage: Das Stören von Datenverarbeitungen ist strafbar.
Erlaubte Nutzung
- Eigene Systeme: Uneingeschränkt erlaubt
- Mit Genehmigung: Schriftliche Autorisierung einholen (Penetration Test Agreement)
- Bug-Bounty-Programme: Im Rahmen der definierten Scope-Regeln
- Öffentliche Daten: Abfrage öffentlich zugänglicher Informationen (Shodan, Censys) ist generell erlaubt
Empfohlene Vorsichtsmaßnahmen
- Immer schriftliche Genehmigung vor Tests einholen
- Scope klar definieren (IP-Bereiche, Domains, Methoden)
- Zeitfenster für Tests vereinbaren
- Notfallkontakte dokumentieren
- Alle Aktivitäten lückenlos protokollieren
Letzte Aktualisierung: 2025 | Für Ergänzungen und Korrekturen bitte Feedback geben.
No comments to display
No comments to display