mit der Vorstellung nützlicher Werkzeuge für Penetrationstester. In diesem neuen Artikel betrachten wir Tools zur Analyse der Sicherheit von Webanwendungen.
Unser Kollege hat bereits vor etwa sieben Jahren etwas Ähnliches gemacht. Es ist interessant zu sehen, welche Werkzeuge ihre Positionen gehalten und verstärkt haben und welche in den Hintergrund geraten sind und heute selten verwendet werden. Es sei darauf hingewiesen, dass auch Burp Suite dazugehört, aber über dieses Tool und seine nützlichen Plugins wird es einen separaten Beitrag geben.

Amass
Inhalt:
Altdns
Zur Entdeckung miteinander verbundener Netzwerksegmente und autonomen Systemnummern verwendet Amass IP-Adressen, die während des Betriebs gesammelt wurden. Alle gesammelten Informationen werden genutzt, um eine Netzwerkkarte zu erstellen.
Um verwobene Netzwerksegmente und autonome Systemnummern zu identifizieren, verwendet Amass IP-Adressen, die während des Betriebs gesammelt wurden. Alle gewonnenen Informationen werden genutzt, um eine Netzwerkkarte zu erstellen.
Vorteile:
- Die Techniken zur Informationsbeschaffung umfassen:
* DNS – Durchforstung von Subdomains mit einem Wörterbuch, Bruteforce-Subdomains, „intelligente“ Durchforstung mithilfe von Mutationen basierend auf gefundenen Subdomains, Reverse-DNS-Abfragen und Suche nach DNS-Servern, die möglicherweise eine Zonenübertragung (AXFR) anfordern können;* Suche in offenen Quellen – Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Suche in TLS-Zertifikatsdatenbanken – Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Nutzung von API-Schnittstellen von Suchmaschinen – BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Suche in Internet-Archivdaten – ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integration mit Maltego;
- Bietet eine umfassende Abdeckung bei der Suche nach DNS-Subdomains.
Nachteile:
- Seien Sie vorsichtig mit amass.netdomains – es versucht, jeden IP-Adresse in der identifizierten Infrastruktur anzusprechen und Domänennamen aus reversen DNS-Abfragen und TLS-Zertifikaten zu erhalten. Diese „laute“ Technik könnte Ihre Aufklärungsaktivitäten in der untersuchten Organisation offenbaren.
- Hoher Speicherbedarf, kann bis zu 2 GB RAM in verschiedenen Konfigurationen verbrauchen, was den Einsatz dieses Tools in der Cloud auf günstigen VDS einschränkt.

aquatone
— ein Python-Tool zur Erstellung von Wörterbüchern für die Enumeration von DNS-Subdomains. Es ermöglicht die Generierung einer Vielzahl von Subdomain-Varianten durch Mutationen und Permutationen. Dazu werden häufig verwendete Wörter in Subdomains verwendet (z. B. test, dev, staging). Alle Mutationen und Permutationen werden auf bereits bekannte Subdomains angewendet, die Altdns übergeben werden können. Am Ende erhält man eine Liste von Subdomain-Variationen, die existieren könnten, und diese Liste kann später beim DNS-Bruteforce verwendet werden.
Vorteile:
- Funktioniert gut mit großen Datensätzen.
MassDNS
Ehemals als weiteres Tool zur Suche nach Subdomains bekannt, hat der Autor dieses nun zugunsten des bereits erwähnten Amass eingestellt. Aquatone wurde jetzt in Go neu geschrieben und ist gezielter für die Vorab-Recherche von Websites. Dazu durchläuft aquatone die angegebenen Domains, sucht Websites auf verschiedenen Ports und sammelt alle Informationen über die Seite, gefolgt von einem Screenshot. Es eignet sich hervorragend für eine schnelle Vorab-Recherche von Websites, nach der Prioritäten für Angriffe festgelegt werden können.
Vorteile:
- Es erstellt eine Gruppe von Dateien und Ordnern, die bei der weiteren Arbeit mit anderen Tools praktisch sind:
* HTML-Bericht mit gesammelten Screenshots und nach Ähnlichkeit gruppierten Antworten;* Datei mit allen URLs, auf denen Websites gefunden wurden;
* Datei mit Statistiken und Seiteninformationen;
* Ordner mit Dateien, die die Antwort-Header von den gefundenen Zielen enthalten;
* Ordner mit Dateien, die den Antworttext von den gefundenen Zielen enthalten;
* Screenshots der gefundenen Websites;
- Unterstützt die Arbeit mit XML-Berichten von Nmap und Masscan;
- Verwendet headless Chrome/Chromium für die Erstellung von Screenshots.
Nachteile:
- Es könnte von Intrusion Detection Systemen bemerkt werden, daher sind Anpassungen erforderlich.
Der Screenshot wurde von einer der älteren Versionen von aquatone (v0.5.0) gemacht, in der die Suche nach DNS-Subdomains implementiert wurde. Ältere Versionen sind verfügbar auf .

