Vor einiger Zeit habe ich bereits über , aber das war etwas spärlich und chaotisch. Danach habe ich beschlossen, die Liste der Tools im Überblick zu erweitern, der Struktur des Artikels Rechnung zu tragen und die Kritik zu berücksichtigen (vielen Dank für die Tipps) und habe sie beim Seclab-Wettbewerb eingereicht (und veröffentlicht , aber aus verständlichen Gründen hat sie niemand gesehen). Der Wettbewerb ist beendet, die Ergebnisse wurden bekannt gegeben und ich kann sie (den Artikel) mit reinem Gewissen auf Habr veröffentlichen.
Kostenlose Tools für Webanwendungspentester
In diesem Artikel werde ich die beliebtesten Tools für Penetrationstests (Pentests) von Webanwendungen nach der „Black-Box“-Strategie vorstellen.
Hierfür werden wir die Tools betrachten, die in dieser Testart hilfreich sind. Wir werden die folgenden Produktkategorien ansehen:
- Netzwerkscanner
- Scanner für Sicherheitslücken in Web-Skripten
- Exploits
- Automatisierung von Injektionen
- Debugging-Tools (Sniffer, lokale Proxys usw.)
Einige Produkte haben einen universellen "Charakter", daher werde ich sie der Kategorie zuordnen, in der sie diegrößtenErgebnisse bieten (subjektive Meinung).
Netzwerkscanner.
Die Hauptaufgabe besteht darin, die verfügbaren Netzwerkdienste aufzudecken, ihre Versionen zu identifizieren, das Betriebssystem zu bestimmen usw.
Nmap
ist ein kostenloses Open-Source-Tool zur Netzwerkanalyse und Sicherheitsprüfung von Systemen. Für die leidenschaftlichen Gegner der Konsole steht Zenmap zur Verfügung, eine GUI für Nmap.
Es handelt sich nicht nur um einen „smarten“ Scanner, sondern um ein ernstzunehmendes, erweiterbares Werkzeug (eine der "besonderen Funktionen" ist das Vorhandensein eines Skripts zur Überprüfung eines Hosts auf den Wurm "" [wurde erwähnt ). Ein typisches Beispiel für die Verwendung:
nmap -A -T4 localhost
-A zum Ermitteln der Betriebssystemversion, Scannen mit Skripten und Tracing
-T4 Zeitmanagementeinstellung (mehr bedeutet schneller, von 0 bis 5)
localhost — das Zielgerät
Etwas härter?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Das ist eine Auswahl an Optionen aus dem Profil „slow comprehensive scan“ in Zenmap. Es dauert ziemlich lange, liefert aber letztendlich detailliertere Informationen über das Zielsystem. , falls Sie tiefer eintauchen möchten, und außerdem empfehle ich die Übersetzung des Artikels .
Nmap wurde von Fachzeitschriften und Communitys wie Linux Journal, InfoWorld, LinuxQuestions.Org und Codetalker Digest als „Security Product of the Year“ ausgezeichnet.
Ein interessanter Punkt ist, dass Nmap in Filmen wie „Die Matrix: Reloaded“, „Stirb langsam 4“, „Das Bourne Ultimatum“, „Hotabbich“ und .
IP-Tools
— eine Art Sammlung verschiedener Netzwerk-Utilities, die mit einer GUI geliefert wird und für Windows-Nutzer gedacht ist.
Ein Port-Scanner, für gemeinsame Ressourcen (Freigaben von Druckern/Ordnern), WhoIs/Finger/Lookup, Telnet-Client und vieles mehr. Einfach ein praktisches, schnelles, funktionales Tool.
Es macht wenig Sinn, andere Produkte zu betrachten, da es viele Utilities in diesem Bereich gibt und alle ein ähnliches Prinzip und ähnliche Funktionen haben. Dennoch bleibt nmap das am häufigsten verwendete.
Scanner für Sicherheitslücken in Web-Skripten
Es wird versucht, gängige Schwachstellen (SQL-Injection, XSS, LFI/RFI usw.) oder Fehler (nicht gelöschte temporäre Dateien, Verzeichnisindizierung usw.) zu finden.
Acunetix Web Vulnerability Scanner
— Der Link zeigt deutlich, dass es sich um einen XSS-Scanner handelt, aber das ist nicht ganz korrekt. Die kostenlose Version, die über den Link erhältlich ist, bietet eine ziemlich umfangreiche Funktionalität. Oft wird eine Person, die diesen Scanner zum ersten Mal ausführt und zum ersten Mal einen Bericht über ihr eigenes Projekt erhält, von einem leichten Schock erfasst, und Sie werden verstehen, warum, wenn Sie es ausprobieren. Es ist ein sehr leistungsfähiges Produkt zur Analyse aller möglichen Schwachstellen auf der Website und funktioniert nicht nur mit den uns vertrauten PHP-Seiten, sondern auch in anderen Programmiersprachen (auch wenn der Unterschied in der Sprache kein Indikator ist). Eine detaillierte Anleitung macht wenig Sinn, da der Scanner einfach die Aktionen des Benutzers „aufnimmt“. Es ist ähnlich wie „weiter, weiter, weiter, fertig“ bei der typischen Installation einer Software.
Nikto
ist ein Open Source (GPL) Web-Scanner. Er übernimmt die lästige manuelle Arbeit. Er durchsucht die Zielseite nach nicht entfernten Skripten (wie test.php, index_.php usw.), Datenbankverwaltungswerkzeugen (/phpmyadmin/, /pma und Ähnliches) usw., das heißt, er überprüft die Ressource auf die häufigsten Fehler, die normalerweise durch menschliches Versagen entstehen.
Außerdem, wenn er ein beliebtes Skript findet, überprüft er, ob dafür bereits Exploits veröffentlicht wurden (die in der Datenbank vorhanden sind).
Berichtet über verfügbare "unerwünschte" Methoden wie PUT und TRACE.
Und so weiter. Sehr praktisch, wenn Sie als Auditor arbeiten und täglich Websites analysieren.
Als Nachteil möchte ich den hohen Prozentsatz an Fehlalarmen erwähnen. Wenn Ihre Website beispielsweise anstelle eines 404-Fehlers (wenn dieser auftreten sollte) stattdessen ständig die Hauptseite zurückgibt, wird der Scanner sagen, dass auf Ihrer Website alle Skripte und alle Schwachstellen aus seiner Datenbank vorhanden sind. In der Praxis kommt das nicht oft vor, aber es hängt viel von der Struktur Ihrer Website ab.
Klassische Verwendung:
./nikto.pl -host localhost
Wenn Sie auf der Website authentifiziert sein müssen, können Sie Cookies in der Datei nikto.conf setzen, Variable STATIC-COOKIE.
Wikto
— Nikto unter Windows, jedoch mit einigen Ergänzungen, wie einer "unscharfen" Logik bei der Überprüfung des Codes auf Fehler, Verwendung von GHDB, Abruf von Links und Verzeichnissen der Ressource sowie Echtzeitüberwachung von HTTP-Anfragen/Antworten. Wikto ist in C# geschrieben und erfordert das .NET-Framework.
skipfish
— ein Web-Schwachstellenscanner von (bekannt unter dem Pseudonym lcamtuf). In C geschrieben, plattformübergreifend (für Windows ist Cygwin erforderlich). Durchläuft die gesamte Website rekursiv (und sehr lange, etwa 20-40 Stunden, obwohl ich zuletzt 96 Stunden hatte) und findet verschiedene Sicherheitslücken. Generiert auch sehr viel Verkehr (einige GB eingehend/ausgehend). Alle Mittel sind gut, insbesondere, wenn man Zeit und Ressourcen hat.
Typische Verwendung:
./skipfish -o /home/reports www.example.com
Im Ordner „reports“ wird ein Bericht im HTML-Format erstellt. .
w3af 
— Web Application Attack and Audit Framework, ein Open-Source-Scanner für Web-Sicherheitsanfälligkeiten. Verfügt über eine GUI, kann aber auch über die Konsole verwendet werden. Technisch gesehen ist es ein Framework mit .
Man kann lange über die Vorteile sprechen, besser, man probiert es aus :)
Die typische Arbeit damit besteht darin, ein Profil auszuwählen, das Ziel anzugeben und einfach zu starten.
Mantra Security Framework
ist ein erfüllter Traum.Eine Sammlung von kostenlosen und offenen Sicherheitswerkzeugen, die in den Webbrowser integriert sind.
Sehr nützlich beim Testen von Webanwendungen in allen Phasen.
Die Nutzung beschränkt sich auf die Installation und das Starten des Browsers.
Es gibt tatsächlich eine Vielzahl von Tools in dieser Kategorie, und es ist ziemlich schwierig, eine spezifische Liste hervorzuheben. Häufig entscheidet jeder Penetrationstester selbst über die Werkzeuge, die er benötigt.
Exploits
Für die automatisierte und benutzerfreundlichere Nutzung von Schwachstellen in Software und Skripten werden Exploits geschrieben, die nur Parameter übergeben müssen, um Sicherheitslücken auszunutzen. Es gibt auch Produkte, die das manuelle Suchen nach Exploits überflüssig machen und sie sogar "on-the-fly" anwenden. Genau um diese Kategorie wird es hier gehen.
Metasploit Framework 
ist ein echter Koloss in unserem Bereich. Es kann so viel, dass die Anleitung mehrere Artikel füllen würde. Wir werden das automatische Exploiting (nmap + metasploit) betrachten. Der Punkt ist folgender: Nmap analysiert den benötigten Port, installiert den Dienst, und Metasploit versucht dann, die entsprechenden Exploits anzuwenden, basierend auf der Dienstklasse (ftp, ssh usw.). Anstelle einer textlichen Anleitung werde ich ein Video einfügen, das zu diesem Thema recht populär ist: autopwn.

