mit der Vorstellung nützlicher Werkzeuge für Penetrationstester. In diesem neuen Artikel betrachten wir Werkzeuge zur Analyse der Sicherheit von Webanwendungen.
Unser Kollege hat bereits eine solche vor etwa sieben Jahren erstellt. Es ist interessant zu sehen, welche Werkzeuge ihren Platz gehalten und gefestigt haben und welche in den Hintergrund geraten sind und jetzt selten verwendet werden.

Wir möchten darauf hinweisen, dass auch Burp Suite dazugehört, aber darüber und über seine nützlichen Plugins wird es eine separate Veröffentlichung geben.
Inhalt:
Amass
— ein Tool in Go zum Auffinden und Testen von DNS-Unterdomänen und zur Erstellung einer Karte des externen Netzwerks. Amass ist ein OWASP-Projekt, das erstellt wurde, um zu zeigen, wie Organisationen aus Sicht von Dritten im Internet erscheinen. Amass erhält die Namen der Unterdomänen auf verschiedene Weise, wobei sowohl rekursive Unterdomänen-Enumeration als auch die Suche in offenen Quellen verwendet werden.
Zur Erkennung verbundener Netzsegment und autonomer Systemnummern verwendet Amass IP-Adressen, die während der Arbeit erhalten wurden. Alle gefundenen Informationen werden verwendet, um eine Netzwerkkarte zu erstellen.
Vorteile:
- Techniken zur Informationssammlung umfassen:
* DNS — Unterdomänen-Enumeration anhand von Wortschätzen, Bruteforce von Unterdomänen, "intelligente" Enumeration unter Verwendung von Mutationen basierend auf gefundenen Unterdomänen, Reverse-DNS-Anfragen 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 Datenbanken für TLS-Zertifikate — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Verwendung von API von Suchmaschinen — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Suche in Webarchiven des Internets: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integration mit Maltego;
- Bietet die umfassendste Abdeckung der Aufgabe zur Suche nach DNS-Unterdomänen.
Nachteile:
- Seien Sie vorsichtig mit amass.netdomains — es versucht, auf jede IP-Adresse in der identifizierten Infrastruktur zuzugreifen und Domainnamen aus Reverse-DNS-Anfragen und TLS-Zertifikaten zu erhalten. Dies ist eine "auffällige" Technik, sie kann Ihre Aufklärungsaktivitäten in der untersuchten Organisation offenbaren.
- Hoher Speicherbedarf, kann bis zu 2 GB RAM in verschiedenen Einstellungen verbrauchen, was es unmöglich macht, dieses Tool auf einem kostengünstigen VDS in der Cloud zu betreiben.