nsec3map
— ein weiteres Tool zur Suche nach DNS-Subdomains. Das Hauptunterscheidungsmerkmal ist, dass es DNS-Anfragen direkt an zahlreiche verschiedene DNS-Resolver sendet und dies mit erheblicher Geschwindigkeit tut.
Vorteile:
- Schnell — in der Lage, über 350.000 Namen pro Sekunde aufzulösen.
Nachteile:
- MassDNS kann eine erhebliche Last auf die verwendeten DNS-Resolver verursachen, was zu einem Bann auf diesen Servern oder zu Beschwerden bei Ihrem Anbieter führen kann. Darüber hinaus kann es zu einer hohen Belastung der DNS-Server des Unternehmens kommen, sofern diese vorhanden sind und für die Domains verantwortlich sind, die Sie zu lösen versuchen.
- Die Liste der Resolver ist derzeit veraltet, jedoch kann es helfen, funktionsuntüchtige DNS-Resolver herauszufiltern und neue bekannte hinzuzufügen — dann wird alles in Ordnung sein.

Screenshot von aquatone v0.5.0
Acunetix
— ein Python-Tool zum Erhalt einer vollständigen Liste von Domains, die durch DNSSEC geschützt sind.
Vorteile:
- Entdeckt schnell Hosts in DNS-Zonen mit minimalen Anfragen, sofern die Unterstützung für DNSSEC aktiviert ist;
- Inklusive eines Plugins für John the Ripper, das zur Entschlüsselung der erhaltenen NSEC3-Hashes verwendet werden kann.
Nachteile:
- Viele DNS-Fehler werden nicht korrekt verarbeitet;
- Keine automatische Parallelisierung der Verarbeitung von NSEC-Einträgen – das Namensraum muss manuell aufgeteilt werden;
- Hoher Speicherverbrauch.
Dirsearch
– ein Scanner für Web-Sicherheitsanfälligkeiten, der den Sicherheitsüberprüfungsprozess von Webanwendungen automatisiert. Testet die Anwendung auf SQL-Injection, XSS, XXE, SSRF und viele andere Webanfälligkeiten. Wie jeder andere Scanner für Webanfälligkeiten kann er jedoch keinen Penetrationstester ersetzen, da er komplexe Verwundbarkeitsketten oder logische Anfälligkeiten nicht finden kann. Dennoch deckt er viele verschiedene Schwachstellen ab, darunter verschiedene CVEs, an die ein Penetrationstester vielleicht nicht gedacht hat, weshalb er sehr praktisch zur Entlastung von Routineüberprüfungen ist.
Vorteile:
- Niedriges Niveau an Fehlalarmen;
- Ergebnisse können in Form von Berichten exportiert werden;
- Führt zahlreiche Prüfungen auf unterschiedliche Anfälligkeiten durch;
- Paralleles Scannen mehrerer Hosts.
Nachteile:
- Es gibt keinen Entdoppelungsalgorithmus (funktional identische Seiten werden von Acunetix als unterschiedlich angesehen, da sie unterschiedliche URLs haben), aber die Entwickler arbeiten daran.
- Benötigt die Installation auf einem separaten Webserver, was das Testen von Kundensystemen mit VPN-Verbindungen und die Nutzung des Scanners im isolierten Segment des lokalen Kundennetzwerks kompliziert.
- Kann den untersuchten Dienst 'überrauschen', indem er beispielsweise zu viele Angriffsmethoden über das Kontaktformular der Website sendet, wodurch die Geschäftsprozesse stark erschwert werden.
- Ist eine proprietäre und somit kostenpflichtige Lösung.

