Seit der ersten Veröffentlichung von scans2any haben
wir intensiv daran gearbeitet, das Tool schneller, intelligenter und flexibler zu
machen. Version 1.0 ist ein großer Schritt nach vorne — vollgepackt mit neuen
Funktionen, einer komplett neu geschriebenen Kern-Engine und Verbesserungen, die die
Arbeit mit großangelegten Infrastrukturscans einfacher denn je machen.

Persistente Projektdatenbanken
Das Parsen von Hunderten von Scan-Dateien kostet Zeit. Mit dem neuen Flag -p /
--project speichert scans2any die geparste Infrastruktur automatisch in einer
lokalen SQLite-Datenbank. Bei nachfolgenden Aufrufen wird diese sofort neu geladen
— kein erneutes Parsen erforderlich.
# Erster Aufruf: Parst alles und speichert in myproject.db
scans2any -p myproject --nmap scans/ --nessus report.nessus
# Später: Lädt die Datenbank in Millisekunden
scans2any -p myproject -w html -o report.html
Das ist ein echter Gamechanger für iterative Workflows, bei denen Filter, Spalten oder Ausgabeformate für denselben Datensatz immer wieder angepasst werden.
Der neue Spaltenfilter
Der bisherige host_filter und service_filter wurden durch einen einzigen,
deutlich leistungsfähigeren Spaltenfilter (-C) ersetzt. Er erlaubt es, beliebige
Spalten per Regex zu filtern, Muster zu negieren und mehrere Bedingungen zu
verketten:
# Nur HTTP-Dienste behalten
scans2any --nmap scan.xml -C 'Services:(?i)http$'
# Linux-Hosts ausschließen
scans2any --nmap scan.xml -C 'OS:!linux'
# Alle Hosts mit SMB-Diensten anzeigen, alle ihre Dienste und Spalten behalten (Host-Modus)
scans2any --nmap scan.xml -Ch 'Services:smb'
# Nur SSL-Schwachstellen aus einem Nessus-Report behalten
scans2any --nessus scan.nessus -c IP-Addresses,Vulnerability-Type -Cv 'Vulnerability-Type:SSL Version'
# Bedingungen verknüpfen (logisches UND): SSH ohne "OpenSSH" im Banner
scans2any --nmap scan.xml -C 'Services:(?i)ssh Banners:!OpenSSH'
Zwei zusätzliche Modi ermöglichen noch feinere Kontrolle:
- Wertmodus (
-Cv): Kürzt Felder mit mehreren Werten auf die passenden Einträge, sodass jede Zeile genau das zeigt, was gewünscht ist. - Host-Modus (
-Ch): Behält den gesamten Host (mit allen seinen Diensten), wenn mindestens ein Dienst dem Filter entspricht.
Außerdem lässt sich per --hosts-file nach einer Datei mit IPs oder Hostnamen filtern:
scans2any --nmap scan.xml --hosts-file targets.txt
Eine neue, ansprechende Benutzeroberfläche
Die Terminal-Ausgabe wurde komplett neu gestaltet. Standardmäßig zeigt scans2any
jetzt genau das, was zählt — klare, fokussierte Fortschrittsmeldungen ohne
unnötiges Rauschen. Mehr Details? Einfach -v für den ausführlichen Modus oder
-vv für vollständige Debug-Ausgabe anhängen.
Im Hintergrund wurde tqdm durch die hervorragende rich-Bibliothek ersetzt, die
unter anderem bietet:
- Nicht-blockierende Fortschrittsbalken, die flüssig aktualisieren, ohne andere Ausgaben zu unterbrechen
- Live-Status-Spinner, die bei langen Operationen auf dem Laufenden halten
- Intelligente Terminal-Integration, die gut mit modernen Emulatoren zusammenspielt
Das Ergebnis: Ein Tool, das sich reaktionsschnell und ausgereift anfühlt — egal ob man eine Handvoll Dateien verarbeitet oder komplexe Multi-Parser-Workflows orchestriert.
Benutzerdefinierte Spalten und vertrauenswürdige Felder
Parser können nun über das Flag -c eigene Felder bereitstellen. Nessus-Scans
können zum Beispiel den Schwachstellentyp zusammen mit den üblichen Spalten
exportieren:
scans2any --nessus scan.nessus -c +Vulnerability-Type
Ein neues Trusted-Fields-System stellt sicher, dass Daten von Parser mit hoher Konfidenz (wie Bloodhound oder Aquatone) beim Zusammenführen nicht durch weniger zuverlässige Quellen überschrieben werden. Das Ergebnis: genauere kombinierte Ausgaben ohne manuellen Eingriff.
Performance: Von Grund auf neu geschrieben
Dieses Release bringt erhebliche Geschwindigkeitszuwächse in jeder Phase der Pipeline:
- Intelligenteres Host-Zusammenführen — Hosts mit gleichen IPs oder Hostnamen werden jetzt deutlich effizienter kombiniert, was große Datensätze erstmals handhabbar macht.
- Schnellerer Start — Umfangreiche Bibliotheken werden nur bei Bedarf geladen, was die Startzeit bei einfachen Operationen um ~50 % reduziert.
- 20-fach schnellere Test-Suite — Ein überarbeitetes Test-Framework führt die vollständige Suite in einem Bruchteil der bisherigen Zeit aus.
- Adaptives Datei-Parsing: Bei großen Datei-Batches wird automatisch auf Multi-Process-Parsing umgeschaltet, um den Python-GIL zu umgehen.
Intern verwenden die Kerndatenstrukturen nun Pydantic-Modelle für Validierung und Serialisierung — das erhöht die Zuverlässigkeit und macht die Codebasis leichter erweiterbar.
Breaking Changes
host_filter und service_filter wurden entfernt. Beide sind vollständig durch
den neuen Spaltenfilter ersetzt:
| Alt | Neu |
|---|---|
--enable-filters host_filter --hosts-regex ".*\.example\.com" | -C Hostnames:.*\.example\.com |
--enable-filters service_filter --service-regex "http.*" | -C Services:http.* |
Jetzt loslegen
Upgrade auf v1.0 und erlebe das schnellste und flexibelste scans2any aller Zeiten.
Installationsanleitung und vollständige Dokumentation gibt es im
GitHub-Repository.
Feedback oder Ideen? Einfach ein Issue eröffnen oder an der Diskussion teilnehmen — wir freuen uns darüber!
Lies weitere interessante Beiträge in unserem Blog.