Altdns
— ein Tool in Python zum Erstellen von Wörterbüchern für das Durchsuchen von DNS-Subdomains. Es ermöglicht die Generierung vieler Subdomain-Varianten durch Mutationen und Permutationen. Dabei werden Wörter verwendet, die häufig in Subdomains vorkommen (z. B.: test, dev, staging); alle Mutationen und Permutationen werden auf bereits bekannte Subdomains angewendet, die Altdns zugeführt werden können. Am Ende entsteht eine Liste von Varianten von Subdomains, die existieren könnten, und diese Liste kann später beim DNS-Bruteforcen verwendet werden.
Vorteile:
- Funktioniert gut mit großen Datensätzen.
aquatone
— wurde früher eher als ein weiteres Tool zur Suche nach Subdomains bekannt, aber der Autor hat sich zugunsten des oben genannten Amass davon abgewandt. Jetzt ist aquatone in Go neu geschrieben und mehr auf die Vorabaufklärung von Websites ausgerichtet. Dazu durchläuft aquatone die angegebenen Domains und sucht auf ihnen nach Websites auf verschiedenen Ports, sammelt anschließend alle Informationen über die Website und macht einen Screenshot. Es ist nützlich für eine schnelle Vorabaufklärung von Websites, nach der priorisierte Ziele für Angriffe ausgewählt werden können.
Vorteile:
- Erzeugt am Ende eine Gruppe von Dateien und Ordnern, die bei der weiteren Arbeit mit anderen Tools nützlich sind:
* HTML-Bericht mit gesammelten Screenshots und nach Ähnlichkeit gruppierten Antwortüberschriften;* Datei mit allen URLs, auf denen Websites gefunden wurden;
* Datei mit Statistiken und Seiteninformationen;
* Ordner mit Dateien, die die Antwortüberschriften von gefundenen Zielen enthalten;
* Ordner mit Dateien, die den Antworttext von gefundenen Zielen enthalten;
* Screenshots der gefundenen Websites;
- Unterstützt die Arbeit mit XML-Berichten von Nmap und Masscan;
- Verwendet headless Chrome/Chromium zum Rendern von Screenshots.
Nachteile:
- Könnte die Aufmerksamkeit von Intrusion Detection Systemen auf sich ziehen, daher ist eine Konfiguration erforderlich.
Screenshot wurde für eine der alten Versionen von aquatone (v0.5.0) erstellt, in der die Suche nach DNS-Subdomains implementiert war. Ältere Versionen sind zu finden auf .

MassDNS
— ein weiteres Tool zur Suche nach DNS-Subdomains. Sein Hauptunterschied besteht darin, dass es DNS-Anfragen direkt an viele verschiedene DNS-Resolver stellt und dies mit erheblicher Geschwindigkeit tut.
Vorteile:
- Schnell – kann mehr als 350.000 Namen pro Sekunde auflösen.
Nachteile:
- MassDNS kann erhebliche Last auf den verwendeten DNS-Resolvern verursachen, was zu einem Bann auf diesen Servern oder Beschwerden bei Ihrem Anbieter führen kann. Darüber hinaus könnte es eine hohe Belastung für die DNS-Server des Unternehmens verursachen, falls vorhanden, und wenn sie für die Domänen verantwortlich sind, die Sie zu resolvieren versuchen.
- Die Liste der Resolver ist derzeit veraltet, aber wenn Sie nicht funktionierende DNS-Resolver herausfiltern und neue bekannte hinzufügen, sollte alles gut sein.

Screenshot aquatone v0.5.0
nsec3map
– ein Tool in Python, um eine vollständige Liste von Domains zu erhalten, die durch DNSSEC geschützt sind.
Vorteile:
- Entdeckt Hosts in DNS-Zonen mit minimaler Anzahl an Anfragen, wenn in der Zone DNSSEC-Unterstützung aktiviert ist;
- Enthält ein Plugin für John the Ripper, das verwendet werden kann, um die erhaltenen NSEC3-Hashes zu knacken.
Nachteile:
- Viele DNS-Fehler werden nicht korrekt verarbeitet;
- Es gibt keine automatische Parallelverarbeitung von NSEC-Einträgen – der Namensraum muss manuell aufgeteilt werden;
- Hoher Speicherbedarf.
Acunetix
– ein Scanner für Web-Sicherheitsanfälligkeiten, der den Prozess der Sicherheitsüberprüfung von Webanwendungen automatisiert. Testet die Anwendung auf SQL-Injektionen, XSS, XXE, SSRF und viele andere Web-Sicherheitsanfälligkeiten. Allerdings ersetzt er, wie jeder andere Scanner für viele Web-Sicherheitsanfälligkeiten, nicht einen Pentester, da er komplexe Ketten von Verwundbarkeiten oder logische Schwächen nicht finden kann. Dennoch deckt er viele verschiedene Schwachstellen ab, einschließlich einer Vielzahl von CVEs, an die ein Pentester vielleicht nicht gedacht hat, weshalb er sehr nützlich ist, um zeitaufwendige Prüfungen zu automatisieren.
Vorteile:
- Niedriges Niveau von Fehlalarmen;
- Die Ergebnisse können in Form von Berichten exportiert werden;
- Führt eine große Anzahl von Prüfungen auf verschiedene Schwachstellen durch;
- Paralleles Scannen mehrerer Hosts.
Nachteile:
- Es gibt keinen Deduplication-Algorithmus (sehr ähnliche Seiten, die von Acunetix als unterschiedlich betrachtet werden, da sie unter verschiedenen URLs erreichbar sind), aber die Entwickler arbeiten daran;
- Erfordert die Installation auf einem separaten Webserver, was das Testen von Client-Systemen über VPN und die Verwendung des Scanners in einem isolierten Segment des lokalen Client-Netzwerks erschwert;
- Kann den untersuchten Dienst 'stören', indem er beispielsweise zu viele angreifende Vektoren im Kontaktformular der Website sendet und damit die Geschäftsprozesse erheblich erschwert;
- Ist eine proprietäre und somit kostenpflichtige Lösung.