wfuzz
Ein Python-Tool zum Brute-Forcen von Verzeichnissen und Dateien auf Websites.
Vorteile:
- Kann echte '200 OK'-Seiten von '200 OK'-Seiten mit dem Text 'Seite nicht gefunden' unterscheiden.
- Wird mit einem benutzerfreundlichen Wörterbuch geliefert, das ein gutes Gleichgewicht zwischen Größe und Sucheffizienz hat. Enthält standardisierte Pfade, die für viele CMS und Technologiestacks charakteristisch sind.
- Eigenes Wörterbuchformat, das eine gute Effizienz und Flexibilität beim Durchsuchen von Dateien und Verzeichnissen ermöglicht.
- Praktische Ausgabe — einfacher Text, JSON.
- Es ermöglicht Throttling – Pausen zwischen den Anfragen, was für jeden schwachen Service von entscheidender Bedeutung ist.
Nachteile:
- Erweiterungen müssen als Zeichenfolge übergeben werden, was unpraktisch ist, wenn viele Erweiterungen auf einmal übergeben werden müssen.
- Um Ihr Wörterbuch zu verwenden, muss es etwas überarbeitet werden, um den Wörterbuchformaten von Dirsearch für maximale Effizienz zu entsprechen.

ffuf
— Python-basierter Web-Fuzzer. Wahrscheinlich einer der bekanntesten Web-Fuzzer. Das Prinzip ist einfach: wfuzz ermöglicht es, jeden Teil der HTTP-Anfrage zu fuzzern, was die Möglichkeit eröffnet, GET/POST-Parameter, HTTP-Header, einschließlich Cookies und andere Authentifizierungsheader, zu fuzzern. Gleichzeitig ist es auch nützlich für einfaches Brute-Forcen von Verzeichnissen und Dateien, wofür ein gutes Wörterbuch benötigt wird. Es verfügt auch über ein flexibles Filtersystem, mit dem Antworten von Websites nach verschiedenen Parametern gefiltert werden können, was zu effektiven Ergebnissen führt.
Vorteile:
- Multifunktional – modulare Struktur, der Aufbau dauert nur wenige Minuten.
- Benutzerfreundlicher Filter- und Fuzzing-Mechanismus.
- Es können beliebige HTTP-Methoden sowie beliebige Stellen in der HTTP-Anfrage gefuzzt werden.
Nachteile:
- In der Entwicklung.

gobuster
— Ein Web-Fuzzer auf Go-Basis, entwickelt nach dem Vorbild von wfuzz, ermöglicht das Bruten von Dateien, Verzeichnissen, URL-Pfaden, Namen und Werten von GET/POST-Parametern sowie HTTP-Headern, einschließlich des Host-Headers, um virtuelle Hosts zu bruteforcen. Im Vergleich zu seinem Pendant wfuzz bietet es eine höhere Geschwindigkeit und einige neue Funktionen, darunter die Unterstützung von Dirsearch-kompatiblen Wörterbüchern.
Vorteile:
- Die Filter ähneln den Filtern von wfuzz und ermöglichen eine flexible Anpassung des Bruteforcing.
- Es ermöglicht das Fuzzing von HTTP-Headerwerten, POST-Daten und verschiedenen URL-Teilen, einschließlich der Namen und Werte von GET-Parametern.
- Es lässt sich jeder HTTP-Methoden angeben.
Nachteile:
- In der Entwicklung.