Man kann auch die Arbeit des benötigten Exploits einfach automatisieren. Zum Beispiel:
msf > verwenden Sie auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > setzen Sie RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > ausführen
Die Möglichkeiten dieses Frameworks sind tatsächlich sehr umfangreich, daher, wenn Sie tiefer eintauchen möchten, besuchen Sie
Armitage
— OVA im Cyberpunk-Genre für Metasploit. Visualisiert Ziele, empfiehlt Exploits und bietet erweiterte Funktionen dieses Frameworks. Besonders für diejenigen, die auf ansprechendes Design Wert legen.
Screencast:

Tenable Nessus®
— hat viele Funktionen, aber wir benötigen eine spezielle – die Erkennung der Dienste, für die Exploits existieren. Die kostenlose Version ist nur für den Heimgebrauch verfügbar.
Verwendung:
- Heruntergeladen (für Ihr System), installiert, registriert (der Schlüssel wird per E-Mail gesendet).
- Server gestartet, Benutzer im Nessus Server Manager hinzugefügt (Taste Benutzer verwalten).
- Gehen Sie zu der Adresse
https://localhost:8834/
und erhalten Sie den Flash-Client im Browser.
- Scans -> Hinzufügen -> füllen Sie die Felder aus (wählen Sie das passende Scan-Profil) und klicken Sie auf Scannen.
Nach einiger Zeit erscheint der Scannbericht im Tab Berichte.
Zur Überprüfung der praktischen Anfälligkeit von Diensten gegenüber Exploits kann das oben beschriebene Metasploit Framework genutzt oder versucht werden, einen Exploit zu finden (zum Beispiel auf , , und andere) und ihn manuell gegen Ihr System zu verwenden.
IMHO: etwas überladen. Ich habe es als einen der Führer in diesem Bereich der Softwareindustrie betrachtet.
Automatisierung von Injektionen
Viele Web-App-Sicherheits-Scanner suchen nach Injektionen, aber sie sind einfach allgemeine Scanner. Es gibt jedoch spezialisierte Tools, die sich auf die Suche und Ausnutzung von Injektionen konzentrieren. Genau darum wird es jetzt gehen.
sqlmap
— ein Open-Source-Tool zur Suche und Ausnutzung von SQL-Injektionen. Unterstützt Datenbankserver wie: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Die typische Verwendung umfasst die folgende Zeile:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Es gibt genug Handbücher, auch in deutscher Sprache. Die Software erleichtert die Arbeit von Pen-Testern in diesem Bereich erheblich.
Hier ist eine offizielle Video-Demonstration:

bsqlbf-v2
— ein Perl-Skript, Bruteforcer für "blinde" SQL-Injektionen. Funktioniert sowohl mit Integer-Werten in der URL als auch mit String-Werten.
Unterstützte Datenbanken:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Beispiel für die Verwendung:
./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from information_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Link mit Parametern
-blind u — Parameter für die Injektion (standardmäßig wird der letzte aus der Adresszeile genommen)
-sql "select table_name from information_schema.tables limit 1 offset 0" — unsere benutzerdefinierte Abfrage an die Datenbank
-Datenbank 1 — DB-Server: MSSQL
-Typ 1 — Angriffsart, „blinde“ Injektion, basierend auf True und Error (zum Beispiel syntaktische Fehler) Antworten
Debugging-Tools
Diese Werkzeuge werden hauptsächlich von Entwicklern genutzt, wenn Probleme mit den Ergebnissen ihrer Codeausführung auftreten. Diese Richtung ist jedoch auch beim Penetration Testing nützlich, wenn wir die benötigten Daten „on the fly“ ersetzen und analysieren können, was als Antwort auf unsere Eingabeparameter kommt (zum Beispiel beim Fuzzing) usw.
Burp Suite
— eine Sammlung von Tools, die bei Penetrationstests helfen. Im Internet findet man auf Russisch von Raz0r (allerdings aus dem Jahr 2008).
Die kostenlose Version enthält:
- Burp Proxy — lokaler Proxy, ermöglicht das Ändern bereits gebildeter Anfragen vom Browser
- Burp Spider — Spinne, sucht vorhandene Dateien und Verzeichnisse
- Burp Repeater — manuelle Versendung von HTTP-Anfragen
- Burp Sequencer — Analyse von Zufallswerten in Formularen
- Burp Decoder — Standard-Coder-Decodierer (html, base64, hex usw.), von denen es Tausende gibt, die man schnell in einer beliebigen Sprache schreiben kann
- Burp Comparer — Komponente zum Vergleich von Zeichenfolgen
Im Prinzip löst dieses Paket praktisch alle Aufgaben, die mit diesem Bereich verbunden sind.
Fiddler
— Fiddler ist ein Debugging-Proxy, der den gesamten HTTP(S)-Traffic aufzeichnet. Damit können Sie diesen Traffic untersuchen, Breakpoints setzen und mit eingehenden oder ausgehenden Daten experimentieren.
Es gibt auch , ein Monster und andere, die Wahl liegt beim Benutzer.
Fazit
Natürlich hat jeder Pentester sein eigenes Arsenal und seine eigenen Tools, da es einfach eine Vielzahl gibt. Ich habe versucht, einige der praktischsten und beliebtesten aufzulisten. Damit jeder Interessierte auch andere Tools in diesem Bereich kennenlernen kann, werde ich die Links weiter unten anführen.
Verschiedene Top-Listen/Übersichten von Scannern und Tools
- .
Linux-Distributionen, die bereits eine Vielzahl von Tools für Penetrationstests enthalten
upd: in deutscher Sprache vom Team "Hack4Sec" (hinzugefügt )
P.S. Man darf XSpider nicht unerwähnt lassen. Es nimmt nicht an der Übersicht teil, obwohl es bedingt kostenlos ist (ich habe es herausgefunden, als ich den Artikel an SekLab geschickt habe, gerade deswegen (nicht aufgrund meines Wissens, und nicht weil ich die neueste Version 7.8 habe) und habe es nicht in den Artikel aufgenommen). Eigentlich war eine Übersicht geplant (ich habe anspruchsvolle Tests dafür vorbereitet), aber ich weiß nicht, ob die Welt davon erfahren wird.
P.P.S. Ein gewisser Teil des Artikels wird gemäß seiner Bestimmung in dem kommenden Bericht auf 2012 in der QA-Sektion verwendet, in dem Tools vorgestellt werden, die hier nicht erwähnt wurden (kostenlos, natürlich), und es wird ein Algorithmus erläutert, in welcher Reihenfolge etwas verwendet werden soll, welche Ergebnisse zu erwarten sind, welche Konfigurationen verwendet werden sollten und allerlei Hinweise und Tricks bei der Arbeit (ich denke fast jeden Tag über den Vortrag nach, ich werde versuchen, alles Beste von mir zu diesem Thema zu erzählen).
Übrigens gab es zu diesem Artikel eine Veranstaltung bei Open InfoSec Days (, ), man kann die Konvois plündern einen Blick auf .
Quelle: habr.com