Dirsearch
— ein Werkzeug in Python zum Brute-Forcen von Verzeichnissen und Dateien auf Websites.
Vorteile:
- Kann echte „200 OK“-Seiten von Seiten „200 OK“, aber mit dem Text „Seite nicht gefunden“ unterscheiden;
- Wird zusammen mit einem praktischen Wörterbuch geliefert, das ein gutes Gleichgewicht zwischen Größe und Sucheffizienz aufweist. Enthält Standardpfade, die für viele CMS und Technologie-Stacks charakteristisch sind;
- Sein eigenes Wörterbuchformat, das eine gute Effizienz und Flexibilität beim Durchsuchen von Dateien und Verzeichnissen ermöglicht;
- Bequeme Ausgabe — Klartext, JSON;
- Kann Throttling durchführen — Pausen zwischen den Anfragen, was für jeden schwachen Dienst unerlässlich ist.
Nachteile:
- Erweiterungen müssen als Zeichenfolge übergeben werden, was unpraktisch ist, wenn viele Erweiterungen gleichzeitig übergeben werden müssen;
- Um sein Wörterbuch zu verwenden, muss es leicht angepasst werden, um das Format der Dirsearch-Wörterbücher für maximale Effizienz zu erreichen.

wfuzz
— ein Web-Fuzzer in Python. Wahrscheinlich einer der bekanntesten Web-Fuzzer. Das Prinzip ist einfach: wfuzz ermöglicht das Fuzzing an jedem Ort in der HTTP-Anfrage, was die Möglichkeit gibt, GET/POST-Parameter, HTTP-Header, einschließlich Cookies und andere Authentifizierungsheader zu fuzzing. Gleichzeitig ist es auch für einfaches Brute-Forcing von Verzeichnissen und Dateien geeignet, wofür ein gutes Wörterbuch erforderlich ist. Es hat auch ein flexibles Filtersystem, mit dem Antworten von der Website nach verschiedenen Parametern gefiltert werden können, was effektive Ergebnisse ermöglicht.
Vorteile:
- Multifunktional — modulare Struktur, die Montage dauert ein paar Minuten;
- Bequemer Filter- und Fuzzing-Mechanismus;
- Es können beliebige HTTP-Methoden gefuzzed werden, sowie jeder Ort in der HTTP-Anfrage.
Nachteile:
- In Entwicklung.

ffuf
— ein Web-Fuzzer in Go, geschaffen nach dem „Vorbild“ von wfuzz, ermöglicht das Brute-Forcing von Dateien, Verzeichnissen, URL-Pfaden, Namen und Werten von GET/POST-Parametern, HTTP-Headern, einschließlich des Host-Headers, um virtuelle Hosts zu fuzzing. Im Gegensatz zu seinem Bruder wfuzz zeichnen sich durch eine höhere Geschwindigkeit und einige neue Funktionen aus, zum Beispiel werden Wörterbücher im Dirsearch-Format unterstützt.
Vorteile:
- Filter ähneln den Filtern von wfuzz und ermöglichen eine flexible Anpassung des Brute-Forcings;
- Ermöglicht das Fuzzing von HTTP-Headerwerten, POST-Daten und verschiedenen Teilen der URL, einschließlich der Namen und Werte von GET-Parametern;
- Es kann jede HTTP-Methode angegeben werden.
Nachteile:
- In Entwicklung.