Arjun
— Ein Go-Tool für die Aufklärung, das zwei Betriebsmodi hat. Der erste wird verwendet, um Dateien und Verzeichnisse auf einer Website zu bruteforcen, der zweite zum Durchsuchen von DNS-Subdomains. Das Tool unterstützt ursprünglich kein rekursives Durchsuchen von Dateien und Verzeichnissen, was zwar Zeit spart, jedoch bedeutet, dass das Bruteforcen jedes neuen Endpunkts auf der Website separat gestartet werden muss.
Vorteile:
- Hohe Geschwindigkeit sowohl beim Durchsuchen von DNS-Subdomains als auch beim Bruteforcing von Dateien und Verzeichnissen.
Nachteile:
- In der aktuellen Version wird die Festlegung von HTTP-Headern nicht unterstützt.
- Standardmäßig betrachtet nur einige HTTP-Statuscodes als gültig (200, 204, 301, 302, 307).

LinkFinder
— ein Werkzeug zum Brute-Forcing versteckter HTTP-Parameter in GET/POST-Parametern sowie in JSON. Das integrierte Wörterbuch umfasst 25.980 Wörter, die Ajrun in fast 30 Sekunden überprüft. Der Fokus liegt darauf, dass Ajrun nicht jeden Parameter einzeln überprüft, sondern etwa 1000 Parameter auf einmal testet und prüft, ob sich die Antwort geändert hat. Wenn die Antwort sich ändert, teilt es diese 1000 Parameter in zwei Hälften und prüft, welche dieser Teile die Antwort beeinflusst. So wird durch eine einfache binäre Suche der Parameter oder mehrere versteckte Parameter ermittelt, die die Antwort beeinflusst haben und daher möglicherweise existieren.
Vorteile:
- Hohe Geschwindigkeit der Verarbeitung durch binäre Suche;
- Unterstützung von GET/POST-Parametern sowie Parametern in JSON-Format;
Nach einem ähnlichen Prinzip arbeitet auch das Plugin für Burp Suite — , das ebenfalls sehr gut darin ist, versteckte HTTP-Parameter zu finden. Mehr dazu werden wir in einem kommenden Artikel über Burp und seine Plugins berichten.

JSParser
— ein Skript in Python zur Suche nach Links in JavaScript-Dateien. Nützlich zur Auffindung versteckter oder vergessener Endpunkte/URLs in Webanwendungen.
Vorteile:
- Schnell;
- Es gibt ein spezielles Chrome-Plugin, das auf LinkFinder basiert.
.
Nachteile:
- Unhandliche Ausgabe;
- Analysiert JavaScript nicht dynamisch;
- Die Logik zur Linksuche ist ziemlich einfach — wenn JavaScript irgendwie obfuskiert ist oder die Links ursprünglich fehlen und dynamisch generiert werden, kann nichts gefunden werden.

NoSQLMap
— ein Python-Skript, das und verwendet, um relative URLs aus JavaScript-Dateien zu analysieren. Sehr nützlich zur Erkennung von AJAX-Anfragen und zur Erstellung einer Liste von API-Methoden, mit denen die Anwendung interagiert. Funktioniert effektiv in Kombination mit LinkFinder.
Vorteile:
- Schnelles Parsen von JavaScript-Dateien.

sqlmap
— wahrscheinlich eines der bekanntesten Werkzeuge zur Analyse von Webanwendungen. Sqlmap automatisiert die Suche und Ausnutzung von SQL-Injektionen, funktioniert mit mehreren SQL-Dialekten und hat eine große Anzahl verschiedener Techniken in seinem Repertoire, von einfachen ‘Schnappschüssen’ bis hin zu komplexen Vektoren für zeitbasierte SQL-Injektionen. Außerdem bietet es zahlreiche Techniken zur weiteren Ausnutzung für verschiedene DBMS, weshalb es nicht nur als Scanner für SQL-Injektionen nützlich ist, sondern auch als leistungsstarkes Werkzeug zur Ausnutzung bereits gefundener SQL-Injektionen.
Vorteile:
- Eine Vielzahl unterschiedlicher Techniken und Ansätze;
- Geringe Anzahl von Fehlalarmen;
- Vielseitige Anpassungsmöglichkeiten, verschiedene Techniken, Ziel-Datenbanken, Tamper-Skripte zur Umgehung von WAF;
- Möglichkeit zur Erstellung eines Dump der Ausgabedaten;
- Vielzahl an Nutzungsmöglichkeiten, beispielsweise automatisches Laden/Entladen von Dateien für einige Datenbanken, Erlangung der Fähigkeit zur Ausführung von Befehlen (RCE) und mehr;
- Unterstützung der direkten Verbindung zu Datenbanken mit den während des Angriffs erlangten Daten;
- Es kann eine Textdatei mit den Ergebnissen der Burp-Arbeit eingegeben werden – man muss nicht alle Attribute der Kommandozeile manuell zusammenstellen.
Nachteile:
- Schwierig anzupassen, beispielsweise eigene Prüfungen zu entwickeln, aufgrund der mageren Dokumentation dafür;
- Führt ohne entsprechende Einstellungen nur unvollständige Prüfungen durch, was irreführend sein kann.