gobuster
— ein Tool in Go zur Rekognoszierung, das über zwei Betriebsmodi verfügt. Der erste wird zum Bruteforcen von Dateien und Verzeichnissen auf einer Website verwendet, der zweite zum Durchforsten von DNS-Subdomains. Das Tool unterstützt von Haus aus kein rekursives Durchforsten von Dateien und Verzeichnissen, was zwar Zeit spart, jedoch bedeutet, dass jeder neue Endpunkt auf der Website separat angesteuert werden muss.
Vorteile:
- Hohe Geschwindigkeit sowohl beim Durchforsten von DNS-Subdomains als auch beim Bruteforcen von Dateien und Verzeichnissen.
Nachteile:
- Unterstützt in der aktuellen Version keine HTTP-Header-Einstellungen;
- Geht standardmäßig davon aus, dass nur einige HTTP-Statuscodes (200, 204, 301, 302, 307) gültig sind.

Arjun
— ein Tool zum Bruteforcen versteckter HTTP-Parameter in GET/POST-Parametern sowie in JSON. Das eingebaute 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 ~1000 Parameter auf einmal und beobachtet, ob sich die Antwort ändert. Wenn sich die Antwort ändert, teilt es diese 1000 Parameter in zwei Teile und überprüft, welcher dieser Teile die Antwort beeinflusst. So wird mit einem einfachen binären Suchverfahren der Parameter oder die mehreren versteckten Parameter gefunden, die die Antwort beeinflussten und somit existieren könnten.
Vorteile:
- Hohe Geschwindigkeit durch binäre Suche;
- Unterstützung von GET/POST-Parametern sowie Parametern in JSON-Form;
Nach einem ähnlichen Prinzip funktioniert das Plugin für Burp Suite — , das ebenfalls sehr gut darin ist, versteckte HTTP-Parameter zu finden. Detailliertere Informationen darüber werden wir in einem kommenden Artikel über Burp und seine Plugins bereitstellen.

LinkFinder
— ein Python-Skript zur Suche nach Links in JavaScript-Dateien. Nützlich zur Auffindung versteckter oder vergessener Endpunkte/URLs in Webanwendungen.
Vorteile:
- Schnell;
- Es gibt ein spezielles Plugin für Chrome, das auf LinkFinder basiert.
.
Nachteile:
- Unpraktische finale Ausgabe;
- Analysiert JavaScript nicht dynamisch;
- Die Logik zur Suche nach Links ist ziemlich einfach – wenn JavaScript auf irgendeine Weise obfuskiert ist oder die Links ursprünglich nicht vorhanden sind und dynamisch erstellt werden, kann nichts gefunden werden.

JSParser
— ein Python-Skript, das und verwendet, um relative URL-Adressen aus JavaScript-Dateien zu analysieren. Sehr nützlich zur Identifizierung von AJAX-Anfragen und zum Erstellen 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-Injection, arbeitet mit mehreren SQL-Dialekten und verfügt über eine Vielzahl verschiedener Techniken, beginnend mit simplen Injections bis hin zu komplexen Vektoren für zeitbasierte SQL-Injections. Darüber hinaus bietet es zahlreiche Techniken zur weiteren Ausnutzung für verschiedene DBMS, weshalb es nicht nur als Scanner für SQL-Injections nützlich ist, sondern auch als leistungsstarkes Werkzeug zur Ausnutzung bereits gefundener SQL-Injections.
Vorteile:
- Eine große Anzahl verschiedener Techniken und Vektoren;
- Geringe Anzahl von Fehlalarmen;
- Vielerlei Anpassungsmöglichkeiten, verschiedene Techniken, Ziel-DB, Tamper-Skripte zum Umgehen von WAF;
- Die Möglichkeit, ein Dump der Ausgabe zu erstellen;
- Vielzahl verschiedener Ausnutzungsmöglichkeiten, z.B. für einige DBs — automatisches Hochladen/Herunterladen von Dateien, Möglichkeit zur Ausführung von Kommandoen (RCE) und mehr;
- Unterstützung der direkten Verbindung zur DB mit den während des Angriffs erhaltenen Daten;
- Es ist möglich, eine Textdatei mit den Ergebnissen von Burp als Eingabe zu verwenden — man muss nicht manuell alle Attribute der Befehlszeile zusammenstellen.
Nachteile:
- Schwierig zu konfigurieren, z.B. eigene Prüfungen zu schreiben, aufgrund der spärlichen Dokumentation dafür;
- Ohne entsprechende Einstellungen führt es unvollständige Prüfungen durch, was irreführend sein kann.

NoSQLMap
— ein Werkzeug in Python zur Automatisierung der Suche und Ausnutzung von NoSQL-Injection. Es ist nicht nur in NoSQL-Datenbanken nützlich, sondern auch direkt bei der Prüfung von Webanwendungen, die NoSQL verwenden.
Vorteile:
- Wie sqlmap ermöglicht es nicht nur, potenzielle Schwächen zu erkennen, sondern auch zu überprüfen, ob sie für MongoDB und CouchDB ausgenutzt werden können.
Nachteile:
- Unterstützt kein NoSQL für Redis, Cassandra; in diesem Bereich wird an einer Entwicklung gearbeitet.
oxml_xxe
— ein Werkzeug zum Einfügen von XXE-XML-Exploits in verschiedene Dateitypen, in denen in irgendeiner Form das XML-Format verwendet wird.
Vorteile:
- Unterstützt viele gängige Formate wie DOCX, ODT, SVG, XML.
Nachteile:
- Die Unterstützung von PDF, JPEG, GIF ist noch nicht vollständig realisiert;
- Erstellt nur eine Datei. Um dieses Problem zu lösen, kann das Werkzeug , das eine große Anzahl von Dateien mit Payloads an verschiedenen Stellen erstellen kann, verwendet werden.
Die oben genannten Tools sind hervorragend geeignet, um XXE-Tests bei der Verarbeitung von Dokumenten mit XML durchzuführen. Vergessen Sie jedoch nicht, dass XML-Format-Handler in vielen anderen Szenarien auftreten können, zum Beispiel kann XML als Datenformat anstelle von JSON verwendet werden.
Wir empfehlen daher, auf folgendes Repository zu achten, das eine große Anzahl vielfältiger Payloads enthält: .
tplmap
– ein Python-Tool zur automatischen Erkennung und Ausnutzung von Server-Side Template Injection-Schwachstellen, das ähnliche Einstellungen und Flags wie sqlmap verwendet. Es nutzt verschiedene Techniken und Vektoren, einschließlich blind-Injektionen, und bietet Techniken zum Ausführen von Code sowie zum Hoch- und Herunterladen beliebiger Dateien. Außerdem verfügt es über Techniken für eine Vielzahl von Template-Engines und einige Techniken zur Suche nach eval()-ähnlichen Code-Injektionen in Python, Ruby, PHP und JavaScript. Bei erfolgreicher Ausnutzung öffnet es eine interaktive Konsole.
Vorteile:
- Eine große Anzahl verschiedener Techniken und Vektoren;
- Unterstützt zahlreiche Engines zur Rendern von Templates;
- Viele 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 Seite bis zu einer bestimmten Tiefe folgt. Das generierte Wörterbuch aus einzigartigen Wörtern kann später zum Brute-Forcen von Passwörtern auf Diensten oder zum Brute-Forcen von Dateien und Verzeichnissen auf derselben Website verwendet werden, oder um erhaltene Hashes mit hashcat oder John the Ripper anzugreifen. Nützlich bei der Erstellung einer „Ziel“-Liste potenzieller Passwörter.
Vorteile:
- Einfach zu bedienen.
Nachteile:
- Seien Sie vorsichtig mit der Sucheiefe, um nicht versehentlich andere Domains einzufangen.
Weakpass
– ein Dienst, der zahlreiche Wörterbücher mit einzigartigen Passwörtern enthält. Extrem nützlich für verschiedene Aufgaben im Zusammenhang mit dem Knacken von Passwörtern, von einfachem Online-Brute-Forcing von Konten auf Ziel-Diensten bis hin zu Offline-Brute-Forcing von erhaltenen Hashes mit oder . Enthält etwa 8 Milliarden Passwörter mit einer Länge von 4 bis 25 Zeichen.
Vorteile:
- Umfasst sowohl spezifische Wörterbücher als auch Wörterbücher mit den häufigsten Passwörtern – man kann ein spezifisches Wörterbuch für die eigenen Bedürfnisse auswählen;
- Wörterbücher werden aktualisiert und mit neuen Passwörtern ergänzt;
- Die Wörterbücher sind nach Effektivität sortiert. Sie können sowohl eine Option für einen schnellen Online-Brute-Force-Angriff wählen als auch eine gründliche Passworteingabe aus einem umfangreichen Wörterbuch mit den letzten Leaks.
- Es gibt einen Rechner, der die Brutzeit für Passwörter auf Ihrer Hardware anzeigt.