oxml_xxe
– Ein Werkzeug in Python zur Automatisierung der Suche und Ausnutzung von NoSQL-Injektionen. Es lässt sich nicht nur in NoSQL-Datenbanken problemlos verwenden, sondern auch direkt bei der Prüfung von Webanwendungen, die NoSQL nutzen.
Vorteile:
- Wie sqlmap ermöglicht auch dieses Tool nicht nur die Suche nach potenziellen Sicherheitsanfälligkeiten, sondern überprüft ebenfalls die Möglichkeit ihrer Ausnutzung für MongoDB und CouchDB.
Nachteile:
- Unterstützt derzeit kein NoSQL für Redis und Cassandra; dies wird jedoch aktuell entwickelt.
tplmap
— ist ein Werkzeug zum Einfügen von XXE XML-Exploits in verschiedene Dateitypen, die in irgendeiner Form XML-Format verwenden.
Vorteile:
- Unterstützt viele gängige Formate wie DOCX, ODT, SVG, XML.
Nachteile:
- Die Unterstützung für PDF, JPEG und GIF ist noch nicht vollständig implementiert;
- Es wird nur eine Datei erstellt. Um dieses Problem zu lösen, kann das Tool verwendet werden, das eine große Anzahl von Dateien mit Payloads an verschiedenen Orten erstellen kann.
Die oben genannten Tools sind hervorragend geeignet, um XXE-Tests durchzuführen, wenn Dokumente mit XML-Inhalten hochgeladen werden. Vergessen Sie jedoch nicht, dass XML-Handler in vielen anderen Fällen vorkommen können, zum Beispiel kann XML als Datenformat anstelle von JSON verwendet werden.
Daher empfehlen wir, auf das folgende Repository zu achten, das eine große Sammlung vielfältiger Payloads enthält: .
Weakpass
— ein Python-Werkzeug zur automatischen Erkennung und Ausnutzung von Server-Side Template Injection-Schwachstellen, das ähnliche Einstellungen und Flags wie sqlmap aufweist. Es verwendet verschiedene Techniken und Vektoren, einschließlich Blind-Injektionen, sowie Techniken zur Ausführung von Code und zum Hoch- und Herunterladen beliebiger Dateien. Darüber hinaus bietet es Techniken für eine Vielzahl von Template-Engines und Methoden zur Auffindung von eval()-ähnlichen Code-Injektionen in Python, Ruby, PHP und JavaScript. Bei erfolgreicher Ausnutzung öffnet es eine interaktive Konsole.
Vorteile:
- Eine Vielzahl unterschiedlicher Techniken und Ansätze;
- Unterstützt viele Template-Engines;
- Vielzahl an Ausnutzungstechniken.
CeWL
— ein Wörterbuchgenerator in Ruby, der entwickelt wurde, um einzigartige Wörter von einer angegebenen Website zu extrahieren und den Links auf der Website bis zu einer angegebenen Tiefe zu folgen. Das erstellte Wörterbuch aus einzigartigen Wörtern kann dann verwendet werden, um Passwörter auf Diensten zu knacken oder Dateien und Verzeichnisse auf der gleichen Website zu bruteforcen, oder um Angriffe auf erhaltene Hashes mit hashcat oder John the Ripper durchzuführen. Nützlich beim Erstellen einer "Ziel"-Liste potenzieller Passwörter.
Vorteile:
- Einfach zu bedienen.
Nachteile:
- Man sollte vorsichtig mit der Suchtiefe sein, um nicht versehentlich zusätzliche Domains einzuschließen.
AEM_hacker
— ein Dienst, der eine Vielzahl von Wörterbüchern mit einzigartigen Passwörtern enthält. Extrem nützlich für verschiedene Aufgaben im Zusammenhang mit Passwortknacken, beginnend bei einfachen Online-Brute-Force-Angriffen auf Zielkonten bis hin zu Offline-Brute-Forcing der erhaltenen Hashes mit Hilfe von oder . Enthält etwa 8 Milliarden Passwörter mit einer Länge von 4 bis 25 Zeichen.
Vorteile:
- Bietet sowohl spezifische Wörterbücher als auch Sammlungen der am häufigsten vorkommenden Passwörter – man kann ein spezifisches Wörterbuch für eigene Bedürfnisse auswählen;
- Die Wörterbücher werden regelmäßig aktualisiert und mit neuen Passwörtern ergänzt;
- Die Wörterbücher sind nach Effizienz sortiert. Man kann eine Option für schnelles Online-Brute-Forcing sowie eine gründliche Passwortsuche aus einem umfangreichen Wörterbuch mit den neuesten Leaks auswählen;
- Es gibt einen Rechner, der die Brute-Force-Zeit für Passwörter auf Ihrer Hardware anzeigt.