In eine separate Gruppe möchten wir Werkzeuge für CMS-Überprüfungen auslagern: WPScan, JoomScan und AEM Hacker.
AEM_hacker
— ein Werkzeug zur Identifizierung von Schwachstellen in Adobe Experience Manager (AEM) Anwendungen.
Vorteile:
- Kann AEM-Anwendungen aus einer Liste von URLs identifizieren, die ihm zur Verfügung gestellt werden;
- Enthält Skripte zur Erlangung von RCE durch das Hochladen von JSP-Shells oder die Ausnutzung von SSRF.
JoomScan
— ein Perl-Werkzeug zur Automatisierung der Schwachstellenerkennung bei der Bereitstellung von Joomla CMS.
Vorteile:
- Es ist in der Lage, Konfigurationsmängel und Probleme mit den Administratoreinstellungen zu finden;
- Listet Joomla-Versionen und die damit verbundenen Schwachstellen auf, ebenso für einzelne Komponenten;
- Enthält über 1000 Exploits für Joomla-Komponenten;
- Gibt Abschlussberichte im Text- und HTML-Format aus.

WPScan
— ein Werkzeug zum Scannen von WordPress-Websites, das Schwachstellen sowohl für die WordPress-Engine selbst als auch für einige Plugins im Angebot hat.
Vorteile:
- Es kann nicht nur unsichere WordPress-Plugins und -Themen auflisten, sondern auch Benutzerlisten und TimThumb-Dateien abrufen;
- Kann Brute-Force-Angriffe auf WordPress-Seiten durchführen.
Nachteile:
- Ohne entsprechende Einstellungen führt es unvollständige Prüfungen durch, was irreführend sein kann.

Insgesamt ziehen verschiedene Menschen unterschiedliche Werkzeuge zur Arbeit vor: alle sind auf ihre Weise gut, und was einer Person gefällt, kann einem anderen völlig ungeeignet erscheinen. Wenn Sie der Meinung sind, dass wir ein gutes Dienstprogramm zu Unrecht nicht erwähnt haben, schreiben Sie es in die Kommentare!
Quelle: habr.com