Eine separate Gruppe von Werkzeugen möchten wir für CMS-Prüfungen herausstellen: WPScan, JoomScan und AEM Hacker.
JoomScan
— ein Tool zur Identifizierung von Sicherheitsanfälligkeiten in Adobe Experience Manager (AEM) Anwendungen.
Vorteile:
- Kann AEM-Anwendungen aus der eingereichten URL-Liste erkennen;
- Beinhaltet Skripte zur Erlangung von RCE durch das Hochladen von JSP-Shells oder die Ausnutzung von SSRF.
WPScan
— ein Perl-Tool zur Automatisierung der Schwachstellenerkennung bei der Bereitstellung von Joomla CMS.
Vorteile:
- In der Lage, Konfigurationsschwächen und Probleme mit Administratoreinstellungen zu identifizieren;
- Listet Joomla-Versionen und die damit verbundenen Schwachstellen auf, ebenso für einzelne Komponenten;
- Enthält mehr als 1000 Exploits für Joomla-Komponenten;
- Erzeugt abschließende Berichte im Text- und HTML-Format.

— ein Tool in Go zur Suche und Enumeration von DNS-Subdomänen und zur Erstellung einer Karte des externen Netzwerks. Amass ist ein OWASP-Projekt, das entwickelt wurde, um zu zeigen, wie Organisationen aus der Sicht eines Außenstehenden im Internet erscheinen. Die Subdomänennamen erhält Amass auf verschiedene Weise, wobei sowohl rekursive Subdomänensuchen als auch Recherchen in offenen Quellen genutzt werden.
— ein Tool zum Scannen von Websites auf WordPress, verfügt über Schwachstellen sowohl für die WordPress-Engine als auch für einige Plugins.
Vorteile:
- Kann nicht nur unsichere WordPress-Plugins und -Themen auflisten, sondern auch Benutzerdaten und TimThumb-Dateien abrufen;
- Kann Brute-Force-Angriffe auf WordPress-Websites durchführen.
Nachteile:
- Führt ohne entsprechende Einstellungen nur unvollständige Prüfungen durch, was irreführend sein kann.

Im Großen und Ganzen bevorzugen verschiedene Menschen unterschiedliche Werkzeuge für ihre Arbeit: Jedes hat seine eigenen Vorzüge, und was einem gefällt, passt vielleicht ganz und gar nicht zu einem anderen. Wenn Sie der Meinung sind, dass wir ein nützliches Tool zu Unrecht übersehen haben, lassen Sie es uns in den Kommentaren wissen!
Quelle: habr.com
